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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- On this page
-
- {{sidebar}}
-
-
- {{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