diff --git a/compiler/CHANGELOG.md b/CHANGELOG.md similarity index 100% rename from compiler/CHANGELOG.md rename to CHANGELOG.md diff --git a/compiler/Cargo.lock b/Cargo.lock similarity index 100% rename from compiler/Cargo.lock rename to Cargo.lock diff --git a/compiler/Cargo.toml b/Cargo.toml similarity index 100% rename from compiler/Cargo.toml rename to Cargo.toml diff --git a/compiler/LICENSE.md b/LICENSE.md similarity index 100% rename from compiler/LICENSE.md rename to LICENSE.md diff --git a/compiler/.gitignore b/compiler/.gitignore deleted file mode 100644 index d6155df..0000000 --- a/compiler/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/target -.vscode -*.profraw \ No newline at end of file diff --git a/doc-generator/.gitignore b/doc-generator/.gitignore deleted file mode 100644 index cb0f694..0000000 --- a/doc-generator/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -target -static/en/** diff --git a/doc-generator/Cargo.lock b/doc-generator/Cargo.lock deleted file mode 100644 index f93bfc7..0000000 --- a/doc-generator/Cargo.lock +++ /dev/null @@ -1,507 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "anstream" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-wincon", - "concolor-override", - "concolor-query", - "is-terminal", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" - -[[package]] -name = "anstyle-parse" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-wincon" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa" -dependencies = [ - "anstyle", - "windows-sys", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "clap" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6efb5f0a41b5ef5b50c5da28c07609c20091df0c1fc33d418fa2a7e693c2b624" -dependencies = [ - "clap_builder", - "clap_derive", - "once_cell", -] - -[[package]] -name = "clap_builder" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671fcaa5debda4b9a84aa7fde49c907c8986c0e6ab927e04217c9cb74e7c8bc9" -dependencies = [ - "anstream", - "anstyle", - "bitflags", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "clap_lex" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" - -[[package]] -name = "colored" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" -dependencies = [ - "atty", - "lazy_static", - "winapi", -] - -[[package]] -name = "concolor-override" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f" - -[[package]] -name = "concolor-query" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "doc-generator" -version = "0.1.0" -dependencies = [ - "clap", - "markdown", - "misti", - "toml", - "yaml-rust", -] - -[[package]] -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 = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[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", -] - -[[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", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.140" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linux-raw-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" - -[[package]] -name = "markdown" -version = "1.0.0-alpha.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de49c677e95e00eaa74c42a0b07ea55e1e0b1ebca5b2cbc7657f288cd714eb" -dependencies = [ - "unicode-id", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "misti" -version = "0.0.5" -dependencies = [ - "clap", - "colored", -] - -[[package]] -name = "once_cell" -version = "1.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" - -[[package]] -name = "proc-macro2" -version = "1.0.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rustix" -version = "0.36.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" -dependencies = [ - "bitflags", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys", - "windows-sys", -] - -[[package]] -name = "serde" -version = "1.0.160" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" - -[[package]] -name = "serde_spanned" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" -dependencies = [ - "serde", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "syn" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e3787bb71465627110e7d87ed4faaa36c1f61042ee67badb9e2ef173accc40" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "toml" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "unicode-id" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d70b6494226b36008c8366c288d77190b3fad2eb4c10533139c1c1f461127f1a" - -[[package]] -name = "unicode-ident" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -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-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" - -[[package]] -name = "winnow" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" -dependencies = [ - "memchr", -] - -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] diff --git a/doc-generator/Cargo.toml b/doc-generator/Cargo.toml deleted file mode 100644 index eba76cf..0000000 --- a/doc-generator/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "doc-generator" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -misti = { path = "../compiler"} -clap = { version = "4.2.0", features = ["derive"] } -markdown = "1.0.0-alpha.7" -toml = "0.7.3" -yaml-rust = "0.4.5" diff --git a/doc-generator/README.md b/doc-generator/README.md deleted file mode 100644 index 7cfe443..0000000 --- a/doc-generator/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# Doc-generator - -Here is the documentation of the language in markdown, and a program to -generate static HTML files from them. - -## `src` folder - -Rust code to generate HTML files from MD files. - -The binary is called like: - -```sh -generator --input /path/to/markdown/folder/ --output /path/to/static/folder/ -``` - -## `markdown` folder - -Contains the Markdown. All files inside are expected to be UTF-8 encoded -markdown, and have the `.md` file extension. - -### Indexing - -`doc-generator` will not search for `.md` files. Instead, it will search for -`.toml` files, which index all the markdown files. This is used to generate -the file hierarchy and previous/next links in the documentation. - -This file must be named `index.toml`, must be the only TOML file in its folder, -and must follow the following schema: - -```toml -# Tipically index -entry-point = "file-without-extension" - -[folder-1] -section-name = "Display name for the folder" -# Markdown files, without the .md extension -children = [ - "file1", - "file2", -] -``` - -### Markdown extensions - -The markdown follows the CommonMark specification, but certain code blocks -contain custom behaviour: - -#### `meta` - -A code block with language `meta` contains text in TOML format that indicates -metadata for the current page. - -````toml -```meta -title: "Title of the page" -description: "Description of the page" -``` -```` - -- title: Used to create the title of the page with the format `{title} - Misti` -- description: The description of the page, placed in a `` element in the `` - - - -## `static` folder - -Contains CSS, JS, and HTML templates. Here the MD files are written to -after being converted. - -There must be a `template.html` file inside this folder. This file will be used to generate the HTML from MD files. - -Inside `template.html` there must be a string `{{markdown}}`: - -```html - - {{markdown}} - -``` - -This string, `{{markdown}}`, will be replaced with the HTML generated -from Markdown - -## `dist` folder - -Coming soon, this folder will contain all HTML, CSS & JS minified after -running a script. diff --git a/doc-generator/markdown/en/docs/latest/basics/function-calls.md b/doc-generator/markdown/en/docs/latest/basics/function-calls.md deleted file mode 100755 index cf1a0ae..0000000 --- a/doc-generator/markdown/en/docs/latest/basics/function-calls.md +++ /dev/null @@ -1,17 +0,0 @@ -# Function calls - -A function is called with parenthesis. - -```misti -// No parameters: place opening and closing paren -debugState() - -// 1 parameter -val result = fibonacci(20) - -// 2 or more parameters: separate the parameters with commas -val remainder = substract(50, 30) -val total = add(60, -30, 90) -``` - - diff --git a/doc-generator/markdown/en/docs/latest/basics/indentation-rules.md b/doc-generator/markdown/en/docs/latest/basics/indentation-rules.md deleted file mode 100644 index 5038d20..0000000 --- a/doc-generator/markdown/en/docs/latest/basics/indentation-rules.md +++ /dev/null @@ -1,3 +0,0 @@ -# Indentation rules - -TBD diff --git a/doc-generator/markdown/en/docs/latest/basics/operators.md b/doc-generator/markdown/en/docs/latest/basics/operators.md deleted file mode 100644 index 519a6c2..0000000 --- a/doc-generator/markdown/en/docs/latest/basics/operators.md +++ /dev/null @@ -1,80 +0,0 @@ -# Operators - -Misti has similar operators to JS. - -```md-warning -Misti will enforce type checking in operators at compile time. -

-However, due to how JS works, automatic type casting may still occur if you combine the Misti output with JS. -

-``` - -## Basic operators - -```misti -4 + 2 -4 - 2 -4 * 2 -4 / 2 -4 % 2 -4 ** 2 -``` - -## Asignment operators - -```misti -i += 1 -i -= 1 -i *= 2 -i /= 2 -i %= 2 -i **= 2 -``` - -## Bitwise operators - -Not considered at the moment. - - -## Comparison - -```misti -1 == 2 -1 != 2 -1 > 2 -1 < 2 -1 >= 2 -1 <= 2 -``` - -```md-warning -In Misti there's only double equals `==`. -
-
-x == y will ALWAYS compile to x === y -``` - -## Logical operators - -```misti -true && false -true || false - -!true -``` - -```md-warning -Multiple `!` are invalid, since there is no automatic type casting. -
-
-!! would be considered a different operator. -``` - -```md-warning -There is no short-circuit like so something like: -
-
-true && "value" will throw an error at compile time. -``` - - diff --git a/doc-generator/markdown/en/docs/latest/basics/simple-datatypes.md b/doc-generator/markdown/en/docs/latest/basics/simple-datatypes.md deleted file mode 100755 index 8be0c8a..0000000 --- a/doc-generator/markdown/en/docs/latest/basics/simple-datatypes.md +++ /dev/null @@ -1,35 +0,0 @@ -# Simple datatypes - -The following are the primitive datatypes. They have literal representations. - -## Num - -Equivalent to a number in JS. - -```misti -val f0 = 322 -val f1 = 10.304 -val f2 = -34.343223 -val f3 = 0.234234e+2 -val f4 = 1e+4 -``` - -A floating point number __must__ have a digit before and after the dot. - -```misti -val valid1 = 0.45 -val valid2 = 13.0 - -// Will not be considered as floating point numbers -val invalid1 = .45 // Will be interpreted as the operator `.` and the integer 45 -val invalid2 = 13. // Will be interpreted as the integer 13 and the operator `.` -``` - -## Bool - -True and false - -``` -true -false -``` diff --git a/doc-generator/markdown/en/docs/latest/basics/tuples.md b/doc-generator/markdown/en/docs/latest/basics/tuples.md deleted file mode 100644 index ea65eef..0000000 --- a/doc-generator/markdown/en/docs/latest/basics/tuples.md +++ /dev/null @@ -1,61 +0,0 @@ -# Tuples - -Tuples contain a fixed number of values of any datatype. They are denoted with -a hash and parenthesis. - -```misti -val person = #("John", "Doe", 25) -val result = #(true, 200) -``` - -## Signature - -```misti -// A tuple of Str, Str and Int -#(Str, Str, Int) - -// An array of tuples. These tuples have a Str, Int and Bool -Array[#(Str, Int, Bool)] - -// A function that takes a Str and Int, and return a tuple of Str and Int -(Str, Int) -> #(Str, Int) - -// A function that takes a tuple of Str and Int, and returns a Bool -(#(Str, Int)) -> Bool -``` - -## Destructuring - -In variable declaration - -```misti -val data = #("String", 322, true) - -val #(string, number, boolean) = data -val #(string, _, _) = data -``` - -In function parameters - -```misti -// Without parameter destructuring -fun destructure(#(Str, Int) data) { - val #(name, age) = data - // Computations with name, age -} - - -// With parameter destructuring -fun destructure(#(Str name, Int age)) { - // Computations with name, age - // Note that now there is no way to refer to the whole tuple -} - - -// Parameter destructuring with tuple preservation -fun destructure(#(Str name, Int age) data) { - // Computations with name, age - // The tuple `data` can still be referred to -} -``` - diff --git a/doc-generator/markdown/en/docs/latest/basics/variables-and-constants.md b/doc-generator/markdown/en/docs/latest/basics/variables-and-constants.md deleted file mode 100755 index 7b638ab..0000000 --- a/doc-generator/markdown/en/docs/latest/basics/variables-and-constants.md +++ /dev/null @@ -1,109 +0,0 @@ -# Variables and Constants - -Misti uses `var` for variables and `val` for constant reference variables. - -Variables and constants must always be initialized. - -```misti -// A variable, its value can be modified -var accumulator = 0 -accumulator += 1 -``` - -```misti -// A "constant", its value cannot be modified -val name = "Bob" - -// Illegal, will raise an error in compile time -name = "Mike" -``` - -```md-info -If a constant's value is a primitive value, it cannot be changed. -
-However, if it is a reference value, its inner attributes can still -be changed, but not the reference itself. -``` - -## Identifiers - -Identifiers start with a lower case letter or underscore, -and then can contain letters, numbers and underscores. -They can not start with a dollar sign. - -```misti -variable -_variable - -var1 -v4r -``` - -If an identifier starts with an upper case letter, it is considered to be -a Datatype. - -```misti -Str -Num -Bool -Array -Map - -CustomDatatype -``` - -## Type inference - -Variable declarations have type inference. - -```misti -val anInteger = 40 -val aFloat = 10.20e+4 -var aBoolean = true -``` - -The datatype can be optionally specified by placing it before `var` or `val`. - -```misti -Int val anInteger = 40 -Float val aFloat = 10.20e+4 -Bool var aBoolean = true -``` - -However, if the variable is a constant created with `val`, -this keyword is optional. - -So, the following are equivalent. - -```misti -Str val name = "Juan" -// is equivalent to -Str name = "Juan" -``` - -It is not possible to omit `var`. So the following will not mean the same. - -```misti -Str var age = 20 -// is not equivalent to -Str age = 20 - -// the previous statement is equivalent to: -// Str val age = 20 -``` - -The second statement will declare a constant, not a variable. - - -## Assign a block to a variable - -Assigning a block to a variable will execute the block, -and the last expression will be the value of the variable. - -```misti -val roi = - val income = someIncomeCalculation() - val investment = 25000 - income / investment // This will be the value of `roi` -``` - diff --git a/doc-generator/markdown/en/docs/latest/classes/definition.md b/doc-generator/markdown/en/docs/latest/classes/definition.md deleted file mode 100644 index 73953ae..0000000 --- a/doc-generator/markdown/en/docs/latest/classes/definition.md +++ /dev/null @@ -1,15 +0,0 @@ -# Classes - -```misti -class Token(Str value, Int lineNumber, Int position) - -val token1 = Token("if", 0, 0) -val token2 = Token(value: "else", lineNumber: 1, position: 4) -``` - -```misti -class FunToken(Int lineNumber, Int position) - -> Token("fun", lineNumber, position) - -val funToken1 = FunToken(3, 0) -``` diff --git a/doc-generator/markdown/en/docs/latest/flow-control/arrays.md b/doc-generator/markdown/en/docs/latest/flow-control/arrays.md deleted file mode 100644 index 2540af2..0000000 --- a/doc-generator/markdown/en/docs/latest/flow-control/arrays.md +++ /dev/null @@ -1,49 +0,0 @@ -# Arrays - -Arrays in Misti don't have special syntax for declaration. -They are created the following way instead: - -```misti -// Array[Int] -val numbers = Array(10, 20, 30) -// Array[Str] -val names = Array("Pablo", "Kim", "Mike") -``` - -Accessing or mutating the array use a similar syntax to other languages. - -```misti -// Access. Note the dot -val secondNumber = numbers.[1] - -// Mutation. Note the dot -names.[2] = "Josh" -``` - -```md-warning -Place a dot between the array and square brackets to access or mutate an array. -
-
-If you don't place a dot, it will be interpreted as a generic parameter. -``` - -## Importance of placing a dot - -If there is no dot between the array and square brackets, then it is parsed -as a generic parameter. - -```misti -// Access or mutation -variable.[index] -val n = numbers.[0] -numbers.[1] = 20 - -// Generic parameter -arrayOf[Datatype] -arrayOf[Str] -arrayOf[Bool] -``` - - - - diff --git a/doc-generator/markdown/en/docs/latest/flow-control/conditionals.md b/doc-generator/markdown/en/docs/latest/flow-control/conditionals.md deleted file mode 100644 index 4042b50..0000000 --- a/doc-generator/markdown/en/docs/latest/flow-control/conditionals.md +++ /dev/null @@ -1,33 +0,0 @@ -# Conditionals - -Conditionals in Misti surround the condition with keywords, -and the body of each condition is defined with indentation. - -```Misti -if condition do - // code... -else if anotherCondition do - // code... -else - // more code... -``` - -Conditionals are expressions, they evaluate to the last expression -in each branch. - -```misti -val result = if condition do value1 else value2 -``` - -## Early return - -If you need to return early based on a condition, -you can use `ret` instead of `do` in a confition. The last expression of -the block will be returned - -```misti -if condition ret - // code... - computedValue // this will be returned -``` - diff --git a/doc-generator/markdown/en/docs/latest/flow-control/loops.md b/doc-generator/markdown/en/docs/latest/flow-control/loops.md deleted file mode 100644 index 6b87b81..0000000 --- a/doc-generator/markdown/en/docs/latest/flow-control/loops.md +++ /dev/null @@ -1,25 +0,0 @@ -# Loops - -Loops are indentation-sensitive. - -## For each - -```misti -// Loop through an object -for key in object do - print(key) - - -// Loop through an array -for value of array do - print(value) -``` - -## While - -```misti -while condition do - print("loop") -``` - - diff --git a/doc-generator/markdown/en/docs/latest/functions/definition.md b/doc-generator/markdown/en/docs/latest/functions/definition.md deleted file mode 100644 index 9a30882..0000000 --- a/doc-generator/markdown/en/docs/latest/functions/definition.md +++ /dev/null @@ -1,89 +0,0 @@ -# Function definition - -Functions are defined with `fun` followed by the name of the function, -the parameters, the return type, `=` and an expression. - -## Function with no parameters - -To declare a function with no parameters include `()`, and call it with `()`. - -```misti -fun getName() = - // code... - -val name = getName() -``` - -## Function that returns void/nothing - -In Misti we return `Unit` instead of `void`, `null`, `undefined` or others. - -So a function that doesn't return anything, would return `Unit`. - -```misti -// This function just prints Hello and returns -fun printHello() -> Unit = - print("Hello") -``` - -This type, `Unit`, is treated like `void`, so it is ignored. - -If a function doesn't return anything, `Unit` can be omitted. - -```misti -// This first declaration -fun doSomething() -> Unit = - something() - - -// is equivalent to this one -fun doSomething() = - something() -``` - -## Function with return - -First, the return type must be defined in the declaration. - -Let's say that a function `getLuckyNumber` returns a Float, then it -would be declared like this: - -```misti -fun getLuckyNumber() -> Float = - // Body of the function -``` - -And finally, the return value is the last expression in the function. -The following function will return 7. - -```misti -fun getLuckyNumber() -> Float = - // This '7' is the last expression, so it will be returned - 7 - - -val number = getLuckyNumber() // number = 7 -``` - -## Return multiple values - -We can use a tuple if we need to return multiple values. - -```misti -fun getPerson() -> #(Str, Int) = - // Logic... - #("Kim", 33) - - -fun tupleContains(#(Str, Int) data, Str key) -> #(Bool, Int) = - val #(currentKey, value) = data - if currentKey == key do - #(true, value) - else - #(false, 0) - - -tupleContains(#("Test", 200), "Test") -``` - - diff --git a/doc-generator/markdown/en/docs/latest/functions/lambdas.md b/doc-generator/markdown/en/docs/latest/functions/lambdas.md deleted file mode 100644 index 4300533..0000000 --- a/doc-generator/markdown/en/docs/latest/functions/lambdas.md +++ /dev/null @@ -1,67 +0,0 @@ -# Anonymous functions/Lambdas - -```md-info -Subject to change -``` - -An anonymous consists of the `fn` keyword, parameters and body. - -```misti -fn (x, y) { - // Body - x + y -} -``` - -The following types are optional, if we can be able to infer them: - -- The types of the parameters -- The return type - -If used, they would look like this: - -```misti -fn (Int x, Int y) -> Int { - // Body - x + y -} -``` - -## Lambdas - -If an anonymous function doesn't have parameters, the `fn` keyword may be omitted. -This is called a lambda. - -```misti -{ doSomething() } - -// The above lambda is equivalent to: -fn () { - doSomething() -} -``` - -## Inferred arguments - -If the arguments of the lambda don't need names, the following -syntax can be used. - -```misti -{ $1 + $2 } -``` - -Inside a short lambda you can use `$1`, `$2`, `$3`, etc. to refer to the -parameters of the lambda. - -So the following are the same: - -```misti -{ $1 + $2 } - -// The same as: -fn (x, y) { - x + y -} -``` - - diff --git a/doc-generator/markdown/en/docs/latest/functions/parameters.md b/doc-generator/markdown/en/docs/latest/functions/parameters.md deleted file mode 100644 index 98cc4bd..0000000 --- a/doc-generator/markdown/en/docs/latest/functions/parameters.md +++ /dev/null @@ -1,101 +0,0 @@ -# Function parameters - -## Function with 1 parameter - -Place the parameter's datatype after the function's name, then the name of the parameter. - -For example, a function that takes a `Str` as parameter is defined as follows: - -```misti -fun sayHello(Str name) = - // Body of the function -``` - -Then the parameter `name` can be used. - -```misti -fun sayHello(Str name) = - print("Hello {name}") -``` - -## Function with 2 or more parameters - -The parameters are separated with commas: - -```misti -// 2 parameters: x and y, both Int -fun add(Int x, Int y) -> Int = - x + y -``` - -```misti -// 3 parameters -fun substring(Str input, Int start, Int end) -> Str = - // Logic... -``` - -And so on. - -## Generic parameters - -Generic parameters consist of an uppercase letter enclosed in square brackets. -They are placed after the function name, but before the parameters list. - -```misti -fun getItemAt[T](Array[T] arr, Int pos) -> T = - // Function body -``` - -When calling the function, the generic parameter is placed in the same position. - -```misti -val thirdName = getItemAt[String](names, 2) -``` - -If the generic parameter can be inferred, it's not necessary to put it. - -```misti -// Will be a String, inferred -val thirdName = getItemAt(names, 2) -``` - -## Named parameters - -When calling a function you can link the name of an argument to its value. -In the following function, `substring` has 3 parameters: `string`, `start` and `end`. - -```misti -fun substring(Str string, Int start, Int end) = - // Body of the function -``` - -Then, when calling the function, you can specify each parameter and their values. - -```misti -// Without named parameters -substring("Hello, world!", 7, 12) - -// With named parameters -substring(string: "Hello, world!", start: 7, end: 12) - -substring( - string: "Hello, world!", - start: 7, - end: 12, -) -``` - -This will return `"world"`. - -You can do computations with named parameters as well. - -```misti -substring(string: "Hello, world!", start: 12 - 5, end: 48 / 4) - -substring( - string: "Hello, world!", - start: 12 - 5, - end: 48 / 4, -) -``` - diff --git a/doc-generator/markdown/en/docs/latest/index.md b/doc-generator/markdown/en/docs/latest/index.md deleted file mode 100755 index 2980217..0000000 --- a/doc-generator/markdown/en/docs/latest/index.md +++ /dev/null @@ -1,396 +0,0 @@ -# Welcome - -Misti is _yet another_ toy language to replace JavaScript. - -__Misti is indentation based.__ - -It's objectives are: - -- Reduce compilation times using Rust. - -- Improve code quality by making the language more expressive. -- Make the language easy to understand by using a consistent syntax (at the expense of familiarity). -- Integrate with existing TypeScript definitions by importing and exporting `.d.ts` files. -- Serve as a side project. - -The purpose of the language is to address many of the limitations of JS. -To serve that end, __many concepts from JS may be completely omitted -or replaced with different syntax/semantics__. - -Such things will be noted in the documentation where neccesary. - -## Syntax summary - -## Variables and constants - -```misti -// -// Variables and constants -// -var aVariable = 20 -val aConstant = 30 -aVariable = 40 -// | semi colons not required - - -// Specify the datatype of a constant -Num aConstant = 30 // <- `val` is optional - -// Specify the datatype of a variable -Num var aVariable = 20 // <- `var` required - -// You can assign the result of many operations to a variable -val roi = do { - val income = someIncomeCalculation() - val investment = 25000 - income / investment // This will be the value of `roi` -} -``` - -## Basic datatypes - -```misti -// -// Basic datatypes -// -Num number = 40.12345 -Bool boolean = true -Str string = "John Doe" -``` - -## Conditionals - -```misti -// -// Conditionals -// -if name == "John Doe" { - val message = "Hello John" - console.log(message) -} else if name == "Mark" { - console.log("Hi Mark!") -} else { - console.log("Hello there") -} - - -// You can use conditionals as expressions -val response = if risk < 0.2 { "Go ahead" } else { "Don't" } - -// There is no ternary conditional -``` - -## Arrays - -```misti -// -// Arrays -// -val dates = Array(1990, 1995, 2014, 2015, 2017) -// | There isn't special syntax for array declaration -// so you can't do `[1990, 1995, ...]` - -val firstDate = dates.[0] -// | Notice the dot for access - -dates.[4] = 2018 -// | Dot for mutation - -// Array signature -Array[Num] dates = Array(1990, 1995, 2014, 2015, 2017) -// | Square brackets are used for generics -// instead of angle brackes. -``` - -## Tuples - -```misti -// -// Tuples -// -val person = #("John", 30, true) - -// Destructuring -var #(name, age, isMarried) = person - -// Tuple signature -#(Str, Num, Bool) signature = #("John", 30, true) -``` - -## Loops - -```misti -// -// Loops -// -for #(key, value) in object { - console.log("key: {key}, value: {value}") -} - -for value of array { - console.log("value: {value}") -} - - -while condition { - print("while") -} -``` - -## Functions - -```misti -// -// Functions -// -console.log("Enclose the parameters in parens") - -add(10, 20) - -// Named parameters -substring(input: "Hello, world!", start: 7, end: 12) - -// Funtion declaration -fun add(Num x, Num y) -> Num { - x + y -} - -// Function with default value -fun calculate(Num price, Num discount = 0.0) { - val total = price * (1.0 - discount) - console.log("Your total is {total}$") -} - -calculate(100, 0.25) // "Your total is 75$" -calculate(100) // "Your total is 100$" -``` - -## Objects - -```misti -// -// Objects -// - -type Person = #{ - Str name, - Num age, -} - -val john = Person #{ - name: "John", - age: 21, -} - -// An object with arbitrary keys/values -val randomObject = #{ - key1: "Any value" - key2: 322, - key3: true, - key4: #{ - key5: "zzz", - }, - key6: Person #{ - name: "Sarah", - age: 20, - }, -} -``` - -## Classes - -```misti -// -// Classes -// - -// Declare a simple class -class Shape - - -// Classes can not be extended by default. -// To allow inheritance, use @open -@open -class Shape = - // By default methods can not be overrided. - // To allow it, use @open - @open - fun printName() = - print("Generic Shape") - - -val shape = Shape() -// | There's no `new` keyword, just call the class - -shape.printName() // "Generic Shape" - - -@open -class Rectangle(Num height, Num length) -> Shape() = -// | Constructor parameters - - // Properties are always private - val vertexCount = 4 - - // Methods are private by default - fun perimeter() -> Num = - (height + length) * 2 - - - // To make a method public add @pub - @pub - fun area() -> Num = - height * length - - - // Method override - @override - fun printName() = - print("A rectangle") - - -val rectangle = Rectangle(10, 20) -rectangle.area() // 200 -rectangle.printName() // "A rectangle" - - -class Square(Num length) -> Rectangle(length, length) = -// | Inheritance - - @override - fun printName() = - console.log("A square") - - - fun printInfo() = - // Use $ to refer to methods/properties of the parent class - console.log("A square with perimeter = {$perimeter()} and area = {$area()}") -``` - -## Null safety - -```misti -// -// Null safety -// - -// Operations that may fail return an Option value -fun divide(Int numerator, Int denominator) -> Option[Num] = - if denominator == 0 do - None // Equivalent to `null` - else - Some(numerator / denominator) - - -val possibleResult = divide(10, 5) - -if val Some(result) = possibleResult do - print("The result of the division is {result}") -else - print("Division by zero") - - -// `Type?` is syntax sugar for Option[Type] -Num? roi = divide(income, investment) -``` - -## Error handling - -```misti -// -// Error handling -// - -// A recoverable error -fun testVersionNumber(Str version) -> Result[Int, Str] = - if version == "10" do - Ok(10) - else if version == "11" do - Ok(11) - else - Err("Invalid version") - - -// Legacy try-catch (may change) -try problematicExpression() with -| Error(e) -> - // do something - // must return an expression - 10 -``` - -## Pattern matching - -```misti -// -// Pattern matching -// - -match age with -| 10 -> - // executes when age == 10 -| 11 | 12 | 13 -> - // when age == 11, 12 or 13 -| _ -> - // when none of the conditions match - - -Str? result = someOperation() -match result with -| Some(value) -> - // value is a Str - // do operations with v -| None -> - // Handle empty return - - -Result[Num, Str] result = someOtherOperation() -match result with -| Ok(number) -> - // number is Num -| Err(reason) -> - // reason is Str - - -Result[Num, Str] result = someOtherOperation() -match result with -| Ok(number) if number > 18 -> - // This matches if number > 18 -| Ok(number) -> - // This matches if number <= 18 -| Err(reason) -> - // reason is Str -``` - -## JSX - -```misti -use Solid.{createSignal} -use Search -use Person -use Registers -use NewRegister - -pub fun 'Certs() { - val #(person, setPerson) = createSignal[Person?](None) - val #(lastUpdate, setLastUpdate) = createSignal(0) - -
-

- Registrar certificado -

- - - -
-} - -``` - - - diff --git a/doc-generator/markdown/en/docs/latest/index.yaml b/doc-generator/markdown/en/docs/latest/index.yaml deleted file mode 100644 index 63a06f4..0000000 --- a/doc-generator/markdown/en/docs/latest/index.yaml +++ /dev/null @@ -1,60 +0,0 @@ -path: "" -name: "" -has_index: true -children: -- path: index - name: Index - -- path: basics - name: Basics - children: - - path: variables-and-constants - name: Variables and constants - - path: simple-datatypes - name: Simple datatypes - - path: function-calls - name: Function calls - - path: operators - name: Operators - - path: tuples - name: Tuples - - path: indentation-rules - name: Indentation rules - -- path: flow-control - name: Flow control - children: - - path: conditionals - name: Conditionals - - path: arrays - name: Arrays - - path: loops - name: Loops - -- path: functions - name: Functions - children: - - path: definition - name: Definition - - path: lambdas - name: Lambdas - - path: parameters - name: Parameters - -- path: objects - name: Objects - children: - - path: definition - name: Definition - -- path: classes - name: Classes - children: - - path: definition - name: Definition - -- path: modules - name: Modules - children: - - path: import - name: Import diff --git a/doc-generator/markdown/en/docs/latest/modules/import.md b/doc-generator/markdown/en/docs/latest/modules/import.md deleted file mode 100644 index 1f4fba2..0000000 --- a/doc-generator/markdown/en/docs/latest/modules/import.md +++ /dev/null @@ -1,34 +0,0 @@ -# Modules - -```md-info -Subject to change -``` - -## Idea 1: Copy ES2015 modules - -```misti -import React, {useState} from "react" -import "./utils/math" -``` - -## Idea 2: Python-like ES2015 modules - -```misti -from "react" import React, {useState} -import "./utils/math" -``` - -## Idea 3: F#-like modules - -```misti -use React -use Math -``` - -## Idea 4: Java-like modules - -```misti -use React -use utils.Math -``` - diff --git a/doc-generator/markdown/en/docs/latest/objects/definition.md b/doc-generator/markdown/en/docs/latest/objects/definition.md deleted file mode 100644 index d187b4f..0000000 --- a/doc-generator/markdown/en/docs/latest/objects/definition.md +++ /dev/null @@ -1,34 +0,0 @@ -# Definition - -Objects are defined with the syntax `#{}` - -Objects should have a definition that specifies which fields it accepts. - -```misti -type Position = #{ - Num latitude, - Num longitude, -} - -val position = Position #{ - latitude: -93.0838749, - longitude: 80.2847561, -} - -// Destructure -val Position #{latitude: lat, longitude: long} = position - -``` - -## Arbitrary keys and values - - -```misti -val object2 = #{ - key1: "sample", - key2: "text", - key3: 322, -} - -object2.key1 -``` diff --git a/doc-generator/markdown/en/stdlib/latest/index.md b/doc-generator/markdown/en/stdlib/latest/index.md deleted file mode 100644 index feaadf0..0000000 --- a/doc-generator/markdown/en/stdlib/latest/index.md +++ /dev/null @@ -1 +0,0 @@ -# Stdlib index diff --git a/doc-generator/markdown/en/stdlib/latest/index.yaml b/doc-generator/markdown/en/stdlib/latest/index.yaml deleted file mode 100644 index 432e95b..0000000 --- a/doc-generator/markdown/en/stdlib/latest/index.yaml +++ /dev/null @@ -1,10 +0,0 @@ -path: "" -name: "" -children: -- path: prelude - name: Prelude - children: - - path: String - name: String - - path: Console - name: Console diff --git a/doc-generator/markdown/en/stdlib/latest/prelude/Console.md b/doc-generator/markdown/en/stdlib/latest/prelude/Console.md deleted file mode 100644 index 6de7020..0000000 --- a/doc-generator/markdown/en/stdlib/latest/prelude/Console.md +++ /dev/null @@ -1,26 +0,0 @@ -# Console - -## Overview - -The console module contains functions useful for debugging. - -## Functions - -### `fun log(Any ...objects)` - -Outputs a message to the console of the system, with a new line. - -When called without parameters, it prints just the new line. - -``` -Console.log() // Prints: `\n` -``` - -When called with one or more parameters, it first converts those -parameters to strings, joins them with white space, then prints them. - -``` -Console.log("message") // Prints: `message\n` - -Console.log("message", "value") // Prints: `message value\n` -``` diff --git a/doc-generator/markdown/en/stdlib/latest/prelude/String.md b/doc-generator/markdown/en/stdlib/latest/prelude/String.md deleted file mode 100644 index e0383f1..0000000 --- a/doc-generator/markdown/en/stdlib/latest/prelude/String.md +++ /dev/null @@ -1,421 +0,0 @@ -# String - -A collection of UTF-16 characters. - ---- - -## Overview - -Strings are a primitive datatype that contain a series of UTF-16 encoded characters. - -To create a string use double quotes: - -```misti -val greeting = "Hello there!" - -// With type annotation -Str greeting = "Hello there!" -``` - -```md-warning -Misti doesn't allow string creation with single quotes ''. -``` - -Strings can be concatenated with the plus `+` operator: - -```misti -val name = "John" -val greeting = "Hello" - -val fullGreeting = greeting + " " + name + "!" -// fullGreeting = "Hello John!" -``` - -In the future, the language will support string concatenation and multi-line strings. - -## String comparison - -To check if two strings are the same use the equal-to `==` operator. - -```misti -"Hello" == "Hello" //: true -"Hello" == "hello" //: false -``` - -To check if two strings are different use the not-equal-to `!=` operator. - -```misti -"abc" != "123" //: true -"xyz" != "xyz" //: false -``` - -
- -Comparing strings with `<`, `<=`, `>` & `>=` will compare each character of the string, -based on the UTF-16 value. - -```misti -"a" < "b" //: true -"a" < "A" //: false - -"aab" > "aac" //: false -"aab" < "aac" //: true -``` - -## Automatic String conversion - -Misti __does not__ automatically convert other datatypes to String. - -```misti -val sentence = "My age is: " + 20 // This will throw an error -// ^ -// Cannot concatenate a String and a Number. -``` - -To do so use the method `.toStr()` to explicitly convert to String. - -```misti -val sentence = "My age is: " + 20.toStr() // ok -``` - -In the future, string interpolation will coerce datatypes into strings. - - -## Escape characters - -Misti supports the following escape characters: - -- `\"` - -- `\\` -- `\n` -- `\r` -- `\t` -- `\b` - ---- - -## API - -Prelude's `Str` contains methods and functions created for their usage within Misti. - -To access the underlying JavaScript methods, use the `js.String` module. - - -### Constructor - -```misti -class String[T](T value) -where T -> Printable -``` - -Creates a string from `value`, by calling its `toStr` method. - -#### Parameters - -- `T value`: Any value that implements `Printable`, and therefore has a `toStr` method. - -#### Examples - -```misti -val age = String(20) //: "20" -val condition = String(false) //: "false" -val numbers = Array(1, 2, 3) |> String //: "1,2,3" -``` - - -## Properties - -### length - -```misti -Num length -``` - -Returns the number of UTF-16 code units in the string. - -#### Example - -```misti -val name = "John" -name.length //: 4 -``` - -
- ---- - -## Methods - -### charAt - -```misti -fun charAt(Num position) -> Str? -``` - -Returns the UTF-16 code unit located at `position`. - -
- -#### Parameters - -- `Num position`: An integer between `0` and the string's `length - 1`. - -#### Return - -- `Str?`: The character at `position`, or `None` if it's invalid - -#### Description - -In a string with `length` characters, this method returns the character (UTF-16 code point) -located at `position`, if it is true that `0 <= position < length`. - -If `position` is out of range, this method will return `None`. - -#### Examples - -```misti -val name = "John Doe" - -name.charAt(0) //: Some("J") -name.charAt(1) //: Some("o") -name.charAt(7) //: Some("e") - -name.charAt(-1) //: None -name.charAt(8) //: None -``` - -If you are sure that the position is valid, you can use the `!!` operator to get -the value directly, instead of a `Maybe`. - -```misti -val greeting = "Hello!" - -name.charAt(4)!! //: "o" -``` - -
- - -### charCodeAt - -```misti -fun charCodeAt(Num position) -> Num? -``` - -Returns an integer between `0` and `65535` representing the UTF-16 -code unit at `position`. - - -
- -#### Parameters - -- `Num position`: A number between `0` and the string's `length - 1` - -#### Return - -- `Num?`: The code unit at `position` if it's valid, or `None` if it's invalid. - -#### Description - -Description - -#### Examples - -```misti -val letters = "ABC" - -letters.charCodeAt(0) //: Some(65) -letters.charCodeAt(1) //: Some(66) -``` - -
- - -### codePointAt - - -### concat - -```misti -fun concat[any T](T... values) -> Str -where T -> Printable -``` - -Concatenates the calling string and `values`, and returns the result -as a new `Str` - -
- -#### Type parameters - -- `any T`: Any datatype that implements `Printable` - -#### Parameters - -- `T... values`: Zero or more values of type `T` - -#### Return - -- `Str`: A new string with the values concatenated - -#### Description - -`concat` concatenates the callee, and any arguments passed to it in -a new string. The callee is not modified. - -If the arguments don't have type `Str`, they are converted with their -`toStr` method. - -#### Examples - -```misti -val greeting = "Hello " - -greeting.concat("world", "!") //: "Hello world!" -greeting.concat(123) //: "Hello 123" -greeting.concat(3, 2, 2) //: "Hello 322" -``` - -
- - -### endsWith - - - -### includes - -```misti -fun includes(Str searchString, Num pos = 0) -> Bool -``` - -Returns whether the current string contains `searchString`, -searching from position `pos` - -
- -#### Parameters - -- `Str searchString`: The string to search for -- `Num pos = 0`: The position from where to start searching. - -#### Return - -`Bool`: `true` if searchString is found, `false` otherwise - -#### Additional - -If `searchString` is the empty string `""` this method returns `true`. - -If `pos` is negative, the search starts from the first character. - -#### Examples - -```misti -val loremIpsum = "Lorem ipsum dolor sit amet" - -loremIpsum.includes("ipsum") //: true -loremIpsum.includes("ipsum", 10) //: false -loremIpsum.includes("ipsum", -5) //: true -``` - - - -
- - - -### indexOf - -```misti -fun indexOf(Str searchValue, Num position = 0) -> Num -``` - -### lastIndexOf - -fun lastIndexOf(Str searchValue, Num position = Infinity) -> Num - -### match - -```misti -fun match(RegExp pattern) -> RegExpResult -``` - - -### matchAll - -```misti -fun matchAll(RegExp pattern) -> Iterator[RegExpResult] -``` - - -### normalize - -```misti -fun normalize(Str form = "NFC") -> String -``` - - -### padEnd - -```misti -fun padEnd(Num targetLength, Str padValue = " ") -> String -``` - - -### padStart - -```misti -fun padStart(Num targetLength, Str padValue = " ") -> String -``` - -### repeat - -```misti -fun repeat(Num count) -> String -``` - -### replace - -```misti -fun replaceAll([RegExp | Str] pattern, Str replacement) -> String -``` - - -### replaceAll - -```misti -fun replaceAll([RegExp | Str] pattern, Str replacement) -> String -``` - - -### search - -```misti -fun search([RegExp | Str] pattern) -> Num -``` - - -### slice - -```misti -fun slice(Num start, Num? end) -> String -``` - - -### split - -```misti -fun split(Str separator, Num? limit) -> Array -``` - - - - - - - - - diff --git a/doc-generator/src/generator/code.rs b/doc-generator/src/generator/code.rs deleted file mode 100644 index de2e8bf..0000000 --- a/doc-generator/src/generator/code.rs +++ /dev/null @@ -1,88 +0,0 @@ -use markdown::mdast::Code; - -use super::highlighter::highlight; - -use super::Printable; - -impl Printable for Code { - fn to_html(&self) -> String { - let code = highlight(&self.value); - - if let Some(lang) = &self.lang { - if lang == "nav" { - return generate_nav_html(&self.value); - } - - format!("
{}
", lang, code) - } else { - format!("
{}
", code) - } - } - - fn get_text(&self) -> String { - panic!("Code cannot return its raw text") - } -} - -fn generate_nav_html(data: &String) -> String { - use toml::{Table, Value}; - - let table = data.parse::().unwrap(); - - let previous = match table.get("previous") { - Some(Value::Table(t)) => match (t.get("href"), t.get("title")) { - (Some(Value::String(href)), Some(Value::String(title))) => { - format!( - " - - Previous -
- {} -
- ", - href, title - ) - } - _ => panic!("TOML error: `previous` doesn't have a href and title string."), - }, - Some(_) => panic!("TOML error: `previous` is not a table."), - _ => String::from("
"), - }; - - let next = match table.get("next") { - Some(Value::Table(t)) => match (t.get("href"), t.get("title")) { - (Some(Value::String(href)), Some(Value::String(title))) => { - format!( - " - - Next -
- {} -
- ", - href, title - ) - } - _ => panic!("TOML error: `next` doesn't have a href and title string."), - }, - Some(_) => panic!("TOML error: `next` is not a table."), - _ => String::from("
"), - }; - - format!( - "
{}{}
", - previous, next - ) -} diff --git a/doc-generator/src/generator/emphasis.rs b/doc-generator/src/generator/emphasis.rs deleted file mode 100644 index 53c4e9f..0000000 --- a/doc-generator/src/generator/emphasis.rs +++ /dev/null @@ -1,17 +0,0 @@ -use markdown::mdast::Emphasis; - -use crate::utils; - -use super::Printable; - -impl Printable for Emphasis { - fn to_html(&self) -> String { - let html = utils::collect_children_html(&self.children); - - format!("{}", html) - } - - fn get_text(&self) -> String { - utils::collect_children_text(&self.children) - } -} diff --git a/doc-generator/src/generator/heading.rs b/doc-generator/src/generator/heading.rs deleted file mode 100644 index 44e7409..0000000 --- a/doc-generator/src/generator/heading.rs +++ /dev/null @@ -1,38 +0,0 @@ -use markdown::mdast::Heading; - -use crate::utils; - -use super::Printable; - -impl Printable for Heading { - fn to_html(&self) -> String { - let mut result = Vec::::new(); - - for node in &self.children { - result.push(node.to_html()) - } - - let text: String = result.into_iter().collect(); - - if self.depth < 4 { - let html_fragment_text = utils::to_html_fragment(&self.get_text()); - - format!( - "{}", - self.depth, html_fragment_text, html_fragment_text, text, self.depth - ) - } else { - format!("{}", self.depth, text, self.depth) - } - } - - fn get_text(&self) -> String { - let mut result = Vec::::new(); - - for node in &self.children { - result.push(node.get_text()) - } - - result.join("-") - } -} diff --git a/doc-generator/src/generator/highlighter/mod.rs b/doc-generator/src/generator/highlighter/mod.rs deleted file mode 100644 index ce20b77..0000000 --- a/doc-generator/src/generator/highlighter/mod.rs +++ /dev/null @@ -1,94 +0,0 @@ -use misti::TokenType; - -#[macro_export] -macro_rules! replace { - ($classes:literal, $token:ident, $offset:ident, $output:ident) => {{ - let start_pos = $token.position; - let end_pos = $token.get_end_position(); - - let range = (start_pos + $offset)..(end_pos + $offset); - let html = format!("{}", $classes, $token.value); - - $offset += 28 + $classes.len(); - - $output.replace_range(range, html.as_str()); - }}; -} - -pub fn highlight(input: &String) -> String { - // The tokens come in order - let tokens = misti::tokenize(&input); - - if tokens.is_err() { - // eprintln!("Found a lexical error processing code.\n{:?}", tokens); - return input.clone(); - } - - let mut output = input.clone(); - // Offset to the position of the tokens in the string, to allow - // several tokens to be highlighted - let mut offset = 0; - - for token in tokens.unwrap() { - match &token.token_type { - TokenType::Datatype => replace!("class-name", token, offset, output), - TokenType::Number => replace!("number", token, offset, output), - TokenType::Identifier if token.value == "true" || token.value == "false" => { - replace!("keyword", token, offset, output) - } - TokenType::String => replace!("string", token, offset, output), - TokenType::Comment => replace!("comment", token, offset, output), - TokenType::VAL | TokenType::VAR => replace!("keyword", token, offset, output), - _ => {} - } - } - - output -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn should_return_simple_string() { - assert_eq!("sample", highlight(&String::from("sample"))) - } - - #[test] - fn should_highlight_datatype() { - assert_eq!( - "Num", - highlight(&String::from("Num")) - ) - } - - #[test] - fn should_highlight_number() { - assert_eq!( - "322", - highlight(&String::from("322")) - ) - } - - #[test] - fn should_highlight_string() { - assert_eq!( - "\"Hello\"", - highlight(&String::from("\"Hello\"")) - ) - } - - #[test] - fn should_highlight_multiple_tokens() { - assert_eq!( - "Str x = 322", - highlight(&String::from("Str x = 322")) - ); - - assert_eq!( - "Str x = \"hello\" 322", - highlight(&String::from("Str x = \"hello\" 322")) - ); - } -} diff --git a/doc-generator/src/generator/inline_code.rs b/doc-generator/src/generator/inline_code.rs deleted file mode 100644 index a9988fb..0000000 --- a/doc-generator/src/generator/inline_code.rs +++ /dev/null @@ -1,26 +0,0 @@ -use markdown::mdast::InlineCode; - -use super::highlighter::highlight; -use super::Printable; - -impl Printable for InlineCode { - fn to_html(&self) -> String { - /* - let tokens = misti::tokenize(&self.value); - println!("INLINE CODE ==== tokens ====\n\n{:?}\n\n==== code ====\n\n{}\n\n", tokens, self.value); - - let s = self.value - .replace("<", "<") - .replace(">", ">"); - */ - - format!( - "{}", - highlight(&self.value) - ) - } - - fn get_text(&self) -> String { - self.value.clone() - } -} diff --git a/doc-generator/src/generator/list.rs b/doc-generator/src/generator/list.rs deleted file mode 100644 index 0a1a161..0000000 --- a/doc-generator/src/generator/list.rs +++ /dev/null @@ -1,47 +0,0 @@ -use markdown::mdast::{List, ListItem, Node}; - -use crate::utils; - -use super::Printable; - -impl Printable for List { - fn to_html(&self) -> String { - let mut result = Vec::::new(); - - for node in &self.children { - result.push(format!("
  • {}
  • ", node.to_html())) - } - - let str: String = result.into_iter().collect(); - - if self.ordered { - format!("
      {}
    ", str) - } else { - format!("
      {}
    ", str) - } - } - - fn get_text(&self) -> String { - panic!("List cannot return it's raw text") - } -} - -impl Printable for ListItem { - fn to_html(&self) -> String { - let mut result = Vec::::new(); - - for node in &self.children { - let s = match node { - Node::Paragraph(p) => utils::collect_children_html(&p.children), - _ => panic!("A thing other than Paragraph inside ListItem (?)"), - }; - result.push(format!("{}", s)) - } - - result.into_iter().collect() - } - - fn get_text(&self) -> String { - panic!("ListItem cannot return it's raw text") - } -} diff --git a/doc-generator/src/generator/mod.rs b/doc-generator/src/generator/mod.rs deleted file mode 100644 index 032d2c7..0000000 --- a/doc-generator/src/generator/mod.rs +++ /dev/null @@ -1,59 +0,0 @@ -use markdown::mdast::Node; - -mod code; -mod emphasis; -mod heading; -mod inline_code; -mod list; -mod paragraph; -mod root; -mod strong; -mod text; - -mod highlighter; - -pub trait Printable { - fn to_html(&self) -> String; - fn get_text(&self) -> String; -} - -impl Printable for Node { - fn to_html(&self) -> String { - match self { - Node::Root(root) => root.to_html(), - Node::Heading(heading) => heading.to_html(), - Node::Text(text) => text.to_html(), - Node::Paragraph(p) => p.to_html(), - Node::ThematicBreak(_) => String::from("
    "), - Node::InlineCode(i) => i.to_html(), - Node::Code(c) => c.to_html(), - Node::Html(h) => h.value.clone(), - Node::Strong(s) => s.to_html(), - Node::Emphasis(e) => e.to_html(), - Node::List(l) => l.to_html(), - Node::ListItem(l) => l.to_html(), - _ => format!( - "
    Not implemented
    {:?}
    ", - self - ), - } - } - - fn get_text(&self) -> String { - match self { - Node::Root(root) => root.get_text(), - Node::Heading(heading) => heading.get_text(), - Node::Text(text) => text.get_text(), - Node::Paragraph(p) => p.get_text(), - Node::ThematicBreak(_) => panic!("
    cannot return its raw text"), - Node::InlineCode(i) => i.get_text(), - Node::Code(c) => c.get_text(), - Node::Html(_) => panic!("Html cannot return its raw text"), - Node::Strong(s) => s.get_text(), - Node::Emphasis(e) => e.get_text(), - Node::List(l) => l.get_text(), - Node::ListItem(l) => l.get_text(), - _ => String::from(""), - } - } -} diff --git a/doc-generator/src/generator/paragraph.rs b/doc-generator/src/generator/paragraph.rs deleted file mode 100644 index fce798f..0000000 --- a/doc-generator/src/generator/paragraph.rs +++ /dev/null @@ -1,21 +0,0 @@ -use markdown::mdast::Paragraph; - -use super::Printable; - -impl Printable for Paragraph { - fn to_html(&self) -> String { - let mut result = Vec::::new(); - - for node in &self.children { - result.push(node.to_html()) - } - - let text: String = result.into_iter().collect(); - - format!("

    {}

    ", text) - } - - fn get_text(&self) -> String { - panic!("Paragraph cannot return its raw text") - } -} diff --git a/doc-generator/src/generator/root.rs b/doc-generator/src/generator/root.rs deleted file mode 100644 index e378b2a..0000000 --- a/doc-generator/src/generator/root.rs +++ /dev/null @@ -1,25 +0,0 @@ -use markdown::mdast; - -use super::Printable; - -impl Printable for mdast::Root { - fn to_html(&self) -> String { - let mut result = Vec::::new(); - - for node in &self.children { - result.push(node.to_html()) - } - - result.into_iter().collect() - } - - fn get_text(&self) -> String { - let mut result = Vec::::new(); - - for node in &self.children { - result.push(node.get_text()) - } - - result.join("-") - } -} diff --git a/doc-generator/src/generator/strong.rs b/doc-generator/src/generator/strong.rs deleted file mode 100644 index 287b8a1..0000000 --- a/doc-generator/src/generator/strong.rs +++ /dev/null @@ -1,17 +0,0 @@ -use markdown::mdast::Strong; - -use crate::utils; - -use super::Printable; - -impl Printable for Strong { - fn to_html(&self) -> String { - let text = utils::collect_children_html(&self.children); - - format!("{}", text) - } - - fn get_text(&self) -> String { - utils::collect_children_text(&self.children) - } -} diff --git a/doc-generator/src/generator/text.rs b/doc-generator/src/generator/text.rs deleted file mode 100644 index 424a499..0000000 --- a/doc-generator/src/generator/text.rs +++ /dev/null @@ -1,13 +0,0 @@ -use markdown::mdast::Text; - -use super::Printable; - -impl Printable for Text { - fn to_html(&self) -> String { - self.value.clone() - } - - fn get_text(&self) -> String { - self.value.clone() - } -} diff --git a/doc-generator/src/main.rs b/doc-generator/src/main.rs deleted file mode 100644 index ee4b183..0000000 --- a/doc-generator/src/main.rs +++ /dev/null @@ -1,33 +0,0 @@ -use clap::Parser; -use std::path::Path; - -mod generator; -mod pages; -mod processor; -mod sidebar; -mod utils; - -#[derive(Parser, Debug)] -#[command(author, version, about, long_about = None)] -struct Args { - /// Input folder - #[arg(short, long)] - input: String, - /// Output folder - #[arg(short, long)] - output: String, -} - -fn main() { - let args = Args::parse(); - - let input_folder = Path::new(&args.input); - let output_folder = Path::new(&args.output); - - if input_folder.is_dir() && output_folder.is_dir() { - processor::search_config_file(&input_folder, input_folder, output_folder); - // process_folder(&input_folder, input_folder, output_folder); - } else { - eprint!("Input folder is not a valid path to a folder") - } -} diff --git a/doc-generator/src/pages/md_compiler.rs b/doc-generator/src/pages/md_compiler.rs deleted file mode 100644 index 5f1d4d6..0000000 --- a/doc-generator/src/pages/md_compiler.rs +++ /dev/null @@ -1,67 +0,0 @@ -use std::{ - fs::{self, File}, - io::Write, - path::{Path, PathBuf}, -}; - -use crate::{generator::Printable, sidebar::SidebarGenerator}; - -/// ## Parameters -/// -/// - `file`: Path to the MD file to compile -/// - `input_folder`: Path to the input folder passed as parameter of the program -/// - `output_folder`: Path to the output folder passed as parameter of the program -/// - `file_tree_html`: HTML code of the file tree to be inserted into the generated HTML -pub fn compile(file: &PathBuf, input_folder: &Path, output_folder: &Path, file_tree_html: &String) { - // /home/fernando/misti/docs/markdown - let input_folder = input_folder.canonicalize().unwrap(); - - // /home/fernando/misti/docs/markdown/en/docs/latest/index.md - let input_file = file - .canonicalize() - .expect(format!("Expected file {:?} to exist", file).as_str()); - - // /home/fernando/misti/docs/static - let output_folder = output_folder.canonicalize().unwrap(); - - // en/docs/latests/index.md - let relative_input_file = input_file.strip_prefix(input_folder).unwrap(); - - let mut output_file = output_folder.clone(); - output_file.push(relative_input_file); - output_file.set_extension("html"); - - // - // Read MD from disk - // - let file_content_bytes = fs::read(&input_file).unwrap(); - let markdown_text = String::from_utf8(file_content_bytes).unwrap(); - - // - // Compile MD - // - let md_ast = markdown::to_mdast(&markdown_text, &markdown::ParseOptions::gfm()).unwrap(); - let html_text = md_ast.to_html(); - let sidebar_html = md_ast.generate_sidebar(); - - // Read template.html - let mut template_path = output_folder.clone(); - template_path.push("template.html"); - - let template_contents = fs::read(template_path).unwrap(); - let template_contents = String::from_utf8(template_contents).unwrap(); - - // Insert the markdown, sidebar and file tree into the template - let final_output = template_contents - .replace("{{markdown}}", &html_text) - .replace("{{sidebar}}", &sidebar_html) - .replace("{{pages}}", &file_tree_html); - - // - // Write to disk - // - File::create(&output_file) - .expect(format!("MD: Output file should be valid {:?}", &output_file).as_str()) - .write_all(final_output.as_bytes()) - .unwrap(); -} diff --git a/doc-generator/src/pages/mod.rs b/doc-generator/src/pages/mod.rs deleted file mode 100644 index b8a6a77..0000000 --- a/doc-generator/src/pages/mod.rs +++ /dev/null @@ -1,174 +0,0 @@ -use std::path::Path; - -use yaml_rust::Yaml; - -use crate::utils; - -mod md_compiler; - -pub enum Node<'a> { - File(File<'a>), - Folder(Folder<'a>), -} - -pub struct File<'a> { - /// Name of the file - path: &'a String, - /// Display name of the file - name: &'a String, -} - -pub struct Folder<'a> { - /// Name of the folder - path: &'a String, - /// Display name of the folder - name: &'a String, - /// If true, then there MUST be a `File {path: "index"}` in the `children` field - has_index: bool, - /// Sub files or folders - children: Box>>, -} - -/// Creates a `YAML::String` from a `&str` -macro_rules! y_str { - ($str:literal) => { - &Yaml::String(String::from($str)) - }; -} - -pub fn parse_yaml(values: &Yaml) -> Node { - let Yaml::Hash(table) = values - else {panic!("YAML: input MUST be an object")}; - - // Node path - let Yaml::String(path) = table.get(y_str!("path")).expect("YAML: Node MUST have a `path` key") - else { panic!("YAML: `path` MUST be a String") }; - - let Yaml::String(name) = table.get(y_str!("name")).expect("YAML: Node MUST have a `name` key") - else { panic!("YAML: `name` MUST be a String") }; - - let input_data = ( - table.get(y_str!("has_index")), - table.get(y_str!("children")), - ); - - match input_data { - (None, None) => Node::File(File { path, name }), - (has_index, Some(children)) => { - let has_index = match has_index { - Some(Yaml::Boolean(v)) => *v, - Some(_) => panic!("YAML: if key `has_index` exists, it MUST be a Boolean"), - None => false, - }; - - let Yaml::Array(children) = children - else {panic!("YAML: `children` MUST be an Array")}; - - let children_nodes: Vec = children - .into_iter() - .map(|values| parse_yaml(values)) - .collect(); - - Node::Folder(Folder { - path, - name, - has_index, - children: Box::new(children_nodes), - }) - } - _ => { - panic!("YAML: A Node is missing a `name` or `children` key") - } - } -} - -pub fn generate_pages_html(file_tree: &Node, current_path: &Path) -> String { - match file_tree { - Node::File(file) => { - if file.path == "index" { - format!( - "
  • - Index -
  • ", - current_path.to_str().unwrap() - ) - } else if file.path == "" { - String::from("") - } else { - format!( - "
  • - {} -
  • ", - current_path.to_str().unwrap(), - file.path, - file.name - ) - } - } - Node::Folder(folder) => { - let mut new_path = current_path.to_path_buf(); - new_path.push(folder.path); - - let sub_nodes_html: Vec = folder - .children - .iter() - .map(|n| generate_pages_html(n, &new_path)) - .collect(); - - // This is true for the root of the YAML file - if folder.path == "" { - format!("
      {}
    ", sub_nodes_html.join("")) - } else { - format!( - "
  • -
    {}
    -
      {}
    -
  • ", - folder.name, - sub_nodes_html.join("") - ) - } - } - } -} - -pub fn compile_md_to_html( - file_tree: &Node, - current_path: &Path, - input_folder: &Path, - output_folder: &Path, - file_tree_html: &String, -) { - match file_tree { - Node::File(file) if file.path != "" => { - let mut file_path = current_path.canonicalize().unwrap(); - file_path.push(format!("{}.md", file.path)); - - md_compiler::compile(&file_path, input_folder, output_folder, file_tree_html); - } - Node::File(_) => { - panic!("YAML: A file cannot have an empty `path` key") - } - Node::Folder(folder) if folder.path != "" => { - let mut new_path = current_path.canonicalize().unwrap(); - new_path.push(folder.path); - utils::ensure_folder_exists(&new_path, input_folder, output_folder) - .expect("SHOULD be able to create folder"); - - for node in folder.children.iter() { - compile_md_to_html(node, &new_path, input_folder, output_folder, file_tree_html); - } - } - Node::Folder(folder) => { - for node in folder.children.iter() { - compile_md_to_html( - node, - ¤t_path, - input_folder, - output_folder, - file_tree_html, - ); - } - } - } -} diff --git a/doc-generator/src/processor.rs b/doc-generator/src/processor.rs deleted file mode 100644 index 20d9785..0000000 --- a/doc-generator/src/processor.rs +++ /dev/null @@ -1,100 +0,0 @@ -use crate::pages::{compile_md_to_html, generate_pages_html, parse_yaml}; -use crate::utils; -use std::{ - fs, - path::Path, -}; -use yaml_rust::YamlLoader; - -enum EntryFound { - YamlFile, - OtherFile, - None, -} - -// Traverses the current path searching for a YAML file -pub fn search_config_file(current_path: &Path, input_folder: &Path, output_folder: &Path) { - // Iterate over all the files searching for a YAML file - let result = current_path - .read_dir() - .unwrap() - .fold(&EntryFound::None, |acc, next| { - let p = next.unwrap().path(); - let is_file = p.is_file(); - let ext = p.extension(); - - match (acc, is_file, ext) { - (EntryFound::YamlFile, true, Some(x)) if x == "yaml" => { - panic!("FOUND A SECOND YAML FILE!!!") - } - (EntryFound::YamlFile, _, _) => acc, - (EntryFound::OtherFile, true, Some(x)) if x == "yaml" => &EntryFound::YamlFile, - (EntryFound::None, true, Some(x)) if x == "yaml" => &EntryFound::YamlFile, - (EntryFound::None, true, Some(_)) => &EntryFound::OtherFile, - _ => acc, - } - }); - - match result { - // If a file other than a YAML file is found, panic - EntryFound::OtherFile => panic!( - "Found an orphan file without a YAML parent at {:?}", - current_path - ), - // Process the YAML file - EntryFound::YamlFile => process_yaml(current_path, input_folder, output_folder), - // No files found, recursively read children folders - EntryFound::None => { - for entry in current_path.read_dir().unwrap() { - // Should always succeed, and countain a folder - let x = entry.unwrap(); - let path = x.path(); - - utils::ensure_folder_exists(&path, input_folder, output_folder).unwrap(); - search_config_file(&path, input_folder, output_folder); - } - } - }; -} - -fn process_yaml(current_path: &Path, input_folder: &Path, output_folder: &Path) { - // - // Read YAML file - // - let mut yaml_path = current_path.canonicalize().unwrap(); - yaml_path.push("index.yaml"); - - let yaml_bytes = fs::read(yaml_path).expect("File index.yaml MUST exist"); - let yaml = String::from_utf8(yaml_bytes).expect("YAML index file MUST be valid UTF-8"); - - let yaml_docs = - YamlLoader::load_from_str(yaml.as_str()).expect("YAML file MUST contain valid YAML"); - let yaml = &yaml_docs[0]; - - // - // Parse YAML - // - let file_tree = parse_yaml(&yaml); - - // - // Generate File Tree HTML - // - let tree_html = { - let input_folder = input_folder.canonicalize().unwrap(); - let yaml_folder_temp = current_path.canonicalize().unwrap(); - let web_absolute_path = yaml_folder_temp.strip_prefix(input_folder).unwrap(); - - generate_pages_html(&file_tree, web_absolute_path) - }; - - // - // Compile MD to HTML - // - compile_md_to_html( - &file_tree, - current_path, - input_folder, - output_folder, - &tree_html, - ); -} diff --git a/doc-generator/src/sidebar/mod.rs b/doc-generator/src/sidebar/mod.rs deleted file mode 100644 index 3f2b447..0000000 --- a/doc-generator/src/sidebar/mod.rs +++ /dev/null @@ -1,90 +0,0 @@ -use markdown::mdast::{Heading, Node}; - -use crate::{generator::Printable, utils}; - -pub trait SidebarGenerator { - fn generate_sidebar(&self) -> String; -} - -impl SidebarGenerator for Node { - fn generate_sidebar(&self) -> String { - match self { - Node::Root(root) => { - let children_nodes = root - .children - .clone() - .into_iter() - .filter_map(|x| match x { - Node::Heading(h) if h.depth <= 3 => Some(h), - _ => None, - }) - .collect(); - - // A top level topic that contains other topics - let topic = extract_topics(&children_nodes, 0, 1); - - match topic { - Some((t, _)) => { - let html: String = t.children.iter().map(|x| x.get_html()).collect(); - format!("
      {}
    ", html) - } - None => String::from("D:"), - } - } - _ => panic!("??"), - } - } -} - -#[derive(Debug)] -struct Topic { - text: String, - children: Box>, -} - -impl Topic { - pub fn get_html(&self) -> String { - let extra = if self.children.len() > 0 { - let children_html: String = self.children.iter().map(|x| x.get_html()).collect(); - - format!("
      {}
    ", children_html) - } else { - String::from("") - }; - - let html_fragment_link = utils::to_html_fragment(&self.text); - format!( - "
  • {}{}
  • ", - html_fragment_link, self.text, extra - ) - } -} - -// Return the next heading and all its children -// current_level: the depth of the heading to match -fn extract_topics<'a>( - headings: &'a Vec, - current_pos: usize, - current_level: u8, -) -> Option<(Topic, usize)> { - match headings.get(current_pos) { - Some(h) if h.depth == current_level => { - let mut new_vec = Vec::new(); - let mut next_pos = current_pos + 1; - - while let Some((topic, next)) = extract_topics(headings, next_pos, current_level + 1) { - new_vec.push(topic); - next_pos = next; - } - - let title = h.get_text(); - let topic = Topic { - text: title, - children: Box::new(new_vec), - }; - - Some((topic, next_pos)) - } - _ => None, - } -} diff --git a/doc-generator/src/utils.rs b/doc-generator/src/utils.rs deleted file mode 100644 index ac2720e..0000000 --- a/doc-generator/src/utils.rs +++ /dev/null @@ -1,66 +0,0 @@ -use std::{fs, path::Path}; - -use markdown::mdast::Node; - -use crate::generator::Printable; - -pub fn to_html_fragment(text: &String) -> String { - text.clone().replace(" ", "-") -} - -pub fn collect_children_html(vec: &Vec) -> String { - let mut result = Vec::::new(); - - for node in vec { - result.push(node.to_html()) - } - - result.into_iter().collect() -} - -pub fn collect_children_text(vec: &Vec) -> String { - let mut result = Vec::::new(); - - for node in vec { - result.push(node.get_text()) - } - - result.join("-") -} - -pub fn ensure_folder_exists( - folder: &Path, - input_folder: &Path, - output_folder: &Path, -) -> Result<(), String> { - // /home/fernando/misti/docs/markdown - let input_folder = input_folder.canonicalize().unwrap(); - - // /home/fernando/misti/docs/static - let output_folder = output_folder.canonicalize().unwrap(); - - // /home/fernando/misti/docs/markdown/en/ - let full_input_folder = folder.canonicalize().unwrap(); - - let relative_new_folder = full_input_folder.strip_prefix(input_folder).unwrap(); - - let mut full_output_folder = output_folder.clone(); - full_output_folder.push(relative_new_folder); - - // println!("Ensuring that folder exists:\n{:?}", full_output_folder); - - // If this is a "top-level" folder, remove all its contents, if it exists - if full_output_folder.is_dir() { - // println!("| Removing..."); - let _ = fs::remove_dir_all(&full_output_folder); - } - - // Create folder - match fs::create_dir(&full_output_folder) { - Ok(_) => { - // println!("| done\n\n"); - Ok(()) - } - Err(_) => Err(format!("Error creating folder {:?}", full_output_folder)), - } -} diff --git a/doc-generator/static/.gitignore b/doc-generator/static/.gitignore deleted file mode 100644 index e364790..0000000 --- a/doc-generator/static/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -tailwind/output.css - diff --git a/doc-generator/static/favicon-16x16.png b/doc-generator/static/favicon-16x16.png deleted file mode 100644 index 50d7694..0000000 Binary files a/doc-generator/static/favicon-16x16.png and /dev/null differ diff --git a/doc-generator/static/favicon-32x32.png b/doc-generator/static/favicon-32x32.png deleted file mode 100644 index cd05249..0000000 Binary files a/doc-generator/static/favicon-32x32.png and /dev/null differ diff --git a/doc-generator/static/favicon.ico b/doc-generator/static/favicon.ico deleted file mode 100644 index 9254f2f..0000000 Binary files a/doc-generator/static/favicon.ico and /dev/null differ diff --git a/doc-generator/static/index.html b/doc-generator/static/index.html deleted file mode 100644 index 3946487..0000000 --- a/doc-generator/static/index.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - Misti - - - - - - - - - - - -
    -
    - - - - - - - - - - -

    Misti

    -
    - -

    - Docs -

    - -

    - Stdlib -

    - -
    - -
    -
    -

    - Typed. -
    - Expressive. -
    - Consistent. -
    - Friendly. -

    - -

    - Misti is yet another programming language that compiles to JavaScript. -

    - - - - -
    -
    - - - - diff --git a/doc-generator/static/logo.svg b/doc-generator/static/logo.svg deleted file mode 100644 index 086e5ce..0000000 --- a/doc-generator/static/logo.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/doc-generator/static/misti_logo.png b/doc-generator/static/misti_logo.png deleted file mode 100644 index af99aa2..0000000 Binary files a/doc-generator/static/misti_logo.png and /dev/null differ diff --git a/doc-generator/static/package.json b/doc-generator/static/package.json deleted file mode 100644 index 3d841d7..0000000 --- a/doc-generator/static/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "static", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "watch": "concurrently -k \"tailwindcss -i ./tailwind/input.css -o ./tailwind/output.css --watch\" \"live-server . --port=3333\"", - "start": "live-server . --port=3333", - "styles": "tailwindcss -i ./tailwind/input.css -o ./tailwind/output.css --watch" - }, - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "concurrently": "^7.6.0", - "live-server": "^1.2.2", - "serve": "^14.2.0", - "tailwindcss": "^3.2.7" - } -} diff --git a/doc-generator/static/pnpm-lock.yaml b/doc-generator/static/pnpm-lock.yaml deleted file mode 100644 index 23dedb2..0000000 --- a/doc-generator/static/pnpm-lock.yaml +++ /dev/null @@ -1,2271 +0,0 @@ -lockfileVersion: 5.4 - -specifiers: - concurrently: ^7.6.0 - live-server: ^1.2.2 - serve: ^14.2.0 - tailwindcss: ^3.2.7 - -devDependencies: - concurrently: 7.6.0 - live-server: 1.2.2 - serve: 14.2.0 - tailwindcss: 3.2.7 - -packages: - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - dev: true - - /@zeit/schemas/2.29.0: - resolution: {integrity: sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==} - dev: true - - /accepts/1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - dev: true - - /acorn-node/1.8.2: - resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - xtend: 4.0.2 - dev: true - - /acorn-walk/7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /ajv/8.11.0: - resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - - /ansi-align/3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - dependencies: - string-width: 4.2.3 - dev: true - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-regex/6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /ansi-styles/6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true - - /anymatch/2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /anymatch/3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /apache-crypt/1.2.6: - resolution: {integrity: sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==} - engines: {node: '>=8'} - dependencies: - unix-crypt-td-js: 1.1.4 - dev: true - - /apache-md5/1.1.8: - resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} - engines: {node: '>=8'} - dev: true - - /arch/2.2.0: - resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} - dev: true - - /arg/5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: true - - /arr-diff/4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-flatten/1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-union/3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - dev: true - - /array-unique/0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - dev: true - - /assign-symbols/1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - dev: true - - /async-each/1.0.6: - resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} - dev: true - - /atob/2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - dev: true - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /base/0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.0 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - dev: true - - /basic-auth/2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} - dependencies: - safe-buffer: 5.1.2 - dev: true - - /batch/0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - dev: true - - /bcryptjs/2.4.3: - resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} - dev: true - - /binary-extensions/1.13.1: - resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} - engines: {node: '>=0.10.0'} - dev: true - - /binary-extensions/2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /bindings/1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - requiresBuild: true - dependencies: - file-uri-to-path: 1.0.0 - dev: true - optional: true - - /boxen/7.0.0: - resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} - engines: {node: '>=14.16'} - dependencies: - ansi-align: 3.0.1 - camelcase: 7.0.1 - chalk: 5.0.1 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - dev: true - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /braces/2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: 1.1.0 - array-unique: 0.3.2 - extend-shallow: 2.0.1 - fill-range: 4.0.0 - isobject: 3.0.1 - repeat-element: 1.1.4 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /bytes/3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - dev: true - - /cache-base/1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.0 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - dev: true - - /camelcase-css/2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true - - /camelcase/7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - dev: true - - /chalk-template/0.4.0: - resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} - engines: {node: '>=12'} - dependencies: - chalk: 4.1.2 - dev: true - - /chalk/4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /chalk/5.0.1: - resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true - - /chokidar/2.1.8: - resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} - deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies - dependencies: - anymatch: 2.0.0 - async-each: 1.0.6 - braces: 2.3.2 - glob-parent: 3.1.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 - is-glob: 4.0.3 - normalize-path: 3.0.0 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - upath: 1.2.0 - optionalDependencies: - fsevents: 1.2.13 - transitivePeerDependencies: - - supports-color - dev: true - - /chokidar/3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /class-utils/0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - dev: true - - /cli-boxes/3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - dev: true - - /clipboardy/3.0.0: - resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - arch: 2.2.0 - execa: 5.1.1 - is-wsl: 2.2.0 - dev: true - - /cliui/8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - - /collection-visit/1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - dev: true - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /colors/1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} - dev: true - - /component-emitter/1.3.0: - resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} - dev: true - - /compressible/2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: true - - /compression/1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - bytes: 3.0.0 - compressible: 2.0.18 - debug: 2.6.9 - on-headers: 1.0.2 - safe-buffer: 5.1.2 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true - - /concurrently/7.6.0: - resolution: {integrity: sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==} - engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} - hasBin: true - dependencies: - chalk: 4.1.2 - date-fns: 2.29.3 - lodash: 4.17.21 - rxjs: 7.8.0 - shell-quote: 1.8.0 - spawn-command: 0.0.2-1 - supports-color: 8.1.1 - tree-kill: 1.2.2 - yargs: 17.7.1 - dev: true - - /connect/3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} - dependencies: - debug: 2.6.9 - finalhandler: 1.1.2 - parseurl: 1.3.3 - utils-merge: 1.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /content-disposition/0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - dev: true - - /copy-descriptor/0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} - dev: true - - /core-util-is/1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: true - - /cors/2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - dev: true - - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /cssesc/3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /date-fns/2.29.3: - resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} - engines: {node: '>=0.11'} - dev: true - - /debug/2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - dev: true - - /decode-uri-component/0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - dev: true - - /deep-extend/0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: true - - /define-property/0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 0.1.6 - dev: true - - /define-property/1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.2 - dev: true - - /define-property/2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.2 - isobject: 3.0.1 - dev: true - - /defined/1.0.1: - resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} - dev: true - - /depd/1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - dev: true - - /depd/2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: true - - /destroy/1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dev: true - - /detective/5.2.1: - resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} - engines: {node: '>=0.8.0'} - hasBin: true - dependencies: - acorn-node: 1.8.2 - defined: 1.0.1 - minimist: 1.2.8 - dev: true - - /didyoumean/1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true - - /dlv/1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true - - /duplexer/0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: true - - /eastasianwidth/0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - - /ee-first/1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: true - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /emoji-regex/9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - - /encodeurl/1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - dev: true - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-html/1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: true - - /etag/1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - dev: true - - /event-stream/3.3.4: - resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} - dependencies: - duplexer: 0.1.2 - from: 0.1.7 - map-stream: 0.1.0 - pause-stream: 0.0.11 - split: 0.3.3 - stream-combiner: 0.0.4 - through: 2.3.8 - dev: true - - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /expand-brackets/2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /extend-shallow/2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - dependencies: - is-extendable: 0.1.1 - dev: true - - /extend-shallow/3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} - dependencies: - assign-symbols: 1.0.0 - is-extendable: 1.0.1 - dev: true - - /extglob/2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} - dependencies: - array-unique: 0.3.2 - define-property: 1.0.0 - expand-brackets: 2.1.4 - extend-shallow: 2.0.1 - fragment-cache: 0.2.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - - /fast-glob/3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-url-parser/1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - dependencies: - punycode: 1.4.1 - dev: true - - /fastq/1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - dependencies: - reusify: 1.0.4 - dev: true - - /faye-websocket/0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - dependencies: - websocket-driver: 0.7.4 - dev: true - - /file-uri-to-path/1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - requiresBuild: true - dev: true - optional: true - - /fill-range/4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - dev: true - - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /finalhandler/1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.3.0 - parseurl: 1.3.3 - statuses: 1.5.0 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /for-in/1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - dev: true - - /fragment-cache/0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} - dependencies: - map-cache: 0.2.2 - dev: true - - /fresh/0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - dev: true - - /from/0.1.7: - resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} - dev: true - - /fsevents/1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} - os: [darwin] - deprecated: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2. - requiresBuild: true - dependencies: - bindings: 1.5.0 - nan: 2.17.0 - dev: true - optional: true - - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true - - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - - /get-value/2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - dev: true - - /glob-parent/3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - dev: true - - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent/6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /graceful-fs/4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /has-value/0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 0.1.4 - isobject: 2.1.0 - dev: true - - /has-value/1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - dev: true - - /has-values/0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} - dev: true - - /has-values/1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - dev: true - - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true - - /http-auth/3.1.3: - resolution: {integrity: sha512-Jbx0+ejo2IOx+cRUYAGS1z6RGc6JfYUNkysZM4u4Sfk1uLlGv814F7/PIjQQAuThLdAWxb74JMGd5J8zex1VQg==} - engines: {node: '>=4.6.1'} - dependencies: - apache-crypt: 1.2.6 - apache-md5: 1.1.8 - bcryptjs: 2.4.3 - uuid: 3.4.0 - dev: true - - /http-errors/1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - dev: true - - /http-errors/2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: true - - /http-parser-js/0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - dev: true - - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /inherits/2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - dev: true - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - - /is-accessor-descriptor/0.1.6: - resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-accessor-descriptor/1.0.0: - resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 6.0.3 - dev: true - - /is-binary-path/1.0.1: - resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} - engines: {node: '>=0.10.0'} - dependencies: - binary-extensions: 1.13.1 - dev: true - - /is-binary-path/2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-buffer/1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: true - - /is-core-module/2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - dev: true - - /is-data-descriptor/0.1.4: - resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-data-descriptor/1.0.0: - resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 6.0.3 - dev: true - - /is-descriptor/0.1.6: - resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} - engines: {node: '>=0.10.0'} - dependencies: - is-accessor-descriptor: 0.1.6 - is-data-descriptor: 0.1.4 - kind-of: 5.1.0 - dev: true - - /is-descriptor/1.0.2: - resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} - engines: {node: '>=0.10.0'} - dependencies: - is-accessor-descriptor: 1.0.0 - is-data-descriptor: 1.0.0 - kind-of: 6.0.3 - dev: true - - /is-docker/2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: true - - /is-extendable/0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: true - - /is-extendable/1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} - dependencies: - is-plain-object: 2.0.4 - dev: true - - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-glob/3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-number/3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-plain-object/2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - - /is-port-reachable/4.0.0: - resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - - /is-windows/1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true - - /is-wsl/1.1.0: - resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} - engines: {node: '>=4'} - dev: true - - /is-wsl/2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: true - - /isarray/1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true - - /isexe/2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /isobject/2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} - dependencies: - isarray: 1.0.0 - dev: true - - /isobject/3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - dev: true - - /json-schema-traverse/1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - - /kind-of/3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - - /kind-of/4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - - /kind-of/5.1.0: - resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} - engines: {node: '>=0.10.0'} - dev: true - - /kind-of/6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true - - /lilconfig/2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - dev: true - - /live-server/1.2.2: - resolution: {integrity: sha512-t28HXLjITRGoMSrCOv4eZ88viHaBVIjKjdI5PO92Vxlu+twbk6aE0t7dVIaz6ZWkjPilYFV6OSdMYl9ybN2B4w==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - chokidar: 2.1.8 - colors: 1.4.0 - connect: 3.7.0 - cors: 2.8.5 - event-stream: 3.3.4 - faye-websocket: 0.11.4 - http-auth: 3.1.3 - morgan: 1.10.0 - object-assign: 4.1.1 - opn: 6.0.0 - proxy-middleware: 0.15.0 - send: 0.18.0 - serve-index: 1.9.1 - transitivePeerDependencies: - - supports-color - dev: true - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - - /map-cache/0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} - dev: true - - /map-stream/0.1.0: - resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} - dev: true - - /map-visit/1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} - dependencies: - object-visit: 1.0.1 - dev: true - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromatch/3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 6.0.3 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mime-db/1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - dev: true - - /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: true - - /mime-types/2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.33.0 - dev: true - - /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: true - - /mime/1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimist/1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - - /mixin-deep/1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - dev: true - - /morgan/1.10.0: - resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} - engines: {node: '>= 0.8.0'} - dependencies: - basic-auth: 2.0.1 - debug: 2.6.9 - depd: 2.0.0 - on-finished: 2.3.0 - on-headers: 1.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /ms/2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: true - - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true - - /nan/2.17.0: - resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} - requiresBuild: true - dev: true - optional: true - - /nanoid/3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /nanomatch/1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - fragment-cache: 0.2.1 - is-windows: 1.0.2 - kind-of: 6.0.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /negotiator/0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - dev: true - - /normalize-path/2.1.1: - resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} - engines: {node: '>=0.10.0'} - dependencies: - remove-trailing-separator: 1.1.0 - dev: true - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: true - - /object-copy/0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - dev: true - - /object-hash/3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - dev: true - - /object-visit/1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - - /object.pick/1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - - /on-finished/2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: true - - /on-finished/2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: true - - /on-headers/1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - dev: true - - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - - /opn/6.0.0: - resolution: {integrity: sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==} - engines: {node: '>=8'} - deprecated: The package has been renamed to `open` - dependencies: - is-wsl: 1.1.0 - dev: true - - /parseurl/1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - dev: true - - /pascalcase/0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - dev: true - - /path-dirname/1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} - dev: true - - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true - - /path-is-inside/1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - dev: true - - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-to-regexp/2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - dev: true - - /pause-stream/0.0.11: - resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} - dependencies: - through: 2.3.8 - dev: true - - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pify/2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - dev: true - - /posix-character-classes/0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} - dev: true - - /postcss-import/14.1.0_postcss@8.4.21: - resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.0.0 - dependencies: - postcss: 8.4.21 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.1 - dev: true - - /postcss-js/4.0.1_postcss@8.4.21: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.21 - dev: true - - /postcss-load-config/3.1.4_postcss@8.4.21: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.1.0 - postcss: 8.4.21 - yaml: 1.10.2 - dev: true - - /postcss-nested/6.0.0_postcss@8.4.21: - resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 - dev: true - - /postcss-selector-parser/6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - - /postcss-value-parser/4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true - - /postcss/8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - - /process-nextick-args/2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true - - /proxy-middleware/0.15.0: - resolution: {integrity: sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==} - engines: {node: '>=0.8.0'} - dev: true - - /punycode/1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - dev: true - - /punycode/2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - dev: true - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /quick-lru/5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - - /range-parser/1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - dev: true - - /range-parser/1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - dev: true - - /rc/1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - dev: true - - /read-cache/1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - dependencies: - pify: 2.3.0 - dev: true - - /readable-stream/2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: true - - /readdirp/2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} - engines: {node: '>=0.10'} - dependencies: - graceful-fs: 4.2.11 - micromatch: 3.1.10 - readable-stream: 2.3.8 - transitivePeerDependencies: - - supports-color - dev: true - - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /regex-not/1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 - dev: true - - /registry-auth-token/3.3.2: - resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} - dependencies: - rc: 1.2.8 - safe-buffer: 5.2.1 - dev: true - - /registry-url/3.1.0: - resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} - engines: {node: '>=0.10.0'} - dependencies: - rc: 1.2.8 - dev: true - - /remove-trailing-separator/1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - dev: true - - /repeat-element/1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} - dev: true - - /repeat-string/1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: true - - /require-directory/2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true - - /require-from-string/2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - - /resolve-url/0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - dev: true - - /resolve/1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} - hasBin: true - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /ret/0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: true - - /reusify/1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /rxjs/7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} - dependencies: - tslib: 2.5.0 - dev: true - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true - - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - - /safe-regex/1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - dependencies: - ret: 0.1.15 - dev: true - - /send/0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /serve-handler/6.1.5: - resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} - dependencies: - bytes: 3.0.0 - content-disposition: 0.5.2 - fast-url-parser: 1.1.3 - mime-types: 2.1.18 - minimatch: 3.1.2 - path-is-inside: 1.0.2 - path-to-regexp: 2.2.1 - range-parser: 1.2.0 - dev: true - - /serve-index/1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.6.3 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /serve/14.2.0: - resolution: {integrity: sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg==} - engines: {node: '>= 14'} - hasBin: true - dependencies: - '@zeit/schemas': 2.29.0 - ajv: 8.11.0 - arg: 5.0.2 - boxen: 7.0.0 - chalk: 5.0.1 - chalk-template: 0.4.0 - clipboardy: 3.0.0 - compression: 1.7.4 - is-port-reachable: 4.0.0 - serve-handler: 6.1.5 - update-check: 1.5.4 - transitivePeerDependencies: - - supports-color - dev: true - - /set-value/2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 - dev: true - - /setprototypeof/1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - dev: true - - /setprototypeof/1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: true - - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /shell-quote/1.8.0: - resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} - dev: true - - /signal-exit/3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true - - /snapdragon-node/2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - dev: true - - /snapdragon-util/3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /snapdragon/0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} - dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: 0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /source-map-js/1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map-resolve/0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.2 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 - dev: true - - /source-map-url/0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true - - /source-map/0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: true - - /spawn-command/0.0.2-1: - resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} - dev: true - - /split-string/3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - dev: true - - /split/0.3.3: - resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} - dependencies: - through: 2.3.8 - dev: true - - /static-extend/0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 - dev: true - - /statuses/1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - dev: true - - /statuses/2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - dev: true - - /stream-combiner/0.0.4: - resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} - dependencies: - duplexer: 0.1.2 - dev: true - - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string-width/5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.0.1 - dev: true - - /string_decoder/1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: true - - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-ansi/7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} - engines: {node: '>=12'} - dependencies: - ansi-regex: 6.0.1 - dev: true - - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - - /strip-json-comments/2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: true - - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /tailwindcss/3.2.7: - resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==} - engines: {node: '>=12.13.0'} - hasBin: true - dependencies: - arg: 5.0.2 - chokidar: 3.5.3 - color-name: 1.1.4 - detective: 5.2.1 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.2.12 - glob-parent: 6.0.2 - is-glob: 4.0.3 - lilconfig: 2.1.0 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.21 - postcss-import: 14.1.0_postcss@8.4.21 - postcss-js: 4.0.1_postcss@8.4.21 - postcss-load-config: 3.1.4_postcss@8.4.21 - postcss-nested: 6.0.0_postcss@8.4.21 - postcss-selector-parser: 6.0.11 - postcss-value-parser: 4.2.0 - quick-lru: 5.1.1 - resolve: 1.22.1 - transitivePeerDependencies: - - ts-node - dev: true - - /through/2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - - /to-object-path/0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /to-regex-range/2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 - dev: true - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /to-regex/3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - dev: true - - /toidentifier/1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: true - - /tree-kill/1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - dev: true - - /tslib/2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - dev: true - - /type-fest/2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: true - - /union-value/1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - dev: true - - /unix-crypt-td-js/1.1.4: - resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} - dev: true - - /unpipe/1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: true - - /unset-value/1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - dev: true - - /upath/1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} - dev: true - - /update-check/1.5.4: - resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} - dependencies: - registry-auth-token: 3.3.2 - registry-url: 3.1.0 - dev: true - - /uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.0 - dev: true - - /urix/0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - dev: true - - /use/3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - dev: true - - /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true - - /utils-merge/1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - dev: true - - /uuid/3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: true - - /vary/1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - dev: true - - /websocket-driver/0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - dependencies: - http-parser-js: 0.5.8 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - dev: true - - /websocket-extensions/0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - dev: true - - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /widest-line/4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - dev: true - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrap-ansi/8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.0.1 - dev: true - - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true - - /yaml/1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yargs-parser/21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true - - /yargs/17.7.1: - resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - dev: true diff --git a/doc-generator/static/styles/global.css b/doc-generator/static/styles/global.css deleted file mode 100644 index 55091aa..0000000 --- a/doc-generator/static/styles/global.css +++ /dev/null @@ -1,308 +0,0 @@ -:root { - --js-color: #FFE70B; - --dark-color: #0f0f0f; - --light-color: white; - --error-color: #ff3b3b; - --error-text-color: #410002; - --error-bg-color: #ffdad6; - - --c1: #e7b711; - --c2: #038dce; - --c3: #ffaed7; - --c4: #f44336; - --c5: #39b487; - --c3-transparent: #772957; /* rgba(252, 168, 209, 0.35); */ - - --bg-color: var(--dark-color); - --color: #dedede; - --code-bg-color: #151515; - --code-color: #bababa; - --border-color: #72787e; - - /* C1 Material Colors */ - --c1-primary: #f1c01f; - - /* C2 Material Colors */ - --c2-primary: #90ccff; - --c2-on-primary: #003351; - --c2-primary-container: #004b72; - --c2-on-primary-container: #cce5ff; - --c2-surface-variant: #41474d; - --c2-on-surface-variant: #c1c7ce; - - /* C3 Material Colors */ - --c3-primary: #ffaed7; - --c3-on-primary: #5b113f; - --c3-primary-container: #782957; - --c3-on-primary-container: #ffd8e9; - - /* C4 Material Colors */ - --c4-primary: #ffb4a8; - - - /* C5 Material Colors */ - --c5-primary: #66dcac; - --c5-on-primary: #003825; - --c5-primary-container: #005137; - --c5-on-primary-container: #83f9c7; -} - -@media (prefers-color-scheme: light) { - :root { - --c2: #038dce; - - --bg-color: #fffdfc; - --color: #202020; - --code-bg-color: #fdf6e3; - --code-color: #073642; - --border-color: rgba(64, 64, 64, 0.25); - - --c3-transparent: #ffd8ea; - - /* C1 Material Colors */ - --c1-primary: #765b00; - - /* C2 Material Colors */ - --c2-primary: #006397; - --c2-on-primary: #ffffff; - --c2-primary-container: #cce5ff; - --c2-on-primary-container: #001e31; - --c2-surface-variant: #dde3ea; - --c2-on-surface-variant: #41474d; - - /* C3 Material Colors */ - --c3-primary: #954170; - --c3-on-primary: #ffffff; - --c3-primary-container: #ffd8e9; - --c3-on-primary-container: #3c0027; - - /* C4 Material Colors */ - --c4-primary: #bc1714; - - /* C5 Material Colors */ - --c5-primary: #006c4b; - --c5-on-primary: #ffffff; - --c5-primary-container: #83f9c7; - --c5-on-primary-container: #002114; - - } - -} - -html { - font-size: 18px; -} - -.padded { - padding-left: 2rem; - border-left: solid 1px var(--border-color); -} - -@media screen and (max-width: 800px) { - html { - font-size: 18px; - } -} - -body { - font-family: Inter, sans-serif; - background-color: var(--bg-color); - color: var(--color); -} - -svg.railroad-diagram { - background-color: rgba(0,0,0,0) !important; -} - -svg.railroad-diagram path { - stroke: var(--c1) !important; -} - -svg.railroad-diagram rect { - stroke: var(--c2) !important; - fill: var(--c2) !important; -} - -svg.railroad-diagram g.non-terminal rect { - stroke: var(--c4) !important; - fill: var(--c4) !important; -} - -svg.railroad-diagram text { - font-family: Inter, sans-serif !important; - font-weight: normal !important; - fill: white; -} - -g.terminal text { - font-family: Iosevka, sans-serif !important; -} - -.railroad-code { - text-align: center; - padding: 1rem; -} - -.railroad-code svg { - transform: scale(1.5); -} - -pre { - border: solid 1px rgba(150, 150, 150, 0.5); -} - -code, pre { - font-family: "SF Mono", Iosevka, "Source Code Pro", monospace !important; - font-variant-ligatures: discretionary-ligatures; -} - -.marked pre { - font-size: 0.85rem; -} - -.marked p { - line-height: 1.5rem; - text-align: justify; - margin: 1rem 0; -} - -.marked h1 { - font-weight: 900; - margin-top: 3rem; - margin-bottom: 2rem; - font-size: 2.25rem; -} - -.marked h2 { - font-size: 2rem; - font-weight: bold; - margin-top: 3rem; - margin-bottom: 1.5rem; -} - - -.marked h3 { - font-size: 1.75rem; - font-weight: 500; - margin-top: 2.5rem; - margin-bottom: 1.25rem; - text-decoration: underline; - - /* - position: sticky; - top: 0; - background-color: var(--bg-color); - */ -} - -.marked h4 { - font-size: 1.25rem; - font-weight: 300; - margin-top: 2rem; - margin-bottom: 1rem; -} - -.marked table { - text-align: center; - border-collapse: collapse; -} - -.marked table, th, td { - border: solid 1px rgba(150, 150, 150, 1); -} - -.marked table td, th { - padding: 0.25rem 0.5rem; -} - -.md-modifier { - border-radius: 0.75rem; - padding: 1rem; - margin: 2rem 0; -} - -.md-modifier > div { - padding-bottom: 1rem; - font-weight: 500; -} - -.md-info { - border: solid 2px var(--js-color); -} - -.md-info > div { - color: var(--js-color); -} - -@media (prefers-color-scheme: light) { - .md-info { - background-color: var(--js-color); - } - - .md-info > div { - color: var(--dark-color); - font-weight: 600; - } -} - - -.md-warning { - border: solid 3px var(--c4); -} - -.md-warning > div { - color: var(--c4); -} - -@media (prefers-color-scheme: light) { - .md-warning { - background-color: var(--error-bg-color); - color: var(--error-text-color); - } - - .md-warning > div { - color: var(--c4); - font-weight: 600; - } -} - - -.md-implemented { - border: solid 3px var(--c2-primary); -} - -.md-implemented > div { - color: var(--c2-primary); -} - - -@media screen and (max-width: 800px) { - .marked p { - line-height: 1.25rem; - } - - .marked h1 { - margin-top: 1rem; - margin-bottom: 0.75rem; - } - - pre[class*="language-"].line-numbers { - font-size: 0.8rem; - } - - .railroad-code svg { - display: none; - transform: scale(1); - } -} - -/* Used by headers generated at src/generator/heading.rs */ -.heading-linked :hover::after{ - color: var(--c2-primary); - content: "#"; - display: inline-block; - font-size: 0.7em; - line-height: 1; - margin-left: 4px; - text-decoration: none; -} diff --git a/doc-generator/static/styles/xcode-colors.css b/doc-generator/static/styles/xcode-colors.css deleted file mode 100644 index 37c6ca0..0000000 --- a/doc-generator/static/styles/xcode-colors.css +++ /dev/null @@ -1,263 +0,0 @@ -/* colors from: https://raw.githubusercontent.com/WhiteVermouth/XcodeTheme/master/assets/color-palette.png */ -:root { - --code-theme-color: #dedede; - --code-theme-bg-color: #1f1f24; - --code-theme-bg-color_selection: #515b70; - --code-theme-color_selection: inherit; - - --code-theme-comment: #6c7986; - - /* number */ - --code-theme-c1: #d0bf69; - /* keyword */ - --code-theme-c2: #fc5fa3; - /* ? */ - --code-theme-c3: #39adb5; - /* string */ - --code-theme-c4: #fc6a5d; - /* declaration */ - --code-theme-c5: #5dd8ff; - /* proyect function */ - --code-theme-c6: #67b7a4; /*#e53935;*/ - - --code-theme-punctuation: #dedede; -} - -@media (prefers-color-scheme: light) { - :root { - --code-theme-color: #3a3a3a; - --code-theme-bg-color: #ffffff; - --code-theme-bg-color_selection: #a4cdff; - --code-theme-color_selection: inherit; - - --code-theme-comment: #5d6c79; - - /* number */ - --code-theme-c1: #1c00cf; - /* keyword */ - --code-theme-c2: #9b2393; - --code-theme-c3: #39adb5; - /* string */ - --code-theme-c4: #c41a16; - /* declaration */ - --code-theme-c5: #0f68a0; - --code-theme-c6: #326d74; /*#e53935;*/ - - --code-theme-punctuation: #202020; - } -} - -code[class*="language-"], -pre[class*="language-"] { - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - color: var(--code-theme-color); - background: var(--code-theme-bg-color); - font-size: 0.8em; - line-height: 1.5em; - border-radius: 0.3em; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -code[class*="language-"]::-moz-selection, -pre[class*="language-"]::-moz-selection, -code[class*="language-"] ::-moz-selection, -pre[class*="language-"] ::-moz-selection { - background: var(--code-theme-bg-color_selection); - color: var(--code-theme-color_selection); -} - -code[class*="language-"]::selection, -pre[class*="language-"]::selection, -code[class*="language-"] ::selection, -pre[class*="language-"] ::selection { - background: var(--code-theme-bg-color_selection); - color: var(--code-theme-color_selection); -} - -:not(pre) > code[class*="language-"] { - white-space: normal; - border-radius: 0.2em; - padding: 0.1em; -} - -:not(pre) > code { - /* border: solid 1px var(--border-color); */ - background-color: var(--code-theme-bg-color); - padding: 0 0.25rem; - border-radius: 5px; -} - -pre[class*="language-"] { - overflow: auto; - position: relative; - margin: 0.5em 0; - padding: 0.75em 0.75em; -} - -.language-css > code, -.language-sass > code, -.language-scss > code { - color: var(--code-theme-c1); -} - -[class*="language-"] .namespace { - opacity: 0.7; -} - -.token.atrule { - color: var(--code-theme-c2); -} - -.token.attr-name { - color: var(--code-theme-c3); -} - -.token.attr-value { - color: var(--code-theme-c4); -} - -.token.attribute { - color: var(--code-theme-c4); -} - -.token.boolean { - color: var(--code-theme-c2); -} - -.token.builtin { - color: var(--code-theme-c3); -} - -.token.cdata { - color: var(--code-theme-c3); -} - -.token.char { - color: var(--code-theme-c3); -} - -.token.class { - color: var(--code-theme-c3); -} - -.token.class-name { - color: var(--code-theme-c5); -} - -.token.comment { - color: var(--code-theme-comment); -} - -.token.constant { - color: var(--code-theme-c2); -} - -.token.deleted { - color: var(--code-theme-c6); -} - -.token.doctype { - color: var(--code-theme-comment); -} - -.token.entity { - color: var(--code-theme-c6); -} - -.token.function { - color: var(--code-theme-c2); -} - -.token.hexcode { - color: var(--code-theme-c1); -} - -.token.id { - color: var(--code-theme-c2); - font-weight: bold; -} - -.token.important { - color: var(--code-theme-c2); - font-weight: bold; -} - -.token.inserted { - color: var(--code-theme-c3); -} - -.token.keyword { - color: var(--code-theme-c2); -} - -.token.number { - color: var(--code-theme-c1); -} - -.token.operator { - color: var(--code-theme-punctuation); -} - -.token.prolog { - color: var(--code-theme-comment); -} - -.token.property { - color: var(--code-theme-c3); -} - -.token.pseudo-class { - color: var(--code-theme-c4); -} - -.token.pseudo-element { - color: var(--code-theme-c4); -} - -.token.punctuation { - color: var(--code-theme-punctuation); -} - -.token.regex { - color: var(--code-theme-c5); -} - -.token.selector { - color: var(--code-theme-c6); -} - -.token.string { - color: var(--code-theme-c4); -} - -.token.symbol { - color: var(--code-theme-c2); -} - -.token.tag { - color: var(--code-theme-c6); -} - -.token.unit { - color: var(--code-theme-c1); -} - -.token.url { - color: var(--code-theme-c6); -} - -.token.variable { - color: var(--code-theme-c6); -} diff --git a/doc-generator/static/svg/kinky.svg b/doc-generator/static/svg/kinky.svg deleted file mode 100644 index 2a9e4ac..0000000 --- a/doc-generator/static/svg/kinky.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/doc-generator/static/svg/logo_black.svg b/doc-generator/static/svg/logo_black.svg deleted file mode 100644 index a74fd2a..0000000 --- a/doc-generator/static/svg/logo_black.svg +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/doc-generator/static/svg/logo_color.svg b/doc-generator/static/svg/logo_color.svg deleted file mode 100644 index a812f7a..0000000 --- a/doc-generator/static/svg/logo_color.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/doc-generator/static/svg/rusty.svg b/doc-generator/static/svg/rusty.svg deleted file mode 100644 index e7ce555..0000000 --- a/doc-generator/static/svg/rusty.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/doc-generator/static/tailwind.config.js b/doc-generator/static/tailwind.config.js deleted file mode 100644 index 92e3213..0000000 --- a/doc-generator/static/tailwind.config.js +++ /dev/null @@ -1,50 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: ["./**/*.html"], - theme: { - colors: { - transparent: 'transparent', - current: 'currentColor', - white: "#ffffff", - - "js-color": "var(--js-color)", - "dark-color": "var(--dark-color)", - "light-color": "var(--light-color)", - "error-color": "var(--error-color)", - "error-text-color": "var(--error-text-color)", - "error-bg-color": "var(--error-bg-color)", - "c1": "var(--c1)", - "c2": "var(--c2)", - "c3": "var(--c3)", - "c4": "var(--c4)", - "c5": "var(--c5)", - "c3-transparent": "var(--c3-transparent)", - "main-color": "var(--color)", - "code-bg-color": "var(--code-bg-color)", - "code-color": "var(--code-color)", - "border-color": "var(--border-color)", - - "c1-primary": "var(--c1-primary)", - - "c2-primary": "var(--c2-primary)", - "c2-on-primary": "var(--c2-on-primary)", - "c2-primary-container": "var(--c2-primary-container)", - "c2-on-primary-container": "var(--c2-on-primary-container)", - "c2-surface-variant": "var(--c2-surface-variant)", - "c2-on-surface-variant": "var(--c2-on-surface-variant)", - - "c3-primary": "var(--c3-primary)", - "c3-on-primary": "var(--c3-on-primary)", - "c3-primary-container": "var(--c3-primary-container)", - "c3-on-primary-container": "var(--c3-on-primary-container)", - "c4-primary": "var(--c4-primary)", - "c5-primary": "var(--c5-primary)", - "c5-on-primary": "var(--c5-on-primary)", - "c5-primary-container": "var(--c5-primary-container)", - "c5-on-primary-container": "var(--c5-on-primary-container)", - "bg-color": "var(--bg-color)", - }, - extend: {}, - }, - plugins: [], -} diff --git a/doc-generator/static/tailwind/input.css b/doc-generator/static/tailwind/input.css deleted file mode 100644 index bd6213e..0000000 --- a/doc-generator/static/tailwind/input.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; \ No newline at end of file diff --git a/doc-generator/static/template.html b/doc-generator/static/template.html deleted file mode 100644 index d03930a..0000000 --- a/doc-generator/static/template.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - Misti - - - - - - - - - - - -
    -
    - - - - - - - - - - -

    Misti

    -
    - -

    - Docs -

    - -

    - Stdlib -

    - -
    - - - -
    - -
    - {{markdown}} -
    -
    - - - - - - diff --git a/compiler/src/ast_types.rs b/src/ast_types.rs similarity index 100% rename from compiler/src/ast_types.rs rename to src/ast_types.rs diff --git a/compiler/src/codegen/binding.rs b/src/codegen/binding.rs similarity index 100% rename from compiler/src/codegen/binding.rs rename to src/codegen/binding.rs diff --git a/compiler/src/codegen/expression.rs b/src/codegen/expression.rs similarity index 100% rename from compiler/src/codegen/expression.rs rename to src/codegen/expression.rs diff --git a/compiler/src/codegen/mod.rs b/src/codegen/mod.rs similarity index 100% rename from compiler/src/codegen/mod.rs rename to src/codegen/mod.rs diff --git a/compiler/src/codegen/module_ast.rs b/src/codegen/module_ast.rs similarity index 100% rename from compiler/src/codegen/module_ast.rs rename to src/codegen/module_ast.rs diff --git a/compiler/src/error_handling/lex_error.rs b/src/error_handling/lex_error.rs similarity index 100% rename from compiler/src/error_handling/lex_error.rs rename to src/error_handling/lex_error.rs diff --git a/compiler/src/error_handling/mod.rs b/src/error_handling/mod.rs similarity index 100% rename from compiler/src/error_handling/mod.rs rename to src/error_handling/mod.rs diff --git a/compiler/src/error_handling/syntax_error.rs b/src/error_handling/syntax_error.rs similarity index 100% rename from compiler/src/error_handling/syntax_error.rs rename to src/error_handling/syntax_error.rs diff --git a/compiler/src/file/mod.rs b/src/file/mod.rs similarity index 100% rename from compiler/src/file/mod.rs rename to src/file/mod.rs diff --git a/compiler/src/lexic/mod.rs b/src/lexic/mod.rs similarity index 100% rename from compiler/src/lexic/mod.rs rename to src/lexic/mod.rs diff --git a/compiler/src/lexic/scanner/identifier.rs b/src/lexic/scanner/identifier.rs similarity index 100% rename from compiler/src/lexic/scanner/identifier.rs rename to src/lexic/scanner/identifier.rs diff --git a/compiler/src/lexic/scanner/mod.rs b/src/lexic/scanner/mod.rs similarity index 100% rename from compiler/src/lexic/scanner/mod.rs rename to src/lexic/scanner/mod.rs diff --git a/compiler/src/lexic/scanner/new_comment.rs b/src/lexic/scanner/new_comment.rs similarity index 100% rename from compiler/src/lexic/scanner/new_comment.rs rename to src/lexic/scanner/new_comment.rs diff --git a/compiler/src/lexic/scanner/new_line.rs b/src/lexic/scanner/new_line.rs similarity index 100% rename from compiler/src/lexic/scanner/new_line.rs rename to src/lexic/scanner/new_line.rs diff --git a/compiler/src/lexic/scanner/number.rs b/src/lexic/scanner/number.rs similarity index 100% rename from compiler/src/lexic/scanner/number.rs rename to src/lexic/scanner/number.rs diff --git a/compiler/src/lexic/scanner/operator.rs b/src/lexic/scanner/operator.rs similarity index 100% rename from compiler/src/lexic/scanner/operator.rs rename to src/lexic/scanner/operator.rs diff --git a/compiler/src/lexic/scanner/string.rs b/src/lexic/scanner/string.rs similarity index 100% rename from compiler/src/lexic/scanner/string.rs rename to src/lexic/scanner/string.rs diff --git a/compiler/src/lexic/utils.rs b/src/lexic/utils.rs similarity index 100% rename from compiler/src/lexic/utils.rs rename to src/lexic/utils.rs diff --git a/compiler/src/lib.rs b/src/lib.rs similarity index 100% rename from compiler/src/lib.rs rename to src/lib.rs diff --git a/compiler/src/main.rs b/src/main.rs similarity index 100% rename from compiler/src/main.rs rename to src/main.rs diff --git a/compiler/src/repl/mod.rs b/src/repl/mod.rs similarity index 100% rename from compiler/src/repl/mod.rs rename to src/repl/mod.rs diff --git a/compiler/src/semantic/datatype.rs b/src/semantic/datatype.rs similarity index 100% rename from compiler/src/semantic/datatype.rs rename to src/semantic/datatype.rs diff --git a/compiler/src/semantic/guidance.md b/src/semantic/guidance.md similarity index 100% rename from compiler/src/semantic/guidance.md rename to src/semantic/guidance.md diff --git a/compiler/src/semantic/mod.rs b/src/semantic/mod.rs similarity index 100% rename from compiler/src/semantic/mod.rs rename to src/semantic/mod.rs diff --git a/compiler/src/semantic/type_check.rs b/src/semantic/type_check.rs similarity index 100% rename from compiler/src/semantic/type_check.rs rename to src/semantic/type_check.rs diff --git a/compiler/src/symbol_table.rs b/src/symbol_table.rs similarity index 100% rename from compiler/src/symbol_table.rs rename to src/symbol_table.rs diff --git a/compiler/src/syntax/binding.rs b/src/syntax/binding.rs similarity index 100% rename from compiler/src/syntax/binding.rs rename to src/syntax/binding.rs diff --git a/compiler/src/syntax/expression.rs b/src/syntax/expression.rs similarity index 100% rename from compiler/src/syntax/expression.rs rename to src/syntax/expression.rs diff --git a/compiler/src/syntax/grammar.md b/src/syntax/grammar.md similarity index 100% rename from compiler/src/syntax/grammar.md rename to src/syntax/grammar.md diff --git a/compiler/src/syntax/mod.rs b/src/syntax/mod.rs similarity index 100% rename from compiler/src/syntax/mod.rs rename to src/syntax/mod.rs diff --git a/compiler/src/token.rs b/src/token.rs similarity index 100% rename from compiler/src/token.rs rename to src/token.rs diff --git a/compiler/src/utils/mod.rs b/src/utils/mod.rs similarity index 100% rename from compiler/src/utils/mod.rs rename to src/utils/mod.rs