From 0dc50b636a27b049b63a7be846bc9b28ed779724 Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Mon, 27 Mar 2023 21:34:46 -0500 Subject: [PATCH] upd --- .gitignore | 1 + Makefile | 16 +- design.md | 75 +- docs/.gitignore | 1 + docs/book.toml | 6 + docs/custom.css | 3 + docs/index.md | 87 +++ docs/make-then-tera.sh | 8 + docs/src/SUMMARY.md | 3 +- docs/src/app/sync.md | 1 - docs/src/dev/meta_json.md | 6 + docs/src/lib/api.md | 1 - docs/src/lib/api_reference.md | 1 + flake.nix | 14 +- nix/mdbook-tera.nix | 22 + nix/mdbook-tera.patch | 1313 +++++++++++++++++++++++++++++++++ package-lock.json | 664 ++++++++++++++++- package.json | 4 +- spec/generate.js | 14 + spec/meta.schema.json | 21 - spec/meta.schema.yml | 17 + 21 files changed, 2224 insertions(+), 54 deletions(-) create mode 100644 docs/custom.css create mode 100644 docs/index.md create mode 100755 docs/make-then-tera.sh delete mode 100644 docs/src/lib/api.md create mode 100644 docs/src/lib/api_reference.md create mode 100644 nix/mdbook-tera.nix create mode 100644 nix/mdbook-tera.patch create mode 100644 spec/generate.js delete mode 100644 spec/meta.schema.json create mode 100644 spec/meta.schema.yml diff --git a/.gitignore b/.gitignore index ac915fa..95eb6ed 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ node_modules .direnv .env /generated +/result* diff --git a/Makefile b/Makefile index 5a8f441..12a5179 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,18 @@ - - -.PHONY: all clean +.PHONY: all clean doc-watch doc-dependencies all: +doc-watch: + mdbook serve docs --port 8100 --hostname 0.0.0.0 + +doc-dependencies: docs/src/generated/spec/index.md + +generated/spec/meta.schema.json: spec/meta.schema.yml + yq . $< > $@ + +docs/src/generated/spec/index.md: generated/spec/meta.schema.json + mkdir -p generated/spec + node spec/generate.js + clean: rm -rf generated diff --git a/design.md b/design.md index 459bdc1..1e4af22 100644 --- a/design.md +++ b/design.md @@ -1,82 +1,109 @@ - CLI API - + - `mznotes install` : Install a script into the database - `mznotes show` : Show the information about a particular node, by ID - Database of nodes + code - + - Code - + - Code is all interface-based. Interface implementations give specific ways behaviors are implemented - + - Standard interfaces: + - Indexed - + - Node definition - - ``` - struct Node { + + ```typescript + type Node = { metadata: KVStore, - implements: Set, - + interfaces: Set, edges: Set<(EdgeType, Edge)>, } ``` - + - Within the metadata kv store, keys are namespaced, according to the application name. Application names must be registered ahead of time - + - Nodes implement interfaces, the code of which is fetched from the internet and validated - + - Nodes are namespaced, although namespacing isn't the primary hierarchy protocol. - + - This is needed because the database itself has a privileged namespace - The privileged namespace is for keeping track of database state, for example which scripts are trusted - + - Database service: - + - IFTTT Events - + - Local vs. distributed IFTTT events? - Local means that ur particular device is repsonsible for running it - Distributed means any device can consume the event??? - is this even a good idea? Maybe just have one dedicated worker device. For example, may not want to run certain automation tasks on phone, while others may only be able to be run on phone - + - Cron tasks + - Sync protocol: - After a modification, the modification gets written to a queue - CRDT? - Other privileged concepts: - + - User: a pub/priv key pair -- Use cases - +- Sample apps + + - Content / blob storage + + - Exposed interfaces + + - `Content` + + - `upload() -> Writer` + + - `get(node_id : NodeId) -> Reader` + + - `Writer` + + - `next_chunk(Vec)` + + - `Reader` + + - `next_chunk() -> Vec` + - Personal journaling (like Logseq) + - Weight / fitness tracking + - Calendar app (store events) + - Git app (store code) + - File backup + - Chat / Mail? + - Photo viewer + indexing using ML models for face detection / keywords - + - Not sure yet: + - Automatic sharing of database nodes? This seems like a bad idea for multiple reasons. Maybe better to just have a specific app for doing permission models - Other concerns + - Local protection using libsecret? - + - Migrations? + - If an application needs to migrate its data format, should we formalize this? - Data migrations that don't need to create / delete nodes, only metadata - diff --git a/docs/.gitignore b/docs/.gitignore index 7585238..44e0ff6 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1 +1,2 @@ book +generated diff --git a/docs/book.toml b/docs/book.toml index 4a656b4..e812a89 100644 --- a/docs/book.toml +++ b/docs/book.toml @@ -4,3 +4,9 @@ language = "en" multilingual = false src = "src" title = "mznotes documentation" + +[output.html] +additional-css = ["custom.css"] + +[preprocessor.tera] +command = "docs/make-then-tera.sh" diff --git a/docs/custom.css b/docs/custom.css new file mode 100644 index 0000000..0c527f2 --- /dev/null +++ b/docs/custom.css @@ -0,0 +1,3 @@ +main table { + margin: unset !important; +} diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..a723ade --- /dev/null +++ b/docs/index.md @@ -0,0 +1,87 @@ +# Index + +## Docs +- [docs/book.toml](docs/book.toml) +- [docs/make-then-tera.sh](docs/make-then-tera.sh) + +### Book +- [docs/book/404.html](docs/book/404.html) +- [docs/book/ayu-highlight.css](docs/book/ayu-highlight.css) +- [docs/book/book.js](docs/book/book.js) +- [docs/book/clipboard.min.js](docs/book/clipboard.min.js) +- [docs/book/elasticlunr.min.js](docs/book/elasticlunr.min.js) +- [docs/book/favicon.png](docs/book/favicon.png) +- [docs/book/favicon.svg](docs/book/favicon.svg) +- [docs/book/highlight.css](docs/book/highlight.css) +- [docs/book/highlight.js](docs/book/highlight.js) +- [docs/book/index.html](docs/book/index.html) +- [docs/book/mark.min.js](docs/book/mark.min.js) +- [docs/book/print.html](docs/book/print.html) +- [docs/book/searcher.js](docs/book/searcher.js) +- [docs/book/searchindex.js](docs/book/searchindex.js) +- [docs/book/searchindex.json](docs/book/searchindex.json) +- [docs/book/tomorrow-night.css](docs/book/tomorrow-night.css) + +### Src +- [docs/src/SUMMARY](docs/src/SUMMARY.md) + +### Book + +#### App +- [docs/book/app/sync.html](docs/book/app/sync.html) + +#### Css +- [docs/book/css/chrome.css](docs/book/css/chrome.css) +- [docs/book/css/general.css](docs/book/css/general.css) +- [docs/book/css/print.css](docs/book/css/print.css) +- [docs/book/css/variables.css](docs/book/css/variables.css) + +#### Dev +- [docs/book/dev/api.html](docs/book/dev/api.html) +- [docs/book/dev/meta_json.html](docs/book/dev/meta_json.html) + +#### Lib +- [docs/book/lib/api_reference.html](docs/book/lib/api_reference.html) + +#### Fonts +- [docs/book/fonts/OPEN-SANS-LICENSE.txt](docs/book/fonts/OPEN-SANS-LICENSE.txt) +- [docs/book/fonts/SOURCE-CODE-PRO-LICENSE.txt](docs/book/fonts/SOURCE-CODE-PRO-LICENSE.txt) +- [docs/book/fonts/fonts.css](docs/book/fonts/fonts.css) +- [docs/book/fonts/open-sans-v17-all-charsets-300.woff2](docs/book/fonts/open-sans-v17-all-charsets-300.woff2) +- [docs/book/fonts/open-sans-v17-all-charsets-300italic.woff2](docs/book/fonts/open-sans-v17-all-charsets-300italic.woff2) +- [docs/book/fonts/open-sans-v17-all-charsets-600.woff2](docs/book/fonts/open-sans-v17-all-charsets-600.woff2) +- [docs/book/fonts/open-sans-v17-all-charsets-600italic.woff2](docs/book/fonts/open-sans-v17-all-charsets-600italic.woff2) +- [docs/book/fonts/open-sans-v17-all-charsets-700.woff2](docs/book/fonts/open-sans-v17-all-charsets-700.woff2) +- [docs/book/fonts/open-sans-v17-all-charsets-700italic.woff2](docs/book/fonts/open-sans-v17-all-charsets-700italic.woff2) +- [docs/book/fonts/open-sans-v17-all-charsets-800.woff2](docs/book/fonts/open-sans-v17-all-charsets-800.woff2) +- [docs/book/fonts/open-sans-v17-all-charsets-800italic.woff2](docs/book/fonts/open-sans-v17-all-charsets-800italic.woff2) +- [docs/book/fonts/open-sans-v17-all-charsets-italic.woff2](docs/book/fonts/open-sans-v17-all-charsets-italic.woff2) +- [docs/book/fonts/open-sans-v17-all-charsets-regular.woff2](docs/book/fonts/open-sans-v17-all-charsets-regular.woff2) +- [docs/book/fonts/source-code-pro-v11-all-charsets-500.woff2](docs/book/fonts/source-code-pro-v11-all-charsets-500.woff2) + +### Src + +#### App +- [docs/src/app/sync](docs/src/app/sync.md) + +#### Dev +- [docs/src/dev/api](docs/src/dev/api.md) +- [docs/src/dev/meta_json](docs/src/dev/meta_json.md) + +#### Lib +- [docs/src/lib/api_reference](docs/src/lib/api_reference.md) + +### Book + +#### FontAwesome + +##### Css +- [docs/book/FontAwesome/css/font-awesome.css](docs/book/FontAwesome/css/font-awesome.css) + +##### Fonts +- [docs/book/FontAwesome/fonts/FontAwesome.ttf](docs/book/FontAwesome/fonts/FontAwesome.ttf) +- [docs/book/FontAwesome/fonts/fontawesome-webfont.eot](docs/book/FontAwesome/fonts/fontawesome-webfont.eot) +- [docs/book/FontAwesome/fonts/fontawesome-webfont.svg](docs/book/FontAwesome/fonts/fontawesome-webfont.svg) +- [docs/book/FontAwesome/fonts/fontawesome-webfont.ttf](docs/book/FontAwesome/fonts/fontawesome-webfont.ttf) +- [docs/book/FontAwesome/fonts/fontawesome-webfont.woff](docs/book/FontAwesome/fonts/fontawesome-webfont.woff) +- [docs/book/FontAwesome/fonts/fontawesome-webfont.woff2](docs/book/FontAwesome/fonts/fontawesome-webfont.woff2) diff --git a/docs/make-then-tera.sh b/docs/make-then-tera.sh new file mode 100755 index 0000000..014e884 --- /dev/null +++ b/docs/make-then-tera.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail + +file=$(mktemp) +cp /dev/stdin $file + +make doc-dependencies >/dev/stderr +mdbook-tera $@ < $file diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 67a1d87..4d1a837 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -7,8 +7,9 @@ # App Developers - [`meta.json`](./dev/meta_json.md) + - [API Reference](./generated/spec/meta.schema.md) - [App API](./dev/api.md) # Core Library Developers -- [Library API](./lib/api.md) +- [Library API Reference](./lib/api_reference.md) diff --git a/docs/src/app/sync.md b/docs/src/app/sync.md index cab09a2..284a871 100644 --- a/docs/src/app/sync.md +++ b/docs/src/app/sync.md @@ -2,4 +2,3 @@ This app synchronizes nodes across devices. - diff --git a/docs/src/dev/meta_json.md b/docs/src/dev/meta_json.md index e856c21..ff8e57c 100644 --- a/docs/src/dev/meta_json.md +++ b/docs/src/dev/meta_json.md @@ -5,3 +5,9 @@ features. [json5]: https://json5.org + +## API Reference + +This is a rendered schema for how to write `meta.json` files. + +[Documentation](./generated/spec) diff --git a/docs/src/lib/api.md b/docs/src/lib/api.md deleted file mode 100644 index 3675a43..0000000 --- a/docs/src/lib/api.md +++ /dev/null @@ -1 +0,0 @@ -# Library API diff --git a/docs/src/lib/api_reference.md b/docs/src/lib/api_reference.md new file mode 100644 index 0000000..08dd8d3 --- /dev/null +++ b/docs/src/lib/api_reference.md @@ -0,0 +1 @@ +# Library API Reference diff --git a/flake.nix b/flake.nix index 8a9e12c..2b2f8c6 100644 --- a/flake.nix +++ b/flake.nix @@ -22,7 +22,16 @@ prisma-env = import ./nix/prisma-env.nix { inherit (pkgs) prisma-engines; }; + + toolchain = pkgs.fenix.default; + + flakePkgs = rec { + mdbook-tera = + pkgs.callPackage ./nix/mdbook-tera.nix { inherit toolchain; }; + }; in rec { + packages = flake-utils.lib.flattenTree flakePkgs; + devShell = pkgs.mkShell ({ packages = with pkgs; [ cargo-deny @@ -32,8 +41,11 @@ cargo-watch deno - mdbook openssl + yq + + mdbook + flakePkgs.mdbook-tera (python310.withPackages (p: with p; [ ipython numpy scipy sympy ])) diff --git a/nix/mdbook-tera.nix b/nix/mdbook-tera.nix new file mode 100644 index 0000000..24a6532 --- /dev/null +++ b/nix/mdbook-tera.nix @@ -0,0 +1,22 @@ +{ lib, makeRustPlatform, toolchain, fetchFromGitHub }: + +let rustPlatform = makeRustPlatform { inherit (toolchain) cargo rustc; }; + +in rustPlatform.buildRustPackage rec { + name = "mdbook-tera"; + version = "0.5.1"; + + src = fetchFromGitHub { + owner = "avitex"; + repo = name; + rev = "v${version}"; + sha256 = "sha256-JxZWx0He0+hIPw4IPFMRg2dcQpwq8rCV6ujvX+n7RLk="; + }; + + cargoPatches = [ ./mdbook-tera.patch ]; + + cargoSha256 = "sha256-Y4U3lDgrRq8G+OGzi3MaAmXIrGwzMJZutK64wJKqFWk="; + + # unknown lint: `rustdoc::missing_doc_code_examples + doCheck = false; +} diff --git a/nix/mdbook-tera.patch b/nix/mdbook-tera.patch new file mode 100644 index 0000000..bd8332c --- /dev/null +++ b/nix/mdbook-tera.patch @@ -0,0 +1,1313 @@ +diff --git a/Cargo.lock b/Cargo.lock +index 2d586cb..902f3ab 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -4,18 +4,27 @@ version = 3 + + [[package]] + name = "aho-corasick" +-version = "0.7.18" ++version = "0.7.20" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" ++checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" + dependencies = [ + "memchr", + ] + ++[[package]] ++name = "android_system_properties" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" ++dependencies = [ ++ "libc", ++] ++ + [[package]] + name = "anyhow" +-version = "1.0.58" ++version = "1.0.70" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" ++checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" + + [[package]] + name = "atty" +@@ -23,7 +32,7 @@ version = "0.2.14" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" + dependencies = [ +- "hermit-abi", ++ "hermit-abi 0.1.19", + "libc", + "winapi", + ] +@@ -41,48 +50,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + + [[package]] +-name = "block-buffer" +-version = "0.7.3" ++name = "bitflags" ++version = "2.0.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +-dependencies = [ +- "block-padding", +- "byte-tools", +- "byteorder", +- "generic-array", +-] ++checksum = "487f1e0fcbe47deb8b0574e646def1c903389d95241dd1bbcc6ce4a715dfc0c1" + + [[package]] +-name = "block-padding" +-version = "0.1.5" ++name = "block-buffer" ++version = "0.10.4" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" ++checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" + dependencies = [ +- "byte-tools", ++ "generic-array", + ] + + [[package]] + name = "bstr" +-version = "0.2.17" ++version = "1.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" ++checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" + dependencies = [ +- "lazy_static", + "memchr", ++ "once_cell", + "regex-automata", ++ "serde", + ] + + [[package]] +-name = "byte-tools" +-version = "0.3.1" ++name = "bumpalo" ++version = "3.12.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" ++checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" + + [[package]] +-name = "byteorder" +-version = "1.4.3" ++name = "cc" ++version = "1.0.79" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" ++checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + + [[package]] + name = "cfg-if" +@@ -92,22 +96,21 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + + [[package]] + name = "chrono" +-version = "0.4.19" ++version = "0.4.24" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" ++checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" + dependencies = [ +- "libc", ++ "iana-time-zone", + "num-integer", + "num-traits", +- "time", + "winapi", + ] + + [[package]] + name = "chrono-tz" +-version = "0.6.1" ++version = "0.6.3" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "58549f1842da3080ce63002102d5bc954c7bc843d4f47818e642abdc36253552" ++checksum = "29c39203181991a7dd4343b8005bd804e7a9a37afb8ac070e43771e8c820bbde" + dependencies = [ + "chrono", + "chrono-tz-build", +@@ -116,9 +119,9 @@ dependencies = [ + + [[package]] + name = "chrono-tz-build" +-version = "0.0.2" ++version = "0.0.3" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "db058d493fb2f65f41861bfed7e3fe6335264a9f0f92710cab5bdf01fef09069" ++checksum = "6f509c3a87b33437b05e2458750a0700e5bdd6956176773e6c7d6dd15a283a0c" + dependencies = [ + "parse-zoneinfo", + "phf", +@@ -127,27 +130,41 @@ dependencies = [ + + [[package]] + name = "clap" +-version = "3.2.8" ++version = "3.2.23" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83" ++checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" + dependencies = [ + "atty", +- "bitflags", +- "clap_lex", ++ "bitflags 1.3.2", ++ "clap_lex 0.2.4", + "indexmap", +- "once_cell", + "strsim", + "termcolor", + "textwrap", + ] + ++[[package]] ++name = "clap" ++version = "4.1.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "76e21918af71fb4bcd813230cf549e33d14f73d0326b932b630ce2930332b131" ++dependencies = [ ++ "bitflags 2.0.2", ++ "clap_lex 0.3.3", ++ "is-terminal", ++ "once_cell", ++ "strsim", ++ "termcolor", ++ "terminal_size", ++] ++ + [[package]] + name = "clap_complete" +-version = "3.2.3" ++version = "4.1.5" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "ead064480dfc4880a10764488415a97fdd36a4cf1bb022d372f02e8faf8386e1" ++checksum = "37686beaba5ac9f3ab01ee3172f792fc6ffdd685bfb9e63cfef02c0571a4e8e1" + dependencies = [ +- "clap", ++ "clap 4.1.12", + ] + + [[package]] +@@ -160,13 +177,91 @@ dependencies = [ + ] + + [[package]] +-name = "crossbeam-utils" +-version = "0.8.10" ++name = "clap_lex" ++version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" ++checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" + dependencies = [ +- "cfg-if", ++ "os_str_bytes", ++] ++ ++[[package]] ++name = "codespan-reporting" ++version = "0.11.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" ++dependencies = [ ++ "termcolor", ++ "unicode-width", ++] ++ ++[[package]] ++name = "core-foundation-sys" ++version = "0.8.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" ++ ++[[package]] ++name = "cpufeatures" ++version = "0.2.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" ++dependencies = [ ++ "libc", ++] ++ ++[[package]] ++name = "crypto-common" ++version = "0.1.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" ++dependencies = [ ++ "generic-array", ++ "typenum", ++] ++ ++[[package]] ++name = "cxx" ++version = "1.0.93" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a9c00419335c41018365ddf7e4d5f1c12ee3659ddcf3e01974650ba1de73d038" ++dependencies = [ ++ "cc", ++ "cxxbridge-flags", ++ "cxxbridge-macro", ++ "link-cplusplus", ++] ++ ++[[package]] ++name = "cxx-build" ++version = "1.0.93" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fb8307ad413a98fff033c8545ecf133e3257747b3bae935e7602aab8aa92d4ca" ++dependencies = [ ++ "cc", ++ "codespan-reporting", + "once_cell", ++ "proc-macro2", ++ "quote", ++ "scratch", ++ "syn 2.0.8", ++] ++ ++[[package]] ++name = "cxxbridge-flags" ++version = "1.0.93" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "edc52e2eb08915cb12596d29d55f0b5384f00d697a646dbd269b6ecb0fbd9d31" ++ ++[[package]] ++name = "cxxbridge-macro" ++version = "1.0.93" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "631569015d0d8d54e6c241733f944042623ab6df7bc3be7466874b05fcdb1c5f" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 2.0.8", + ] + + [[package]] +@@ -177,37 +272,53 @@ checksum = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690" + + [[package]] + name = "digest" +-version = "0.8.1" ++version = "0.10.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" ++checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" + dependencies = [ +- "generic-array", ++ "block-buffer", ++ "crypto-common", + ] + + [[package]] + name = "env_logger" +-version = "0.9.0" ++version = "0.10.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" ++checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" + dependencies = [ +- "atty", + "humantime", ++ "is-terminal", + "log", + "regex", + "termcolor", + ] + + [[package]] +-name = "fake-simd" ++name = "errno" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" ++dependencies = [ ++ "errno-dragonfly", ++ "libc", ++ "winapi", ++] ++ ++[[package]] ++name = "errno-dragonfly" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" ++checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" ++dependencies = [ ++ "cc", ++ "libc", ++] + + [[package]] + name = "fastrand" +-version = "1.7.0" ++version = "1.9.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" ++checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" + dependencies = [ + "instant", + ] +@@ -220,29 +331,30 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + + [[package]] + name = "generic-array" +-version = "0.12.4" ++version = "0.14.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" ++checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" + dependencies = [ + "typenum", ++ "version_check", + ] + + [[package]] + name = "getrandom" +-version = "0.2.7" ++version = "0.2.8" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" ++checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" + dependencies = [ + "cfg-if", + "libc", +- "wasi 0.11.0+wasi-snapshot-preview1", ++ "wasi", + ] + + [[package]] + name = "globset" +-version = "0.4.9" ++version = "0.4.10" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" ++checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" + dependencies = [ + "aho-corasick", + "bstr", +@@ -257,16 +369,16 @@ version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" + dependencies = [ +- "bitflags", ++ "bitflags 1.3.2", + "ignore", + "walkdir", + ] + + [[package]] + name = "handlebars" +-version = "4.3.1" ++version = "4.3.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "b66d0c1b6e3abfd1e72818798925e16e02ed77e1b47f6c25a95a23b377ee4299" ++checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" + dependencies = [ + "log", + "pest", +@@ -278,9 +390,9 @@ dependencies = [ + + [[package]] + name = "hashbrown" +-version = "0.12.2" ++version = "0.12.3" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "607c8a29735385251a339424dd462993c0fed8fa09d378f259377df08c126022" ++checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + + [[package]] + name = "hermit-abi" +@@ -291,6 +403,12 @@ dependencies = [ + "libc", + ] + ++[[package]] ++name = "hermit-abi" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" ++ + [[package]] + name = "humansize" + version = "1.1.1" +@@ -303,13 +421,36 @@ version = "2.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + ++[[package]] ++name = "iana-time-zone" ++version = "0.1.54" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d" ++dependencies = [ ++ "android_system_properties", ++ "core-foundation-sys", ++ "iana-time-zone-haiku", ++ "js-sys", ++ "wasm-bindgen", ++ "windows", ++] ++ ++[[package]] ++name = "iana-time-zone-haiku" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" ++dependencies = [ ++ "cxx", ++ "cxx-build", ++] ++ + [[package]] + name = "ignore" +-version = "0.4.18" ++version = "0.4.20" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" ++checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" + dependencies = [ +- "crossbeam-utils", + "globset", + "lazy_static", + "log", +@@ -323,9 +464,9 @@ dependencies = [ + + [[package]] + name = "indexmap" +-version = "1.9.1" ++version = "1.9.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" ++checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" + dependencies = [ + "autocfg", + "hashbrown", +@@ -340,11 +481,43 @@ dependencies = [ + "cfg-if", + ] + ++[[package]] ++name = "io-lifetimes" ++version = "1.0.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" ++dependencies = [ ++ "hermit-abi 0.3.1", ++ "libc", ++ "windows-sys 0.45.0", ++] ++ ++[[package]] ++name = "is-terminal" ++version = "0.4.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" ++dependencies = [ ++ "hermit-abi 0.3.1", ++ "io-lifetimes", ++ "rustix", ++ "windows-sys 0.45.0", ++] ++ + [[package]] + name = "itoa" +-version = "1.0.2" ++version = "1.0.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" ++checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" ++ ++[[package]] ++name = "js-sys" ++version = "0.3.61" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" ++dependencies = [ ++ "wasm-bindgen", ++] + + [[package]] + name = "lazy_static" +@@ -354,9 +527,24 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + + [[package]] + name = "libc" +-version = "0.2.126" ++version = "0.2.140" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" ++ ++[[package]] ++name = "link-cplusplus" ++version = "1.0.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" ++dependencies = [ ++ "cc", ++] ++ ++[[package]] ++name = "linux-raw-sys" ++version = "0.1.4" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" ++checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + + [[package]] + name = "log" +@@ -367,27 +555,21 @@ dependencies = [ + "cfg-if", + ] + +-[[package]] +-name = "maplit" +-version = "1.0.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +- + [[package]] + name = "mdbook" +-version = "0.4.19" ++version = "0.4.28" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "fe2468f3c25ca56d4e9e309b94a1a61626aa2a66a68d0649477f6a9fb14de972" ++checksum = "764dcbfc2e5f868bc1b566eb179dff1a06458fd0cff846aae2579392dd3f01a0" + dependencies = [ + "anyhow", + "chrono", +- "clap", ++ "clap 4.1.12", + "clap_complete", + "env_logger", + "handlebars", +- "lazy_static", + "log", + "memchr", ++ "once_cell", + "opener", + "pulldown-cmark", + "regex", +@@ -404,7 +586,7 @@ name = "mdbook-tera" + version = "0.5.1" + dependencies = [ + "anyhow", +- "clap", ++ "clap 3.2.23", + "globwalk", + "mdbook", + "semver", +@@ -441,21 +623,15 @@ dependencies = [ + + [[package]] + name = "once_cell" +-version = "1.13.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +- +-[[package]] +-name = "opaque-debug" +-version = "0.2.3" ++version = "1.17.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" ++checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" + + [[package]] + name = "opener" +-version = "0.5.0" ++version = "0.5.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4ea3ebcd72a54701f56345f16785a6d3ac2df7e986d273eb4395c0b01db17952" ++checksum = "293c15678e37254c15bd2f092314abb4e51d7fdde05c2021279c12631b54f005" + dependencies = [ + "bstr", + "winapi", +@@ -463,9 +639,9 @@ dependencies = [ + + [[package]] + name = "os_str_bytes" +-version = "6.1.0" ++version = "6.5.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa" ++checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" + + [[package]] + name = "parse-zoneinfo" +@@ -478,24 +654,25 @@ dependencies = [ + + [[package]] + name = "percent-encoding" +-version = "2.1.0" ++version = "2.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" ++checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + + [[package]] + name = "pest" +-version = "2.1.3" ++version = "2.5.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" ++checksum = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7" + dependencies = [ ++ "thiserror", + "ucd-trie", + ] + + [[package]] + name = "pest_derive" +-version = "2.1.0" ++version = "2.5.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" ++checksum = "a81186863f3d0a27340815be8f2078dd8050b14cd71913db9fbda795e5f707d7" + dependencies = [ + "pest", + "pest_generator", +@@ -503,42 +680,42 @@ dependencies = [ + + [[package]] + name = "pest_generator" +-version = "2.1.3" ++version = "2.5.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" ++checksum = "75a1ef20bf3193c15ac345acb32e26b3dc3223aff4d77ae4fc5359567683796b" + dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", +- "syn", ++ "syn 1.0.109", + ] + + [[package]] + name = "pest_meta" +-version = "2.1.3" ++version = "2.5.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" ++checksum = "5e3b284b1f13a20dc5ebc90aff59a51b8d7137c221131b52a7260c08cbc1cc80" + dependencies = [ +- "maplit", ++ "once_cell", + "pest", +- "sha-1", ++ "sha2", + ] + + [[package]] + name = "phf" +-version = "0.10.1" ++version = "0.11.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" ++checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" + dependencies = [ + "phf_shared", + ] + + [[package]] + name = "phf_codegen" +-version = "0.10.0" ++version = "0.11.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" ++checksum = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770" + dependencies = [ + "phf_generator", + "phf_shared", +@@ -546,9 +723,9 @@ dependencies = [ + + [[package]] + name = "phf_generator" +-version = "0.10.0" ++version = "0.11.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" ++checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf" + dependencies = [ + "phf_shared", + "rand", +@@ -556,9 +733,9 @@ dependencies = [ + + [[package]] + name = "phf_shared" +-version = "0.10.0" ++version = "0.11.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" ++checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" + dependencies = [ + "siphasher", + "uncased", +@@ -566,35 +743,35 @@ dependencies = [ + + [[package]] + name = "ppv-lite86" +-version = "0.2.16" ++version = "0.2.17" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" ++checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + + [[package]] + name = "proc-macro2" +-version = "1.0.40" ++version = "1.0.53" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" ++checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73" + dependencies = [ + "unicode-ident", + ] + + [[package]] + name = "pulldown-cmark" +-version = "0.9.1" ++version = "0.9.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "34f197a544b0c9ab3ae46c359a7ec9cbbb5c7bf97054266fecb7ead794a181d6" ++checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63" + dependencies = [ +- "bitflags", ++ "bitflags 1.3.2", + "memchr", + "unicase", + ] + + [[package]] + name = "quote" +-version = "1.0.20" ++version = "1.0.26" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" ++checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" + dependencies = [ + "proc-macro2", + ] +@@ -622,27 +799,27 @@ dependencies = [ + + [[package]] + name = "rand_core" +-version = "0.6.3" ++version = "0.6.4" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" ++checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" + dependencies = [ + "getrandom", + ] + + [[package]] + name = "redox_syscall" +-version = "0.2.13" ++version = "0.2.16" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" ++checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" + dependencies = [ +- "bitflags", ++ "bitflags 1.3.2", + ] + + [[package]] + name = "regex" +-version = "1.6.0" ++version = "1.7.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" ++checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c" + dependencies = [ + "aho-corasick", + "memchr", +@@ -657,24 +834,29 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" + + [[package]] + name = "regex-syntax" +-version = "0.6.27" ++version = "0.6.29" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" ++checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + + [[package]] +-name = "remove_dir_all" +-version = "0.5.3" ++name = "rustix" ++version = "0.36.11" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" ++checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" + dependencies = [ +- "winapi", ++ "bitflags 1.3.2", ++ "errno", ++ "io-lifetimes", ++ "libc", ++ "linux-raw-sys", ++ "windows-sys 0.45.0", + ] + + [[package]] + name = "ryu" +-version = "1.0.10" ++version = "1.0.13" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" ++checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" + + [[package]] + name = "same-file" +@@ -685,37 +867,43 @@ dependencies = [ + "winapi-util", + ] + ++[[package]] ++name = "scratch" ++version = "1.0.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" ++ + [[package]] + name = "semver" +-version = "1.0.12" ++version = "1.0.17" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1" ++checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" + + [[package]] + name = "serde" +-version = "1.0.138" ++version = "1.0.158" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47" ++checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" + dependencies = [ + "serde_derive", + ] + + [[package]] + name = "serde_derive" +-version = "1.0.138" ++version = "1.0.158" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c" ++checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" + dependencies = [ + "proc-macro2", + "quote", +- "syn", ++ "syn 2.0.8", + ] + + [[package]] + name = "serde_json" +-version = "1.0.82" ++version = "1.0.94" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" ++checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" + dependencies = [ + "itoa", + "ryu", +@@ -723,15 +911,14 @@ dependencies = [ + ] + + [[package]] +-name = "sha-1" +-version = "0.8.2" ++name = "sha2" ++version = "0.10.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" ++checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" + dependencies = [ +- "block-buffer", ++ "cfg-if", ++ "cpufeatures", + "digest", +- "fake-simd", +- "opaque-debug", + ] + + [[package]] +@@ -763,9 +950,20 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + + [[package]] + name = "syn" +-version = "1.0.98" ++version = "1.0.109" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" ++checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "unicode-ident", ++] ++ ++[[package]] ++name = "syn" ++version = "2.0.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9" + dependencies = [ + "proc-macro2", + "quote", +@@ -774,23 +972,22 @@ dependencies = [ + + [[package]] + name = "tempfile" +-version = "3.3.0" ++version = "3.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" ++checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" + dependencies = [ + "cfg-if", + "fastrand", +- "libc", + "redox_syscall", +- "remove_dir_all", +- "winapi", ++ "rustix", ++ "windows-sys 0.42.0", + ] + + [[package]] + name = "tera" +-version = "1.16.0" ++version = "1.17.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "7c9783d6ff395ae80cf17ed9a25360e7ba37742a79fa8fddabb073c5c7c8856d" ++checksum = "3df578c295f9ec044ff1c829daf31bb7581d5b3c2a7a3d87419afe1f2531438c" + dependencies = [ + "chrono", + "chrono-tz", +@@ -810,85 +1007,85 @@ dependencies = [ + + [[package]] + name = "termcolor" +-version = "1.1.3" ++version = "1.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" ++checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" + dependencies = [ + "winapi-util", + ] + ++[[package]] ++name = "terminal_size" ++version = "0.2.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4c9afddd2cec1c0909f06b00ef33f94ab2cc0578c4a610aa208ddfec8aa2b43a" ++dependencies = [ ++ "rustix", ++ "windows-sys 0.45.0", ++] ++ + [[package]] + name = "textwrap" +-version = "0.15.0" ++version = "0.16.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" ++checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" + + [[package]] + name = "thiserror" +-version = "1.0.31" ++version = "1.0.40" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" ++checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" + dependencies = [ + "thiserror-impl", + ] + + [[package]] + name = "thiserror-impl" +-version = "1.0.31" ++version = "1.0.40" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" ++checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" + dependencies = [ + "proc-macro2", + "quote", +- "syn", ++ "syn 2.0.8", + ] + + [[package]] + name = "thread_local" +-version = "1.1.4" ++version = "1.1.7" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" ++checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" + dependencies = [ ++ "cfg-if", + "once_cell", + ] + +-[[package]] +-name = "time" +-version = "0.1.44" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +-dependencies = [ +- "libc", +- "wasi 0.10.0+wasi-snapshot-preview1", +- "winapi", +-] +- + [[package]] + name = "toml" +-version = "0.5.9" ++version = "0.5.11" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" ++checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" + dependencies = [ + "serde", + ] + + [[package]] + name = "topological-sort" +-version = "0.1.0" ++version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "aa7c7f42dea4b1b99439786f5633aeb9c14c1b53f75e282803c2ec2ad545873c" ++checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d" + + [[package]] + name = "typenum" +-version = "1.15.0" ++version = "1.16.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" ++checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + + [[package]] + name = "ucd-trie" +-version = "0.1.4" ++version = "0.1.5" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" ++checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + + [[package]] + name = "uncased" +@@ -960,9 +1157,15 @@ dependencies = [ + + [[package]] + name = "unicode-ident" +-version = "1.0.1" ++version = "1.0.8" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" ++checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" ++ ++[[package]] ++name = "unicode-width" ++version = "0.1.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + + [[package]] + name = "version_check" +@@ -972,26 +1175,73 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + + [[package]] + name = "walkdir" +-version = "2.3.2" ++version = "2.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" ++checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" + dependencies = [ + "same-file", +- "winapi", + "winapi-util", + ] + + [[package]] + name = "wasi" +-version = "0.10.0+wasi-snapshot-preview1" ++version = "0.11.0+wasi-snapshot-preview1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" ++checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + + [[package]] +-name = "wasi" +-version = "0.11.0+wasi-snapshot-preview1" ++name = "wasm-bindgen" ++version = "0.2.84" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" ++checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" ++dependencies = [ ++ "cfg-if", ++ "wasm-bindgen-macro", ++] ++ ++[[package]] ++name = "wasm-bindgen-backend" ++version = "0.2.84" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" ++dependencies = [ ++ "bumpalo", ++ "log", ++ "once_cell", ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++ "wasm-bindgen-shared", ++] ++ ++[[package]] ++name = "wasm-bindgen-macro" ++version = "0.2.84" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" ++dependencies = [ ++ "quote", ++ "wasm-bindgen-macro-support", ++] ++ ++[[package]] ++name = "wasm-bindgen-macro-support" ++version = "0.2.84" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++ "wasm-bindgen-backend", ++ "wasm-bindgen-shared", ++] ++ ++[[package]] ++name = "wasm-bindgen-shared" ++version = "0.2.84" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" + + [[package]] + name = "winapi" +@@ -1023,3 +1273,93 @@ name = "winapi-x86_64-pc-windows-gnu" + version = "0.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" ++ ++[[package]] ++name = "windows" ++version = "0.46.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" ++dependencies = [ ++ "windows-targets", ++] ++ ++[[package]] ++name = "windows-sys" ++version = "0.42.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" ++dependencies = [ ++ "windows_aarch64_gnullvm", ++ "windows_aarch64_msvc", ++ "windows_i686_gnu", ++ "windows_i686_msvc", ++ "windows_x86_64_gnu", ++ "windows_x86_64_gnullvm", ++ "windows_x86_64_msvc", ++] ++ ++[[package]] ++name = "windows-sys" ++version = "0.45.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" ++dependencies = [ ++ "windows-targets", ++] ++ ++[[package]] ++name = "windows-targets" ++version = "0.42.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" ++dependencies = [ ++ "windows_aarch64_gnullvm", ++ "windows_aarch64_msvc", ++ "windows_i686_gnu", ++ "windows_i686_msvc", ++ "windows_x86_64_gnu", ++ "windows_x86_64_gnullvm", ++ "windows_x86_64_msvc", ++] ++ ++[[package]] ++name = "windows_aarch64_gnullvm" ++version = "0.42.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" ++ ++[[package]] ++name = "windows_aarch64_msvc" ++version = "0.42.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" ++ ++[[package]] ++name = "windows_i686_gnu" ++version = "0.42.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" ++ ++[[package]] ++name = "windows_i686_msvc" ++version = "0.42.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" ++ ++[[package]] ++name = "windows_x86_64_gnu" ++version = "0.42.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" ++ ++[[package]] ++name = "windows_x86_64_gnullvm" ++version = "0.42.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" ++ ++[[package]] ++name = "windows_x86_64_msvc" ++version = "0.42.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" diff --git a/package-lock.json b/package-lock.json index 91ccaac..c043153 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,9 +15,30 @@ }, "devDependencies": { "@types/express": "^4.17.17", + "json-schema-static-docs": "^0.23.0", "prisma": "^4.11.0", "ts-node": "^10.9.1", - "typescript": "^5.0.2" + "typescript": "^5.0.2", + "wetzel": "^0.2.3" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-10.1.0.tgz", + "integrity": "sha512-3e+viyMuXdrcK8v5pvP+SDoAQ77FH6OyRmuK48SZKmdHJRFm87RsSs8qm6kP39a/pOPURByJw+OXzQIqcfmKtA==", + "dev": true, + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.11", + "@types/lodash.clonedeep": "^4.5.7", + "js-yaml": "^4.1.0", + "lodash.clonedeep": "^4.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" } }, "node_modules/@cspotcode/source-map-support": { @@ -57,6 +78,47 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@prisma/client": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.11.0.tgz", @@ -155,6 +217,27 @@ "@types/range-parser": "*" } }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", + "dev": true + }, + "node_modules/@types/lodash.clonedeep": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.7.tgz", + "integrity": "sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==", + "dev": true, + "dependencies": { + "@types/lodash": "*" + } + }, "node_modules/@types/mime": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", @@ -220,17 +303,62 @@ "node": ">=0.4.0" } }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -254,6 +382,27 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -413,6 +562,55 @@ "node": ">= 0.10.0" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -446,6 +644,12 @@ "node": ">= 0.6" } }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -464,6 +668,66 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/glob": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.2.tgz", + "integrity": "sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -525,6 +789,134 @@ "node": ">= 0.10" } }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-static-docs": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/json-schema-static-docs/-/json-schema-static-docs-0.23.0.tgz", + "integrity": "sha512-l8h5A6/kf8mOyJ3Slih8487OrAxLE9CadgxftQreB8zfdg+9OUir/ZBhhT5v3hJyPagX1GHt9IwdTZHJdNzhcw==", + "dev": true, + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^10.1.0", + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "extend": "^3.0.2", + "fast-glob": "^3.2.12", + "handlebars": "^4.7.7", + "jsonpointer": "^5.0.1", + "lodash": ">=4.17.21", + "make-dir": "^3.1.0", + "mkdirp": "^2.1.6", + "rimraf": "^4.4.1", + "yaml": "^2.2.1" + }, + "bin": { + "json-schema-static-docs": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/json-schema-static-docs/node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/jsonpointer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz", + "integrity": "sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -544,6 +936,15 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -552,6 +953,19 @@ "node": ">= 0.6" } }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -582,6 +996,51 @@ "node": ">= 0.6" } }, + "node_modules/minimatch": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.3.tgz", + "integrity": "sha512-5UB4yYusDtkRPbRiy1cqZ1IpGNcJCGlEMG17RKzPddpyiPKoCdwohbED8g4QXT0ewCt8LTkQXuljsUfQ3FKM4A==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.0.tgz", + "integrity": "sha512-ozllOyYiayzEgHCQKMPXKkOn9QRdeVe0TrIxLp+SJXMA0XNCL+yf4OtyPkB2JthzzYePYOTRnipBi3oOOa82sw==", + "dev": true + }, + "node_modules/minipass": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", + "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "dev": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -595,6 +1054,12 @@ "node": ">= 0.6" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -622,11 +1087,39 @@ "node": ">= 0.8" } }, + "node_modules/path-scurry": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.3.tgz", + "integrity": "sha512-RAmB+n30SlN+HnNx6EbcpoDy9nwdpcGPnEKrJnu6GZoDWBdIjo1UQMVtW2ybtC7LC2oKLcMq8y5g8WnKLiod9g==", + "dev": true, + "dependencies": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/prisma": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/prisma/-/prisma-4.11.0.tgz", @@ -656,6 +1149,15 @@ "node": ">= 0.10" } }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -670,6 +1172,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -692,6 +1214,66 @@ "node": ">= 0.8" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dev": true, + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -716,6 +1298,15 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -776,6 +1367,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -784,6 +1384,18 @@ "node": ">= 0.8" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -860,6 +1472,19 @@ "node": ">=12.20" } }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -868,6 +1493,15 @@ "node": ">= 0.8" } }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -905,6 +1539,34 @@ "node": ">=6.0" } }, + "node_modules/wetzel": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/wetzel/-/wetzel-0.2.3.tgz", + "integrity": "sha512-eDu1nhDS0WSSMtkuG1Mgi4Vb8UqFW3pTod6csfJsYmTtyWJhSkogbDPxWQ0dzEUz5qZXdsnOeLFM4MBlYlXQtw==", + "dev": true, + "dependencies": { + "jsonpointer": "^4.1.0", + "minimist": "1.1.0" + }, + "bin": { + "wetzel": "bin/wetzel.js" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/package.json b/package.json index b036dd1..e7c94f8 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,11 @@ "license": "ISC", "devDependencies": { "@types/express": "^4.17.17", + "json-schema-static-docs": "^0.23.0", "prisma": "^4.11.0", "ts-node": "^10.9.1", - "typescript": "^5.0.2" + "typescript": "^5.0.2", + "wetzel": "^0.2.3" }, "dependencies": { "@prisma/client": "^4.11.0", diff --git a/spec/generate.js b/spec/generate.js new file mode 100644 index 0000000..730062e --- /dev/null +++ b/spec/generate.js @@ -0,0 +1,14 @@ +const JsonSchemaStaticDocs = require("json-schema-static-docs"); + +(async () => { + let jsonSchemaStaticDocs = new JsonSchemaStaticDocs({ + inputPath: "./spec", + outputPath: "./docs/src/generated/spec", + ajvOptions: { + allowUnionTypes: true, + }, + }); + + await jsonSchemaStaticDocs.generate(); + console.log("Documents generated."); +})(); diff --git a/spec/meta.schema.json b/spec/meta.schema.json deleted file mode 100644 index 687ae74..0000000 --- a/spec/meta.schema.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$id": "https://example.com/person.schema.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Person", - "type": "object", - "properties": { - "firstName": { - "type": "string", - "description": "The person's first name." - }, - "lastName": { - "type": "string", - "description": "The person's last name." - }, - "age": { - "description": "Age in years which must be equal to or greater than zero.", - "type": "integer", - "minimum": 0 - } - } -} diff --git a/spec/meta.schema.yml b/spec/meta.schema.yml new file mode 100644 index 0000000..d0e58fd --- /dev/null +++ b/spec/meta.schema.yml @@ -0,0 +1,17 @@ +$id: "https://example.com/person.schema.json" +$schema: "http://json-schema.org/draft-07/schema" +title: Application +type: object + +properties: + name: + type: string + title: Name of the application + + license: + type: [string, "null"] + title: SPDX Expression representing the license of the database. + description: |- + If the software uses a proprietary license, use `null` to indicate that. + +