From 26092fdc3500e0c3dcad173f048a46f5c67368c0 Mon Sep 17 00:00:00 2001 From: lamacchinadesiderante Date: Sat, 7 Jan 2023 21:40:21 +0100 Subject: [PATCH] inital commit (v0.3) --- .dockerignore | 9 + .gitignore | 9 + Cargo.lock | 4765 ++++++++++++++ Cargo.toml | 33 + Cross.yaml | 10 + Dockerfile | 16 + LICENSE | 21 + Makefile | 27 + README.md | 131 + crates/zlib-searcher-core/Cargo.toml | 31 + crates/zlib-searcher-core/src/index.rs | 101 + crates/zlib-searcher-core/src/lib.rs | 152 + crates/zlib-searcher-core/src/search.rs | 29 + crates/zlib-searcher-core/src/tokenizer.rs | 18 + crates/zlib-searcher-desktop/.gitignore | 4 + crates/zlib-searcher-desktop/Cargo.toml | 38 + crates/zlib-searcher-desktop/build.rs | 3 + .../zlib-searcher-desktop/icons/128x128.png | Bin 0 -> 3474 bytes .../icons/128x128@2x.png | Bin 0 -> 5863 bytes crates/zlib-searcher-desktop/icons/32x32.png | Bin 0 -> 1429 bytes .../icons/Square107x107Logo.png | Bin 0 -> 3498 bytes .../icons/Square142x142Logo.png | Bin 0 -> 4834 bytes .../icons/Square150x150Logo.png | Bin 0 -> 5012 bytes .../icons/Square284x284Logo.png | Bin 0 -> 10285 bytes .../icons/Square30x30Logo.png | Bin 0 -> 1343 bytes .../icons/Square310x310Logo.png | Bin 0 -> 12332 bytes .../icons/Square44x44Logo.png | Bin 0 -> 1720 bytes .../icons/Square71x71Logo.png | Bin 0 -> 2314 bytes .../icons/Square89x89Logo.png | Bin 0 -> 2829 bytes .../zlib-searcher-desktop/icons/StoreLogo.png | Bin 0 -> 1815 bytes crates/zlib-searcher-desktop/icons/icon.icns | Bin 0 -> 91232 bytes crates/zlib-searcher-desktop/icons/icon.ico | Bin 0 -> 13909 bytes crates/zlib-searcher-desktop/icons/icon.png | Bin 0 -> 6382 bytes crates/zlib-searcher-desktop/src/main.rs | 121 + crates/zlib-searcher-desktop/tauri.conf.json | 71 + crates/zlib-searcher/Cargo.toml | 34 + crates/zlib-searcher/build.rs | 6 + .../src/bin/filter_chinese_books.rs | 61 + crates/zlib-searcher/src/main.rs | 141 + docker-compose.yml | 21 + experiments/multokenizer_by_hanlp.py | 54 + frontend/.dockerignore | 4 + frontend/.env.development | 2 + frontend/.env.production | 2 + frontend/.gitignore | 26 + frontend/.prettierrc.yaml | 4 + frontend/index.html | 12 + frontend/package-lock.json | 5490 +++++++++++++++++ frontend/package.json | 49 + frontend/pnpm-lock.yaml | 5060 +++++++++++++++ frontend/src/App.tsx | 67 + frontend/src/components/BooksDetailsCard.tsx | 124 + frontend/src/components/BooksView.tsx | 30 + frontend/src/components/ColorModeSwitch.tsx | 24 + frontend/src/components/DataFilter.tsx | 70 + frontend/src/components/Description.tsx | 19 + frontend/src/components/DesktopDataList.tsx | 104 + .../src/components/DesktopDataListElement.tsx | 82 + .../src/components/ExternalLink-tauri.tsx | 19 + frontend/src/components/ExternalLink.tsx | 19 + frontend/src/components/Footer.tsx | 16 + frontend/src/components/Header.tsx | 48 + frontend/src/components/LanguageSwitch.tsx | 44 + frontend/src/components/MobileDataList.tsx | 99 + .../src/components/MobileDataListElement.tsx | 52 + frontend/src/components/Paginator.tsx | 81 + frontend/src/components/Search.tsx | 138 + frontend/src/components/SearchInput.tsx | 60 + frontend/src/components/SearchLanguage.tsx | 53 + frontend/src/components/Settings-tauri.tsx | 153 + frontend/src/components/Settings.tsx | 109 + frontend/src/components/SettingsItem.tsx | 38 + frontend/src/constants/book.ts | 61 + frontend/src/constants/color.ts | 12 + frontend/src/constants/mediaquery.ts | 2 + frontend/src/constants/pagination.ts | 1 + frontend/src/font/LemonYellowSun.otf | Bin 0 -> 103152 bytes frontend/src/i18n-tauri.json | 62 + frontend/src/i18n.json | 232 + frontend/src/main.tsx | 41 + frontend/src/scripts/ipfs.ts | 30 + frontend/src/scripts/searcher-browser.ts | 12 + frontend/src/scripts/searcher-tauri.ts | 7 + frontend/src/scripts/searcher.ts | 26 + frontend/src/store.ts | 9 + frontend/src/style.css | 41 + frontend/src/theme.ts | 10 + frontend/src/vite-env.d.ts | 1 + frontend/tsconfig.json | 33 + frontend/tsconfig.node.json | 9 + frontend/vite.config.ts | 34 + rust-toolchain | 3 + rustfmt.toml | 4 + scripts/build.sh | 20 + scripts/build_best_speed.sh | 2 + scripts/build_release.sh | 119 + 96 files changed, 18775 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 Cross.yaml create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 crates/zlib-searcher-core/Cargo.toml create mode 100644 crates/zlib-searcher-core/src/index.rs create mode 100644 crates/zlib-searcher-core/src/lib.rs create mode 100644 crates/zlib-searcher-core/src/search.rs create mode 100644 crates/zlib-searcher-core/src/tokenizer.rs create mode 100644 crates/zlib-searcher-desktop/.gitignore create mode 100644 crates/zlib-searcher-desktop/Cargo.toml create mode 100644 crates/zlib-searcher-desktop/build.rs create mode 100644 crates/zlib-searcher-desktop/icons/128x128.png create mode 100644 crates/zlib-searcher-desktop/icons/128x128@2x.png create mode 100644 crates/zlib-searcher-desktop/icons/32x32.png create mode 100644 crates/zlib-searcher-desktop/icons/Square107x107Logo.png create mode 100644 crates/zlib-searcher-desktop/icons/Square142x142Logo.png create mode 100644 crates/zlib-searcher-desktop/icons/Square150x150Logo.png create mode 100644 crates/zlib-searcher-desktop/icons/Square284x284Logo.png create mode 100644 crates/zlib-searcher-desktop/icons/Square30x30Logo.png create mode 100644 crates/zlib-searcher-desktop/icons/Square310x310Logo.png create mode 100644 crates/zlib-searcher-desktop/icons/Square44x44Logo.png create mode 100644 crates/zlib-searcher-desktop/icons/Square71x71Logo.png create mode 100644 crates/zlib-searcher-desktop/icons/Square89x89Logo.png create mode 100644 crates/zlib-searcher-desktop/icons/StoreLogo.png create mode 100644 crates/zlib-searcher-desktop/icons/icon.icns create mode 100644 crates/zlib-searcher-desktop/icons/icon.ico create mode 100644 crates/zlib-searcher-desktop/icons/icon.png create mode 100644 crates/zlib-searcher-desktop/src/main.rs create mode 100644 crates/zlib-searcher-desktop/tauri.conf.json create mode 100644 crates/zlib-searcher/Cargo.toml create mode 100644 crates/zlib-searcher/build.rs create mode 100644 crates/zlib-searcher/src/bin/filter_chinese_books.rs create mode 100644 crates/zlib-searcher/src/main.rs create mode 100644 docker-compose.yml create mode 100644 experiments/multokenizer_by_hanlp.py create mode 100644 frontend/.dockerignore create mode 100644 frontend/.env.development create mode 100644 frontend/.env.production create mode 100644 frontend/.gitignore create mode 100644 frontend/.prettierrc.yaml create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/pnpm-lock.yaml create mode 100644 frontend/src/App.tsx create mode 100644 frontend/src/components/BooksDetailsCard.tsx create mode 100644 frontend/src/components/BooksView.tsx create mode 100644 frontend/src/components/ColorModeSwitch.tsx create mode 100644 frontend/src/components/DataFilter.tsx create mode 100644 frontend/src/components/Description.tsx create mode 100644 frontend/src/components/DesktopDataList.tsx create mode 100644 frontend/src/components/DesktopDataListElement.tsx create mode 100644 frontend/src/components/ExternalLink-tauri.tsx create mode 100644 frontend/src/components/ExternalLink.tsx create mode 100644 frontend/src/components/Footer.tsx create mode 100644 frontend/src/components/Header.tsx create mode 100644 frontend/src/components/LanguageSwitch.tsx create mode 100644 frontend/src/components/MobileDataList.tsx create mode 100644 frontend/src/components/MobileDataListElement.tsx create mode 100644 frontend/src/components/Paginator.tsx create mode 100644 frontend/src/components/Search.tsx create mode 100644 frontend/src/components/SearchInput.tsx create mode 100644 frontend/src/components/SearchLanguage.tsx create mode 100644 frontend/src/components/Settings-tauri.tsx create mode 100644 frontend/src/components/Settings.tsx create mode 100644 frontend/src/components/SettingsItem.tsx create mode 100644 frontend/src/constants/book.ts create mode 100644 frontend/src/constants/color.ts create mode 100644 frontend/src/constants/mediaquery.ts create mode 100644 frontend/src/constants/pagination.ts create mode 100644 frontend/src/font/LemonYellowSun.otf create mode 100644 frontend/src/i18n-tauri.json create mode 100644 frontend/src/i18n.json create mode 100644 frontend/src/main.tsx create mode 100644 frontend/src/scripts/ipfs.ts create mode 100644 frontend/src/scripts/searcher-browser.ts create mode 100644 frontend/src/scripts/searcher-tauri.ts create mode 100644 frontend/src/scripts/searcher.ts create mode 100644 frontend/src/store.ts create mode 100644 frontend/src/style.css create mode 100644 frontend/src/theme.ts create mode 100644 frontend/src/vite-env.d.ts create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.node.json create mode 100644 frontend/vite.config.ts create mode 100644 rust-toolchain create mode 100644 rustfmt.toml create mode 100755 scripts/build.sh create mode 100755 scripts/build_best_speed.sh create mode 100755 scripts/build_release.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e8db326 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +index +.github +target +*.csv +.git + +.vscode/* +.idea +.DS_Store diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bf83f38 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +/target +/index + +*.csv +/release +/zlib-searcher + +.vscode +index_0.6.zip \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..bc8d267 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,4765 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "actix-codec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a7559404a7f3573127aab53c08ce37a6c6a315c374a31070f3c91cd1b4a7fe" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-sink", + "log", + "memchr", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "actix-http" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c83abf9903e1f0ad9973cc4f7b9767fd5a03a583f51a5b7a339e07987cd2724" +dependencies = [ + "actix-codec", + "actix-rt", + "actix-service", + "actix-utils", + "ahash", + "base64", + "bitflags", + "brotli", + "bytes", + "bytestring", + "derive_more", + "encoding_rs", + "flate2", + "futures-core", + "h2", + "http", + "httparse", + "httpdate", + "itoa 1.0.4", + "language-tags", + "local-channel", + "mime", + "percent-encoding", + "pin-project-lite", + "rand 0.8.5", + "sha1", + "smallvec", + "tracing", + "zstd", +] + +[[package]] +name = "actix-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "actix-router" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799" +dependencies = [ + "bytestring", + "http", + "regex", + "serde", + "tracing", +] + +[[package]] +name = "actix-rt" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ea16c295198e958ef31930a6ef37d0fb64e9ca3b6116e6b93a8bdae96ee1000" +dependencies = [ + "futures-core", + "tokio", +] + +[[package]] +name = "actix-server" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0da34f8e659ea1b077bb4637948b815cd3768ad5a188fdcd74ff4d84240cd824" +dependencies = [ + "actix-rt", + "actix-service", + "actix-utils", + "futures-core", + "futures-util", + "mio", + "num_cpus", + "socket2", + "tokio", + "tracing", +] + +[[package]] +name = "actix-service" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a" +dependencies = [ + "futures-core", + "paste", + "pin-project-lite", +] + +[[package]] +name = "actix-utils" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" +dependencies = [ + "local-waker", + "pin-project-lite", +] + +[[package]] +name = "actix-web" +version = "4.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d48f7b6534e06c7bfc72ee91db7917d4af6afe23e7d223b51e68fffbb21e96b9" +dependencies = [ + "actix-codec", + "actix-http", + "actix-macros", + "actix-router", + "actix-rt", + "actix-server", + "actix-service", + "actix-utils", + "actix-web-codegen", + "ahash", + "bytes", + "bytestring", + "cfg-if", + "cookie", + "derive_more", + "encoding_rs", + "futures-core", + "futures-util", + "http", + "itoa 1.0.4", + "language-tags", + "log", + "mime", + "once_cell", + "pin-project-lite", + "regex", + "serde", + "serde_json", + "serde_urlencoded", + "smallvec", + "socket2", + "time", + "url", +] + +[[package]] +name = "actix-web-codegen" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa9362663c8643d67b2d5eafba49e4cb2c8a053a29ed00a0bea121f17c76b13" +dependencies = [ + "actix-router", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "actix-web-static-files" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830ce9c2daaefe6fc8a484774b9fc9e79ab5b4685064c85d50fd55e820b9a6c5" +dependencies = [ + "actix-web", + "derive_more", + "futures-util", + "static-files", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.8", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" + +[[package]] +name = "async-trait" +version = "0.1.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +dependencies = [ + "atk-sys", + "bitflags", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitpacking" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c7d2ac73c167c06af4a5f37e6e59d84148d57ccbe4480b76f0273eefea82d7" +dependencies = [ + "crunchy", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "lazy_static", + "memchr", + "regex-automata", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + +[[package]] +name = "bytemuck" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" + +[[package]] +name = "bytestring" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7f83e57d9154148e355404702e2694463241880b939570d7c97c014da7a69a1" +dependencies = [ + "bytes", +] + +[[package]] +name = "cairo-rs" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +dependencies = [ + "bitflags", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "cang-jie" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "508a04d2134fbe72fcc89a5c1973a1a86451a3b3493df8b7bb61a6088d5ba08c" +dependencies = [ + "jieba-rs", + "log", + "tantivy", +] + +[[package]] +name = "cargo_toml" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa0e3586af56b3bfa51fca452bd56e8dbbbd5d8d81cbf0b7e4e35b695b537eb8" +dependencies = [ + "serde", + "toml", +] + +[[package]] +name = "cc" +version = "1.0.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cedarwood" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d910bedd62c24733263d0bed247460853c9d22e8956bd4cd964302095e04e90" +dependencies = [ + "smallvec", +] + +[[package]] +name = "census" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fafee10a5dd1cffcb5cc560e0d0df8803d7355a2b12272e3557dee57314cb6e" + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" +dependencies = [ + "byteorder", + "uuid 0.8.2", +] + +[[package]] +name = "cfg-expr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-expr" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "change-detection" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "159fa412eae48a1d94d0b9ecdb85c97ce56eb2a347c62394d3fdbf221adabc1a" +dependencies = [ + "path-matchers", + "path-slash", +] + +[[package]] +name = "chrono" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +dependencies = [ + "iana-time-zone", + "num-integer", + "num-traits", + "serde", + "winapi", +] + +[[package]] +name = "clap" +version = "4.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d63b9e9c07271b9957ad22c173bae2a4d9a81127680962039296abcd2f8251d" +dependencies = [ + "bitflags", + "clap_derive", + "clap_lex", + "is-terminal", + "once_cell", + "strsim", + "termcolor", +] + +[[package]] +name = "clap_derive" +version = "4.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +dependencies = [ + "heck 0.4.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +dependencies = [ + "bitflags", + "block", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "confy" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e37668cb35145dcfaa1931a5f37fde375eeae8068b4c0d2f289da28a270b2d2c" +dependencies = [ + "directories", + "serde", + "thiserror", + "toml", +] + +[[package]] +name = "console" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "terminal_size", + "unicode-width", + "winapi", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cookie" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "344adc371239ef32293cb1c4fe519592fcf21206c79c02854320afcdf3ab4917" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation", + "foreign-types", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.7.1", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "csv" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" +dependencies = [ + "bstr", + "csv-core", + "itoa 0.4.8", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctor" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "cxx" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" +dependencies = [ + "darling_core 0.14.2", + "darling_macro 0.14.2", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_core" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" +dependencies = [ + "darling_core 0.14.2", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn", +] + +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "directories" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "dtoa-short" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c" + +[[package]] +name = "either" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[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 = "fail" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5e43d0f78a42ad591453aedb1d7ae631ce7ee445c7643691055a9ed8d3b01c" +dependencies = [ + "log", + "once_cell", + "rand 0.8.5", +] + +[[package]] +name = "fastdivide" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25c7df09945d65ea8d70b3321547ed414bbc540aad5bac6883d021b970f35b04" + +[[package]] +name = "fastfield_codecs" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dff2ee906bb242438742b5ecac909c0719cbd9db546f6c3d9ac86bd93f5b07e" +dependencies = [ + "tantivy-bitpacker", + "tantivy-common", +] + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "field-offset" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +dependencies = [ + "memoffset 0.6.5", + "rustc_version 0.3.3", +] + +[[package]] +name = "filetime" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "windows-sys", +] + +[[package]] +name = "flate2" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" + +[[package]] +name = "futures-executor" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" + +[[package]] +name = "futures-macro" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" + +[[package]] +name = "futures-task" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" + +[[package]] +name = "futures-util" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +dependencies = [ + "bitflags", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.0.3", +] + +[[package]] +name = "gdkx11-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps 6.0.3", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc184cace1cea8335047a471cc1da80f18acf8a76f3bab2028d499e328948ec7" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "windows 0.32.0", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gio" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", + "winapi", +] + +[[package]] +name = "glib" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" +dependencies = [ + "anyhow", + "heck 0.4.0", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +dependencies = [ + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "globset" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "gobject-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "gtk" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +dependencies = [ + "atk", + "bitflags", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps 6.0.3", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +dependencies = [ + "anyhow", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "h2" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[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.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "htmlescape" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163" + +[[package]] +name = "http" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.4", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "iana-time-zone" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "ico" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031530fe562d8c8d71c0635013d6d155bbfe8ba0aa4b4d2d24ce8af6b71047bd" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +dependencies = [ + "crossbeam-utils", + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.24.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +dependencies = [ + "autocfg", + "hashbrown", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4295cbb7573c16d310e99e713cf9e75101eb190ab31fccd35f2d2691b4352b19" +dependencies = [ + "console", + "number_prefix", + "portable-atomic", + "unicode-width", +] + +[[package]] +name = "infer" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" +dependencies = [ + "cfb", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "is-terminal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927609f78c2913a6f6ac3c27a4fe87f43e2a35367c0c4b0f8265e8f49a104330" +dependencies = [ + "hermit-abi 0.2.6", + "io-lifetimes", + "rustix", + "windows-sys", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jieba-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37228e06c75842d1097432d94d02f37fe3ebfca9791c2e8fef6e9db17ed128c1" +dependencies = [ + "cedarwood", + "fxhash", + "hashbrown", + "lazy_static", + "phf 0.11.1", + "phf_codegen 0.11.1", + "regex", +] + +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" +dependencies = [ + "serde", + "serde_json", + "treediff", +] + +[[package]] +name = "kuchiki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +dependencies = [ + "cssparser", + "html5ever", + "matches", + "selectors", +] + +[[package]] +name = "language-tags" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "levenshtein_automata" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2cdeb66e45e9f36bfad5bbdb4d2384e70936afbee843c6f6543f0c551ebb25" + +[[package]] +name = "libc" +version = "0.2.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f" + +[[package]] +name = "local-channel" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f303ec0e94c6c54447f84f3b0ef7af769858a9c4ef56ef2a986d3dcd4c3fc9c" +dependencies = [ + "futures-core", + "futures-sink", + "futures-util", + "local-waker", +] + +[[package]] +name = "local-waker" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34f76eb3611940e0e7d53a9aaa4e6a3151f69541a282fd0dad5571420c53ff1" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "loom" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +dependencies = [ + "cfg-if", + "generator", + "pin-utils", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "lz4_flex" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a8cbbb2831780bc3b9c15a41f5b49222ef756b6730a95f3decfdd15903eb5a3" + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +dependencies = [ + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "measure_time" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56220900f1a0923789ecd6bf25fbae8af3b2f1ff3e9e297fc9b6b8674dd4d852" +dependencies = [ + "instant", + "log", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys", +] + +[[package]] +name = "murmurhash32" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d736ff882f0e85fe9689fb23db229616c4c00aee2b3ac282f666d8f20eb25d4a" +dependencies = [ + "byteorder", +] + +[[package]] +name = "ndk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "ntapi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc51db7b362b205941f71232e56c625156eb9a929f8cf74a428fd5bc094a4afc" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +dependencies = [ + "hermit-abi 0.1.19", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "once_cell" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" + +[[package]] +name = "oneshot" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc22d22931513428ea6cc089e942d38600e3d00976eef8c86de6b8a3aadec6eb" +dependencies = [ + "loom", +] + +[[package]] +name = "open" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +dependencies = [ + "pathdiff", + "windows-sys", +] + +[[package]] +name = "os_str_bytes" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" + +[[package]] +name = "output_vt100" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" +dependencies = [ + "winapi", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "ownedbytes" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2981bd7cfb2a70e6c50083c60561275a269fc7458f151c53b126ec1b15cc040" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "pango" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +dependencies = [ + "bitflags", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "paste" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" + +[[package]] +name = "path-matchers" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36cd9b72a47679ec193a5f0229d9ab686b7bd45e1fbc59ccf953c9f3d83f7b2b" +dependencies = [ + "glob", +] + +[[package]] +name = "path-slash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498a099351efa4becc6a19c72aa9270598e8fd274ca47052e37455241c88b696" + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pest" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f400b0f7905bf702f9f3dc3df5a121b16c54e9e8012c082905fdf09a931861a" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" +dependencies = [ + "phf_shared 0.11.1", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770" +dependencies = [ + "phf_generator 0.11.1", + "phf_shared 0.11.1", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf" +dependencies = [ + "phf_shared 0.11.1", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" + +[[package]] +name = "plist" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" +dependencies = [ + "base64", + "indexmap", + "line-wrap", + "serde", + "time", + "xml-rs", +] + +[[package]] +name = "png" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" +dependencies = [ + "bitflags", + "crc32fast", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "portable-atomic" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15eb2c6e362923af47e13c23ca5afb859e83d54452c55b0b9ac763b8f7c1ac16" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "pretty_assertions" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +dependencies = [ + "ctor", + "diff", + "output_vt100", + "yansi", +] + +[[package]] +name = "proc-macro-crate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +dependencies = [ + "once_cell", + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro2" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.8", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" +dependencies = [ + "cty", +] + +[[package]] +name = "rayon" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b" +dependencies = [ + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.8", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.6.28", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.28", +] + +[[package]] +name = "regex-syntax" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e931c58b93d86f080c734bfd2bce7dd0079ae2331235818133c8be7f422e20e" + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", +] + +[[package]] +name = "rust-stemmers" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.14", +] + +[[package]] +name = "rustix" +version = "0.36.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb93e85278e08bb5788653183213d3a60fc242b10cb9be96586f5a73dcb67c23" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.148" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e53f64bb4ba0191d6d0676e1b141ca55047d83b74f5607e6d8eb88126c52c2dc" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.148" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55492425aa53521babf6137309e7d34c20bbfbbfcfe2c7f3a047fd1f6b92c0c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" +dependencies = [ + "itoa 1.0.4", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.4", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros 1.5.2", +] + +[[package]] +name = "serde_with" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25bf4a5a814902cd1014dbccfa4d4560fb8432c779471e96e035602519f82eef" +dependencies = [ + "base64", + "chrono", + "hex", + "indexmap", + "serde", + "serde_json", + "serde_with_macros 2.1.0", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_with_macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3452b4c0f6c1e357f73fdb87cd1efabaa12acf328c7a528e252893baeb3f4aa" +dependencies = [ + "darling 0.14.2", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "socket2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", +] + +[[package]] +name = "soup2-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +dependencies = [ + "bitflags", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "static-files" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64712ea1e3e140010e1d9605872ba205afa2ab5bd38191cc6ebd248ae1f6a06b" +dependencies = [ + "change-detection", + "mime_guess", + "path-slash", +] + +[[package]] +name = "string_cache" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae548ec36cf198c0ef7710d3c230987c2d6d7bd98ad6edc0274462724c585ce" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sysinfo" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17351d0e9eb8841897b14e9669378f3c69fb57779cc04f8ca9a9d512edfb2563" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "winapi", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" +dependencies = [ + "cfg-expr 0.11.0", + "heck 0.4.0", + "pkg-config", + "toml", + "version-compare 0.1.1", +] + +[[package]] +name = "tantivy" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69d1878f2daa432d6b907e1a7e16a25ba7eab6cc0da059e69943276a5165d81b" +dependencies = [ + "async-trait", + "base64", + "bitpacking", + "brotli", + "byteorder", + "census", + "crc32fast", + "crossbeam-channel", + "downcast-rs", + "fail", + "fastdivide", + "fastfield_codecs", + "fnv", + "fs2", + "htmlescape", + "itertools", + "levenshtein_automata", + "log", + "lru", + "lz4_flex", + "measure_time", + "memmap2", + "murmurhash32", + "num_cpus", + "once_cell", + "oneshot", + "ownedbytes", + "pretty_assertions", + "rayon", + "regex", + "rust-stemmers", + "serde", + "serde_json", + "smallvec", + "stable_deref_trait", + "tantivy-bitpacker", + "tantivy-common", + "tantivy-fst", + "tantivy-query-grammar", + "tempfile", + "thiserror", + "time", + "uuid 1.2.2", + "winapi", +] + +[[package]] +name = "tantivy-bitpacker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f95c862d26a32e1fdb161ab139c5a3bba221f5fac512af40034e13e25f3131" + +[[package]] +name = "tantivy-common" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec19155b3ed963ae1653bc4995ab8175281f68400c39081205ae25b53fd9750" +dependencies = [ + "byteorder", + "ownedbytes", +] + +[[package]] +name = "tantivy-fst" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb20cdc0d83e9184560bdde9cd60142dbb4af2e0f770e88fce45770495224205" +dependencies = [ + "byteorder", + "regex-syntax 0.4.2", + "utf8-ranges", +] + +[[package]] +name = "tantivy-query-grammar" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6bbdce99f2b8dcbe24ee25acffb36a2b45b31344531374df1008f6a64bb583" +dependencies = [ + "combine", + "once_cell", + "regex", +] + +[[package]] +name = "tao" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c8fab9f2ba9a6d7ad55b46f812984b6ab203d774c162163ac297edc9567404b" +dependencies = [ + "bitflags", + "cairo-rs", + "cc", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys", + "gtk", + "image", + "instant", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "paste", + "png", + "raw-window-handle", + "scopeguard", + "serde", + "unicode-segmentation", + "uuid 1.2.2", + "windows 0.39.0", + "windows-implement", + "x11-dl", +] + +[[package]] +name = "tar" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tauri" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18203448b9d4dcad55607eafeda6dc7fe135848e5f567cd8bdade6cafd8b1a85" +dependencies = [ + "anyhow", + "cocoa", + "dirs-next", + "embed_plist", + "encoding_rs", + "flate2", + "futures-util", + "glib", + "glob", + "gtk", + "heck 0.4.0", + "http", + "ignore", + "objc", + "once_cell", + "open", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "regex", + "rfd", + "semver 1.0.14", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "state", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "tokio", + "url", + "uuid 1.2.2", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-build" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8807c85d656b2b93927c19fe5a5f1f1f348f96c2de8b90763b3c2d561511f9b4" +dependencies = [ + "anyhow", + "cargo_toml", + "heck 0.4.0", + "json-patch", + "semver 1.0.14", + "serde_json", + "tauri-utils", + "winres", +] + +[[package]] +name = "tauri-codegen" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251" +dependencies = [ + "base64", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "regex", + "semver 1.0.14", + "serde", + "serde_json", + "sha2", + "tauri-utils", + "thiserror", + "time", + "uuid 1.2.2", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075" +dependencies = [ + "heck 0.4.0", + "proc-macro2", + "quote", + "syn", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c507d954d08ac8705d235bc70ec6975b9054fb95ff7823af72dbb04186596f3b" +dependencies = [ + "gtk", + "http", + "http-range", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "uuid 1.2.2", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7821c34cf1bd6d89ff46b46a53f3a5050d92afaf2053569f1cc4531167257b24" +dependencies = [ + "cocoa", + "gtk", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "tauri-runtime", + "tauri-utils", + "uuid 1.2.2", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5abbc109a6eb45127956ffcc26ef0e875d160150ac16cfa45d26a6b2871686f1" +dependencies = [ + "brotli", + "ctor", + "glob", + "heck 0.4.0", + "html5ever", + "infer", + "json-patch", + "kuchiki", + "memchr", + "phf 0.10.1", + "proc-macro2", + "quote", + "semver 1.0.14", + "serde", + "serde_json", + "serde_with 1.14.0", + "thiserror", + "url", + "walkdir", + "windows 0.39.0", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +dependencies = [ + "itoa 1.0.4", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + +[[package]] +name = "time-macros" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3" +dependencies = [ + "autocfg", + "bytes", + "libc", + "memchr", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "winapi", +] + +[[package]] +name = "tokio-util" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "treediff" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" +dependencies = [ + "serde_json", +] + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8-ranges" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcfc827f90e53a02eaef5e535ee14266c1d569214c6aa70133a624d8a3164ba" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + +[[package]] +name = "uuid" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" +dependencies = [ + "getrandom 0.2.8", + "serde", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version-compare" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "web-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup2", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +dependencies = [ + "atk-sys", + "bitflags", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup2-sys", + "system-deps 6.0.3", +] + +[[package]] +name = "webview2-com" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "webview2-com-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "webview2-com-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows 0.39.0", + "windows-bindgen", + "windows-metadata", +] + +[[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-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[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" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbedf6db9096bc2364adce0ae0aa636dcd89f3c3f2cd67947062aaf0ca2a10ec" +dependencies = [ + "windows_aarch64_msvc 0.32.0", + "windows_i686_gnu 0.32.0", + "windows_i686_msvc 0.32.0", + "windows_x86_64_gnu 0.32.0", + "windows_x86_64_msvc 0.32.0", +] + +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + +[[package]] +name = "windows" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +dependencies = [ + "windows-implement", + "windows_aarch64_msvc 0.39.0", + "windows_i686_gnu 0.39.0", + "windows_i686_msvc 0.39.0", + "windows_x86_64_gnu 0.39.0", + "windows_x86_64_msvc 0.39.0", +] + +[[package]] +name = "windows-bindgen" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +dependencies = [ + "windows-metadata", + "windows-tokens", +] + +[[package]] +name = "windows-implement" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +dependencies = [ + "syn", + "windows-tokens", +] + +[[package]] +name = "windows-metadata" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + +[[package]] +name = "windows-tokens" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" + +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + +[[package]] +name = "windows_i686_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" + +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + +[[package]] +name = "windows_i686_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + +[[package]] +name = "winres" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" +dependencies = [ + "toml", +] + +[[package]] +name = "wry" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b4906cc7b3c5959893f3984bb60882ec94539eb14622077e6529f5b3d008ee" +dependencies = [ + "base64", + "block", + "cocoa", + "core-graphics", + "crossbeam-channel", + "dunce", + "gdk", + "gio", + "glib", + "gtk", + "html5ever", + "http", + "kuchiki", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "sha2", + "soup2", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "x11" +version = "2.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2638d5b9c17ac40575fb54bb461a4b1d2a8d1b4ffcc4ff237d254ec59ddeb82" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0" +dependencies = [ + "lazy_static", + "libc", + "pkg-config", +] + +[[package]] +name = "xattr" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +dependencies = [ + "libc", +] + +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zlib-searcher" +version = "0.7.0" +dependencies = [ + "actix-web", + "actix-web-static-files", + "anyhow", + "clap", + "csv", + "env_logger", + "log", + "serde", + "serde_with 2.1.0", + "static-files", + "zlib-searcher-core", +] + +[[package]] +name = "zlib-searcher-core" +version = "0.7.0" +dependencies = [ + "anyhow", + "cang-jie", + "csv", + "env_logger", + "indicatif", + "jieba-rs", + "log", + "serde", + "serde_with 2.1.0", + "sysinfo", + "tantivy", +] + +[[package]] +name = "zlib-searcher-desktop" +version = "0.7.0" +dependencies = [ + "anyhow", + "confy", + "dunce", + "env_logger", + "log", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tokio", + "zlib-searcher-core", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.4+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0" +dependencies = [ + "cc", + "libc", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..b521d79 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,33 @@ +[workspace] +members = [ + "crates/zlib-searcher", + "crates/zlib-searcher-core", + "crates/zlib-searcher-desktop", +] + + +[workspace.package] +edition = "2021" +authors = ["zu1k "] +description = "search z-library index." +homepage = "https://github.com/zlib-searcher/zlib-searcher" +repository = "https://github.com/zlib-searcher/zlib-searcher" +license = "MIT" +exclude = [".github/", "index/", "frontend/"] + + +[profile.release] +strip = true +lto = true +opt-level = 3 +codegen-units = 1 + + +[workspace.dependencies] +anyhow = "1.0" +env_logger = "0.10" +log = "0.4" +serde = { version = "1.0", features = ["derive"] } +serde_with = "2.0" + +zlib-searcher-core = { path = "crates/zlib-searcher-core" } \ No newline at end of file diff --git a/Cross.yaml b/Cross.yaml new file mode 100644 index 0000000..50be5c7 --- /dev/null +++ b/Cross.yaml @@ -0,0 +1,10 @@ +[build.env] +passthrough = [ + "RUSTFLAGS" +] + +[target.mips-unknown-linux-musl] +image = "rustembedded/cross:mips-unknown-linux-musl-0.2.1" + +[target.mipsel-unknown-linux-musl] +image = "rustembedded/cross:mipsel-unknown-linux-musl-0.2.1" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f3ed2c1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM node:19-bullseye as frontend + +COPY . /source +RUN cd /source/frontend && npm install && npm run build + +FROM rust:1.65-buster as backend + +COPY . /source +COPY --from=frontend /source/frontend/dist /source/frontend/dist +RUN cd /source && cargo build --release -p zlib-searcher + +FROM ubuntu:22.04 + +COPY --from=backend /source/target/release/zlib-searcher /zlib-searcher + +CMD ["/zlib-searcher", "run", "-b", "0.0.0.0:7070"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8ad8057 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 zlib-searcher's authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..66df8fa --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +NAME=zlib-searcher + +PREFIX ?= /usr/local/bin +TARGET ?= debug + +.PHONY: all frontend_preinstall frontend build clean +all: build + +frontend_preinstall: + pnpm -C frontend install + +frontend: + pnpm -C frontend run build + +build: frontend +ifeq (${TARGET}, release) + cargo build -p zlib-searcher --release +else + cargo build -p zlib-searcher +endif + +clean: + cargo clean + rm -rf release + +releases: + cd scripts && ./build_release.sh -a a diff --git a/README.md b/README.md new file mode 100644 index 0000000..9adaea9 --- /dev/null +++ b/README.md @@ -0,0 +1,131 @@ +# Millelibri project + +This is a fork from zlib-searcher project. Future goals: + +- improve search indexes (language) +- add books +- expand file types + +# zlib(libgen) searcher + +[![GitHub stars](https://img.shields.io/github/stars/zlib-searcher/zlib-searcher)](https://github.com/zlib-searcher/zlib-searcher/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/zlib-searcher/zlib-searcher)](https://github.com/zlib-searcher/zlib-searcher/network) +[![Release](https://img.shields.io/github/release/zlib-searcher/zlib-searcher)](https://github.com/zlib-searcher/zlib-searcher/releases) +[![GitHub issues](https://img.shields.io/github/issues/zlib-searcher/zlib-searcher)](https://github.com/zlib-searcher/zlib-searcher/issues) +[![GitHub license](https://img.shields.io/github/license/zlib-searcher/zlib-searcher)](https://github.com/zlib-searcher/zlib-searcher/blob/master/LICENSE) + +Search `zlib`/`libgen` index to get `ipfs_cid`. + +We don't save and provide files, we provide search. + +I hope everyone have a copy of the index locally, so that no need to rely on any centralized service. + +## Deploy with Docker + +``` +git clone https://github.com/zlib-searcher/zlib-searcher.git && cd zlib-searcher +wget https://github.com/zlib-searcher/zlib-searcher/releases/download/0.6.0/index_0.6.zip && unzip index_0.6.zip +docker-compose up -d +``` + +Now `zlib-searcher` it will listen to `0.0.0.0:7070`. + + +## Usage + +### 1. Download the pre-compiled binary from [Release](https://github.com/zlib-searcher/zlib-searcher/releases). + +Or you can compile by yourself. Refer to [Build from source](#build-from-source) for instructions. + +### 2. Download the `index` file that has been created. + +We will give the corresponding `index` download links for each version in the release page. + +Or you can make your own via `zlib-searcher index`. + +Extract the `index` folder to the same level as the program, it should look like the following: + +``` +zlib_searcher_dir +├── index +│   ├── some index files... +│   └── meta.json +└── zlib-searcher +``` + +### 3. Run `zlib-searcher run`, it will listen to `127.0.0.1:7070`. + +Access http://127.0.0.1:7070/ to use webui, or you can use the original api. + +#### original search api + +You can search by the following fields: + +- title +- author +- publisher +- extension +- language +- isbn +- zlib_id + +Examples: + +- `http://127.0.0.1:7070/search?limit=30&query=余华` +- `http://127.0.0.1:7070/search?limit=30&query=title:机器学习 extension:azw3 publisher:清华` +- `http://127.0.0.1:7070/search?limit=30&query=zlib_id:18557063` +- `http://127.0.0.1:7070/search?limit=30&query=isbn:9787302423287` + +## Build from source + +### 1. Build `zlib-searcher` + +First build frontend + +```bash +make frontend_preinstall frontend +``` + +Then build zlib-searcher + +```bash +TARGET=release make + +# move the compiled binary to the project root directory +mv target/release/zlib-searcher . +``` + +### 2. Build `index` + +Download `zlib_index_books.csv.zip` and `libgen_index_books.csv.zip` and extract the `csv` files to the project root directory. + +Then run `zlib-searcher index`. You may need to `rm index/*` first. + +If you have other csv files, you can run `zlib-searcher index -f *.csv` to index them. + +The finally folder structure should look like this: + +``` +zlib_searcher_dir // in the example above, it is project root directory. +├── index +│   ├── some index files... +│   └── meta.json +└── zlib-searcher +``` + +## Raw data + +We downloaded `libgen` sql and `zlib` sql and exported the necessary data from them. + +``` +id, title, author, publisher, extension, filesize, language, year, pages, isbn, ipfs_cid +``` + +This raw data is used to generate our `index`, you can download the raw data from here: + +- [zlib_index_books.csv.zip](https://github.com/zlib-searcher/zlib-searcher/releases/download/0.4.0/zlib_index_books.csv.zip) +- [libgen_index_books.csv.zip](https://github.com/zlib-searcher/zlib-searcher/releases/download/0.4.0/libgen_index_books.csv.zip) + +## License + +**zlib-searcher** © [zlib-searcher's authors](https://github.com/zlib-searcher/zlib-searcher/graphs/contributors), Released under the [MIT](./LICENSE) License. \ No newline at end of file diff --git a/crates/zlib-searcher-core/Cargo.toml b/crates/zlib-searcher-core/Cargo.toml new file mode 100644 index 0000000..e53cd95 --- /dev/null +++ b/crates/zlib-searcher-core/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "zlib-searcher-core" +version = "0.7.0" +edition.workspace = true +authors.workspace = true +description.workspace = true +homepage.workspace = true +repository.workspace = true +license.workspace = true + + +[dependencies] +anyhow = { workspace = true } +env_logger = { workspace = true } +log = { workspace = true } +serde = { workspace = true } +serde_with = { workspace = true } + +tantivy = { version = "0.18", default-features = false, features = ["mmap"] } +cang-jie = "0.14" +jieba-rs = { version = "0.6", features = ["default-dict"] } + +csv = "1.1" +indicatif = "0.17" +sysinfo = { version = "0.27", default-features = false } + + +[features] +default = ["best-size"] +best-size = ["tantivy/brotli-compression"] +best-speed = ["tantivy/lz4-compression"] diff --git a/crates/zlib-searcher-core/src/index.rs b/crates/zlib-searcher-core/src/index.rs new file mode 100644 index 0000000..45de5cd --- /dev/null +++ b/crates/zlib-searcher-core/src/index.rs @@ -0,0 +1,101 @@ +use crate::{Book, Searcher}; +use indicatif::{ProgressBar, ProgressIterator, ProgressStyle}; +use log::info; +use std::{ + fs::File, + io::{BufRead, BufReader}, + path::Path, +}; +use sysinfo::{System, SystemExt}; +use tantivy::doc; + +fn get_memory_arena_num_bytes() -> usize { + let sys = System::new_all(); + let available_memory = sys.available_memory() as usize; + let cpu_num = sys.cpus().len(); + info!("Your system has cpu {cpu_num} cores and {available_memory} Bytes available"); + + let chunk_size = 1024 * 1024 * 1024; // 1GB + let total_num_chunk = available_memory / chunk_size; + + let s = if total_num_chunk < 2 { + // <2G + available_memory - 100 * 1024 * 1024 // available_memory-100MB + } else { + // >2G + available_memory * (total_num_chunk - 1) // available_memory-1GB + }; + + let num_threads = std::cmp::min(cpu_num, 8); + let s = std::cmp::min(s, num_threads * 4293967294); + + info!("Using {num_threads} threads and {s} Bytes to do index"); + s +} + +impl Searcher { + pub fn index(&mut self, csv_file: impl AsRef) { + let mut writer = self.index.writer(get_memory_arena_num_bytes()).unwrap(); + + let file = File::open(&csv_file).unwrap(); + let reader = BufReader::new(file); + + let mut rdr = csv::ReaderBuilder::new() + .has_headers(false) + .from_reader(reader); + + let line_count = BufReader::new(File::open(&csv_file).unwrap()) + .lines() + .count(); + let style = ProgressStyle::default_bar() + .template("[{elapsed_precise}] {bar:40.cyan/blue} {pos:>7}/{len:7} {msg}") + .unwrap(); + let bar = ProgressBar::new(line_count as u64) + .with_message(format!("Indexing {}", csv_file.as_ref().to_str().unwrap())) + .with_style(style); + for result in rdr.deserialize::().progress_with(bar) { + match result { + Ok(item) => { + if let Err(err) = writer.add_document(doc!( + self.id => item.id, + self.title => item.title, + self.author => item.author, + self.publisher => item.publisher, + self.extension => item.extension, + self.filesize => item.filesize, + self.language => item.language, + self.year => item.year, + self.pages => item.pages, + self.isbn => item.isbn, + self.ipfs_cid => item.ipfs_cid, + )) { + println!("{err}"); + } + } + Err(err) => { + println!("{err}"); + } + } + } + + writer.commit().unwrap(); + writer.wait_merging_threads().expect("merge complete"); + } +} + +#[test] +fn test_csv_der() { + let file = File::open("zlib_index_books.csv").unwrap(); + let reader = BufReader::new(file); + + let mut rdr = csv::ReaderBuilder::new() + .has_headers(false) + .from_reader(reader); + for result in rdr.records() { + if let Err(err) = result { + println!("{err:?}"); + break; + } + } + println!("{:?}", rdr.position()); +} diff --git a/crates/zlib-searcher-core/src/lib.rs b/crates/zlib-searcher-core/src/lib.rs new file mode 100644 index 0000000..4fdaba3 --- /dev/null +++ b/crates/zlib-searcher-core/src/lib.rs @@ -0,0 +1,152 @@ +use std::path::Path; + +use serde::{Deserialize, Serialize}; +use serde_with::{serde_as, DefaultOnError, DefaultOnNull}; +use tantivy::{schema::*, store::Compressor, Index}; +use tokenizer::{get_tokenizer, META_DATA_TOKENIZER}; + +pub mod index; +pub mod search; +mod tokenizer; + +#[serde_as] +#[derive(Debug, Default, Serialize, Deserialize)] +pub struct Book { + pub id: u64, + + pub title: String, + #[serde_as(deserialize_as = "DefaultOnNull")] + pub author: String, + #[serde_as(deserialize_as = "DefaultOnNull")] + pub publisher: String, + #[serde_as(deserialize_as = "DefaultOnNull")] + pub extension: String, + #[serde_as(deserialize_as = "DefaultOnError")] + pub filesize: u64, + #[serde_as(deserialize_as = "DefaultOnNull")] + pub language: String, + #[serde_as(deserialize_as = "DefaultOnError")] + pub year: u64, + #[serde_as(deserialize_as = "DefaultOnError")] + pub pages: u64, + #[serde_as(deserialize_as = "DefaultOnNull")] + pub isbn: String, + #[serde_as(deserialize_as = "DefaultOnNull")] + pub ipfs_cid: String, +} + +impl From<(&Schema, Document)> for Book { + fn from((schema, doc): (&Schema, Document)) -> Self { + macro_rules! get_field_text { + ($field:expr) => { + doc.get_first(schema.get_field($field).unwrap()) + .unwrap() + .as_text() + .unwrap_or_default() + .to_owned() + }; + } + + macro_rules! get_field_u64 { + ($field:expr) => { + doc.get_first(schema.get_field($field).unwrap()) + .unwrap() + .as_u64() + .unwrap_or_default() + }; + } + + Book { + id: get_field_u64!("id"), + title: get_field_text!("title"), + author: get_field_text!("author"), + publisher: get_field_text!("publisher"), + extension: get_field_text!("extension"), + filesize: get_field_u64!("filesize"), + language: get_field_text!("language"), + year: get_field_u64!("year"), + pages: get_field_u64!("pages"), + isbn: get_field_text!("isbn"), + ipfs_cid: get_field_text!("ipfs_cid"), + } + } +} + +pub struct Searcher { + index: Index, + schema: Schema, + + // fields + id: Field, + title: Field, + author: Field, + publisher: Field, + extension: Field, + filesize: Field, + language: Field, + year: Field, + pages: Field, + isbn: Field, + ipfs_cid: Field, +} + +impl Searcher { + pub fn new(index_dir: impl AsRef) -> Self { + let text_indexing = TextFieldIndexing::default() + .set_tokenizer(META_DATA_TOKENIZER) + .set_index_option(IndexRecordOption::WithFreqsAndPositions); + let text_options = TextOptions::default() + .set_indexing_options(text_indexing) + .set_stored(); + + let mut schema_builder = Schema::builder(); + let id = schema_builder.add_u64_field("id", INDEXED | STORED); + let title = schema_builder.add_text_field("title", text_options.clone()); + let author = schema_builder.add_text_field("author", text_options.clone()); + let publisher = schema_builder.add_text_field("publisher", text_options); + let extension = schema_builder.add_text_field("extension", STRING | STORED); + let filesize = schema_builder.add_u64_field("filesize", STORED); + let language = schema_builder.add_text_field("language", TEXT | STORED); + let year = schema_builder.add_u64_field("year", STORED); + let pages = schema_builder.add_u64_field("pages", STORED); + let isbn = schema_builder.add_text_field("isbn", TEXT | STORED); + let ipfs_cid = schema_builder.add_text_field("ipfs_cid", STORED); + let schema = schema_builder.build(); + + // open or create index + let index_dir = index_dir.as_ref(); + let mut index = Index::open_in_dir(index_dir).unwrap_or_else(|_| { + std::fs::create_dir_all(index_dir).expect("create index directory"); + Index::create_in_dir(index_dir, schema.clone()).unwrap() + }); + #[cfg(feature = "best-size")] + { + index.settings_mut().docstore_compression = Compressor::Brotli; // size: 2.1G, size is best + } + #[cfg(feature = "best-speed")] + { + index.settings_mut().docstore_compression = Compressor::Lz4; // size: 3.1G, speed is best + } + + index + .tokenizers() + .register(META_DATA_TOKENIZER, get_tokenizer()); + _ = index.set_default_multithread_executor(); + + Self { + index, + schema, + id, + title, + author, + publisher, + extension, + filesize, + language, + year, + pages, + isbn, + ipfs_cid, + } + } +} diff --git a/crates/zlib-searcher-core/src/search.rs b/crates/zlib-searcher-core/src/search.rs new file mode 100644 index 0000000..45d6872 --- /dev/null +++ b/crates/zlib-searcher-core/src/search.rs @@ -0,0 +1,29 @@ +use crate::{Book, Searcher}; +use tantivy::{collector::TopDocs, query::QueryParser}; + +impl Searcher { + pub fn search(&self, query: &str, limit: usize) -> Vec { + let reader = self.index.reader().unwrap(); + let searcher = reader.searcher(); + + let mut query_parser = QueryParser::for_index( + &self.index, + vec![self.title, self.author, self.publisher, self.isbn], + ); + query_parser.set_conjunction_by_default(); + let query = query_parser.parse_query(query).unwrap(); + + let top_docs = searcher + .search(&query, &TopDocs::with_limit(limit)) + .unwrap(); + + top_docs + .iter() + .map(|d| { + let doc = searcher.doc(d.1).unwrap(); + let item: Book = (&self.schema, doc).into(); + item + }) + .collect() + } +} diff --git a/crates/zlib-searcher-core/src/tokenizer.rs b/crates/zlib-searcher-core/src/tokenizer.rs new file mode 100644 index 0000000..fa8db41 --- /dev/null +++ b/crates/zlib-searcher-core/src/tokenizer.rs @@ -0,0 +1,18 @@ +use std::sync::Arc; + +use cang_jie::{CangJieTokenizer, TokenizerOption}; +use jieba_rs::Jieba; +use tantivy::tokenizer::{AsciiFoldingFilter, LowerCaser, RemoveLongFilter, TextAnalyzer}; + +pub const META_DATA_TOKENIZER: &str = "meta_data_tokenizer"; + +pub fn get_tokenizer() -> TextAnalyzer { + let cangjie = CangJieTokenizer { + worker: Arc::new(Jieba::new()), + option: TokenizerOption::ForSearch { hmm: false }, + }; + TextAnalyzer::from(cangjie) + .filter(RemoveLongFilter::limit(20)) + .filter(AsciiFoldingFilter) + .filter(LowerCaser) +} diff --git a/crates/zlib-searcher-desktop/.gitignore b/crates/zlib-searcher-desktop/.gitignore new file mode 100644 index 0000000..90465d2 --- /dev/null +++ b/crates/zlib-searcher-desktop/.gitignore @@ -0,0 +1,4 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ +/index/ diff --git a/crates/zlib-searcher-desktop/Cargo.toml b/crates/zlib-searcher-desktop/Cargo.toml new file mode 100644 index 0000000..a720ee8 --- /dev/null +++ b/crates/zlib-searcher-desktop/Cargo.toml @@ -0,0 +1,38 @@ +[package] +name = "zlib-searcher-desktop" +version = "0.7.0" +edition = "2021" +authors = ["Wybxc ", "zu1k "] +description = "search z-library index." +homepage = "https://github.com/zlib-searcher/zlib-searcher" +repository = "https://github.com/zlib-searcher/zlib-searcher" +license = "MIT" + + +[build-dependencies] +tauri-build = { version = "1.2.1", features = [] } + +[dependencies] +zlib-searcher-core = { workspace = true } + +anyhow = { workspace = true } +serde = { workspace = true } +env_logger = { workspace = true } +log = { workspace = true } + +serde_json = "1.0" +tauri = { version = "1.2.1", features = ["dialog-open", "shell-open"] } + +tokio = { version = "1", features = ["sync", "parking_lot"] } + +confy = "0.5" +dunce = "1.0" + + +[features] +# by default Tauri runs in production mode +# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL +default = ["custom-protocol"] +# this feature is used for production builds where `devPath` points to the filesystem +# DO NOT remove this +custom-protocol = ["tauri/custom-protocol"] diff --git a/crates/zlib-searcher-desktop/build.rs b/crates/zlib-searcher-desktop/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/crates/zlib-searcher-desktop/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/crates/zlib-searcher-desktop/icons/128x128.png b/crates/zlib-searcher-desktop/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c01119932d6237ce12cde812410cdb2f5ef383 GIT binary patch literal 3474 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 F{ud65jWGZK literal 0 HcmV?d00001 diff --git a/crates/zlib-searcher-desktop/icons/128x128@2x.png b/crates/zlib-searcher-desktop/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0e913ec39dde412c67b3dd11eed8c2c54b69c885 GIT binary patch literal 5863 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 jVt9ksII@t>3ypsO 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 literal 0 HcmV?d00001 diff --git a/crates/zlib-searcher-desktop/icons/Square284x284Logo.png b/crates/zlib-searcher-desktop/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5bd5f1f06d880c66ff06b26c827382efb1afba27 GIT binary patch literal 10285 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 Bga!Zr literal 0 HcmV?d00001 diff --git a/crates/zlib-searcher-desktop/icons/Square310x310Logo.png b/crates/zlib-searcher-desktop/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b703bf8306ad1de2c571f85f32b74ce9e3aee1f4 GIT binary patch literal 12332 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 rFS)v%=TFBtFCWzZi|=cY!^ literal 0 HcmV?d00001 diff --git a/crates/zlib-searcher-desktop/icons/Square44x44Logo.png b/crates/zlib-searcher-desktop/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0772d3490f990c1650e43f9c7c6e37403ce6fe46 GIT binary patch literal 1720 zcmV;p21ogcP)2PWCh?%dA*{J-D% z<~yfEN(sSilHwoy5ZnKaAENde{t@_H1knl&;2Ee&a!(M7wc}eMasC`6e*FXN*mkc2 z>YTd9?ZMI-TbjelJ>O9=*#N1|!;tBJC8rCY&Fj8|@B{mS-qSnhp8rm;Wa?Ho)Y8@= z-Mtsmy$3*AAt1VUJnO!+C=ksCz3C`~)*k}GlYUebK2Dhh&*C(5^F>H?9R`tzqEPUT zyUb2+!aF7{yfg9-80!y$(e!!F?Zxq3tYG4Y(sF;QS&q9s`1A1GD_b^D!zt z;eumC@bc$`w3Wa3r@3!}3_$PQ?{3Y`xn9)fxhZYU=lg32wd?~{ z*;6dv1q9FF)PVH0{gA%C4?}BU_=V?&x~8O|=i#*EF+ZK}TVSkv3ykK^a)!AmiM)cP7h2(hsB);wY5Wlkz3Rh4oR*v$ zb9`Hh?^eWQ5Aao|y;qN$O~f3*N-S|1OGL$F=ZC}^e1Vk4X{p;3-%@?$wcn7)#yvnH z-7rnGD;PhN5F&=g5*reu7h2b?oa7*MAsm7yO69av)zYCvBdCntnnX&LJ@N4JNc1AA zWO&e_*_fz(JZaUQxU`Ia+qN=&C&>ua9j49*S$?6}NK>XW(@v6$x7$-c^__=_%vha& zfxDYAcr;2Zj(%Pm4DpWJI&5p4l-nDVpy_C}P2GDa2^wHe2w^&Un~_&Xx}bfu7gA0} zXOsaW%$lKbHvQ`M3NFABKu&g7!sVf`+|itno9axY2Hm!a8xBI2D%5k0FfS$dP4vsl zD0VbGPB(fw89Tom`G5VTp!iRiPjp}Tx-gm&67}7X%Rq7 zgeV>p#i2h<<~tv! zrjsH{C~`V=%|e@2d>FlbgiEj`DT?oWoW_w;9gi8R11haT@o7j~Jb&IOScq?>FdwI3 zpVLxm@sewTf_&eDdS~k~xCpBhLDT^B>YDTQ;(u|#CjB2oU#kNm3)<5%h zm@kVPqp_QZ6A#9X4n;7V>aHyWS$kEMF^HE z{6g3~3Uz{@J~a)mwh>%o7?~=MZmR3cwI`hY4fnr*EEvl6vTV48F z_t0zSx(44LPi3kjy5=s{DaVTuJP)VGH`YJ>4vLOvUG)ZCA%Kdk{-I8LO%GdtfZd)0PQgy=oLW zeXm$f0~b8aZA=_Qsx+9k9sTUpfrA%%Vh0>yvULq#q2m^;S+V{2rbTjEHo^1p9h*o; zPj_@3tEsvW-Wq-C_3Ci6!{-#QVa`(DoPqu8c6J)f;e#vd9;boSCjSCDm;#4C>Yu9s O0000VY#%K;KKf&&d{i!+ z&0fjOJ%Oe96nf?HZFr^ZE0p7-0mnz@w(FxZ;ADFx){S0y88Wlqsi0RX<)hcoN5|1e zBU$Y>ZI~5@V|j&H2j{v5sj=s=+kYGzqGAf!+iQF;l;tCAN=8B-0s82-5P0BMK!eMr z`ltvvIbKPRe-F~(U*ip8r#D`yh>w=gMZZKR{oV;`$qpa~WEpUBz4Ap&A?&X#f35~z zsgRGF2C=Fg2esq%VtkYj4q=!)lvrN5-|nx>KH~$gYzLD0u8-tBe@7o31G#0G+gF#k zxyTKU^TE`IAbG2or6-P2ai{DnuWa8(78JGnchJyt0`0v7E`W03SRY8}jE;<7x$>F4 zbDsqTBhsKa7{z7c=L9M`ge)uup^6M<0wRf(+xyy{Iuwu_61bOSrx?wNJ-a4yGw|A| z*7=A3?}J)@ zKC>#pEBzt*(4I7V@<1H+gmel91%?SmcTf~@3kn4)D-ch`_>JfoMB+2(Rg*L*AI{)T z1}>E)ZwW>KM8(V$5QgRhG#pj=V;xC$c>fv+1`PsuTO%UL&yYk45%DFdV45jDv@pg; zmm?(2bP}K{CJ_|n>|^`MN8Cve zY#^>MKE4v+gV9@LMUPWeQXqh^glf0y;}z9;TZh!BGDu_yd3B_jT$>K^uO5iAkGG|X zRr)cQ2&sLiM|g!&(V3^PkXT^-OJgvbT%h1+t&a+MMS0gN+v|92`-ZU=J}TZTP+K@&`luRS@dQpaeN;`a zcm}7^KJvmVp2MkxkG%3q&ES;dBd@(ub2vr$2ygxcB(J^V3pj;+6yRUpzs4Tjmn4&` z6MP^VCNYn^;ww1$d~|krHyMmx&ongtS79vZnO6!eH6I7Ie1uPQgIJK(GA2=|jO&tT zUhy@Ybs^c(CRX|8J{fQH)f0pbB>os2+DVUB>Tv3C>Tv3C>Tv3C>PsC?9Znri9gaWY z5JF61-{ZUwX658x2+2QBIWL@~ZnTJD1BqI50(bJX9Cs)<5FmzQ4W>8Zn32VS7lK2a zDVB`^C3Uo?>nEyAm)6pTO2imA@#Y;T4;GG4G7OlMGUCvrwO>)BK+G*g@=ll(2U$&J znl21ap6H)g{IM8s(GT}6Q56%4|j&{bn^%N1GtF1A%Zg{Xn;mvwUu2iHRL zJ?%$-aj@;kpQ-hh;N~fBh2V&hIGH-pG8v73@*jhD`rclM9StZF$P~%*%1yJaHXI@* zN@D2iMuJLIW*^=CMBkx(UwctgnpW3?$!)rA!AaWUDG83sN$ZfVO)Px#;>gtLXgqZw zsLCL=JCJ+|hcHSg%a|#daRWMzTkKhQe7>pT;ZYE(@L-(~q9bZ4z6?)_i`=T=iBS}0? zEO_!Iy%>_6YV)yV*ZHBzQ^V8uo{{m1ohnHpiprY2T}e1OUYQeKd9dv(e-V{QWPvpa zP`oo*%&|&+^ug`F5s<8D|D!Ya4xb;oduC>N?NLpUt6tCg9c;z>aSK{`0VulfF zmUPT=p9?vC14?Y~z<-(RTo7YnBvUhxc0PO4dN1*bEn^3Tz!pIv_2D*dWk>E9Yo^}OOa9Jf@P zT}j+`Vd(Cuk(ql>XO(`-+y&rN-77VN<5v2Ir=v&S7@q2zUS9ij&?)^Km~5CD*?^;2 zDVXJzS@g;a)$mG9;kcE4lZnzl^W49~GotjjG^mtgXPfP6zRKHM|3^$SNOUtUyka_D zIaw{Q_yUew>0eHyTQG`F4ouEJhj5^C_l;C*)0>)Z$j}+;`J3aFTh;W6ui#`sQr1%~ zvbgfd>o*q9B+TNF#rGn literal 0 HcmV?d00001 diff --git a/crates/zlib-searcher-desktop/icons/Square89x89Logo.png b/crates/zlib-searcher-desktop/icons/Square89x89Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8713a0ada57de7259017d13245fb4b8c5abfa16a GIT binary patch literal 2829 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 FV1g5bYghmP literal 0 HcmV?d00001 diff --git a/crates/zlib-searcher-desktop/icons/icon.icns b/crates/zlib-searcher-desktop/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..0c3afaa635789dc6cb791bd126a67715481ee685 GIT binary patch literal 91232 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 ^14 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 literal 0 HcmV?d00001 diff --git a/crates/zlib-searcher-desktop/icons/icon.png b/crates/zlib-searcher-desktop/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..94c0b04f95ac094eda4c5c73d0468729d4a548c5 GIT binary patch literal 6382 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 L6Luj~wDZ3J%xF~+ literal 0 HcmV?d00001 diff --git a/crates/zlib-searcher-desktop/src/main.rs b/crates/zlib-searcher-desktop/src/main.rs new file mode 100644 index 0000000..eb92072 --- /dev/null +++ b/crates/zlib-searcher-desktop/src/main.rs @@ -0,0 +1,121 @@ +#![cfg_attr( + all(not(debug_assertions), target_os = "windows"), + windows_subsystem = "windows" +)] + +use log::info; +use std::{error::Error, path::PathBuf}; +use zlib_searcher_core::{Book, Searcher}; + +const VERSION: &str = env!("CARGO_PKG_VERSION"); + +use serde::{Deserialize, Serialize}; +use tauri::State; +use tokio::sync::Mutex; + +#[derive(Clone, Debug, Serialize, Deserialize)] +struct AppConfig { + pub index_dir: PathBuf, + pub ipfs_gateways: Vec, +} + +fn get_dir(name: &str) -> Option { + let dir = std::env::current_exe().ok()?.parent()?.join(name); + std::fs::create_dir_all(&dir).ok()?; + let dir = dunce::canonicalize(dir).ok()?; + Some(dir) +} + +impl Default for AppConfig { + fn default() -> Self { + let index_dir = get_dir("index").unwrap_or_else(|| PathBuf::from("index")); + Self { + index_dir, + ipfs_gateways: vec![], + } + } +} + +impl AppConfig { + const APP_NAME: &'static str = "zlib-searcher-desktop"; + + pub fn load() -> Result> { + let config = confy::load(Self::APP_NAME, None)?; + Ok(config) + } + + pub fn save(&self) -> Result<(), Box> { + confy::store(Self::APP_NAME, None, self)?; + Ok(()) + } + + pub fn configuration_file_path() -> Result> { + Ok(confy::get_configuration_file_path(Self::APP_NAME, None)?) + } +} + +#[tauri::command] +async fn get_config(config: State<'_, Mutex>) -> Result { + Ok(config.lock().await.clone()) +} + +#[tauri::command] +async fn set_config( + new_config: AppConfig, + config: State<'_, Mutex>, + searcher: tauri::State<'_, Mutex>, +) -> Result<(), String> { + let mut config = config.lock().await; + + // reload searcher if index_dir changed + if config.index_dir != new_config.index_dir { + info!("index_dir changed, reloading searcher"); + let mut searcher = searcher.lock().await; + *searcher = Searcher::new(new_config.index_dir.clone()); + } + + *config = new_config; + config.save().map_err(|e| e.to_string())?; + + info!("Config saved: {:?}", config); + Ok(()) +} + +#[tauri::command] +async fn search( + searcher: tauri::State<'_, Mutex>, + query: String, + limit: usize, +) -> Result, ()> { + info!("Search: {}", query); + Ok(searcher.lock().await.search(&query, limit)) +} + +#[tauri::command] +fn version() -> String { + VERSION.to_string() +} + +fn main() -> Result<(), Box> { + env_logger::init(); + + let config = AppConfig::load()?; + let searcher = Mutex::new(Searcher::new(&config.index_dir)); + let config = Mutex::new(config); + + info!( + "load config from {:?}", + AppConfig::configuration_file_path()? + ); + + tauri::Builder::default() + .manage(config) + .manage(searcher) + .invoke_handler(tauri::generate_handler![ + version, search, get_config, set_config + ]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); + + Ok(()) +} diff --git a/crates/zlib-searcher-desktop/tauri.conf.json b/crates/zlib-searcher-desktop/tauri.conf.json new file mode 100644 index 0000000..63c8970 --- /dev/null +++ b/crates/zlib-searcher-desktop/tauri.conf.json @@ -0,0 +1,71 @@ +{ + "build": { + "beforeBuildCommand": "cd ../frontend && pnpm run build", + "beforeDevCommand": "cd ../frontend && pnpm run dev", + "devPath": "http://localhost:5173/", + "distDir": "../../frontend/dist" + }, + "package": { + "productName": "zLib Searcher", + "version": "0.1.0" + }, + "tauri": { + "allowlist": { + "all": false, + "shell": { + "open": true + }, + "dialog": { + "open": true + } + }, + "bundle": { + "active": true, + "category": "DeveloperTool", + "copyright": "", + "deb": { + "depends": [] + }, + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "identifier": "com.github.zlib-searcher", + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [], + "shortDescription": "", + "targets": "all", + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + } + }, + "security": { + "csp": null + }, + "updater": { + "active": false + }, + "windows": [ + { + "fullscreen": false, + "height": 900, + "resizable": true, + "title": "zLib Searcher", + "width": 1500 + } + ] + } +} \ No newline at end of file diff --git a/crates/zlib-searcher/Cargo.toml b/crates/zlib-searcher/Cargo.toml new file mode 100644 index 0000000..5df2893 --- /dev/null +++ b/crates/zlib-searcher/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "zlib-searcher" +version = "0.7.0" +edition.workspace = true +authors.workspace = true +description.workspace = true +homepage.workspace = true +repository.workspace = true +license.workspace = true +default-run = "zlib-searcher" + +[dependencies] +zlib-searcher-core = { workspace = true } + +anyhow = { workspace = true } +env_logger = { workspace = true } +log = { workspace = true } +serde = { workspace = true } +serde_with = { workspace = true } + +actix-web = "4" +actix-web-static-files = "4.0" +static-files = "0.2" + +csv = "1.1" +clap = { version = "4", features = ["derive"] } + +[build-dependencies] +static-files = "0.2" + +[features] +default = ["best-size"] +best-size = ["zlib-searcher-core/best-size"] +best-speed = ["zlib-searcher-core/best-speed"] diff --git a/crates/zlib-searcher/build.rs b/crates/zlib-searcher/build.rs new file mode 100644 index 0000000..99e47a1 --- /dev/null +++ b/crates/zlib-searcher/build.rs @@ -0,0 +1,6 @@ +use static_files::resource_dir; + +fn main() -> std::io::Result<()> { + println!("cargo:rerun-if-changed=../../frontend/dist"); + resource_dir("../../frontend/dist").build() +} diff --git a/crates/zlib-searcher/src/bin/filter_chinese_books.rs b/crates/zlib-searcher/src/bin/filter_chinese_books.rs new file mode 100644 index 0000000..8fe2a45 --- /dev/null +++ b/crates/zlib-searcher/src/bin/filter_chinese_books.rs @@ -0,0 +1,61 @@ +use std::{fs::File, io::BufReader}; +use zlib_searcher_core::Book; + +fn main() { + let mut writer = csv::Writer::from_path("zlib_libgen_chinese_books.csv").unwrap(); + + let mut filter_csv = |path: &str| { + let file = File::open(path).unwrap(); + let reader = BufReader::new(file); + + let mut rdr = csv::ReaderBuilder::new() + .has_headers(false) + .from_reader(reader); + for result in rdr.deserialize::() { + match result { + Ok(ref book) => { + if is_chinese_title(book) { + if let Err(err) = writer.serialize(book) { + println!("err: {err}"); + } + } + } + Err(err) => { + println!("{err}"); + } + } + } + println!("{:?}", rdr.position()); + }; + + filter_csv("zlib_index_books.csv"); + filter_csv("libgen_index_books.csv"); +} + +fn is_chinese_title(book: &Book) -> bool { + let chinese_char_count = book.title.matches(is_chinese_char).count(); + chinese_char_count as f32 / book.title.len() as f32 > 0.3 +} + +#[inline(always)] +const fn is_chinese_char(c: char) -> bool { + matches!(c as u32, + 0x4E00..=0x9FA5 | + 0x9FA6..=0x9FFF | + 0x3400..=0x4DB5 | + 0x20000..=0x2A6D6 | + 0x2A700..=0x2B734 | + 0x2B740..=0x2B81D | + 0x2F00..=0x2FD5 | + 0x2E80..=0x2EF3 | + 0xF900..=0xFAD9 | + 0x2F800..=0x2FA1D | + 0xE815..=0xE86F | + 0xE400..=0xE5E8 | + 0xE600..=0xE6CF | + 0x31C0..=0x31E3 | + 0x2FF0..=0x2FFB | + 0x3105..=0x3120 | + 0x31A0..=0x31BA + ) +} diff --git a/crates/zlib-searcher/src/main.rs b/crates/zlib-searcher/src/main.rs new file mode 100644 index 0000000..6aaec00 --- /dev/null +++ b/crates/zlib-searcher/src/main.rs @@ -0,0 +1,141 @@ +use actix_web::{ + get, http::header, middleware::Logger, web, App, HttpResponse, HttpServer, Responder, +}; +use actix_web_static_files::ResourceFiles; +use clap::Parser; +use log::{info, LevelFilter}; +use serde::{Deserialize, Serialize}; +use std::{path::PathBuf, sync::Arc}; +use zlib_searcher_core::{Book, Searcher}; + +include!(concat!(env!("OUT_DIR"), "/generated.rs")); + +#[derive(Clone)] +struct AppState { + searcher: Arc, +} + +impl AppState { + pub fn init(index_dir: &str) -> Self { + info!("AppState init!"); + AppState { + searcher: Arc::new(Searcher::new(index_dir)), + } + } +} + +fn default_limit() -> usize { + 30 +} + +#[derive(Deserialize)] +struct SearchQuery { + query: String, + #[serde(default = "default_limit")] + limit: usize, +} + +#[derive(Serialize)] +struct SearchResult { + books: Vec, +} + +#[get("/search")] +async fn search(query: web::Query, state: web::Data) -> impl Responder { + let books = state.searcher.search(&query.query, query.limit); + let result = SearchResult { books }; + + return HttpResponse::Ok() + .insert_header(header::ContentType::json()) + .insert_header((header::ACCESS_CONTROL_ALLOW_ORIGIN, "*")) + .json(result); +} + +#[derive(Parser)] +#[clap(author, version, about, long_about)] +struct AppOpts { + #[clap(subcommand)] + subcmd: SubCommand, +} + +#[derive(Parser)] +enum SubCommand { + /// run search webserver + Run(Run), + /// index the raw data + Index(Index), +} + +#[derive(Parser)] +struct Run { + #[clap( + short, + long, + default_value = "127.0.0.1:7070", + help = "webserver bind address" + )] + bind: String, +} + +#[derive(Parser)] +struct Index { + #[clap(short, long, num_args=1.., help = "specify csv file to be indexed")] + file: Vec, +} + +fn main() { + env_logger::builder().filter_level(LevelFilter::Info).init(); + + let args = AppOpts::parse(); + match args.subcmd { + SubCommand::Run(opts) => run(opts).unwrap(), + SubCommand::Index(opts) => index(opts), + } +} + +#[actix_web::main] +async fn run(opts: Run) -> std::io::Result<()> { + info!("zlib-searcher webserver started!"); + + let index_dir = std::env::current_exe() + .unwrap() + .parent() + .unwrap() + .join("index") + .to_str() + .unwrap() + .to_string(); + let app_state = AppState::init(&index_dir); + + HttpServer::new(move || { + let generated = generate(); + App::new() + .wrap(Logger::default()) + .app_data(web::Data::new(app_state.clone())) + .service(search) + .service(ResourceFiles::new("/", generated)) + }) + .bind(opts.bind)? + .run() + .await +} + +fn index(opts: Index) { + let index_dir = std::env::current_exe() + .unwrap() + .parent() + .unwrap() + .join("index") + .to_str() + .unwrap() + .to_string(); + let mut searcher = Searcher::new(&index_dir); + + if opts.file.is_empty() { + vec!["zlib_index_books.csv", "libgen_index_books.csv"] + .iter() + .for_each(|file| searcher.index(file)); + } else { + opts.file.iter().for_each(|file| searcher.index(file)); + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..7ec4ae4 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3' + +services: + zlib: + image: lamacchinadesiderante/millelibri:latest + + # image: millelibri:v0.2 + + # image: millelibri + + # build: + # context: . + # dockerfile: ./Dockerfile + + restart: always + + ports: + - "7070:7070" + + volumes: + - ./index:/index \ No newline at end of file diff --git a/experiments/multokenizer_by_hanlp.py b/experiments/multokenizer_by_hanlp.py new file mode 100644 index 0000000..4079be1 --- /dev/null +++ b/experiments/multokenizer_by_hanlp.py @@ -0,0 +1,54 @@ +import time +import pandas as pd +import hanlp +import torch +import random +import os +import numpy as np +from tqdm import tqdm + + +def seed_everything(seed=2022): + ''' + 设置整个开发环境的seed + ''' + random.seed(seed) + os.environ['PYTHONHASHSEED'] = str(seed) + np.random.seed(seed) + torch.manual_seed(seed) + torch.cuda.manual_seed(seed) + torch.cuda.manual_seed_all(seed) + # some cudnn methods can be random even after fixing the seed + # unless you tell it to be deterministic + torch.backends.cudnn.deterministic = True + torch.backends.cudnn.benchmark = False + +seed_everything() + + +""" +专业级:本地模型 +""" +def Pro_tokenize(): + mul_tokenizer = hanlp.load(hanlp.pretrained.tok.UD_TOK_MMINILMV2L12) + df_zlib = pd.read_csv('zlib_index_books.csv', header=None) + df_title = df_zlib.iloc[:, :2].astype(str) + df_title.columns = ["id", "title"] + df_title["title_token"] = None + print("分词中……\n") + # df_title = df_title.head() + total = len(df_title) + for i in tqdm(range(total)): + try: + title = df_title["title"][i] + batch_token_lis = mul_tokenizer(title) + df_title["title_token"][i] = batch_token_lis + except Exception as e: + print(e) + print(len(df_title)) + df_title.to_csv("title_token.csv") + print("分词结果保存完成……") + + +if __name__ == '__main__': + Pro_tokenize() diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..dabb29d --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,4 @@ +*.log +node_modules +dist +dist-ssr \ No newline at end of file diff --git a/frontend/.env.development b/frontend/.env.development new file mode 100644 index 0000000..2137c05 --- /dev/null +++ b/frontend/.env.development @@ -0,0 +1,2 @@ +# .env.production +VITE_BACKEND_BASE_API = 'http://127.0.0.1:7070/' \ No newline at end of file diff --git a/frontend/.env.production b/frontend/.env.production new file mode 100644 index 0000000..7947c31 --- /dev/null +++ b/frontend/.env.production @@ -0,0 +1,2 @@ +# .env.production +VITE_BACKEND_BASE_API = '' \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..41282fd --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +components.d.ts \ No newline at end of file diff --git a/frontend/.prettierrc.yaml b/frontend/.prettierrc.yaml new file mode 100644 index 0000000..ac13bf8 --- /dev/null +++ b/frontend/.prettierrc.yaml @@ -0,0 +1,4 @@ +singleQuote: true +semi: true +printWidth: 100 +trailingComma: none \ No newline at end of file diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..41ff789 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,12 @@ + + + + + + Millelibri / zlib searcher + + +
+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..04b2d95 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,5490 @@ +{ + "name": "frontend", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "dev": true + }, + "@babel/core": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz", + "integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.7", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz", + "integrity": "sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.20.7" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/runtime": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz", + "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@chakra-ui/accordion": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.1.5.tgz", + "integrity": "sha512-mxpcbnrbraYGNu/tmYC/Y0BNqM8jGXYygl4wzttlMSm8pXrhXApyv0bNBsU6zbBWqeyQE64R14N1ONl4i8CMkQ==", + "requires": { + "@chakra-ui/descendant": "3.0.12", + "@chakra-ui/icon": "3.0.14", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-use-controllable-state": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4", + "@chakra-ui/transition": "2.0.13" + } + }, + "@chakra-ui/alert": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.0.14.tgz", + "integrity": "sha512-dG+tgfOT9LVsx+scvXdKBj3D8XRnZ1pTul4G6TSRK6A4FifSwSTvNnmjvNpoH0Vh1dSMRI0zxpV8PAfs9dS9KA==", + "requires": { + "@chakra-ui/icon": "3.0.14", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4", + "@chakra-ui/spinner": "2.0.12" + } + }, + "@chakra-ui/anatomy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-2.1.1.tgz", + "integrity": "sha512-LUHAoqJAgxAqmyckG5bUpBrfEo1FleEyY+1A8hkWciy58gZ+h3GoY9oBpHcdo7XdHPpy3G+3hieK/7i9NLwxAw==" + }, + "@chakra-ui/avatar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.2.2.tgz", + "integrity": "sha512-wFDK1wT5kQxkpCAX6mPhx9kh0Pi2RnfN32bCRFio4Mmiq0ltfSEWi3/XxlawDr31Ch3T3qbtPVLqn355B4U9ZA==", + "requires": { + "@chakra-ui/image": "2.0.13", + "@chakra-ui/react-children-utils": "2.0.5", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/breadcrumb": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.1.2.tgz", + "integrity": "sha512-NbWg9YKCxo6nbwORpfFkD6bIDvcDdCPPLx+tqIqVwoplpaSPeFV5lzPy4Lg/MS6x6Ko6a/GItGpDQGPuey+iWA==", + "requires": { + "@chakra-ui/react-children-utils": "2.0.5", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/breakpoint-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/breakpoint-utils/-/breakpoint-utils-2.0.6.tgz", + "integrity": "sha512-aigYoZdHtV+PNFr/RTHjbIYK49PsMLvwtpZsowKWJ6xDyPKHtfhwZ2VOBTUyaQf4mXgaB9MNOF46zOTJN8RfLQ==", + "requires": { + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/button": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.0.14.tgz", + "integrity": "sha512-XdP1sB67N2DujDXPWyyXMTjW7frcnbf3yN/3F/asQClZX7ppw8Y36a6uZ94+6Cv67BPc0CokN+m3oQZhINJ+vw==", + "requires": { + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4", + "@chakra-ui/spinner": "2.0.12" + } + }, + "@chakra-ui/card": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/card/-/card-2.1.4.tgz", + "integrity": "sha512-MO8tjFBX2OZJt+NOthDoKcGRMQW/43NePze8Sju7zXqv1ocq7VB0DvToPLkopgeKaPx6AyYhzRXQjYXLcjYgQw==", + "requires": { + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/checkbox": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.2.7.tgz", + "integrity": "sha512-9p0U5xRE4OL5AbhZjV6Gw0iECLz8yd0cP43FabyBY8UfqrJPpAT22jxRmQ6Tv+HKbvAmgXOtxyIdwYTb1s1D+g==", + "requires": { + "@chakra-ui/form-control": "2.0.14", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-callback-ref": "2.0.6", + "@chakra-ui/react-use-controllable-state": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/react-use-safe-layout-effect": "2.0.4", + "@chakra-ui/react-use-update-effect": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4", + "@chakra-ui/visually-hidden": "2.0.14", + "@zag-js/focus-visible": "0.2.1" + } + }, + "@chakra-ui/clickable": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-2.0.12.tgz", + "integrity": "sha512-boZwlHZ1BdsC4P/1r+SRbKRMG+/UzOgc16Fmhl2QkZquVF6jS6QtJBS1/fL+1N8oijz87nuhBoetNECnfWYN+w==", + "requires": { + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/close-button": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-2.0.14.tgz", + "integrity": "sha512-C/MR6EH+MUC49QCtKdoeAq/GYvs4CEvl0xjwri6qFYd8+UEkXPfl33Idw0c3kPbGe+aTrh4vMAYrRNwc4BveIg==", + "requires": { + "@chakra-ui/icon": "3.0.14" + } + }, + "@chakra-ui/color-mode": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-2.1.11.tgz", + "integrity": "sha512-556wqI/MohJAqzP9AD+YsKGi982TzrsAaRGr7RCY5fChNe/wHraLPjMPNITPjjDQWiUmZYkaEos78/4u3qOdpA==", + "requires": { + "@chakra-ui/react-use-safe-layout-effect": "2.0.4" + } + }, + "@chakra-ui/control-box": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-2.0.12.tgz", + "integrity": "sha512-SR2rG917ttCAda9Kh0eqr0X2AWQii2iRrgTks3fbDGi7seV7m3tkrpK2hr7rPz5zX0UoJi6CFO04Q6cSclFylw==" + }, + "@chakra-ui/counter": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-2.0.12.tgz", + "integrity": "sha512-LselA3J2OvO1GxXo9pTvFEDEYXaSkelEGAOasUfME2ckQnznMOI96x7cLAujyMuhTAuGnz0n4mxAOp/iMHKL4Q==", + "requires": { + "@chakra-ui/number-utils": "2.0.6", + "@chakra-ui/react-use-callback-ref": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/css-reset": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.0.11.tgz", + "integrity": "sha512-TnydPIMYaQX8kJ8cKgbXfHaBKLr9wCqZS+UnqUxUo3YzMNRjOUPg4DWVO4n4s+GwuZy860DGsBoJaheLqrilVg==" + }, + "@chakra-ui/descendant": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.0.12.tgz", + "integrity": "sha512-jx37SI6PYKMSgn+46Ou8LGa2nbEiBRmU4rzz+0/klVpCSd4yQLcm1c4nPv0D7SoQrhq/cQq4tUPfC2U4tXeovQ==", + "requires": { + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-use-merge-refs": "2.0.6" + } + }, + "@chakra-ui/dom-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.0.5.tgz", + "integrity": "sha512-cZsaji3ntRcJOqrc9xyS2JSGXr/VLPFTTvShLApxg5dCDWvrGrCJGQ+iSP6R2FGHo2D6cpAgMdPO9O65KUyZBA==" + }, + "@chakra-ui/editable": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-2.0.17.tgz", + "integrity": "sha512-1Yy2rfWPtRg/1qx2yv9ovTwrpuFHFLEB8LyizM44yvKnSEqTb2K6CTYhVHQBzI92bQUbGsorSflLvFFUzB55XQ==", + "requires": { + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-callback-ref": "2.0.6", + "@chakra-ui/react-use-controllable-state": "2.0.7", + "@chakra-ui/react-use-focus-on-pointer-down": "2.0.5", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/react-use-safe-layout-effect": "2.0.4", + "@chakra-ui/react-use-update-effect": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/event-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/event-utils/-/event-utils-2.0.7.tgz", + "integrity": "sha512-OBEIx7CIK5k3nYUGnh2WDhth1oGe26fwXMVQjVM9+2LBUYw2Y1Ufac4o7lMiD1CnyUP+Q70yjMV/mFacvP1EMw==" + }, + "@chakra-ui/focus-lock": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.0.14.tgz", + "integrity": "sha512-p4aieMBm4CG+uhfJ/W+2p3koGfPsHzdzSu2A8AYM5kGZ3rCx6IM97XYSneConw5WH7mSQR4lXzuEDjAyDozXFg==", + "requires": { + "@chakra-ui/dom-utils": "2.0.5", + "react-focus-lock": "^2.9.1" + } + }, + "@chakra-ui/form-control": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.0.14.tgz", + "integrity": "sha512-HPT65tNxQJ6E3AqhREa90aJOdJ1TUj+Y37fLqhIUOMrFX2eLjthE81XswjrUGbcaQk0DuCqMLMBFjeUNxo2Qhw==", + "requires": { + "@chakra-ui/icon": "3.0.14", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/hooks": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.1.4.tgz", + "integrity": "sha512-FOsBBMK2zl7qdBrBgmkMNMkkbkKzM0RwYoK7oV+ldUG1f7pvjPBmzRFZ3wiIh5FlbffZvlLAH22D3a2xldWDZw==", + "requires": { + "@chakra-ui/react-utils": "2.0.11", + "@chakra-ui/utils": "2.0.14", + "compute-scroll-into-view": "1.0.14", + "copy-to-clipboard": "3.3.1" + } + }, + "@chakra-ui/icon": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-3.0.14.tgz", + "integrity": "sha512-ksNDXSByoLFNec/7UANtiy/lHt2NO3/Xe5KIde3zh70yY1QcRQjO8TjvXgYwqLbR0D6OzMGggrZnJKafeZhjRQ==", + "requires": { + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/image": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.0.13.tgz", + "integrity": "sha512-zcTN3DuhoLCkCgCwPGvy++F9jaCE2OQjoLKJSU2Rnc0c8WjCZZqXKuRdg3GhaYc80kaVSexMSc6h04Hki+JgVQ==", + "requires": { + "@chakra-ui/react-use-safe-layout-effect": "2.0.4", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/input": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.0.16.tgz", + "integrity": "sha512-4ybF7PQa8MQJm/QvD+UogYerB9/nZuNk+A9Eh9Djtg0EMiD/z+2jhZp2a4Te0HE8mq/DaEK7aNgw4s/EmAKnGA==", + "requires": { + "@chakra-ui/form-control": "2.0.14", + "@chakra-ui/object-utils": "2.0.6", + "@chakra-ui/react-children-utils": "2.0.5", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/layout": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.1.12.tgz", + "integrity": "sha512-iIz9QiS0iB+8NUX5r9TtCbV2JbGzEbKVPiTTtnf48utu12lX4xcdpZJm6jgtgWjvwyo+N+FxyQ8oNff5OqN+Hw==", + "requires": { + "@chakra-ui/breakpoint-utils": "2.0.6", + "@chakra-ui/icon": "3.0.14", + "@chakra-ui/object-utils": "2.0.6", + "@chakra-ui/react-children-utils": "2.0.5", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/lazy-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/lazy-utils/-/lazy-utils-2.0.4.tgz", + "integrity": "sha512-HaVlEIlWNdk9vuubfc+EJkNkwP4pORXkPanP72KF8CxM4NN1hCSm+2gAvlCZCmWUIKIyhGMO1lXPY923o2Mnug==" + }, + "@chakra-ui/live-region": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-2.0.12.tgz", + "integrity": "sha512-hzCvqeYRtocLn0KmlEpVdYbt/7Tb5tBtsjMBfJb2lQkarQRwC9xzZ4arCcsDZAWiR3c3wvXdSob3vZ71biz46g==" + }, + "@chakra-ui/media-query": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-3.2.9.tgz", + "integrity": "sha512-4vaf8YqgIs5zhaQTLAif+aiiixo9gpk1xiTn4oTiDZQFuTVhKyv4iI93NbAKif/Bls+8XghbMo0rF93DjqRRzg==", + "requires": { + "@chakra-ui/breakpoint-utils": "2.0.6", + "@chakra-ui/react-env": "2.0.12", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/menu": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.1.6.tgz", + "integrity": "sha512-/ypgx+JmYgItoBq0bUMetnjDu3aS75lra4xVQeMEG8L7y8/q7B4uIIJeSVh7o8UQJCvV05doxnwsxV7zBW29bw==", + "requires": { + "@chakra-ui/clickable": "2.0.12", + "@chakra-ui/descendant": "3.0.12", + "@chakra-ui/lazy-utils": "2.0.4", + "@chakra-ui/popper": "3.0.11", + "@chakra-ui/react-children-utils": "2.0.5", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-use-animation-state": "2.0.7", + "@chakra-ui/react-use-controllable-state": "2.0.7", + "@chakra-ui/react-use-disclosure": "2.0.7", + "@chakra-ui/react-use-focus-effect": "2.0.8", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/react-use-outside-click": "2.0.6", + "@chakra-ui/react-use-update-effect": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4", + "@chakra-ui/transition": "2.0.13" + } + }, + "@chakra-ui/modal": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.2.6.tgz", + "integrity": "sha512-NyGovs3+MimltfCyqrpr20vtwNOaNykJGQFp7GfsfiInoMU7fOyDAc12JfgcVl3LCwk0bEo60hx1zxZ3GQvUxQ==", + "requires": { + "@chakra-ui/close-button": "2.0.14", + "@chakra-ui/focus-lock": "2.0.14", + "@chakra-ui/portal": "2.0.13", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4", + "@chakra-ui/transition": "2.0.13", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "^2.5.4" + } + }, + "@chakra-ui/number-input": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.0.15.tgz", + "integrity": "sha512-x04CqLPFF1bYiIiosB5xoWSoOKYBbrB5EMpm1382X11fdsdrkkR2/3Jqb3Hh0yVV63FtxXaYEeUENb6tJMcGmQ==", + "requires": { + "@chakra-ui/counter": "2.0.12", + "@chakra-ui/form-control": "2.0.14", + "@chakra-ui/icon": "3.0.14", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-callback-ref": "2.0.6", + "@chakra-ui/react-use-event-listener": "2.0.6", + "@chakra-ui/react-use-interval": "2.0.4", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/react-use-safe-layout-effect": "2.0.4", + "@chakra-ui/react-use-update-effect": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/number-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-utils/-/number-utils-2.0.6.tgz", + "integrity": "sha512-VLOyoiXGpZ+eCQSPqKdBCEpen9VAo6pc6FDFuf4BNdIVEfh6ee//Zl7XjyTAGr1G4HUANp8ZxVHHPvtQ10VP4w==" + }, + "@chakra-ui/object-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.0.6.tgz", + "integrity": "sha512-fw1AjQ4wdL8hqPGiE6ulXyugwh1m70YluG1yWGZDPi909zJj1/uL0DClgiNJY/8zWJrbMwDjGdYziXudLxahgA==" + }, + "@chakra-ui/pin-input": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.0.17.tgz", + "integrity": "sha512-uDL8HIjuvvcEO9YBiAOewFtlrjPDqF+xPIWBh4hetDVt6Pd9XavvuyRJjsogjAZt0FsweUg5sF8g/iVLAihCAQ==", + "requires": { + "@chakra-ui/descendant": "3.0.12", + "@chakra-ui/react-children-utils": "2.0.5", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-use-controllable-state": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/popover": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.1.5.tgz", + "integrity": "sha512-ERM9312mJ1RbiRRdgn0E8jS10ZNBsACFkLhnEe++Ow27pjuIxL/MCpCatEGx9b97osHSsfPHekHjaLcOoCqVIw==", + "requires": { + "@chakra-ui/close-button": "2.0.14", + "@chakra-ui/lazy-utils": "2.0.4", + "@chakra-ui/popper": "3.0.11", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-animation-state": "2.0.7", + "@chakra-ui/react-use-disclosure": "2.0.7", + "@chakra-ui/react-use-focus-effect": "2.0.8", + "@chakra-ui/react-use-focus-on-pointer-down": "2.0.5", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/popper": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.0.11.tgz", + "integrity": "sha512-fsKwgq3E0S6FqCzTCQ7HQEr2BOHfHZZMiqvFpGyrIPQ/Esv7aE3Ipw4y4RHTztzJ+vUKK3XTbJzX1cU4RR4a8Q==", + "requires": { + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@popperjs/core": "^2.9.3" + } + }, + "@chakra-ui/portal": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.0.13.tgz", + "integrity": "sha512-EuzaYJuIXM5elqy0MmXe+nc2bHm72JpxkM/PX+LnRTlkA44Kj/iQP5gnx5KHLVG4RPbcG5p61W4KzIBPSRY0+g==", + "requires": { + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-use-safe-layout-effect": "2.0.4" + } + }, + "@chakra-ui/progress": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.1.3.tgz", + "integrity": "sha512-RnVFvdWXrj06oVG0R0m/OunXJ9oxMrcI/UHGgTw74FbjZDSSv7+8j9397iu2Mop7v6iJi0Rhm8Nyi/wEqlO9lw==", + "requires": { + "@chakra-ui/react-context": "2.0.6" + } + }, + "@chakra-ui/provider": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.0.28.tgz", + "integrity": "sha512-9Q6UTweW0Fbgqd1ifBeVJke0QLp6duZqiju+Ng9C16B31FcNCz8nFPWQLx5yhDnA4XoQ3vNREkrETfae4CfH1Q==", + "requires": { + "@chakra-ui/css-reset": "2.0.11", + "@chakra-ui/portal": "2.0.13", + "@chakra-ui/react-env": "2.0.12", + "@chakra-ui/system": "2.3.7", + "@chakra-ui/utils": "2.0.14" + } + }, + "@chakra-ui/radio": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.0.16.tgz", + "integrity": "sha512-TQyHi88Jo6BNCNKXMpWxkoKufEOM2va+3ykuFK8RSqaAhRbHXBdnbS23Bq2HR7z7jrsnsOQOkZ9VA64XDDn1fw==", + "requires": { + "@chakra-ui/form-control": "2.0.14", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4", + "@zag-js/focus-visible": "0.2.1" + } + }, + "@chakra-ui/react": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.4.6.tgz", + "integrity": "sha512-uz9QjjxJgf81fXcOWDiVo2rU/lWfThCDKW5UMlYX2OrrHko7OnwZ3r9oMlZFU/vAS71LWhKbjXicJmOwwls42g==", + "requires": { + "@chakra-ui/accordion": "2.1.5", + "@chakra-ui/alert": "2.0.14", + "@chakra-ui/avatar": "2.2.2", + "@chakra-ui/breadcrumb": "2.1.2", + "@chakra-ui/button": "2.0.14", + "@chakra-ui/card": "2.1.4", + "@chakra-ui/checkbox": "2.2.7", + "@chakra-ui/close-button": "2.0.14", + "@chakra-ui/control-box": "2.0.12", + "@chakra-ui/counter": "2.0.12", + "@chakra-ui/css-reset": "2.0.11", + "@chakra-ui/editable": "2.0.17", + "@chakra-ui/form-control": "2.0.14", + "@chakra-ui/hooks": "2.1.4", + "@chakra-ui/icon": "3.0.14", + "@chakra-ui/image": "2.0.13", + "@chakra-ui/input": "2.0.16", + "@chakra-ui/layout": "2.1.12", + "@chakra-ui/live-region": "2.0.12", + "@chakra-ui/media-query": "3.2.9", + "@chakra-ui/menu": "2.1.6", + "@chakra-ui/modal": "2.2.6", + "@chakra-ui/number-input": "2.0.15", + "@chakra-ui/pin-input": "2.0.17", + "@chakra-ui/popover": "2.1.5", + "@chakra-ui/popper": "3.0.11", + "@chakra-ui/portal": "2.0.13", + "@chakra-ui/progress": "2.1.3", + "@chakra-ui/provider": "2.0.28", + "@chakra-ui/radio": "2.0.16", + "@chakra-ui/react-env": "2.0.12", + "@chakra-ui/select": "2.0.15", + "@chakra-ui/skeleton": "2.0.21", + "@chakra-ui/slider": "2.0.18", + "@chakra-ui/spinner": "2.0.12", + "@chakra-ui/stat": "2.0.14", + "@chakra-ui/styled-system": "2.5.1", + "@chakra-ui/switch": "2.0.19", + "@chakra-ui/system": "2.3.7", + "@chakra-ui/table": "2.0.14", + "@chakra-ui/tabs": "2.1.6", + "@chakra-ui/tag": "2.0.14", + "@chakra-ui/textarea": "2.0.15", + "@chakra-ui/theme": "2.2.4", + "@chakra-ui/theme-utils": "2.0.8", + "@chakra-ui/toast": "4.0.8", + "@chakra-ui/tooltip": "2.2.4", + "@chakra-ui/transition": "2.0.13", + "@chakra-ui/utils": "2.0.14", + "@chakra-ui/visually-hidden": "2.0.14" + } + }, + "@chakra-ui/react-children-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-children-utils/-/react-children-utils-2.0.5.tgz", + "integrity": "sha512-rP/1HFR9J6wohIzLe/gU+vpey27uey9pVa46VTZfApI6VdzDWiQT1pmrGQeMkba07KdU2MJS/60dhGM4NfvcQA==" + }, + "@chakra-ui/react-context": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.0.6.tgz", + "integrity": "sha512-+Bk/lDBirj6KE3vbyyUVCqFGqAe+MOso+1NRHQ0m66/sXWFFnoL/lvuq4osdNp80DOVQ4EYYnHI0olSZZvuKEg==" + }, + "@chakra-ui/react-env": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-2.0.12.tgz", + "integrity": "sha512-BPTz2cxNKhNc1y5J9cCOYndbGiNulpMwihZLkybLRJ1qzZic4KuD3iGOkagJ81STKoPkKEZWfcjnrQTCJTq1fg==" + }, + "@chakra-ui/react-types": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-types/-/react-types-2.0.6.tgz", + "integrity": "sha512-aAq/nl//PneEfeaDb94zwfXor4OP/d5kc6dEXOZB2HJgCt3hu2+F/1u1QpPLPPTys5xexkQojuZQLnnD9lmQFw==" + }, + "@chakra-ui/react-use-animation-state": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.0.7.tgz", + "integrity": "sha512-v4p5jTopFvYah3vrRU7m6W+m1IEIqxfDco6ASeoEWEcKab4WBdQ1OQr1Oxgip+UIgmvLUnl+3BS+jPUuuKkdgg==", + "requires": { + "@chakra-ui/dom-utils": "2.0.5", + "@chakra-ui/react-use-event-listener": "2.0.6" + } + }, + "@chakra-ui/react-use-callback-ref": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-callback-ref/-/react-use-callback-ref-2.0.6.tgz", + "integrity": "sha512-JKh0GJQvLonjSVQJjsBs2gE+Zix/DXfAo8kzNE+DzNf49CNomX59TkcJNXDjtzSktn6GfqDF8IOObJlGlbtG7g==" + }, + "@chakra-ui/react-use-controllable-state": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-controllable-state/-/react-use-controllable-state-2.0.7.tgz", + "integrity": "sha512-vKGgMtZb/06KnIF0XUFjWvwfKs3x35M6FEc4FU/wgM5FDU9T6Vd1TG7kDHFMoYdcvRf2/fgzkOxgTN052+sMkw==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.0.6" + } + }, + "@chakra-ui/react-use-disclosure": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-disclosure/-/react-use-disclosure-2.0.7.tgz", + "integrity": "sha512-vQG8AxYq+BkaurCHdMA9pxJAfQDmErMzn9hn2elP0dVfKe2a0O7aCFzX2Ff9PeeBKWOFlUfKf79gRBnhXRa5xw==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.0.6" + } + }, + "@chakra-ui/react-use-event-listener": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-event-listener/-/react-use-event-listener-2.0.6.tgz", + "integrity": "sha512-lDtccra2B/1ap6Z7NESS4QfZajfOLd/jafmVdiO0xc4YSs6VDhenipMCv9O47U5EXapG6jfTXs2nbFkc3jRKiA==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.0.6" + } + }, + "@chakra-ui/react-use-focus-effect": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.0.8.tgz", + "integrity": "sha512-Et6/97A/6ndPygj6CF8+T7RQH0gsW5fkWNi64R7OjuQSjWxGq1kcmyBGm4E2u2Hbmtf4Hm1dcjzilnYbG7M7IA==", + "requires": { + "@chakra-ui/dom-utils": "2.0.5", + "@chakra-ui/react-use-event-listener": "2.0.6", + "@chakra-ui/react-use-safe-layout-effect": "2.0.4", + "@chakra-ui/react-use-update-effect": "2.0.6" + } + }, + "@chakra-ui/react-use-focus-on-pointer-down": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-on-pointer-down/-/react-use-focus-on-pointer-down-2.0.5.tgz", + "integrity": "sha512-xDQUp8s+a+0DgqOWdvKXgIZcyXH5RXKkC+qa0mbUJf54b9qLbrD6yw3o2jAvDEGa7vLBjaVY4jfOAdzt7+Na2g==", + "requires": { + "@chakra-ui/react-use-event-listener": "2.0.6" + } + }, + "@chakra-ui/react-use-interval": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-interval/-/react-use-interval-2.0.4.tgz", + "integrity": "sha512-LCS0CijCBEJW1dz2WQThGn+wPSaA6YWPEWeS2WmobbQhkjLbzEy2z8CIG5MeUopX8v6kDDnCMmIpocmrIyGGbA==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.0.6" + } + }, + "@chakra-ui/react-use-latest-ref": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-latest-ref/-/react-use-latest-ref-2.0.4.tgz", + "integrity": "sha512-7xxQeu7PtFUEXbd+BZ+UMX9ASpJET02z9EgtqSfnMgB1ccgo/1i8CYI2/BcolwRf05EUD7kOUA+7eHyP4EI3Uw==" + }, + "@chakra-ui/react-use-merge-refs": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-merge-refs/-/react-use-merge-refs-2.0.6.tgz", + "integrity": "sha512-m4fQtm5cn3F39nLj5MhmKsAzdFaYMldR8a4VMtfC2Pnd+bqX8jx2q2yPCjpam9x/Wnh8ZRBMJ2KAjAiGnF3XXw==" + }, + "@chakra-ui/react-use-outside-click": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.0.6.tgz", + "integrity": "sha512-wbZI4zDwSiQ3jCZ++PKmv7uIU6oyEbaap8s6e3O9/JFAlPXxAG48DcSHmQZ8scyEu/wwd8A+/3go49T4VIvc7w==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.0.6" + } + }, + "@chakra-ui/react-use-pan-event": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-pan-event/-/react-use-pan-event-2.0.8.tgz", + "integrity": "sha512-HUn7WR9IagtC3KdjmBlHibnFYisQ055IoWReIEWuDz/5KWSPeC2p2QcMc33vhN/ucS1XbWCt6uelHHBeCWWvfA==", + "requires": { + "@chakra-ui/event-utils": "2.0.7", + "@chakra-ui/react-use-latest-ref": "2.0.4", + "framesync": "6.1.2" + } + }, + "@chakra-ui/react-use-previous": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-previous/-/react-use-previous-2.0.4.tgz", + "integrity": "sha512-ZzILmNAoRVPDRFhKUceksQGETQyne4ST7W7Y5NPkr/OAJuzc2njodY0GjGiJTF2YpOSelRn6KB8MDhwp4XR2mw==" + }, + "@chakra-ui/react-use-safe-layout-effect": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-safe-layout-effect/-/react-use-safe-layout-effect-2.0.4.tgz", + "integrity": "sha512-GbQIdhiesXZ8DV+JxiERz3/zki6PELhYPz/7JxyFUk8xInJnUcuEz2L4bV7rXIm9/bd2kjf4gfV+lHOGfpJdLw==" + }, + "@chakra-ui/react-use-size": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.0.7.tgz", + "integrity": "sha512-ggj8W0rer9oJ03xXrH4CUBNe6RZ/qtuU/32pMougeVWwZ3COGTODBtFlooIiy3iCvxrpHIgIDXy/hyrBWyvQSw==", + "requires": { + "@zag-js/element-size": "0.3.0" + } + }, + "@chakra-ui/react-use-timeout": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-timeout/-/react-use-timeout-2.0.4.tgz", + "integrity": "sha512-7EqjJVRv61DmWb9UE4R9LPf3l1SDfawQ2/ax/e0lYpDBjaeV013wUH1uurRq8jn/vR1DhNzfRB5VtimE2f2Vsw==", + "requires": { + "@chakra-ui/react-use-callback-ref": "2.0.6" + } + }, + "@chakra-ui/react-use-update-effect": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-update-effect/-/react-use-update-effect-2.0.6.tgz", + "integrity": "sha512-P6+0hocnasjl8xOrFH9BklyCNNzCBu/XAl5y7kZ82uVnS99SaC6cppO9/qWRZI9cYYheWfJ4lyLGeLOcNmI8/Q==" + }, + "@chakra-ui/react-utils": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-2.0.11.tgz", + "integrity": "sha512-LdE0Ay5Em2ew7fuux9MJAwaxoaU/QwVoH/t6uiUw/JCWpmiMGY6tw6t3eZTvZSRZNfyPWY0MmvOHR1UvIS9JIw==", + "requires": { + "@chakra-ui/utils": "2.0.14" + } + }, + "@chakra-ui/select": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.0.15.tgz", + "integrity": "sha512-TdrkZNMyyZu1H/J/hn4Rqz7WES6cTLZfTqSIi0FtnmFMCiOmfLT317A0d783uwU/YnDGogjfTQ4aAAY2PEsgGw==", + "requires": { + "@chakra-ui/form-control": "2.0.14", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/shared-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/shared-utils/-/shared-utils-2.0.4.tgz", + "integrity": "sha512-JGWr+BBj3PXGZQ2gxbKSD1wYjESbYsZjkCeE2nevyVk4rN3amV1wQzCnBAhsuJktMaZD6KC/lteo9ou9QUDzpA==" + }, + "@chakra-ui/skeleton": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-2.0.21.tgz", + "integrity": "sha512-ztHfV/6Mwl1Wl8H8fkAszMHnyobNZ4SjVD/rImBlKfqSh2VW8jzSwzqN77Oi6iZ7fsqdPN7w2QWS5EAtsUxTVw==", + "requires": { + "@chakra-ui/media-query": "3.2.9", + "@chakra-ui/react-use-previous": "2.0.4", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/skip-nav": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-2.0.13.tgz", + "integrity": "sha512-UmFjGlZhSDkFz7OizweG27bs+Ch9dDiibmXQ20lH6qW8k7aZ9IkdIJz9vsFzpbeECsVC6V5D461BoMGjiok/7A==" + }, + "@chakra-ui/slider": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.0.18.tgz", + "integrity": "sha512-wfkW9Xe3WVK1yUY0ELAPVLghknxqzPjqidQgbiMSNlKxTs70sFuACsbbwMV+LMcE+2aUYOGOaqTFI8nPfVdbOw==", + "requires": { + "@chakra-ui/number-utils": "2.0.6", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-callback-ref": "2.0.6", + "@chakra-ui/react-use-controllable-state": "2.0.7", + "@chakra-ui/react-use-latest-ref": "2.0.4", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/react-use-pan-event": "2.0.8", + "@chakra-ui/react-use-size": "2.0.7", + "@chakra-ui/react-use-update-effect": "2.0.6" + } + }, + "@chakra-ui/spinner": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-2.0.12.tgz", + "integrity": "sha512-c9R0k7RUgff5g79Q5kX1mE4lsXqLKIskIbPksL7Qm3Zw/ZbDHyNILFFltPLt7350rC9mGzqzEZbizAFlksbdLw==", + "requires": { + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/stat": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.0.14.tgz", + "integrity": "sha512-VW92QvrRZDZAtUhPHWLhS0SzxVmElb6dRevVokzTm2sBQbkE1pkZnzoYuEkBx3t0QjxZj5YhqXR+CEkZFpM1rw==", + "requires": { + "@chakra-ui/icon": "3.0.14", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/styled-system": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.5.1.tgz", + "integrity": "sha512-HhaXR/r5eGlC7vkoOWQ31yZEj+Aq+kFee7ZZb0fBRGKQichn06S9Ugr8CsFyzb+jNexHdtBlIcTBm0ufJ8HsFA==", + "requires": { + "@chakra-ui/shared-utils": "2.0.4", + "csstype": "^3.0.11", + "lodash.mergewith": "4.6.2" + } + }, + "@chakra-ui/switch": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.0.19.tgz", + "integrity": "sha512-mXEXrTQAfGnmgAeRcVvcgC98ZaB9/WBSpfVgVKLRVuLhv5XYwhffxxZb9Zqaa3eWb9iilxi3qQUtN0g/wu2G7w==", + "requires": { + "@chakra-ui/checkbox": "2.2.7", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/system": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.3.7.tgz", + "integrity": "sha512-sUmLyo+zjv+Im56slRaQA5fw04y7JuVGKgGW8xcQan+jVtMI2gGBvnecOUeNNiEWglpW/pZ/AE9rgJX9dKkrkA==", + "requires": { + "@chakra-ui/color-mode": "2.1.11", + "@chakra-ui/react-utils": "2.0.11", + "@chakra-ui/styled-system": "2.5.1", + "@chakra-ui/theme-utils": "2.0.8", + "@chakra-ui/utils": "2.0.14", + "react-fast-compare": "3.2.0" + } + }, + "@chakra-ui/table": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.0.14.tgz", + "integrity": "sha512-tiRr//5GfFnpCz4PyVgEIWBMsePAM1SWfvAJJYG2wBXNULYB/5nYmch+cJzPqZtdgL2/RuKIJINAmqVZQVddrw==", + "requires": { + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/tabs": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-2.1.6.tgz", + "integrity": "sha512-9y+ZBRSBFOvsMY8R+nmlWXqMNwokttA1cwcnjp9djsXuN+vabN8nzPcdKsoBbYUhZJp01k2Qgg3jZ46KiD9n7w==", + "requires": { + "@chakra-ui/clickable": "2.0.12", + "@chakra-ui/descendant": "3.0.12", + "@chakra-ui/lazy-utils": "2.0.4", + "@chakra-ui/react-children-utils": "2.0.5", + "@chakra-ui/react-context": "2.0.6", + "@chakra-ui/react-use-controllable-state": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/react-use-safe-layout-effect": "2.0.4", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/tag": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-2.0.14.tgz", + "integrity": "sha512-f6XU7GwTJkPDXU66Qbq8sS2i4dNb1pmeW2T1AFnzDZLI3kNLjw5B6tgW1HGr26/oq9Xu8aGNqAp0yGy9bAfeAA==", + "requires": { + "@chakra-ui/icon": "3.0.14", + "@chakra-ui/react-context": "2.0.6" + } + }, + "@chakra-ui/textarea": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.0.15.tgz", + "integrity": "sha512-qARh+MgeP1HSOV4oEZK5JwvQIq3gMC3kU1giMGasjsLTDjNPZiVMGpj91Z+mYB0C3IdbJhIuQCo1eM5QAL/QHg==", + "requires": { + "@chakra-ui/form-control": "2.0.14", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/theme": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-2.2.4.tgz", + "integrity": "sha512-zo1FBfkJBsvpOGGByRB4aEvekdeT/9BB7Lz3rAluKkC+Wo8yce1tTSlvPMpf2f4lsEI8zVid5ATQ6u3+kIFg4w==", + "requires": { + "@chakra-ui/anatomy": "2.1.1", + "@chakra-ui/shared-utils": "2.0.4", + "@chakra-ui/theme-tools": "2.0.16" + } + }, + "@chakra-ui/theme-tools": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.0.16.tgz", + "integrity": "sha512-B/LD+2LNDeHYd/LVCHIJqckVZfhrycTUpNbhRVAiDRaS0AAcsPxKas7liTFkkMkM076YjiHlcla3KpVX+E9tzg==", + "requires": { + "@chakra-ui/anatomy": "2.1.1", + "@chakra-ui/shared-utils": "2.0.4", + "color2k": "^2.0.0" + } + }, + "@chakra-ui/theme-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.8.tgz", + "integrity": "sha512-E4GT1tT5JTwsxRCgopdkLWx6oxd1lrI7DBLiwW0WxvtPmHfy5I9CB4CVnYBNHQZNXiJZyUQpCwKyGg2npGxv5Q==", + "requires": { + "@chakra-ui/shared-utils": "2.0.4", + "@chakra-ui/styled-system": "2.5.1", + "@chakra-ui/theme": "2.2.4", + "lodash.mergewith": "4.6.2" + } + }, + "@chakra-ui/toast": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-4.0.8.tgz", + "integrity": "sha512-g50kEZvrApkcNdm9ssccE9YYFsPMwTWz5IwUEFBJ2iSrEaTz5rikq/F2CP+oRu2vq22RPvczoOUnSaXE8GRzww==", + "requires": { + "@chakra-ui/alert": "2.0.14", + "@chakra-ui/close-button": "2.0.14", + "@chakra-ui/portal": "2.0.13", + "@chakra-ui/react-use-timeout": "2.0.4", + "@chakra-ui/react-use-update-effect": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4", + "@chakra-ui/styled-system": "2.5.1", + "@chakra-ui/theme": "2.2.4" + } + }, + "@chakra-ui/tooltip": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.2.4.tgz", + "integrity": "sha512-KUEsSjIwTyFvdixWg3jVUcpaiAfMddRxiuxnsKcFVv8H5dZF75tstaq8iAHY+pueh6CRmIvO2Oh7XWiAYA/LJA==", + "requires": { + "@chakra-ui/popper": "3.0.11", + "@chakra-ui/portal": "2.0.13", + "@chakra-ui/react-types": "2.0.6", + "@chakra-ui/react-use-disclosure": "2.0.7", + "@chakra-ui/react-use-event-listener": "2.0.6", + "@chakra-ui/react-use-merge-refs": "2.0.6", + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/transition": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.0.13.tgz", + "integrity": "sha512-vpzK5HN91eDLkBEdaO6GTCJOYgJYHlmxCAym/tScBuWM2ALZ4mWu57qWgPptgGv+IpMfuvL1t+IVqPgyWwEQFw==", + "requires": { + "@chakra-ui/shared-utils": "2.0.4" + } + }, + "@chakra-ui/utils": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-2.0.14.tgz", + "integrity": "sha512-vYxtAUPY09Ex2Ae2ZvQKA1d2+lMKq/wUaRiqpwmeLfutEQuPQZc3qzQcAIMRQx3wLgXr9BUFDtHgBoOz0XKtZw==", + "requires": { + "@types/lodash.mergewith": "4.6.6", + "css-box-model": "1.2.1", + "framesync": "6.1.2", + "lodash.mergewith": "4.6.2" + } + }, + "@chakra-ui/visually-hidden": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-2.0.14.tgz", + "integrity": "sha512-/evqTuCeN3laukL1BPZO8HTzgs+dzq0v6gu/MJFgiSAKGLfInn0/IStKGK2vIluuCtJIgaHVdKcJzr+7sJhd0Q==" + }, + "@darkobits/env": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@darkobits/env/-/env-1.3.5.tgz", + "integrity": "sha512-E/C7Shhm9T6XUGmdFVuIwVUEyJcCo80m8ksxBEK1SJOrH6FvaTKBKnvD/2R4LyfHysxBFbz4HsgMqHMu9o1s1A==", + "dev": true + }, + "@darkobits/log": { + "version": "2.0.0-beta.16", + "resolved": "https://registry.npmjs.org/@darkobits/log/-/log-2.0.0-beta.16.tgz", + "integrity": "sha512-aiwtq11fBFik3DRuLXL+k+5Ymjie5Jfd7nA0CuD8cqIBSElj6dSgEqbCvcHTJ1IHysos4H6vEIE4hs/QfaE4gQ==", + "dev": true, + "requires": { + "@darkobits/env": "^1.3.2", + "@darkobits/mask-string": "^2.0.0", + "@darkobits/sleep": "^1.0.2", + "ansi-escapes": "^4.3.1", + "callsite-record": "^4.1.3", + "chalk": "^4.1.1", + "clean-stack": "^3.0.0", + "cli-spinners": "^2.6.0", + "date-fns": "^2.21.3", + "deepmerge": "^4.2.2", + "is-ci": "^3.0.0", + "is-plain-object": "^5.0.0", + "over-9000": "^9000.1.0", + "ow": "^0.22.0", + "pretty-ms": "^7.0.0", + "source-map-support": "^0.5.19", + "strip-ansi": "^6.0.0", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@darkobits/mask-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@darkobits/mask-string/-/mask-string-2.0.1.tgz", + "integrity": "sha512-jNboxfoD6zzVCfBnl4gg3ZWo+gXAhXYihc+RTgnYma+Ey1YEslYdLGuj/O4prkNFnC7UnLMDbZ3EoUUZV0hJpA==", + "dev": true + }, + "@darkobits/sleep": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@darkobits/sleep/-/sleep-1.0.4.tgz", + "integrity": "sha512-CQv7leAj3fXnsSOvsAqugg6xbtqcyonpTLlCyajuwLx3uaO9d7qXUpTfVlPlh3hoW+fif/tZJP9lmdaxHeHhOA==", + "dev": true, + "requires": { + "ms": "^2.1.2" + } + }, + "@darkobits/valida": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@darkobits/valida/-/valida-0.1.6.tgz", + "integrity": "sha512-VISYOmYC61XEoyNil4MCzt9/8ge5pwGHNXjXeHNIjqqB7QXAsuDEjfasSXNcdFf6apw11iegxK+U+DMSNMXdcg==", + "dev": true, + "requires": { + "deepmerge": "^4.2.2", + "fastest-levenshtein": "^1.0.16", + "is-plain-object": "^5.0.0", + "ow": "0.28.1", + "ramda": "^0.28.0", + "ts-essentials": "^9.2.0" + }, + "dependencies": { + "ow": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.28.1.tgz", + "integrity": "sha512-1EZTywPZeUKac9gD7q8np3Aj+V54kvfIcjNEVNDSbG2Ys5xA5foW2HquvMMqgyWGLqIFMlc0Iq/HmyMHqN48sA==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.2.0", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^2.3.4", + "vali-date": "^1.0.0" + } + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + } + } + }, + "@darkobits/vite-plugin-favicons": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@darkobits/vite-plugin-favicons/-/vite-plugin-favicons-0.1.8.tgz", + "integrity": "sha512-Fg06B+HrBhAwnjnyA4FGmnPNNs1shSqg4ciV9LG25niZkxE7cIArcAeiLfg3g5gyzs2WWprzCDRI4GcwgSDZHA==", + "dev": true, + "requires": { + "@darkobits/log": "^2.0.0-beta.16", + "@darkobits/valida": "^0.1.6", + "@types/favicons": "^6.2.2", + "cacache": "^16.1.3", + "fast-json-stable-stringify": "^2.1.0", + "favicons": "^6.2.2", + "find-cache-dir": "^3.3.2", + "fs-extra": "^10.1.0", + "parse5": "^6.0.1", + "ssri": "^9.0.1", + "ts-essentials": "^9.3.0" + } + }, + "@devexpress/error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@devexpress/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-fneVypElGUH6Be39mlRZeAu00pccTlf4oVuzf9xPJD1cdEqI8NyAiQua/EW7lZdrbMUbgyXcJmfKPefhYius3A==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "@emotion/babel-plugin": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz", + "integrity": "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.3" + } + }, + "@emotion/cache": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", + "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "requires": { + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.3" + } + }, + "@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + }, + "@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "requires": { + "@emotion/memoize": "^0.8.0" + } + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "@emotion/react": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.5.tgz", + "integrity": "sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/cache": "^11.10.5", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", + "requires": { + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + }, + "@emotion/styled": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz", + "integrity": "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" + } + }, + "@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==" + }, + "@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" + }, + "@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + }, + "@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "dev": true, + "optional": true + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "@jimp/bmp": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.2.tgz", + "integrity": "sha512-4g9vW45QfMoGhLVvaFj26h4e7cC+McHUQwyFQmNTLW4FfC1OonN9oUr2m/FEDGkTYKR7aqdXR5XUqqIkHWLaFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2", + "bmp-js": "^0.1.0" + } + }, + "@jimp/core": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.16.2.tgz", + "integrity": "sha512-dp7HcyUMzjXphXYodI6PaXue+I9PXAavbb+AN+1XqFbotN22Z12DosNPEyy+UhLY/hZiQQqUkEaJHkvV31rs+w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "@jimp/custom": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.16.2.tgz", + "integrity": "sha512-GtNwOs4hcVS2GIbqRUf42rUuX07oLB92cj7cqxZb0ZGWwcwhnmSW0TFLAkNafXmqn9ug4VTpNvcJSUdiuECVKg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.16.2" + } + }, + "@jimp/gif": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.16.2.tgz", + "integrity": "sha512-TMdyT9Q0paIKNtT7c5KzQD29CNCsI/t8ka28jMrBjEK7j5RRTvBfuoOnHv7pDJRCjCIqeUoaUSJ7QcciKic6CA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2", + "gifwrap": "^0.9.2", + "omggif": "^1.0.9" + } + }, + "@jimp/jpeg": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.16.2.tgz", + "integrity": "sha512-BW5gZydgq6wdIwHd+3iUNgrTklvoQc/FUKSj9meM6A0FU21lUaansRX5BDdJqHkyXJLnnlDGwDt27J+hQuBAVw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2", + "jpeg-js": "^0.4.2" + } + }, + "@jimp/plugin-blit": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.16.2.tgz", + "integrity": "sha512-Z31rRfV80gC/r+B/bOPSVVpJEWXUV248j7MdnMOFLu4vr8DMqXVo9jYqvwU/s4LSTMAMXqm4Jg6E/jQfadPKAg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-blur": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.16.2.tgz", + "integrity": "sha512-ShkJCAzRI+1fAKPuLLgEkixpSpVmKTYaKEFROUcgmrv9AansDXGNCupchqVMTdxf8zPyW8rR1ilvG3OJobufLQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-circle": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.16.2.tgz", + "integrity": "sha512-6T4z/48F4Z5+YwAVCLOvXQcyGmo0E3WztxCz6XGQf66r4JJK78+zcCDYZFLMx0BGM0091FogNK4QniP8JaOkrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-color": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.16.2.tgz", + "integrity": "sha512-6oBV0g0J17/7E+aTquvUsgSc85nUbUi+64tIK5eFIDzvjhlqhjGNJYlc46KJMCWIs61qRJayQoZdL/iT/iQuGQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/plugin-contain": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.16.2.tgz", + "integrity": "sha512-pLcxO3hVN3LCEhMNvpZ9B7xILHVlS433Vv16zFFJxLRqZdYvPLsc+ZzJhjAiHHuEjVblQrktHE3LGeQwGJPo0w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-cover": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.16.2.tgz", + "integrity": "sha512-gzWM7VvYeI8msyiwbUZxH+sGQEgO6Vd6adGxZ0CeKX00uQOe5lDzxb1Wjx7sHcJGz8a/5fmAuwz7rdDtpDUbkw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-crop": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.16.2.tgz", + "integrity": "sha512-qCd3hfMEE+Z2EuuyXewgXRTtKJGIerWzc1zLEJztsUkPz5i73IGgkOL+mrNutZwGaXZbm+8SwUaGb46sxAO6Tw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-displace": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.16.2.tgz", + "integrity": "sha512-6nXdvNNjCdD95v2o3/jPeur903dz08lG4Y8gmr5oL2yVv9LSSbMonoXYrR/ASesdyXqGdXJLU4NL+yZs4zUqbQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-dither": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.16.2.tgz", + "integrity": "sha512-DERpIzy21ZanMkVsD0Tdy8HQLbD1E41OuvIzaMRoW4183PA6AgGNlrQoFTyXmzjy6FTy1SxaQgTEdouInAWZ9Q==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-fisheye": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.2.tgz", + "integrity": "sha512-Df7PsGIwiIpQu3EygYCnaJyTfOwvwtYV3cmYJS7yFLtdiFUuod+hlSo5GkwEPLAy+QBxhUbDuUqnsWo4NQtbiQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-flip": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.16.2.tgz", + "integrity": "sha512-+2uC8ioVQUr06mnjSWraskz2L33nJHze35LkQ8ZNsIpoZLkgvfiWatqAs5bj+1jGI/9kxoCFAaT1Is0f+a4/rw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-gaussian": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.2.tgz", + "integrity": "sha512-2mnuDSg4ZEH8zcJig7DZZf4st/cYmQ5UYJKP76iGhZ+6JDACk6uejwAgT5xHecNhkVAaXMdCybA2eknH/9OE1w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-invert": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.16.2.tgz", + "integrity": "sha512-xFvHbVepTY/nus+6yXiYN1iq+UBRkT0MdnObbiQPstUrAsz0Imn6MWISsnAyMvcNxHGrxaxjuU777JT/esM0gg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-mask": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.16.2.tgz", + "integrity": "sha512-AbdO85xxhfgEDdxYKpUotEI9ixiCMaIpfYHD5a5O/VWeimz2kuwhcrzlHGiyq1kKAgRcl0WEneTCZAHVSyvPKA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-normalize": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.16.2.tgz", + "integrity": "sha512-+ItBWFwmB0Od7OfOtTYT1gm543PpHUgU8/DN55z83l1JqS0OomDJAe7BmCppo2405TN6YtVm/csXo7p4iWd/SQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-print": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.16.2.tgz", + "integrity": "sha512-ifTGEeJ5UZTCiqC70HMeU3iXk/vsOmhWiwVGOXSFXhFeE8ZpDWvlmBsrMYnRrJGuaaogHOIrrQPI+kCdDBSBIQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2", + "load-bmfont": "^1.4.0" + } + }, + "@jimp/plugin-resize": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.16.2.tgz", + "integrity": "sha512-gE4N9l6xuwzacFZ2EPCGZCJ/xR+aX2V7GdMndIl/6kYIw5/eib1SFuF9AZLvIPSFuE1FnGo8+vT0pr++SSbhYg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-rotate": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.16.2.tgz", + "integrity": "sha512-/CTEYkR1HrgmnE0VqPhhbBARbDAfFX590LWGIpxcYIYsUUGQCadl+8Qo4UX13FH0Nt8UHEtPA+O2x08uPYg9UA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-scale": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.16.2.tgz", + "integrity": "sha512-3inuxfrlquyLaqFdiiiQNJUurR0WbvN5wAf1qcYX2LubG1AG8grayYD6H7XVoxfUGTZXh1kpmeirEYlqA2zxcw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-shadow": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.16.2.tgz", + "integrity": "sha512-Q0aIs2/L6fWMcEh9Ms73u34bT1hyUMw/oxaVoIzOLo6/E8YzCs2Bi63H0/qaPS0MQpEppI++kvosPbblABY79w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugin-threshold": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.16.2.tgz", + "integrity": "sha512-gyOwmBgjtMPvcuyOhkP6dOGWbQdaTfhcBRN22mYeI/k/Wh/Zh1OI21F6eKLApsVRmg15MoFnkrCz64RROC34sw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2" + } + }, + "@jimp/plugins": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.16.2.tgz", + "integrity": "sha512-zCvYtCgctmC0tkYEu+y+kSwSIZBsNznqJ3/3vkpzxdyjd6wCfNY5Qc/68MPrLc1lmdeGo4cOOTYHG7Vc6myzRw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.16.2", + "@jimp/plugin-blur": "^0.16.2", + "@jimp/plugin-circle": "^0.16.2", + "@jimp/plugin-color": "^0.16.2", + "@jimp/plugin-contain": "^0.16.2", + "@jimp/plugin-cover": "^0.16.2", + "@jimp/plugin-crop": "^0.16.2", + "@jimp/plugin-displace": "^0.16.2", + "@jimp/plugin-dither": "^0.16.2", + "@jimp/plugin-fisheye": "^0.16.2", + "@jimp/plugin-flip": "^0.16.2", + "@jimp/plugin-gaussian": "^0.16.2", + "@jimp/plugin-invert": "^0.16.2", + "@jimp/plugin-mask": "^0.16.2", + "@jimp/plugin-normalize": "^0.16.2", + "@jimp/plugin-print": "^0.16.2", + "@jimp/plugin-resize": "^0.16.2", + "@jimp/plugin-rotate": "^0.16.2", + "@jimp/plugin-scale": "^0.16.2", + "@jimp/plugin-shadow": "^0.16.2", + "@jimp/plugin-threshold": "^0.16.2", + "timm": "^1.6.1" + } + }, + "@jimp/png": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.16.2.tgz", + "integrity": "sha512-sFOtOSz/tzDwXEChFQ/Nxe+0+vG3Tj0eUxnZVDUG/StXE9dI8Bqmwj3MIa0EgK5s+QG3YlnDOmlPUa4JqmeYeQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.2", + "pngjs": "^3.3.3" + } + }, + "@jimp/tiff": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.16.2.tgz", + "integrity": "sha512-ADcdqmtZF+U2YoaaHTzFX8D6NFpmN4WZUT0BPMerEuY7Cq8QoLYU22z2h034FrVW+Rbi1b3y04sB9iDiQAlf2w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "utif": "^2.0.1" + } + }, + "@jimp/types": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.16.2.tgz", + "integrity": "sha512-0Ue5Sq0XnDF6TirisWv5E+8uOnRcd8vRLuwocJOhF76NIlcQrz+5r2k2XWKcr3d+11n28dHLXW5TKSqrUopxhA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.16.2", + "@jimp/gif": "^0.16.2", + "@jimp/jpeg": "^0.16.2", + "@jimp/png": "^0.16.2", + "@jimp/tiff": "^0.16.2", + "timm": "^1.6.1" + } + }, + "@jimp/utils": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.16.2.tgz", + "integrity": "sha512-XENrPvmigiXZQ8E2nxJqO6UVvWBLzbNwyYi3Y8Q1IECoYhYI3kgOQ0fmy4G269Vz1V0omh1bNmC42r4OfXg1Jg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "regenerator-runtime": "^0.13.3" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@motionone/animation": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz", + "integrity": "sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==", + "requires": { + "@motionone/easing": "^10.15.1", + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" + } + }, + "@motionone/dom": { + "version": "10.15.3", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.15.3.tgz", + "integrity": "sha512-FQ7a2zMBXc1UeU8CG9G3yDpst55fbb0+C9A0VGfwOITitBCzigKZnXRgsRSWWR+FW57GSc13eGQxtYB0lKG0Ng==", + "requires": { + "@motionone/animation": "^10.15.1", + "@motionone/generators": "^10.15.1", + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "@motionone/easing": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.15.1.tgz", + "integrity": "sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==", + "requires": { + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" + } + }, + "@motionone/generators": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.15.1.tgz", + "integrity": "sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==", + "requires": { + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" + } + }, + "@motionone/types": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.15.1.tgz", + "integrity": "sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==" + }, + "@motionone/utils": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.15.1.tgz", + "integrity": "sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==", + "requires": { + "@motionone/types": "^10.15.1", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true + }, + "@swc/core": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.24.tgz", + "integrity": "sha512-QMOTd0AgiUT3K1crxLRqd3gw0f3FC8hhH1vvlIlryvYqU4c+FJ/T2G4ZhMKLxQlZ/jX6Rhk0gKINZRBxy2GFyQ==", + "dev": true, + "requires": { + "@swc/core-darwin-arm64": "1.3.24", + "@swc/core-darwin-x64": "1.3.24", + "@swc/core-linux-arm-gnueabihf": "1.3.24", + "@swc/core-linux-arm64-gnu": "1.3.24", + "@swc/core-linux-arm64-musl": "1.3.24", + "@swc/core-linux-x64-gnu": "1.3.24", + "@swc/core-linux-x64-musl": "1.3.24", + "@swc/core-win32-arm64-msvc": "1.3.24", + "@swc/core-win32-ia32-msvc": "1.3.24", + "@swc/core-win32-x64-msvc": "1.3.24" + } + }, + "@swc/core-darwin-arm64": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.24.tgz", + "integrity": "sha512-rR+9UpWm+fGXcipsjCst2hIL1GYIbo0YTLhJZWdIpQD6KRHHJMFXiydMgQQkDj2Ml7HpqUVgxj6m4ZWYL8b0OA==", + "dev": true, + "optional": true + }, + "@swc/core-darwin-x64": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.24.tgz", + "integrity": "sha512-px+5vkGtgPH0m3FkkTBHynlRdS5rRz+lK+wiXIuBZFJSySWFl6RkKbvwkD+sf0MpazQlqwlv/rTOGJBw6oDffg==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.24.tgz", + "integrity": "sha512-jLs8ZOdTV4UW4J12E143QJ4mOMONQtqgAnuhBbRuWFzQ3ny1dfoC3P1jNWAJ2Xi59XdxAIXn0PggPNH4Kh34kw==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.24.tgz", + "integrity": "sha512-A/v0h70BekrwGpp1DlzIFGcHQ3QQ2PexXcnnuIBZeMc9gNmHlcZmg3EcwAnaUDiokhNuSUFA/wV94yk1OqmSkw==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.24.tgz", + "integrity": "sha512-pbc9eArWPTiMrbpS/pJo0IiQNAKAQBcBIDjWBGP1tcw2iDXYLw4bruwz9kI/VjakbshWb8MoE4T5ClkeuULvSw==", + "dev": true, + "optional": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.24.tgz", + "integrity": "sha512-pP5pOLlY1xd352qo7rTlpVPUI9/9VhOd4b3Lk+LzfZDq9bTL2NDlGfyrPiwa5DGHMSzrugH56K2J68eutkxYVA==", + "dev": true, + "optional": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.24.tgz", + "integrity": "sha512-phNbP7zGp+Wcyxq1Qxlpe5KkxO7WLT2kVQUC7aDFGlVdCr+xdXsfH1MzheHtnr0kqTVQX1aiM8XXXHfFxR0oNA==", + "dev": true, + "optional": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.24.tgz", + "integrity": "sha512-qhbiJTWAOqyR+K9xnGmCkOWSz2EmWpDBstEJCEOTc6FZiEdbiTscDmqTcMbCKaTHGu8t+6erVA4t65/Eg6uWPA==", + "dev": true, + "optional": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.24.tgz", + "integrity": "sha512-JfghIlscE4Rz+Lc08lSoDh+R0cWxrISed5biogFfE6vZqhaDnw3E5Qshqw7O3pIaiq8L2u1nmzuyP581ZmpbRA==", + "dev": true, + "optional": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.24.tgz", + "integrity": "sha512-3AmJRr0hwciwDBbzUNqaftvppzS8v9X/iv/Wl7YaVLBVpPfQvaZzfqLycvNMGLZb5vIKXR/u58txg3dRBGsJtw==", + "dev": true, + "optional": true + }, + "@tanstack/react-table": { + "version": "8.7.4", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.7.4.tgz", + "integrity": "sha512-4Q1OV3kUSxbtekclS3sqjCyCDowqCPruUCfHm1nGoPSmVLRCHoQ1E2rmzTVGeocEKgV9TDnj39tOgGwcADPuPA==", + "requires": { + "@tanstack/table-core": "8.7.4" + } + }, + "@tanstack/table-core": { + "version": "8.7.4", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.7.4.tgz", + "integrity": "sha512-OPhzca7e83KGukxLpZ+4F9OBp9CZXi9b/OGJBH8dlC3wpffcSSDczYGUGJKG7wirXQ6cUVYL+9G6UrrdnblKNQ==" + }, + "@tauri-apps/api": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.2.0.tgz", + "integrity": "sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==" + }, + "@types/favicons": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@types/favicons/-/favicons-6.2.2.tgz", + "integrity": "sha512-iwAeiO8BFUk/lH74Zd9RlIIgxA7fFCVmlZI5yNsJ68L7mDMs42vYk8FnDxEm09ZO4nTlBQjPHdvtYC+N9GLtxg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/js-cookie": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz", + "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==" + }, + "@types/lodash": { + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==" + }, + "@types/lodash.mergewith": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.6.tgz", + "integrity": "sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "@types/react": { + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.10", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz", + "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "@vitejs/plugin-react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz", + "integrity": "sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==", + "dev": true, + "requires": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-jsx": "^7.19.0", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.26.7", + "react-refresh": "^0.14.0" + } + }, + "@zag-js/element-size": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.3.0.tgz", + "integrity": "sha512-5/hEI+0c6ZNCx6KHlOS5/WeHsd6+I7gk7Y/b/zATp4Rp3tHirs/tu1frq+iy5BmfaG9hbQtfHfUJTjOcI5jnoQ==" + }, + "@zag-js/focus-visible": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.2.1.tgz", + "integrity": "sha512-19uTjoZGP4/Ax7kSNhhay9JA83BirKzpqLkeEAilrpdI1hE5xuq6q+tzJOsrMOOqJrm7LkmZp5lbsTQzvK2pYg==" + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + } + } + }, + "ahooks": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/ahooks/-/ahooks-3.7.4.tgz", + "integrity": "sha512-hvgdqzPUKXn95mK3cGlDCi/ZZqv+FRibCUCFT8zW3hCwLGvixVfnHrIW2/2lgzPdLo8mLjp/XOdIJvcPvE2lgQ==", + "requires": { + "@types/js-cookie": "^2.x.x", + "ahooks-v3-count": "^1.0.0", + "dayjs": "^1.9.1", + "intersection-observer": "^0.12.0", + "js-cookie": "^2.x.x", + "lodash": "^4.17.21", + "resize-observer-polyfill": "^1.5.1", + "screenfull": "^5.0.0", + "tslib": "^2.4.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "ahooks-v3-count": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ahooks-v3-count/-/ahooks-v3-count-1.0.0.tgz", + "integrity": "sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "aria-hidden": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.2.tgz", + "integrity": "sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axios": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.2.tgz", + "integrity": "sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bignumber.js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.4.0.tgz", + "integrity": "sha512-uw4ra6Cv483Op/ebM0GBKKfxZlSmn6NgFRby5L3yGTlunLj53KQgndDlqy2WVFOwgvurocApYkSud0aO+mvrpQ==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + } + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", + "dev": true + }, + "callsite-record": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/callsite-record/-/callsite-record-4.1.5.tgz", + "integrity": "sha512-OqeheDucGKifjQRx524URgV4z4NaKjocGhygTptDea+DLROre4ZEecA4KXDq+P7qlGCohYVNOh3qr+y5XH5Ftg==", + "dev": true, + "requires": { + "@devexpress/error-stack-parser": "^2.0.6", + "@types/lodash": "^4.14.72", + "callsite": "^1.0.0", + "chalk": "^2.4.0", + "highlight-es": "^1.0.0", + "lodash": "4.6.1 || ^4.16.1", + "pinkie-promise": "^2.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "caniuse-lite": { + "version": "1.0.30001441", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", + "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + } + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "ci-info": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "dev": true + }, + "clean-stack": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz", + "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==", + "dev": true, + "requires": { + "escape-string-regexp": "4.0.0" + } + }, + "cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true + }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "color2k": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.0.tgz", + "integrity": "sha512-DWX9eXOC4fbJNiuvdH4QSHvvfLWyFo9TuFp7V9OzdsbPAdrWAuYc8qvFP2bIQ/LKh4LrAVnJ6vhiQYPvAHdtTg==" + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "compute-scroll-into-view": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz", + "integrity": "sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "requires": { + "tiny-invariant": "^1.0.6" + } + }, + "css-mediaquery": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", + "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==" + }, + "csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "dev": true + }, + "dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "requires": { + "mimic-response": "^2.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true + }, + "detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==", + "dev": true + }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "favicons": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/favicons/-/favicons-6.2.2.tgz", + "integrity": "sha512-qhvFqbhlXA/JYIDYuxTrE4uT9rcpTCrWvF3UG0GxBoLl/XgFBBTrZkQvASrkMebSwDCJ9kKGypRWIbvoRZLBsw==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "colors": "^1.4.0", + "image-size": "^0.8.3", + "jimp": "^0.16.1", + "jsontoxml": "^1.0.1", + "lodash.defaultsdeep": "^4.6.1", + "require-directory": "^2.1.1", + "sharp": "^0.28.2", + "through2": "^4.0.2", + "tinycolor2": "^1.4.2", + "to-ico": "^1.1.5", + "vinyl": "^2.2.1", + "xml2js": "^0.4.23" + } + }, + "file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", + "dev": true + }, + "filesize": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.0.6.tgz", + "integrity": "sha512-rzpOZ4C9vMFDqOa6dNpog92CoLYjD79dnjLk2TYDDtImRIyLTOzqojCb05Opd1WuiWjs+fshhCgTd8cl7y5t+g==" + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "focus-lock": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.11.4.tgz", + "integrity": "sha512-LzZWJcOBIcHslQ46N3SUu/760iLPSrUtp8omM4gh9du438V2CQdks8TcOu1yvmu2C68nVOBnl1WFiKGPbQ8L6g==", + "requires": { + "tslib": "^2.0.3" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "framer-motion": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-7.10.3.tgz", + "integrity": "sha512-k2ccYeZNSpPg//HTaqrU+4pRq9f9ZpaaN7rr0+Rx5zA4wZLbk547wtDzge2db1sB+1mnJ6r59P4xb+aEIi/W+w==", + "requires": { + "@emotion/is-prop-valid": "^0.8.2", + "@motionone/dom": "^10.15.3", + "hey-listen": "^1.0.8", + "tslib": "2.4.0" + }, + "dependencies": { + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + } + } + }, + "framesync": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", + "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", + "requires": { + "tslib": "2.4.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gifwrap": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.4.tgz", + "integrity": "sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==", + "dev": true, + "requires": { + "image-q": "^4.0.0", + "omggif": "^1.0.10" + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" + }, + "highlight-es": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/highlight-es/-/highlight-es-1.0.3.tgz", + "integrity": "sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==", + "dev": true, + "requires": { + "chalk": "^2.4.0", + "is-es2016-keyword": "^1.0.0", + "js-tokens": "^3.0.0" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true + } + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "requires": { + "void-elements": "3.1.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, + "i18next": { + "version": "22.4.6", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.6.tgz", + "integrity": "sha512-9Tm1ezxWyzV+306CIDMBbYBitC1jedQyYuuLtIv7oxjp2ohh8eyxP9xytIf+2bbQfhH784IQKPSYp+Zq9+YSbw==", + "requires": { + "@babel/runtime": "^7.20.6" + } + }, + "i18next-browser-languagedetector": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.0.1.tgz", + "integrity": "sha512-Pa5kFwaczXJAeHE56CHG2aWzFBMJNUNghf0Pm4SwSrEMps/PTKqW90EYWlIvhuYStf3Sn1K0vw+gH3+TLdkH1g==", + "requires": { + "@babel/runtime": "^7.19.4" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "image-q": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-4.0.0.tgz", + "integrity": "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==", + "dev": true, + "requires": { + "@types/node": "16.9.1" + }, + "dependencies": { + "@types/node": { + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", + "dev": true + } + } + }, + "image-size": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.8.3.tgz", + "integrity": "sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==", + "dev": true, + "requires": { + "queue": "6.0.1" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "intersection-observer": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.2.tgz", + "integrity": "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==" + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip-regex": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", + "integrity": "sha512-HjpCHTuxbR/6jWJroc/VN+npo5j0T4Vv2TAI5qdEHQx7hsL767MeccGFSsLtF694EiZKTSEqgoeU6DtGFCcuqQ==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-es2016-keyword": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-es2016-keyword/-/is-es2016-keyword-1.0.0.tgz", + "integrity": "sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "jimp": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.16.2.tgz", + "integrity": "sha512-UpItBk81a92f8oEyoGYbO3YK4QcM0hoIyuGHmShoF9Ov63P5Qo7Q/X2xsAgnODmSuDJFOtrPtJd5GSWW4LKdOQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.16.2", + "@jimp/plugins": "^0.16.2", + "@jimp/types": "^0.16.2", + "regenerator-runtime": "^0.13.3" + } + }, + "jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "dev": true + }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsontoxml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-1.0.1.tgz", + "integrity": "sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ==", + "dev": true + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "dev": true, + "requires": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "matchmediaquery": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz", + "integrity": "sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ==", + "requires": { + "css-mediaquery": "^0.1.2" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dev": true, + "requires": { + "dom-walk": "^0.1.0" + } + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true + }, + "node-abi": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", + "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", + "dev": true, + "requires": { + "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true + }, + "node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "over-9000": { + "version": "9000.1.4", + "resolved": "https://registry.npmjs.org/over-9000/-/over-9000-9000.1.4.tgz", + "integrity": "sha512-4j7/ozQOyqXRNEY5HPmsOL6drQfpk4nEz87ciASGPZN3BQA19wIUHlvVO4FUpTG3+3IHrD3aduPGMPHyaD8sUA==", + "dev": true + }, + "ow": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.22.0.tgz", + "integrity": "sha512-VZpjntwsFxg+oM2pZ0Km8p6+FLAugD86TQWHmz0Ldm/rfSs6qezggArumK+FrBUFAXodWULJrbV5ie0LkhWJdQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^0.20.2", + "vali-date": "^1.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==", + "dev": true + }, + "parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==", + "dev": true + }, + "parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "dev": true, + "requires": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" + } + }, + "parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true + }, + "parse-png": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-1.1.2.tgz", + "integrity": "sha512-Ge6gDV9T5zhkWHmjvnNiyhPTCIoY7W+FC7qWPtuL2lIGZAFxxqTRG/ouEXsH9qkw+HzYiPEU/tFcxOCEDTP1Yw==", + "dev": true, + "requires": { + "pngjs": "^3.2.0" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "dev": true, + "requires": { + "pngjs": "^3.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "dev": true + }, + "postcss": { + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "prebuild-install": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", + "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.21.0", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + } + }, + "prettier": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", + "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "dev": true + }, + "pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true + }, + "queue": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.1.tgz", + "integrity": "sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==", + "dev": true, + "requires": { + "inherits": "~2.0.3" + } + }, + "ramda": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", + "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-clientside-effect": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", + "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", + "requires": { + "@babel/runtime": "^7.12.13" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, + "react-focus-lock": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.9.2.tgz", + "integrity": "sha512-5JfrsOKyA5Zn3h958mk7bAcfphr24jPoMoznJ8vaJF6fUrPQ8zrtEd3ILLOK8P5jvGxdMd96OxWNjDzATfR2qw==", + "requires": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^0.11.2", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.6", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + } + }, + "react-hook-form": { + "version": "7.41.3", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.41.3.tgz", + "integrity": "sha512-5QNTmqJtDb88WV5n41b6+AmcDMVyaJ3tccPgHAgS215w3jZ3bmJhDO27kNTr8u4YHNYXmS7p1/4/KachBAlUtw==" + }, + "react-i18next": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-12.1.1.tgz", + "integrity": "sha512-mFdieOI0LDy84q3JuZU6Aou1DoWW2fhapcTGeBS8+vWSJuViuoCLQAMYSb0QoHhXS8B0WKUOPpx4cffAP7r/aA==", + "requires": { + "@babel/runtime": "^7.14.5", + "html-parse-stringify": "^3.0.1" + } + }, + "react-icons": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.7.1.tgz", + "integrity": "sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw==" + }, + "react-intersection-observer": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.4.1.tgz", + "integrity": "sha512-IXpIsPe6BleFOEHKzKh5UjwRUaz/JYS0lT/HPsupWEQou2hDqjhLMStc5zyE3eQVT4Fk3FufM8Fw33qW1uyeiw==" + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true + }, + "react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "requires": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + } + }, + "react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "requires": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + } + }, + "react-responsive": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-9.0.2.tgz", + "integrity": "sha512-+4CCab7z8G8glgJoRjAwocsgsv6VA2w7JPxFWHRc7kvz8mec1/K5LutNC2MG28Mn8mu6+bu04XZxHv5gyfT7xQ==", + "requires": { + "hyphenate-style-name": "^1.0.0", + "matchmediaquery": "^0.3.0", + "prop-types": "^15.6.1", + "shallow-equal": "^1.2.1" + } + }, + "react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "requires": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + } + }, + "read-chunk": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-1.0.1.tgz", + "integrity": "sha512-5NLTTdX45dKFtG8CX5pKmvS9V5u9wBE+gkklN7xhDuhq3pA2I4O7ALfKxosCMcLHOhkxj6GNacZhfXtp5nlCdg==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resize-img": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/resize-img/-/resize-img-1.1.2.tgz", + "integrity": "sha512-/4nKUmuNPuM6gYTWad136ica81baOVjpesgv8FGaIvP0KWcbCWahOWBKaM4tFoM+aVcSA+qQDg28pcnIzFRpJw==", + "dev": true, + "requires": { + "bmp-js": "0.0.1", + "file-type": "^3.8.0", + "get-stream": "^2.0.0", + "jimp": "^0.2.21", + "jpeg-js": "^0.1.1", + "parse-png": "^1.1.1" + }, + "dependencies": { + "bmp-js": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.1.tgz", + "integrity": "sha512-OS74Rlt0Aynu2mTPmY9RZOUOXlqWecFIILFXr70vv16/xCZnFxvri9IKkF1IGxQ8r9dOE62qGNpKxXx8Lko8bg==", + "dev": true + }, + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "dev": true + }, + "jimp": { + "version": "0.2.28", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.2.28.tgz", + "integrity": "sha512-9HT7DA279xkTlry2oG30s6AtOUglNiY2UdyYpj0yNI4/NBv8PmdNC0gcldgMU4HqvbUlrM3+v+6GaHnTkH23JQ==", + "dev": true, + "requires": { + "bignumber.js": "^2.1.0", + "bmp-js": "0.0.3", + "es6-promise": "^3.0.2", + "exif-parser": "^0.1.9", + "file-type": "^3.1.0", + "jpeg-js": "^0.2.0", + "load-bmfont": "^1.2.3", + "mime": "^1.3.4", + "mkdirp": "0.5.1", + "pixelmatch": "^4.0.0", + "pngjs": "^3.0.0", + "read-chunk": "^1.0.1", + "request": "^2.65.0", + "stream-to-buffer": "^0.1.0", + "tinycolor2": "^1.1.2", + "url-regex": "^3.0.0" + }, + "dependencies": { + "bmp-js": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.3.tgz", + "integrity": "sha512-epsm3Z92j5xwek9p97pVw3KbsNc0F4QnbYh+N93SpbJYuHFQQ/UAh6K+bKFGyLePH3Hudtl/Sa95Quqp0gX8IQ==", + "dev": true + }, + "jpeg-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.2.0.tgz", + "integrity": "sha512-Ni9PffhJtYtdD7VwxH6V2MnievekGfUefosGCHadog0/jAevRu6HPjYeMHbUemn0IPE8d4wGa8UsOGsX+iKy2g==", + "dev": true + } + } + }, + "jpeg-js": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.1.2.tgz", + "integrity": "sha512-CiRVjMKBUp6VYtGwzRjrdnro41yMwKGOWdP9ATXqmixdz2n7KHNwdqthTYSSbOKj/Ha79Gct1sA8ZQpse55TYA==", + "dev": true + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + } + } + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "screenfull": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz", + "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + }, + "sharp": { + "version": "0.28.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.28.3.tgz", + "integrity": "sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA==", + "dev": true, + "requires": { + "color": "^3.1.3", + "detect-libc": "^1.0.3", + "node-addon-api": "^3.2.0", + "prebuild-install": "^6.1.2", + "semver": "^7.3.5", + "simple-get": "^3.1.0", + "tar-fs": "^2.1.1", + "tunnel-agent": "^0.6.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true + }, + "simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "dev": true, + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "stream-to": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz", + "integrity": "sha512-Kg1BSDTwgGiVMtTCJNlo7kk/xzL33ZuZveEBRt6rXw+f1WLK/8kmz2NVCT/Qnv0JkV85JOHcLhD82mnXsR3kPw==", + "dev": true + }, + "stream-to-buffer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz", + "integrity": "sha512-Da4WoKaZyu3nf+bIdIifh7IPkFjARBnBK+pYqn0EUJqksjV9afojjaCCHUemH30Jmu7T2qcKvlZm2ykN38uzaw==", + "dev": true, + "requires": { + "stream-to": "~0.2.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + }, + "stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "timm": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", + "dev": true + }, + "tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "tinycolor2": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.5.1.tgz", + "integrity": "sha512-BHlrsGeYN2OpkRpfAgkEwCMu6w8Quq8JkK/mp4c55NZP7OwceJObR1CPZt62TqiA0Y3J5pwuDX+fXDqc35REtg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "to-ico": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/to-ico/-/to-ico-1.1.5.tgz", + "integrity": "sha512-5kIh7m7bkIlqIESEZkL8gAMMzucXKfPe3hX2FoDY5HEAfD9OJU+Qh9b6Enp74w0qRcxVT5ejss66PHKqc3AVkg==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "buffer-alloc": "^1.1.0", + "image-size": "^0.5.0", + "parse-png": "^1.0.0", + "resize-img": "^1.1.0" + }, + "dependencies": { + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true + } + } + }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "ts-essentials": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-9.3.0.tgz", + "integrity": "sha512-XeiCboEyBG8UqXZtXl59bWEi4ZgOqRsogFDI6WDGIF1LmzbYiAkIwjkXN6zZWWl4re/lsOqMlYfe8KA0XiiEPw==", + "dev": true + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "typescript": { + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "dev": true + }, + "unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "requires": { + "unique-slug": "^3.0.0" + } + }, + "unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-regex": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", + "integrity": "sha512-dQ9cJzMou5OKr6ZzfvwJkCq3rC72PNXhqz0v3EIhF4a3Np+ujr100AhUx2cKx5ei3iymoJpJrPB3sVSEMdqAeg==", + "dev": true, + "requires": { + "ip-regex": "^1.0.1" + } + }, + "use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "requires": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + } + }, + "utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "dev": true, + "requires": { + "pako": "^1.0.5" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + } + } + }, + "vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vite": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", + "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "dev": true, + "requires": { + "esbuild": "^0.15.9", + "fsevents": "~2.3.2", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + } + }, + "vite-plugin-top-level-await": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.2.2.tgz", + "integrity": "sha512-JBuY9X5KCxZyzwQUOIBpgX0Jbe2BECxwElWPeyrdRC5xaWzDibTG65QBW25COmwqHBeVlV04u8GTlJkuOWhfgw==", + "dev": true, + "requires": { + "@swc/core": "^1.3.10" + } + }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==" + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dev": true, + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==", + "dev": true + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..0a24a3d --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,49 @@ +{ + "name": "frontend", + "private": true, + "version": "0.2.0", + "type": "module", + "repository": "https://github.com/lamacchinadesiderante/millelibri", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@chakra-ui/react": "^2.4.6", + "@chakra-ui/skip-nav": "^2.0.13", + "@chakra-ui/system": "^2.3.7", + "@emotion/react": "^11.10.5", + "@emotion/styled": "^11.10.5", + "@tanstack/react-table": "^8.7.4", + "@tanstack/table-core": "^8.7.4", + "@tauri-apps/api": "^1.2.0", + "ahooks": "^3.7.4", + "axios": "^1.2.2", + "filesize": "^10.0.6", + "framer-motion": "^7.10.3", + "i18next": "^22.4.6", + "i18next-browser-languagedetector": "^7.0.1", + "lodash": "^4.17.21", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.41.3", + "react-i18next": "^12.1.1", + "react-icons": "^4.7.1", + "react-intersection-observer": "^9.4.1", + "react-responsive": "^9.0.2" + }, + "devDependencies": { + "@babel/core": "^7.20.7", + "@darkobits/vite-plugin-favicons": "^0.1.8", + "@types/lodash": "^4.14.191", + "@types/node": "^18.11.18", + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.10", + "@vitejs/plugin-react": "^2.2.0", + "prettier": "^2.8.1", + "typescript": "^4.9.4", + "vite": "^3.2.5", + "vite-plugin-top-level-await": "^1.2.2" + } +} diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml new file mode 100644 index 0000000..2b17ac2 --- /dev/null +++ b/frontend/pnpm-lock.yaml @@ -0,0 +1,5060 @@ +lockfileVersion: 5.4 + +specifiers: + '@babel/core': ^7.20.7 + '@chakra-ui/react': ^2.4.6 + '@chakra-ui/skip-nav': ^2.0.13 + '@chakra-ui/system': ^2.3.7 + '@darkobits/vite-plugin-favicons': ^0.1.8 + '@emotion/react': ^11.10.5 + '@emotion/styled': ^11.10.5 + '@tanstack/react-table': ^8.7.4 + '@tanstack/table-core': ^8.7.4 + '@tauri-apps/api': ^1.2.0 + '@types/lodash': ^4.14.191 + '@types/node': ^18.11.18 + '@types/react': ^18.0.26 + '@types/react-dom': ^18.0.10 + '@vitejs/plugin-react': ^2.2.0 + ahooks: ^3.7.4 + axios: ^1.2.2 + filesize: ^10.0.6 + framer-motion: ^7.10.3 + i18next: ^22.4.6 + i18next-browser-languagedetector: ^7.0.1 + lodash: ^4.17.21 + prettier: ^2.8.1 + react: ^18.2.0 + react-dom: ^18.2.0 + react-hook-form: ^7.41.3 + react-i18next: ^12.1.1 + react-icons: ^4.7.1 + react-intersection-observer: ^9.4.1 + typescript: ^4.9.4 + vite: ^3.2.5 + vite-plugin-top-level-await: ^1.2.2 + +dependencies: + '@chakra-ui/react': 2.4.6_6z66u6efdgokrdxyuxkwijcyzq + '@chakra-ui/skip-nav': 2.0.13_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + '@emotion/react': 11.10.5_3grbeiqrb6djg67fiejiqngkdi + '@emotion/styled': 11.10.5_pwtpayi7py7ecifctvjbac33ee + '@tanstack/react-table': 8.7.4_biqbaboplfbrettd7655fr4n2y + '@tanstack/table-core': 8.7.4 + '@tauri-apps/api': 1.2.0 + ahooks: 3.7.4_react@18.2.0 + axios: 1.2.2 + filesize: 10.0.6 + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + i18next: 22.4.6 + i18next-browser-languagedetector: 7.0.1 + lodash: 4.17.21 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-hook-form: 7.41.3_react@18.2.0 + react-i18next: 12.1.1_6vygckh2jgtx4nucc3no6lnm3y + react-icons: 4.7.1_react@18.2.0 + react-intersection-observer: 9.4.1_react@18.2.0 + +devDependencies: + '@babel/core': 7.20.7 + '@darkobits/vite-plugin-favicons': 0.1.8_7g3uriyb4kqeq2yf2bucr7z2ea + '@types/lodash': 4.14.191 + '@types/node': 18.11.18 + '@types/react': 18.0.26 + '@types/react-dom': 18.0.10 + '@vitejs/plugin-react': 2.2.0_vite@3.2.5 + prettier: 2.8.1 + typescript: 4.9.4 + vite: 3.2.5_@types+node@18.11.18 + vite-plugin-top-level-await: 1.2.2_vite@3.2.5 + +packages: + + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + + /@babel/compat-data/7.20.10: + resolution: {integrity: sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==} + engines: {node: '>=6.9.0'} + + /@babel/core/7.20.7: + resolution: {integrity: sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.7 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.7 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helpers': 7.20.7 + '@babel/parser': 7.20.7 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.10 + '@babel/types': 7.20.7 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + + /@babel/generator/7.20.7: + resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + + /@babel/helper-annotate-as-pure/7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + dev: true + + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.7: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.20.10 + '@babel/core': 7.20.7 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + lru-cache: 5.1.1 + semver: 6.3.0 + + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name/7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.20.7 + + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + + /@babel/helper-module-transforms/7.20.11: + resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.10 + '@babel/types': 7.20.7 + transitivePeerDependencies: + - supports-color + + /@babel/helper-plugin-utils/7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-simple-access/7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + + /@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + engines: {node: '>=6.9.0'} + + /@babel/helpers/7.20.7: + resolution: {integrity: sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.10 + '@babel/types': 7.20.7 + transitivePeerDependencies: + - supports-color + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser/7.20.7: + resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.20.7 + + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.7: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.7 + '@babel/helper-plugin-utils': 7.20.2 + + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.20.7: + resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.7 + '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.20.7 + dev: true + + /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.20.7: + resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.7 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.20.7: + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.7 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.20.7: + resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.7 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.7 + '@babel/types': 7.20.7 + dev: true + + /@babel/runtime/7.20.7: + resolution: {integrity: sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + + /@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.20.7 + '@babel/types': 7.20.7 + + /@babel/traverse/7.20.10: + resolution: {integrity: sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.7 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.7 + '@babel/types': 7.20.7 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types/7.20.7: + resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + + /@chakra-ui/accordion/2.1.5_p72g2qpsppq5sxp4u5fnn2dxya: + resolution: {integrity: sha512-mxpcbnrbraYGNu/tmYC/Y0BNqM8jGXYygl4wzttlMSm8pXrhXApyv0bNBsU6zbBWqeyQE64R14N1ONl4i8CMkQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.0.12_react@18.2.0 + '@chakra-ui/icon': 3.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-controllable-state': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + '@chakra-ui/transition': 2.0.13_b6cg6jjo3nvfx3u2luvtn6jrla + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + dev: false + + /@chakra-ui/alert/2.0.14_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-dG+tgfOT9LVsx+scvXdKBj3D8XRnZ1pTul4G6TSRK6A4FifSwSTvNnmjvNpoH0Vh1dSMRI0zxpV8PAfs9dS9KA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/spinner': 2.0.12_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/anatomy/2.1.1: + resolution: {integrity: sha512-LUHAoqJAgxAqmyckG5bUpBrfEo1FleEyY+1A8hkWciy58gZ+h3GoY9oBpHcdo7XdHPpy3G+3hieK/7i9NLwxAw==} + dev: false + + /@chakra-ui/avatar/2.2.2_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-wFDK1wT5kQxkpCAX6mPhx9kh0Pi2RnfN32bCRFio4Mmiq0ltfSEWi3/XxlawDr31Ch3T3qbtPVLqn355B4U9ZA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/image': 2.0.13_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-children-utils': 2.0.5_react@18.2.0 + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/breadcrumb/2.1.2_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-NbWg9YKCxo6nbwORpfFkD6bIDvcDdCPPLx+tqIqVwoplpaSPeFV5lzPy4Lg/MS6x6Ko6a/GItGpDQGPuey+iWA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-children-utils': 2.0.5_react@18.2.0 + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/breakpoint-utils/2.0.6: + resolution: {integrity: sha512-aigYoZdHtV+PNFr/RTHjbIYK49PsMLvwtpZsowKWJ6xDyPKHtfhwZ2VOBTUyaQf4mXgaB9MNOF46zOTJN8RfLQ==} + dependencies: + '@chakra-ui/shared-utils': 2.0.4 + dev: false + + /@chakra-ui/button/2.0.14_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-XdP1sB67N2DujDXPWyyXMTjW7frcnbf3yN/3F/asQClZX7ppw8Y36a6uZ94+6Cv67BPc0CokN+m3oQZhINJ+vw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/spinner': 2.0.12_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/card/2.1.4_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-MO8tjFBX2OZJt+NOthDoKcGRMQW/43NePze8Sju7zXqv1ocq7VB0DvToPLkopgeKaPx6AyYhzRXQjYXLcjYgQw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/checkbox/2.2.7_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-9p0U5xRE4OL5AbhZjV6Gw0iECLz8yd0cP43FabyBY8UfqrJPpAT22jxRmQ6Tv+HKbvAmgXOtxyIdwYTb1s1D+g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-controllable-state': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-safe-layout-effect': 2.0.4_react@18.2.0 + '@chakra-ui/react-use-update-effect': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + '@chakra-ui/visually-hidden': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@zag-js/focus-visible': 0.2.1 + react: 18.2.0 + dev: false + + /@chakra-ui/clickable/2.0.12_react@18.2.0: + resolution: {integrity: sha512-boZwlHZ1BdsC4P/1r+SRbKRMG+/UzOgc16Fmhl2QkZquVF6jS6QtJBS1/fL+1N8oijz87nuhBoetNECnfWYN+w==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + react: 18.2.0 + dev: false + + /@chakra-ui/close-button/2.0.14_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-C/MR6EH+MUC49QCtKdoeAq/GYvs4CEvl0xjwri6qFYd8+UEkXPfl33Idw0c3kPbGe+aTrh4vMAYrRNwc4BveIg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/color-mode/2.1.11_react@18.2.0: + resolution: {integrity: sha512-556wqI/MohJAqzP9AD+YsKGi982TzrsAaRGr7RCY5fChNe/wHraLPjMPNITPjjDQWiUmZYkaEos78/4u3qOdpA==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.0.4_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/control-box/2.0.12_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-SR2rG917ttCAda9Kh0eqr0X2AWQii2iRrgTks3fbDGi7seV7m3tkrpK2hr7rPz5zX0UoJi6CFO04Q6cSclFylw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/counter/2.0.12_react@18.2.0: + resolution: {integrity: sha512-LselA3J2OvO1GxXo9pTvFEDEYXaSkelEGAOasUfME2ckQnznMOI96x7cLAujyMuhTAuGnz0n4mxAOp/iMHKL4Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.6 + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + react: 18.2.0 + dev: false + + /@chakra-ui/css-reset/2.0.11_hp5f5nkljdiwilp4rgxyefcplu: + resolution: {integrity: sha512-TnydPIMYaQX8kJ8cKgbXfHaBKLr9wCqZS+UnqUxUo3YzMNRjOUPg4DWVO4n4s+GwuZy860DGsBoJaheLqrilVg==} + peerDependencies: + '@emotion/react': '>=10.0.35' + react: '>=18' + dependencies: + '@emotion/react': 11.10.5_3grbeiqrb6djg67fiejiqngkdi + react: 18.2.0 + dev: false + + /@chakra-ui/descendant/3.0.12_react@18.2.0: + resolution: {integrity: sha512-jx37SI6PYKMSgn+46Ou8LGa2nbEiBRmU4rzz+0/klVpCSd4yQLcm1c4nPv0D7SoQrhq/cQq4tUPfC2U4tXeovQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/dom-utils/2.0.5: + resolution: {integrity: sha512-cZsaji3ntRcJOqrc9xyS2JSGXr/VLPFTTvShLApxg5dCDWvrGrCJGQ+iSP6R2FGHo2D6cpAgMdPO9O65KUyZBA==} + dev: false + + /@chakra-ui/editable/2.0.17_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-1Yy2rfWPtRg/1qx2yv9ovTwrpuFHFLEB8LyizM44yvKnSEqTb2K6CTYhVHQBzI92bQUbGsorSflLvFFUzB55XQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-controllable-state': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-focus-on-pointer-down': 2.0.5_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-safe-layout-effect': 2.0.4_react@18.2.0 + '@chakra-ui/react-use-update-effect': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/event-utils/2.0.7: + resolution: {integrity: sha512-OBEIx7CIK5k3nYUGnh2WDhth1oGe26fwXMVQjVM9+2LBUYw2Y1Ufac4o7lMiD1CnyUP+Q70yjMV/mFacvP1EMw==} + dev: false + + /@chakra-ui/focus-lock/2.0.14_kzbn2opkn2327fwg5yzwzya5o4: + resolution: {integrity: sha512-p4aieMBm4CG+uhfJ/W+2p3koGfPsHzdzSu2A8AYM5kGZ3rCx6IM97XYSneConw5WH7mSQR4lXzuEDjAyDozXFg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.0.5 + react: 18.2.0 + react-focus-lock: 2.9.2_kzbn2opkn2327fwg5yzwzya5o4 + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/form-control/2.0.14_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-HPT65tNxQJ6E3AqhREa90aJOdJ1TUj+Y37fLqhIUOMrFX2eLjthE81XswjrUGbcaQk0DuCqMLMBFjeUNxo2Qhw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/hooks/2.1.4_react@18.2.0: + resolution: {integrity: sha512-FOsBBMK2zl7qdBrBgmkMNMkkbkKzM0RwYoK7oV+ldUG1f7pvjPBmzRFZ3wiIh5FlbffZvlLAH22D3a2xldWDZw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-utils': 2.0.11_react@18.2.0 + '@chakra-ui/utils': 2.0.14 + compute-scroll-into-view: 1.0.14 + copy-to-clipboard: 3.3.1 + react: 18.2.0 + dev: false + + /@chakra-ui/icon/3.0.14_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-ksNDXSByoLFNec/7UANtiy/lHt2NO3/Xe5KIde3zh70yY1QcRQjO8TjvXgYwqLbR0D6OzMGggrZnJKafeZhjRQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/image/2.0.13_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-zcTN3DuhoLCkCgCwPGvy++F9jaCE2OQjoLKJSU2Rnc0c8WjCZZqXKuRdg3GhaYc80kaVSexMSc6h04Hki+JgVQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.0.4_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/input/2.0.16_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-4ybF7PQa8MQJm/QvD+UogYerB9/nZuNk+A9Eh9Djtg0EMiD/z+2jhZp2a4Te0HE8mq/DaEK7aNgw4s/EmAKnGA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/object-utils': 2.0.6 + '@chakra-ui/react-children-utils': 2.0.5_react@18.2.0 + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/layout/2.1.12_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-iIz9QiS0iB+8NUX5r9TtCbV2JbGzEbKVPiTTtnf48utu12lX4xcdpZJm6jgtgWjvwyo+N+FxyQ8oNff5OqN+Hw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.6 + '@chakra-ui/icon': 3.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/object-utils': 2.0.6 + '@chakra-ui/react-children-utils': 2.0.5_react@18.2.0 + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/lazy-utils/2.0.4: + resolution: {integrity: sha512-HaVlEIlWNdk9vuubfc+EJkNkwP4pORXkPanP72KF8CxM4NN1hCSm+2gAvlCZCmWUIKIyhGMO1lXPY923o2Mnug==} + dev: false + + /@chakra-ui/live-region/2.0.12_react@18.2.0: + resolution: {integrity: sha512-hzCvqeYRtocLn0KmlEpVdYbt/7Tb5tBtsjMBfJb2lQkarQRwC9xzZ4arCcsDZAWiR3c3wvXdSob3vZ71biz46g==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/media-query/3.2.9_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-4vaf8YqgIs5zhaQTLAif+aiiixo9gpk1xiTn4oTiDZQFuTVhKyv4iI93NbAKif/Bls+8XghbMo0rF93DjqRRzg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.6 + '@chakra-ui/react-env': 2.0.12_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/menu/2.1.6_p72g2qpsppq5sxp4u5fnn2dxya: + resolution: {integrity: sha512-/ypgx+JmYgItoBq0bUMetnjDu3aS75lra4xVQeMEG8L7y8/q7B4uIIJeSVh7o8UQJCvV05doxnwsxV7zBW29bw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.0.12_react@18.2.0 + '@chakra-ui/descendant': 3.0.12_react@18.2.0 + '@chakra-ui/lazy-utils': 2.0.4 + '@chakra-ui/popper': 3.0.11_react@18.2.0 + '@chakra-ui/react-children-utils': 2.0.5_react@18.2.0 + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-animation-state': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-controllable-state': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-disclosure': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-focus-effect': 2.0.8_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-outside-click': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-update-effect': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + '@chakra-ui/transition': 2.0.13_b6cg6jjo3nvfx3u2luvtn6jrla + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + dev: false + + /@chakra-ui/modal/2.2.6_6hx7u2c5ihg2klgxta3pkcygm4: + resolution: {integrity: sha512-NyGovs3+MimltfCyqrpr20vtwNOaNykJGQFp7GfsfiInoMU7fOyDAc12JfgcVl3LCwk0bEo60hx1zxZ3GQvUxQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/close-button': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/focus-lock': 2.0.14_kzbn2opkn2327fwg5yzwzya5o4 + '@chakra-ui/portal': 2.0.13_biqbaboplfbrettd7655fr4n2y + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + '@chakra-ui/transition': 2.0.13_b6cg6jjo3nvfx3u2luvtn6jrla + aria-hidden: 1.2.2_kzbn2opkn2327fwg5yzwzya5o4 + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-remove-scroll: 2.5.5_kzbn2opkn2327fwg5yzwzya5o4 + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/number-input/2.0.15_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-x04CqLPFF1bYiIiosB5xoWSoOKYBbrB5EMpm1382X11fdsdrkkR2/3Jqb3Hh0yVV63FtxXaYEeUENb6tJMcGmQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/counter': 2.0.12_react@18.2.0 + '@chakra-ui/form-control': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/icon': 3.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-event-listener': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-interval': 2.0.4_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-safe-layout-effect': 2.0.4_react@18.2.0 + '@chakra-ui/react-use-update-effect': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/number-utils/2.0.6: + resolution: {integrity: sha512-VLOyoiXGpZ+eCQSPqKdBCEpen9VAo6pc6FDFuf4BNdIVEfh6ee//Zl7XjyTAGr1G4HUANp8ZxVHHPvtQ10VP4w==} + dev: false + + /@chakra-ui/object-utils/2.0.6: + resolution: {integrity: sha512-fw1AjQ4wdL8hqPGiE6ulXyugwh1m70YluG1yWGZDPi909zJj1/uL0DClgiNJY/8zWJrbMwDjGdYziXudLxahgA==} + dev: false + + /@chakra-ui/pin-input/2.0.17_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-uDL8HIjuvvcEO9YBiAOewFtlrjPDqF+xPIWBh4hetDVt6Pd9XavvuyRJjsogjAZt0FsweUg5sF8g/iVLAihCAQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.0.12_react@18.2.0 + '@chakra-ui/react-children-utils': 2.0.5_react@18.2.0 + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-controllable-state': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/popover/2.1.5_p72g2qpsppq5sxp4u5fnn2dxya: + resolution: {integrity: sha512-ERM9312mJ1RbiRRdgn0E8jS10ZNBsACFkLhnEe++Ow27pjuIxL/MCpCatEGx9b97osHSsfPHekHjaLcOoCqVIw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/close-button': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/lazy-utils': 2.0.4 + '@chakra-ui/popper': 3.0.11_react@18.2.0 + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-animation-state': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-disclosure': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-focus-effect': 2.0.8_react@18.2.0 + '@chakra-ui/react-use-focus-on-pointer-down': 2.0.5_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + dev: false + + /@chakra-ui/popper/3.0.11_react@18.2.0: + resolution: {integrity: sha512-fsKwgq3E0S6FqCzTCQ7HQEr2BOHfHZZMiqvFpGyrIPQ/Esv7aE3Ipw4y4RHTztzJ+vUKK3XTbJzX1cU4RR4a8Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@popperjs/core': 2.11.6 + react: 18.2.0 + dev: false + + /@chakra-ui/portal/2.0.13_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-EuzaYJuIXM5elqy0MmXe+nc2bHm72JpxkM/PX+LnRTlkA44Kj/iQP5gnx5KHLVG4RPbcG5p61W4KzIBPSRY0+g==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-safe-layout-effect': 2.0.4_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@chakra-ui/progress/2.1.3_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-RnVFvdWXrj06oVG0R0m/OunXJ9oxMrcI/UHGgTw74FbjZDSSv7+8j9397iu2Mop7v6iJi0Rhm8Nyi/wEqlO9lw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/provider/2.0.28_5rzy53przelm5jchjmb5vr6dxy: + resolution: {integrity: sha512-9Q6UTweW0Fbgqd1ifBeVJke0QLp6duZqiju+Ng9C16B31FcNCz8nFPWQLx5yhDnA4XoQ3vNREkrETfae4CfH1Q==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/css-reset': 2.0.11_hp5f5nkljdiwilp4rgxyefcplu + '@chakra-ui/portal': 2.0.13_biqbaboplfbrettd7655fr4n2y + '@chakra-ui/react-env': 2.0.12_react@18.2.0 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + '@chakra-ui/utils': 2.0.14 + '@emotion/react': 11.10.5_3grbeiqrb6djg67fiejiqngkdi + '@emotion/styled': 11.10.5_pwtpayi7py7ecifctvjbac33ee + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@chakra-ui/radio/2.0.16_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-TQyHi88Jo6BNCNKXMpWxkoKufEOM2va+3ykuFK8RSqaAhRbHXBdnbS23Bq2HR7z7jrsnsOQOkZ9VA64XDDn1fw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + '@zag-js/focus-visible': 0.2.1 + react: 18.2.0 + dev: false + + /@chakra-ui/react-children-utils/2.0.5_react@18.2.0: + resolution: {integrity: sha512-rP/1HFR9J6wohIzLe/gU+vpey27uey9pVa46VTZfApI6VdzDWiQT1pmrGQeMkba07KdU2MJS/60dhGM4NfvcQA==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-context/2.0.6_react@18.2.0: + resolution: {integrity: sha512-+Bk/lDBirj6KE3vbyyUVCqFGqAe+MOso+1NRHQ0m66/sXWFFnoL/lvuq4osdNp80DOVQ4EYYnHI0olSZZvuKEg==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-env/2.0.12_react@18.2.0: + resolution: {integrity: sha512-BPTz2cxNKhNc1y5J9cCOYndbGiNulpMwihZLkybLRJ1qzZic4KuD3iGOkagJ81STKoPkKEZWfcjnrQTCJTq1fg==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-types/2.0.6_react@18.2.0: + resolution: {integrity: sha512-aAq/nl//PneEfeaDb94zwfXor4OP/d5kc6dEXOZB2HJgCt3hu2+F/1u1QpPLPPTys5xexkQojuZQLnnD9lmQFw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-animation-state/2.0.7_react@18.2.0: + resolution: {integrity: sha512-v4p5jTopFvYah3vrRU7m6W+m1IEIqxfDco6ASeoEWEcKab4WBdQ1OQr1Oxgip+UIgmvLUnl+3BS+jPUuuKkdgg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.0.5 + '@chakra-ui/react-use-event-listener': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-callback-ref/2.0.6_react@18.2.0: + resolution: {integrity: sha512-JKh0GJQvLonjSVQJjsBs2gE+Zix/DXfAo8kzNE+DzNf49CNomX59TkcJNXDjtzSktn6GfqDF8IOObJlGlbtG7g==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-controllable-state/2.0.7_react@18.2.0: + resolution: {integrity: sha512-vKGgMtZb/06KnIF0XUFjWvwfKs3x35M6FEc4FU/wgM5FDU9T6Vd1TG7kDHFMoYdcvRf2/fgzkOxgTN052+sMkw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-disclosure/2.0.7_react@18.2.0: + resolution: {integrity: sha512-vQG8AxYq+BkaurCHdMA9pxJAfQDmErMzn9hn2elP0dVfKe2a0O7aCFzX2Ff9PeeBKWOFlUfKf79gRBnhXRa5xw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-event-listener/2.0.6_react@18.2.0: + resolution: {integrity: sha512-lDtccra2B/1ap6Z7NESS4QfZajfOLd/jafmVdiO0xc4YSs6VDhenipMCv9O47U5EXapG6jfTXs2nbFkc3jRKiA==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-focus-effect/2.0.8_react@18.2.0: + resolution: {integrity: sha512-Et6/97A/6ndPygj6CF8+T7RQH0gsW5fkWNi64R7OjuQSjWxGq1kcmyBGm4E2u2Hbmtf4Hm1dcjzilnYbG7M7IA==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.0.5 + '@chakra-ui/react-use-event-listener': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-safe-layout-effect': 2.0.4_react@18.2.0 + '@chakra-ui/react-use-update-effect': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-focus-on-pointer-down/2.0.5_react@18.2.0: + resolution: {integrity: sha512-xDQUp8s+a+0DgqOWdvKXgIZcyXH5RXKkC+qa0mbUJf54b9qLbrD6yw3o2jAvDEGa7vLBjaVY4jfOAdzt7+Na2g==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-event-listener': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-interval/2.0.4_react@18.2.0: + resolution: {integrity: sha512-LCS0CijCBEJW1dz2WQThGn+wPSaA6YWPEWeS2WmobbQhkjLbzEy2z8CIG5MeUopX8v6kDDnCMmIpocmrIyGGbA==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-latest-ref/2.0.4_react@18.2.0: + resolution: {integrity: sha512-7xxQeu7PtFUEXbd+BZ+UMX9ASpJET02z9EgtqSfnMgB1ccgo/1i8CYI2/BcolwRf05EUD7kOUA+7eHyP4EI3Uw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-merge-refs/2.0.6_react@18.2.0: + resolution: {integrity: sha512-m4fQtm5cn3F39nLj5MhmKsAzdFaYMldR8a4VMtfC2Pnd+bqX8jx2q2yPCjpam9x/Wnh8ZRBMJ2KAjAiGnF3XXw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-outside-click/2.0.6_react@18.2.0: + resolution: {integrity: sha512-wbZI4zDwSiQ3jCZ++PKmv7uIU6oyEbaap8s6e3O9/JFAlPXxAG48DcSHmQZ8scyEu/wwd8A+/3go49T4VIvc7w==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-pan-event/2.0.8_react@18.2.0: + resolution: {integrity: sha512-HUn7WR9IagtC3KdjmBlHibnFYisQ055IoWReIEWuDz/5KWSPeC2p2QcMc33vhN/ucS1XbWCt6uelHHBeCWWvfA==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/event-utils': 2.0.7 + '@chakra-ui/react-use-latest-ref': 2.0.4_react@18.2.0 + framesync: 6.1.2 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-previous/2.0.4_react@18.2.0: + resolution: {integrity: sha512-ZzILmNAoRVPDRFhKUceksQGETQyne4ST7W7Y5NPkr/OAJuzc2njodY0GjGiJTF2YpOSelRn6KB8MDhwp4XR2mw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-safe-layout-effect/2.0.4_react@18.2.0: + resolution: {integrity: sha512-GbQIdhiesXZ8DV+JxiERz3/zki6PELhYPz/7JxyFUk8xInJnUcuEz2L4bV7rXIm9/bd2kjf4gfV+lHOGfpJdLw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-size/2.0.7_react@18.2.0: + resolution: {integrity: sha512-ggj8W0rer9oJ03xXrH4CUBNe6RZ/qtuU/32pMougeVWwZ3COGTODBtFlooIiy3iCvxrpHIgIDXy/hyrBWyvQSw==} + peerDependencies: + react: '>=18' + dependencies: + '@zag-js/element-size': 0.3.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-timeout/2.0.4_react@18.2.0: + resolution: {integrity: sha512-7EqjJVRv61DmWb9UE4R9LPf3l1SDfawQ2/ax/e0lYpDBjaeV013wUH1uurRq8jn/vR1DhNzfRB5VtimE2f2Vsw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-update-effect/2.0.6_react@18.2.0: + resolution: {integrity: sha512-P6+0hocnasjl8xOrFH9BklyCNNzCBu/XAl5y7kZ82uVnS99SaC6cppO9/qWRZI9cYYheWfJ4lyLGeLOcNmI8/Q==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-utils/2.0.11_react@18.2.0: + resolution: {integrity: sha512-LdE0Ay5Em2ew7fuux9MJAwaxoaU/QwVoH/t6uiUw/JCWpmiMGY6tw6t3eZTvZSRZNfyPWY0MmvOHR1UvIS9JIw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/utils': 2.0.14 + react: 18.2.0 + dev: false + + /@chakra-ui/react/2.4.6_6z66u6efdgokrdxyuxkwijcyzq: + resolution: {integrity: sha512-uz9QjjxJgf81fXcOWDiVo2rU/lWfThCDKW5UMlYX2OrrHko7OnwZ3r9oMlZFU/vAS71LWhKbjXicJmOwwls42g==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/accordion': 2.1.5_p72g2qpsppq5sxp4u5fnn2dxya + '@chakra-ui/alert': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/avatar': 2.2.2_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/breadcrumb': 2.1.2_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/button': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/card': 2.1.4_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/checkbox': 2.2.7_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/close-button': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/control-box': 2.0.12_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/counter': 2.0.12_react@18.2.0 + '@chakra-ui/css-reset': 2.0.11_hp5f5nkljdiwilp4rgxyefcplu + '@chakra-ui/editable': 2.0.17_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/form-control': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/hooks': 2.1.4_react@18.2.0 + '@chakra-ui/icon': 3.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/image': 2.0.13_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/input': 2.0.16_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/layout': 2.1.12_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/live-region': 2.0.12_react@18.2.0 + '@chakra-ui/media-query': 3.2.9_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/menu': 2.1.6_p72g2qpsppq5sxp4u5fnn2dxya + '@chakra-ui/modal': 2.2.6_6hx7u2c5ihg2klgxta3pkcygm4 + '@chakra-ui/number-input': 2.0.15_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/pin-input': 2.0.17_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/popover': 2.1.5_p72g2qpsppq5sxp4u5fnn2dxya + '@chakra-ui/popper': 3.0.11_react@18.2.0 + '@chakra-ui/portal': 2.0.13_biqbaboplfbrettd7655fr4n2y + '@chakra-ui/progress': 2.1.3_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/provider': 2.0.28_5rzy53przelm5jchjmb5vr6dxy + '@chakra-ui/radio': 2.0.16_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-env': 2.0.12_react@18.2.0 + '@chakra-ui/select': 2.0.15_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/skeleton': 2.0.21_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/slider': 2.0.18_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/spinner': 2.0.12_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/stat': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/styled-system': 2.5.1 + '@chakra-ui/switch': 2.0.19_p72g2qpsppq5sxp4u5fnn2dxya + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + '@chakra-ui/table': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/tabs': 2.1.6_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/tag': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/textarea': 2.0.15_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/theme': 2.2.4_ak67p4fuwhwgy7hpxa6ejvcgoy + '@chakra-ui/theme-utils': 2.0.8 + '@chakra-ui/toast': 4.0.8_yh4u4uuuatqfttvc4g2jssgl74 + '@chakra-ui/tooltip': 2.2.4_yh4u4uuuatqfttvc4g2jssgl74 + '@chakra-ui/transition': 2.0.13_b6cg6jjo3nvfx3u2luvtn6jrla + '@chakra-ui/utils': 2.0.14 + '@chakra-ui/visually-hidden': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@emotion/react': 11.10.5_3grbeiqrb6djg67fiejiqngkdi + '@emotion/styled': 11.10.5_pwtpayi7py7ecifctvjbac33ee + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/select/2.0.15_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-TdrkZNMyyZu1H/J/hn4Rqz7WES6cTLZfTqSIi0FtnmFMCiOmfLT317A0d783uwU/YnDGogjfTQ4aAAY2PEsgGw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/shared-utils/2.0.4: + resolution: {integrity: sha512-JGWr+BBj3PXGZQ2gxbKSD1wYjESbYsZjkCeE2nevyVk4rN3amV1wQzCnBAhsuJktMaZD6KC/lteo9ou9QUDzpA==} + dev: false + + /@chakra-ui/skeleton/2.0.21_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-ztHfV/6Mwl1Wl8H8fkAszMHnyobNZ4SjVD/rImBlKfqSh2VW8jzSwzqN77Oi6iZ7fsqdPN7w2QWS5EAtsUxTVw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/media-query': 3.2.9_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-use-previous': 2.0.4_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/skip-nav/2.0.13_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-UmFjGlZhSDkFz7OizweG27bs+Ch9dDiibmXQ20lH6qW8k7aZ9IkdIJz9vsFzpbeECsVC6V5D461BoMGjiok/7A==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/slider/2.0.18_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-wfkW9Xe3WVK1yUY0ELAPVLghknxqzPjqidQgbiMSNlKxTs70sFuACsbbwMV+LMcE+2aUYOGOaqTFI8nPfVdbOw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.6 + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-callback-ref': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-controllable-state': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-latest-ref': 2.0.4_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-pan-event': 2.0.8_react@18.2.0 + '@chakra-ui/react-use-size': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-update-effect': 2.0.6_react@18.2.0 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/spinner/2.0.12_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-c9R0k7RUgff5g79Q5kX1mE4lsXqLKIskIbPksL7Qm3Zw/ZbDHyNILFFltPLt7350rC9mGzqzEZbizAFlksbdLw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/stat/2.0.14_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-VW92QvrRZDZAtUhPHWLhS0SzxVmElb6dRevVokzTm2sBQbkE1pkZnzoYuEkBx3t0QjxZj5YhqXR+CEkZFpM1rw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/styled-system/2.5.1: + resolution: {integrity: sha512-HhaXR/r5eGlC7vkoOWQ31yZEj+Aq+kFee7ZZb0fBRGKQichn06S9Ugr8CsFyzb+jNexHdtBlIcTBm0ufJ8HsFA==} + dependencies: + '@chakra-ui/shared-utils': 2.0.4 + csstype: 3.1.1 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/switch/2.0.19_p72g2qpsppq5sxp4u5fnn2dxya: + resolution: {integrity: sha512-mXEXrTQAfGnmgAeRcVvcgC98ZaB9/WBSpfVgVKLRVuLhv5XYwhffxxZb9Zqaa3eWb9iilxi3qQUtN0g/wu2G7w==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/checkbox': 2.2.7_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + dev: false + + /@chakra-ui/system/2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm: + resolution: {integrity: sha512-sUmLyo+zjv+Im56slRaQA5fw04y7JuVGKgGW8xcQan+jVtMI2gGBvnecOUeNNiEWglpW/pZ/AE9rgJX9dKkrkA==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + dependencies: + '@chakra-ui/color-mode': 2.1.11_react@18.2.0 + '@chakra-ui/react-utils': 2.0.11_react@18.2.0 + '@chakra-ui/styled-system': 2.5.1 + '@chakra-ui/theme-utils': 2.0.8 + '@chakra-ui/utils': 2.0.14 + '@emotion/react': 11.10.5_3grbeiqrb6djg67fiejiqngkdi + '@emotion/styled': 11.10.5_pwtpayi7py7ecifctvjbac33ee + react: 18.2.0 + react-fast-compare: 3.2.0 + dev: false + + /@chakra-ui/table/2.0.14_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-tiRr//5GfFnpCz4PyVgEIWBMsePAM1SWfvAJJYG2wBXNULYB/5nYmch+cJzPqZtdgL2/RuKIJINAmqVZQVddrw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/tabs/2.1.6_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-9y+ZBRSBFOvsMY8R+nmlWXqMNwokttA1cwcnjp9djsXuN+vabN8nzPcdKsoBbYUhZJp01k2Qgg3jZ46KiD9n7w==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.0.12_react@18.2.0 + '@chakra-ui/descendant': 3.0.12_react@18.2.0 + '@chakra-ui/lazy-utils': 2.0.4 + '@chakra-ui/react-children-utils': 2.0.5_react@18.2.0 + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-controllable-state': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-safe-layout-effect': 2.0.4_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/tag/2.0.14_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-f6XU7GwTJkPDXU66Qbq8sS2i4dNb1pmeW2T1AFnzDZLI3kNLjw5B6tgW1HGr26/oq9Xu8aGNqAp0yGy9bAfeAA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/react-context': 2.0.6_react@18.2.0 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/textarea/2.0.15_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-qARh+MgeP1HSOV4oEZK5JwvQIq3gMC3kU1giMGasjsLTDjNPZiVMGpj91Z+mYB0C3IdbJhIuQCo1eM5QAL/QHg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@chakra-ui/theme-tools/2.0.16_ak67p4fuwhwgy7hpxa6ejvcgoy: + resolution: {integrity: sha512-B/LD+2LNDeHYd/LVCHIJqckVZfhrycTUpNbhRVAiDRaS0AAcsPxKas7liTFkkMkM076YjiHlcla3KpVX+E9tzg==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.0.0' + dependencies: + '@chakra-ui/anatomy': 2.1.1 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/styled-system': 2.5.1 + color2k: 2.0.0 + dev: false + + /@chakra-ui/theme-utils/2.0.8: + resolution: {integrity: sha512-E4GT1tT5JTwsxRCgopdkLWx6oxd1lrI7DBLiwW0WxvtPmHfy5I9CB4CVnYBNHQZNXiJZyUQpCwKyGg2npGxv5Q==} + dependencies: + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/styled-system': 2.5.1 + '@chakra-ui/theme': 2.2.4_ak67p4fuwhwgy7hpxa6ejvcgoy + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/theme/2.2.4_ak67p4fuwhwgy7hpxa6ejvcgoy: + resolution: {integrity: sha512-zo1FBfkJBsvpOGGByRB4aEvekdeT/9BB7Lz3rAluKkC+Wo8yce1tTSlvPMpf2f4lsEI8zVid5ATQ6u3+kIFg4w==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.0.0' + dependencies: + '@chakra-ui/anatomy': 2.1.1 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/styled-system': 2.5.1 + '@chakra-ui/theme-tools': 2.0.16_ak67p4fuwhwgy7hpxa6ejvcgoy + dev: false + + /@chakra-ui/toast/4.0.8_yh4u4uuuatqfttvc4g2jssgl74: + resolution: {integrity: sha512-g50kEZvrApkcNdm9ssccE9YYFsPMwTWz5IwUEFBJ2iSrEaTz5rikq/F2CP+oRu2vq22RPvczoOUnSaXE8GRzww==} + peerDependencies: + '@chakra-ui/system': 2.3.7 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/alert': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/close-button': 2.0.14_7wjnschhdqxnmmgtwx36wzhvlm + '@chakra-ui/portal': 2.0.13_biqbaboplfbrettd7655fr4n2y + '@chakra-ui/react-use-timeout': 2.0.4_react@18.2.0 + '@chakra-ui/react-use-update-effect': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/styled-system': 2.5.1 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + '@chakra-ui/theme': 2.2.4_ak67p4fuwhwgy7hpxa6ejvcgoy + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@chakra-ui/tooltip/2.2.4_yh4u4uuuatqfttvc4g2jssgl74: + resolution: {integrity: sha512-KUEsSjIwTyFvdixWg3jVUcpaiAfMddRxiuxnsKcFVv8H5dZF75tstaq8iAHY+pueh6CRmIvO2Oh7XWiAYA/LJA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/popper': 3.0.11_react@18.2.0 + '@chakra-ui/portal': 2.0.13_biqbaboplfbrettd7655fr4n2y + '@chakra-ui/react-types': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-disclosure': 2.0.7_react@18.2.0 + '@chakra-ui/react-use-event-listener': 2.0.6_react@18.2.0 + '@chakra-ui/react-use-merge-refs': 2.0.6_react@18.2.0 + '@chakra-ui/shared-utils': 2.0.4 + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@chakra-ui/transition/2.0.13_b6cg6jjo3nvfx3u2luvtn6jrla: + resolution: {integrity: sha512-vpzK5HN91eDLkBEdaO6GTCJOYgJYHlmxCAym/tScBuWM2ALZ4mWu57qWgPptgGv+IpMfuvL1t+IVqPgyWwEQFw==} + peerDependencies: + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.4 + framer-motion: 7.10.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + dev: false + + /@chakra-ui/utils/2.0.14: + resolution: {integrity: sha512-vYxtAUPY09Ex2Ae2ZvQKA1d2+lMKq/wUaRiqpwmeLfutEQuPQZc3qzQcAIMRQx3wLgXr9BUFDtHgBoOz0XKtZw==} + dependencies: + '@types/lodash.mergewith': 4.6.6 + css-box-model: 1.2.1 + framesync: 6.1.2 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/visually-hidden/2.0.14_7wjnschhdqxnmmgtwx36wzhvlm: + resolution: {integrity: sha512-/evqTuCeN3laukL1BPZO8HTzgs+dzq0v6gu/MJFgiSAKGLfInn0/IStKGK2vIluuCtJIgaHVdKcJzr+7sJhd0Q==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.3.7_dovxhg2tvkkxkdnqyoum6wzcxm + react: 18.2.0 + dev: false + + /@darkobits/env/1.3.5: + resolution: {integrity: sha512-E/C7Shhm9T6XUGmdFVuIwVUEyJcCo80m8ksxBEK1SJOrH6FvaTKBKnvD/2R4LyfHysxBFbz4HsgMqHMu9o1s1A==} + dev: true + + /@darkobits/log/2.0.0-beta.16: + resolution: {integrity: sha512-aiwtq11fBFik3DRuLXL+k+5Ymjie5Jfd7nA0CuD8cqIBSElj6dSgEqbCvcHTJ1IHysos4H6vEIE4hs/QfaE4gQ==} + dependencies: + '@darkobits/env': 1.3.5 + '@darkobits/mask-string': 2.0.1 + '@darkobits/sleep': 1.0.4 + ansi-escapes: 4.3.2 + callsite-record: 4.1.5 + chalk: 4.1.2 + clean-stack: 3.0.1 + cli-spinners: 2.7.0 + date-fns: 2.29.3 + deepmerge: 4.2.2 + is-ci: 3.0.1 + is-plain-object: 5.0.0 + over-9000: 9000.1.4 + ow: 0.22.0 + pretty-ms: 7.0.1 + source-map-support: 0.5.21 + strip-ansi: 6.0.1 + strip-indent: 3.0.0 + dev: true + + /@darkobits/mask-string/2.0.1: + resolution: {integrity: sha512-jNboxfoD6zzVCfBnl4gg3ZWo+gXAhXYihc+RTgnYma+Ey1YEslYdLGuj/O4prkNFnC7UnLMDbZ3EoUUZV0hJpA==} + engines: {node: '>= 12.0.0'} + dev: true + + /@darkobits/sleep/1.0.4: + resolution: {integrity: sha512-CQv7leAj3fXnsSOvsAqugg6xbtqcyonpTLlCyajuwLx3uaO9d7qXUpTfVlPlh3hoW+fif/tZJP9lmdaxHeHhOA==} + dependencies: + ms: 2.1.3 + dev: true + + /@darkobits/valida/0.1.6_typescript@4.9.4: + resolution: {integrity: sha512-VISYOmYC61XEoyNil4MCzt9/8ge5pwGHNXjXeHNIjqqB7QXAsuDEjfasSXNcdFf6apw11iegxK+U+DMSNMXdcg==} + engines: {node: '>=14', npm: '>=7'} + dependencies: + deepmerge: 4.2.2 + fastest-levenshtein: 1.0.16 + is-plain-object: 5.0.0 + ow: 0.28.1 + ramda: 0.28.0 + ts-essentials: 9.3.0_typescript@4.9.4 + transitivePeerDependencies: + - typescript + dev: true + + /@darkobits/vite-plugin-favicons/0.1.8_7g3uriyb4kqeq2yf2bucr7z2ea: + resolution: {integrity: sha512-Fg06B+HrBhAwnjnyA4FGmnPNNs1shSqg4ciV9LG25niZkxE7cIArcAeiLfg3g5gyzs2WWprzCDRI4GcwgSDZHA==} + engines: {node: '>=14', npm: '>=7'} + peerDependencies: + vite: ^2.7.0 || ^3.0.0 + dependencies: + '@darkobits/log': 2.0.0-beta.16 + '@darkobits/valida': 0.1.6_typescript@4.9.4 + '@types/favicons': 6.2.2 + cacache: 16.1.3 + fast-json-stable-stringify: 2.1.0 + favicons: 6.2.2 + find-cache-dir: 3.3.2 + fs-extra: 10.1.0 + parse5: 6.0.1 + ssri: 9.0.1 + ts-essentials: 9.3.0_typescript@4.9.4 + vite: 3.2.5_@types+node@18.11.18 + transitivePeerDependencies: + - bluebird + - typescript + dev: true + + /@devexpress/error-stack-parser/2.0.6: + resolution: {integrity: sha512-fneVypElGUH6Be39mlRZeAu00pccTlf4oVuzf9xPJD1cdEqI8NyAiQua/EW7lZdrbMUbgyXcJmfKPefhYius3A==} + dependencies: + stackframe: 1.3.4 + dev: true + + /@emotion/babel-plugin/11.10.5_@babel+core@7.20.7: + resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.7 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.7 + '@babel/runtime': 7.20.7 + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/serialize': 1.1.1 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.1.3 + dev: false + + /@emotion/cache/11.10.5: + resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==} + dependencies: + '@emotion/memoize': 0.8.0 + '@emotion/sheet': 1.2.1 + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + stylis: 4.1.3 + dev: false + + /@emotion/hash/0.9.0: + resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} + dev: false + + /@emotion/is-prop-valid/0.8.8: + resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + requiresBuild: true + dependencies: + '@emotion/memoize': 0.7.4 + dev: false + optional: true + + /@emotion/is-prop-valid/1.2.0: + resolution: {integrity: sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==} + dependencies: + '@emotion/memoize': 0.8.0 + dev: false + + /@emotion/memoize/0.7.4: + resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + dev: false + optional: true + + /@emotion/memoize/0.8.0: + resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} + dev: false + + /@emotion/react/11.10.5_3grbeiqrb6djg67fiejiqngkdi: + resolution: {integrity: sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.20.7 + '@babel/runtime': 7.20.7 + '@emotion/babel-plugin': 11.10.5_@babel+core@7.20.7 + '@emotion/cache': 11.10.5 + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0 + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + '@types/react': 18.0.26 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + dev: false + + /@emotion/serialize/1.1.1: + resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==} + dependencies: + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/unitless': 0.8.0 + '@emotion/utils': 1.2.0 + csstype: 3.1.1 + dev: false + + /@emotion/sheet/1.2.1: + resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==} + dev: false + + /@emotion/styled/11.10.5_pwtpayi7py7ecifctvjbac33ee: + resolution: {integrity: sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==} + peerDependencies: + '@babel/core': ^7.0.0 + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.20.7 + '@babel/runtime': 7.20.7 + '@emotion/babel-plugin': 11.10.5_@babel+core@7.20.7 + '@emotion/is-prop-valid': 1.2.0 + '@emotion/react': 11.10.5_3grbeiqrb6djg67fiejiqngkdi + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0 + '@emotion/utils': 1.2.0 + '@types/react': 18.0.26 + react: 18.2.0 + dev: false + + /@emotion/unitless/0.8.0: + resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} + dev: false + + /@emotion/use-insertion-effect-with-fallbacks/1.0.0_react@18.2.0: + resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + /@emotion/utils/1.2.0: + resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==} + dev: false + + /@emotion/weak-memoize/0.3.0: + resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} + dev: false + + /@esbuild/android-arm/0.15.18: + resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.15.18: + resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@gar/promisify/1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + dev: true + + /@jimp/bmp/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-4g9vW45QfMoGhLVvaFj26h4e7cC+McHUQwyFQmNTLW4FfC1OonN9oUr2m/FEDGkTYKR7aqdXR5XUqqIkHWLaFw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + bmp-js: 0.1.0 + dev: true + + /@jimp/core/0.16.2: + resolution: {integrity: sha512-dp7HcyUMzjXphXYodI6PaXue+I9PXAavbb+AN+1XqFbotN22Z12DosNPEyy+UhLY/hZiQQqUkEaJHkvV31rs+w==} + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/utils': 0.16.2 + any-base: 1.1.0 + buffer: 5.7.1 + exif-parser: 0.1.12 + file-type: 9.0.0 + load-bmfont: 1.4.1 + mkdirp: 0.5.6 + phin: 2.9.3 + pixelmatch: 4.0.2 + tinycolor2: 1.5.1 + dev: true + + /@jimp/custom/0.16.2: + resolution: {integrity: sha512-GtNwOs4hcVS2GIbqRUf42rUuX07oLB92cj7cqxZb0ZGWwcwhnmSW0TFLAkNafXmqn9ug4VTpNvcJSUdiuECVKg==} + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/core': 0.16.2 + dev: true + + /@jimp/gif/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-TMdyT9Q0paIKNtT7c5KzQD29CNCsI/t8ka28jMrBjEK7j5RRTvBfuoOnHv7pDJRCjCIqeUoaUSJ7QcciKic6CA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + gifwrap: 0.9.4 + omggif: 1.0.10 + dev: true + + /@jimp/jpeg/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-BW5gZydgq6wdIwHd+3iUNgrTklvoQc/FUKSj9meM6A0FU21lUaansRX5BDdJqHkyXJLnnlDGwDt27J+hQuBAVw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + jpeg-js: 0.4.4 + dev: true + + /@jimp/plugin-blit/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-Z31rRfV80gC/r+B/bOPSVVpJEWXUV248j7MdnMOFLu4vr8DMqXVo9jYqvwU/s4LSTMAMXqm4Jg6E/jQfadPKAg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-blur/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-ShkJCAzRI+1fAKPuLLgEkixpSpVmKTYaKEFROUcgmrv9AansDXGNCupchqVMTdxf8zPyW8rR1ilvG3OJobufLQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-circle/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-6T4z/48F4Z5+YwAVCLOvXQcyGmo0E3WztxCz6XGQf66r4JJK78+zcCDYZFLMx0BGM0091FogNK4QniP8JaOkrA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-color/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-6oBV0g0J17/7E+aTquvUsgSc85nUbUi+64tIK5eFIDzvjhlqhjGNJYlc46KJMCWIs61qRJayQoZdL/iT/iQuGQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + tinycolor2: 1.5.1 + dev: true + + /@jimp/plugin-contain/0.16.2_imjb3y324usacerau4nmcprwgm: + resolution: {integrity: sha512-pLcxO3hVN3LCEhMNvpZ9B7xILHVlS433Vv16zFFJxLRqZdYvPLsc+ZzJhjAiHHuEjVblQrktHE3LGeQwGJPo0w==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugin-blit': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-resize': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-scale': 0.16.2_ml7r7ku4xtw2ibnxqj5uaaiwdu + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-cover/0.16.2_gpdsppfdtbiku5k3fcmgpdqet4: + resolution: {integrity: sha512-gzWM7VvYeI8msyiwbUZxH+sGQEgO6Vd6adGxZ0CeKX00uQOe5lDzxb1Wjx7sHcJGz8a/5fmAuwz7rdDtpDUbkw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugin-crop': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-resize': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-scale': 0.16.2_ml7r7ku4xtw2ibnxqj5uaaiwdu + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-crop/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-qCd3hfMEE+Z2EuuyXewgXRTtKJGIerWzc1zLEJztsUkPz5i73IGgkOL+mrNutZwGaXZbm+8SwUaGb46sxAO6Tw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-displace/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-6nXdvNNjCdD95v2o3/jPeur903dz08lG4Y8gmr5oL2yVv9LSSbMonoXYrR/ASesdyXqGdXJLU4NL+yZs4zUqbQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-dither/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-DERpIzy21ZanMkVsD0Tdy8HQLbD1E41OuvIzaMRoW4183PA6AgGNlrQoFTyXmzjy6FTy1SxaQgTEdouInAWZ9Q==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-fisheye/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-Df7PsGIwiIpQu3EygYCnaJyTfOwvwtYV3cmYJS7yFLtdiFUuod+hlSo5GkwEPLAy+QBxhUbDuUqnsWo4NQtbiQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-flip/0.16.2_ktwwnsoypijoghlnmlrfdl3qqm: + resolution: {integrity: sha512-+2uC8ioVQUr06mnjSWraskz2L33nJHze35LkQ8ZNsIpoZLkgvfiWatqAs5bj+1jGI/9kxoCFAaT1Is0f+a4/rw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugin-rotate': 0.16.2_rqxyxjeek4vqmsj2o2ueqoj3ai + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-gaussian/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-2mnuDSg4ZEH8zcJig7DZZf4st/cYmQ5UYJKP76iGhZ+6JDACk6uejwAgT5xHecNhkVAaXMdCybA2eknH/9OE1w==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-invert/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-xFvHbVepTY/nus+6yXiYN1iq+UBRkT0MdnObbiQPstUrAsz0Imn6MWISsnAyMvcNxHGrxaxjuU777JT/esM0gg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-mask/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-AbdO85xxhfgEDdxYKpUotEI9ixiCMaIpfYHD5a5O/VWeimz2kuwhcrzlHGiyq1kKAgRcl0WEneTCZAHVSyvPKA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-normalize/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-+ItBWFwmB0Od7OfOtTYT1gm543PpHUgU8/DN55z83l1JqS0OomDJAe7BmCppo2405TN6YtVm/csXo7p4iWd/SQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-print/0.16.2_jjb7dzm7g3gdkyninttbcskgge: + resolution: {integrity: sha512-ifTGEeJ5UZTCiqC70HMeU3iXk/vsOmhWiwVGOXSFXhFeE8ZpDWvlmBsrMYnRrJGuaaogHOIrrQPI+kCdDBSBIQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugin-blit': 0.16.2_@jimp+custom@0.16.2 + '@jimp/utils': 0.16.2 + load-bmfont: 1.4.1 + dev: true + + /@jimp/plugin-resize/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-gE4N9l6xuwzacFZ2EPCGZCJ/xR+aX2V7GdMndIl/6kYIw5/eib1SFuF9AZLvIPSFuE1FnGo8+vT0pr++SSbhYg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-rotate/0.16.2_rqxyxjeek4vqmsj2o2ueqoj3ai: + resolution: {integrity: sha512-/CTEYkR1HrgmnE0VqPhhbBARbDAfFX590LWGIpxcYIYsUUGQCadl+8Qo4UX13FH0Nt8UHEtPA+O2x08uPYg9UA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugin-blit': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-crop': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-resize': 0.16.2_@jimp+custom@0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-scale/0.16.2_ml7r7ku4xtw2ibnxqj5uaaiwdu: + resolution: {integrity: sha512-3inuxfrlquyLaqFdiiiQNJUurR0WbvN5wAf1qcYX2LubG1AG8grayYD6H7XVoxfUGTZXh1kpmeirEYlqA2zxcw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugin-resize': 0.16.2_@jimp+custom@0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-shadow/0.16.2_5zizl4daumbyziiswanqnnjtui: + resolution: {integrity: sha512-Q0aIs2/L6fWMcEh9Ms73u34bT1hyUMw/oxaVoIzOLo6/E8YzCs2Bi63H0/qaPS0MQpEppI++kvosPbblABY79w==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugin-blur': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-resize': 0.16.2_@jimp+custom@0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugin-threshold/0.16.2_qzopulswoxcbleqavzrwgrm3ue: + resolution: {integrity: sha512-gyOwmBgjtMPvcuyOhkP6dOGWbQdaTfhcBRN22mYeI/k/Wh/Zh1OI21F6eKLApsVRmg15MoFnkrCz64RROC34sw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugin-color': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-resize': 0.16.2_@jimp+custom@0.16.2 + '@jimp/utils': 0.16.2 + dev: true + + /@jimp/plugins/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-zCvYtCgctmC0tkYEu+y+kSwSIZBsNznqJ3/3vkpzxdyjd6wCfNY5Qc/68MPrLc1lmdeGo4cOOTYHG7Vc6myzRw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugin-blit': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-blur': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-circle': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-color': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-contain': 0.16.2_imjb3y324usacerau4nmcprwgm + '@jimp/plugin-cover': 0.16.2_gpdsppfdtbiku5k3fcmgpdqet4 + '@jimp/plugin-crop': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-displace': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-dither': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-fisheye': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-flip': 0.16.2_ktwwnsoypijoghlnmlrfdl3qqm + '@jimp/plugin-gaussian': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-invert': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-mask': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-normalize': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-print': 0.16.2_jjb7dzm7g3gdkyninttbcskgge + '@jimp/plugin-resize': 0.16.2_@jimp+custom@0.16.2 + '@jimp/plugin-rotate': 0.16.2_rqxyxjeek4vqmsj2o2ueqoj3ai + '@jimp/plugin-scale': 0.16.2_ml7r7ku4xtw2ibnxqj5uaaiwdu + '@jimp/plugin-shadow': 0.16.2_5zizl4daumbyziiswanqnnjtui + '@jimp/plugin-threshold': 0.16.2_qzopulswoxcbleqavzrwgrm3ue + timm: 1.7.1 + dev: true + + /@jimp/png/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-sFOtOSz/tzDwXEChFQ/Nxe+0+vG3Tj0eUxnZVDUG/StXE9dI8Bqmwj3MIa0EgK5s+QG3YlnDOmlPUa4JqmeYeQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/utils': 0.16.2 + pngjs: 3.4.0 + dev: true + + /@jimp/tiff/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-ADcdqmtZF+U2YoaaHTzFX8D6NFpmN4WZUT0BPMerEuY7Cq8QoLYU22z2h034FrVW+Rbi1b3y04sB9iDiQAlf2w==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + utif: 2.0.1 + dev: true + + /@jimp/types/0.16.2_@jimp+custom@0.16.2: + resolution: {integrity: sha512-0Ue5Sq0XnDF6TirisWv5E+8uOnRcd8vRLuwocJOhF76NIlcQrz+5r2k2XWKcr3d+11n28dHLXW5TKSqrUopxhA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/bmp': 0.16.2_@jimp+custom@0.16.2 + '@jimp/custom': 0.16.2 + '@jimp/gif': 0.16.2_@jimp+custom@0.16.2 + '@jimp/jpeg': 0.16.2_@jimp+custom@0.16.2 + '@jimp/png': 0.16.2_@jimp+custom@0.16.2 + '@jimp/tiff': 0.16.2_@jimp+custom@0.16.2 + timm: 1.7.1 + dev: true + + /@jimp/utils/0.16.2: + resolution: {integrity: sha512-XENrPvmigiXZQ8E2nxJqO6UVvWBLzbNwyYi3Y8Q1IECoYhYI3kgOQ0fmy4G269Vz1V0omh1bNmC42r4OfXg1Jg==} + dependencies: + '@babel/runtime': 7.20.7 + regenerator-runtime: 0.13.11 + dev: true + + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@motionone/animation/10.15.1: + resolution: {integrity: sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==} + dependencies: + '@motionone/easing': 10.15.1 + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + tslib: 2.4.0 + dev: false + + /@motionone/dom/10.15.3: + resolution: {integrity: sha512-FQ7a2zMBXc1UeU8CG9G3yDpst55fbb0+C9A0VGfwOITitBCzigKZnXRgsRSWWR+FW57GSc13eGQxtYB0lKG0Ng==} + dependencies: + '@motionone/animation': 10.15.1 + '@motionone/generators': 10.15.1 + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + hey-listen: 1.0.8 + tslib: 2.4.0 + dev: false + + /@motionone/easing/10.15.1: + resolution: {integrity: sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==} + dependencies: + '@motionone/utils': 10.15.1 + tslib: 2.4.0 + dev: false + + /@motionone/generators/10.15.1: + resolution: {integrity: sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==} + dependencies: + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + tslib: 2.4.0 + dev: false + + /@motionone/types/10.15.1: + resolution: {integrity: sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==} + dev: false + + /@motionone/utils/10.15.1: + resolution: {integrity: sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==} + dependencies: + '@motionone/types': 10.15.1 + hey-listen: 1.0.8 + tslib: 2.4.0 + dev: false + + /@npmcli/fs/2.1.2: + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.3.8 + dev: true + + /@npmcli/move-file/2.0.1: + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: true + + /@popperjs/core/2.11.6: + resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} + dev: false + + /@sindresorhus/is/4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + dev: true + + /@swc/core-darwin-arm64/1.3.24: + resolution: {integrity: sha512-rR+9UpWm+fGXcipsjCst2hIL1GYIbo0YTLhJZWdIpQD6KRHHJMFXiydMgQQkDj2Ml7HpqUVgxj6m4ZWYL8b0OA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64/1.3.24: + resolution: {integrity: sha512-px+5vkGtgPH0m3FkkTBHynlRdS5rRz+lK+wiXIuBZFJSySWFl6RkKbvwkD+sf0MpazQlqwlv/rTOGJBw6oDffg==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf/1.3.24: + resolution: {integrity: sha512-jLs8ZOdTV4UW4J12E143QJ4mOMONQtqgAnuhBbRuWFzQ3ny1dfoC3P1jNWAJ2Xi59XdxAIXn0PggPNH4Kh34kw==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu/1.3.24: + resolution: {integrity: sha512-A/v0h70BekrwGpp1DlzIFGcHQ3QQ2PexXcnnuIBZeMc9gNmHlcZmg3EcwAnaUDiokhNuSUFA/wV94yk1OqmSkw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl/1.3.24: + resolution: {integrity: sha512-pbc9eArWPTiMrbpS/pJo0IiQNAKAQBcBIDjWBGP1tcw2iDXYLw4bruwz9kI/VjakbshWb8MoE4T5ClkeuULvSw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu/1.3.24: + resolution: {integrity: sha512-pP5pOLlY1xd352qo7rTlpVPUI9/9VhOd4b3Lk+LzfZDq9bTL2NDlGfyrPiwa5DGHMSzrugH56K2J68eutkxYVA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl/1.3.24: + resolution: {integrity: sha512-phNbP7zGp+Wcyxq1Qxlpe5KkxO7WLT2kVQUC7aDFGlVdCr+xdXsfH1MzheHtnr0kqTVQX1aiM8XXXHfFxR0oNA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc/1.3.24: + resolution: {integrity: sha512-qhbiJTWAOqyR+K9xnGmCkOWSz2EmWpDBstEJCEOTc6FZiEdbiTscDmqTcMbCKaTHGu8t+6erVA4t65/Eg6uWPA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc/1.3.24: + resolution: {integrity: sha512-JfghIlscE4Rz+Lc08lSoDh+R0cWxrISed5biogFfE6vZqhaDnw3E5Qshqw7O3pIaiq8L2u1nmzuyP581ZmpbRA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc/1.3.24: + resolution: {integrity: sha512-3AmJRr0hwciwDBbzUNqaftvppzS8v9X/iv/Wl7YaVLBVpPfQvaZzfqLycvNMGLZb5vIKXR/u58txg3dRBGsJtw==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core/1.3.24: + resolution: {integrity: sha512-QMOTd0AgiUT3K1crxLRqd3gw0f3FC8hhH1vvlIlryvYqU4c+FJ/T2G4ZhMKLxQlZ/jX6Rhk0gKINZRBxy2GFyQ==} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.24 + '@swc/core-darwin-x64': 1.3.24 + '@swc/core-linux-arm-gnueabihf': 1.3.24 + '@swc/core-linux-arm64-gnu': 1.3.24 + '@swc/core-linux-arm64-musl': 1.3.24 + '@swc/core-linux-x64-gnu': 1.3.24 + '@swc/core-linux-x64-musl': 1.3.24 + '@swc/core-win32-arm64-msvc': 1.3.24 + '@swc/core-win32-ia32-msvc': 1.3.24 + '@swc/core-win32-x64-msvc': 1.3.24 + dev: true + + /@tanstack/react-table/8.7.4_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-4Q1OV3kUSxbtekclS3sqjCyCDowqCPruUCfHm1nGoPSmVLRCHoQ1E2rmzTVGeocEKgV9TDnj39tOgGwcADPuPA==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16' + react-dom: '>=16' + dependencies: + '@tanstack/table-core': 8.7.4 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@tanstack/table-core/8.7.4: + resolution: {integrity: sha512-OPhzca7e83KGukxLpZ+4F9OBp9CZXi9b/OGJBH8dlC3wpffcSSDczYGUGJKG7wirXQ6cUVYL+9G6UrrdnblKNQ==} + engines: {node: '>=12'} + dev: false + + /@tauri-apps/api/1.2.0: + resolution: {integrity: sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==} + engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} + dev: false + + /@types/favicons/6.2.2: + resolution: {integrity: sha512-iwAeiO8BFUk/lH74Zd9RlIIgxA7fFCVmlZI5yNsJ68L7mDMs42vYk8FnDxEm09ZO4nTlBQjPHdvtYC+N9GLtxg==} + dependencies: + '@types/node': 18.11.18 + dev: true + + /@types/js-cookie/2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + dev: false + + /@types/lodash.mergewith/4.6.6: + resolution: {integrity: sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg==} + dependencies: + '@types/lodash': 4.14.191 + dev: false + + /@types/lodash/4.14.191: + resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} + + /@types/node/16.9.1: + resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} + dev: true + + /@types/node/18.11.18: + resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: false + + /@types/prop-types/15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + /@types/react-dom/18.0.10: + resolution: {integrity: sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==} + dependencies: + '@types/react': 18.0.26 + dev: true + + /@types/react/18.0.26: + resolution: {integrity: sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + + /@types/scheduler/0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + + /@vitejs/plugin-react/2.2.0_vite@3.2.5: + resolution: {integrity: sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^3.0.0 + dependencies: + '@babel/core': 7.20.7 + '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.20.7 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.20.7 + '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.20.7 + '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.7 + magic-string: 0.26.7 + react-refresh: 0.14.0 + vite: 3.2.5_@types+node@18.11.18 + transitivePeerDependencies: + - supports-color + dev: true + + /@zag-js/element-size/0.3.0: + resolution: {integrity: sha512-5/hEI+0c6ZNCx6KHlOS5/WeHsd6+I7gk7Y/b/zATp4Rp3tHirs/tu1frq+iy5BmfaG9hbQtfHfUJTjOcI5jnoQ==} + dev: false + + /@zag-js/focus-visible/0.2.1: + resolution: {integrity: sha512-19uTjoZGP4/Ax7kSNhhay9JA83BirKzpqLkeEAilrpdI1hE5xuq6q+tzJOsrMOOqJrm7LkmZp5lbsTQzvK2pYg==} + dev: false + + /aggregate-error/3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ahooks-v3-count/1.0.0: + resolution: {integrity: sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==} + dev: false + + /ahooks/3.7.4_react@18.2.0: + resolution: {integrity: sha512-hvgdqzPUKXn95mK3cGlDCi/ZZqv+FRibCUCFT8zW3hCwLGvixVfnHrIW2/2lgzPdLo8mLjp/XOdIJvcPvE2lgQ==} + engines: {node: '>=8.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@types/js-cookie': 2.2.7 + ahooks-v3-count: 1.0.0 + dayjs: 1.11.7 + intersection-observer: 0.12.2 + js-cookie: 2.2.1 + lodash: 4.17.21 + react: 18.2.0 + resize-observer-polyfill: 1.5.1 + screenfull: 5.2.0 + tslib: 2.4.1 + dev: false + + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex/2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /any-base/1.1.0: + resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} + dev: true + + /aproba/1.2.0: + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + dev: true + + /are-we-there-yet/1.1.7: + resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.7 + dev: true + + /aria-hidden/1.2.2_kzbn2opkn2327fwg5yzwzya5o4: + resolution: {integrity: sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + tslib: 2.4.1 + dev: false + + /arrify/1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /asn1/0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus/1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + dev: true + + /asynckit/0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + /aws-sign2/0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + dev: true + + /aws4/1.11.0: + resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} + dev: true + + /axios/1.2.2: + resolution: {integrity: sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==} + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /babel-plugin-macros/3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.20.7 + cosmiconfig: 7.1.0 + resolve: 1.22.1 + dev: false + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /bcrypt-pbkdf/1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: true + + /bignumber.js/2.4.0: + resolution: {integrity: sha512-uw4ra6Cv483Op/ebM0GBKKfxZlSmn6NgFRby5L3yGTlunLj53KQgndDlqy2WVFOwgvurocApYkSud0aO+mvrpQ==} + dev: true + + /bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + + /bmp-js/0.0.1: + resolution: {integrity: sha512-OS74Rlt0Aynu2mTPmY9RZOUOXlqWecFIILFXr70vv16/xCZnFxvri9IKkF1IGxQ8r9dOE62qGNpKxXx8Lko8bg==} + dev: true + + /bmp-js/0.0.3: + resolution: {integrity: sha512-epsm3Z92j5xwek9p97pVw3KbsNc0F4QnbYh+N93SpbJYuHFQQ/UAh6K+bKFGyLePH3Hudtl/Sa95Quqp0gX8IQ==} + dev: true + + /bmp-js/0.1.0: + resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} + 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 + + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /browserslist/4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001441 + electron-to-chromium: 1.4.284 + node-releases: 2.0.8 + update-browserslist-db: 1.0.10_browserslist@4.21.4 + + /buffer-alloc-unsafe/1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + dev: true + + /buffer-alloc/1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: true + + /buffer-equal/0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} + engines: {node: '>=0.4.0'} + dev: true + + /buffer-fill/1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + dev: true + + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /cacache/16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@npmcli/fs': 2.1.2 + '@npmcli/move-file': 2.0.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.0.3 + infer-owner: 1.0.4 + lru-cache: 7.14.1 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 9.0.1 + tar: 6.1.13 + unique-filename: 2.0.1 + transitivePeerDependencies: + - bluebird + dev: true + + /callsite-record/4.1.5: + resolution: {integrity: sha512-OqeheDucGKifjQRx524URgV4z4NaKjocGhygTptDea+DLROre4ZEecA4KXDq+P7qlGCohYVNOh3qr+y5XH5Ftg==} + dependencies: + '@devexpress/error-stack-parser': 2.0.6 + '@types/lodash': 4.14.191 + callsite: 1.0.0 + chalk: 2.4.2 + highlight-es: 1.0.3 + lodash: 4.17.21 + pinkie-promise: 2.0.1 + dev: true + + /callsite/1.0.0: + resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /caniuse-lite/1.0.30001441: + resolution: {integrity: sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==} + + /caseless/0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /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 + + /chownr/1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: true + + /chownr/2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /ci-info/3.7.0: + resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==} + engines: {node: '>=8'} + dev: true + + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /clean-stack/3.0.1: + resolution: {integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 4.0.0 + dev: true + + /cli-spinners/2.7.0: + resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + engines: {node: '>=6'} + dev: true + + /clone-buffer/1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} + dev: true + + /clone-stats/1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + dev: true + + /clone/2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /cloneable-readable/1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + dependencies: + inherits: 2.0.4 + process-nextick-args: 2.0.1 + readable-stream: 2.3.7 + dev: true + + /code-point-at/1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /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.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /color-string/1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: true + + /color/3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + dev: true + + /color2k/2.0.0: + resolution: {integrity: sha512-DWX9eXOC4fbJNiuvdH4QSHvvfLWyFo9TuFp7V9OzdsbPAdrWAuYc8qvFP2bIQ/LKh4LrAVnJ6vhiQYPvAHdtTg==} + dev: false + + /colors/1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + dev: true + + /combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /commondir/1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + dev: true + + /compute-scroll-into-view/1.0.14: + resolution: {integrity: sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==} + dev: false + + /concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /console-control-strings/1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true + + /convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + /copy-to-clipboard/3.3.1: + resolution: {integrity: sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /core-util-is/1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + dev: true + + /core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: false + + /css-box-model/1.2.1: + resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} + dependencies: + tiny-invariant: 1.3.1 + dev: false + + /csstype/3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + + /dashdash/1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + + /date-fns/2.29.3: + resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} + engines: {node: '>=0.11'} + dev: true + + /dayjs/1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + dev: false + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decompress-response/4.2.1: + resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} + engines: {node: '>=8'} + dependencies: + mimic-response: 2.1.0 + dev: true + + /deep-extend/0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: true + + /deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} + dev: true + + /delayed-stream/1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /delegates/1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: true + + /detect-libc/1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /detect-node-es/1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: false + + /dom-walk/0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + dev: true + + /dot-prop/6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} + dependencies: + is-obj: 2.0.0 + dev: true + + /ecc-jsbn/0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /electron-to-chromium/1.4.284: + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /es6-promise/3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + dev: true + + /esbuild-android-64/0.15.18: + resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.15.18: + resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.15.18: + resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.15.18: + resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.15.18: + resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.15.18: + resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.15.18: + resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.15.18: + resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.15.18: + resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.15.18: + resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.15.18: + resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.15.18: + resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.15.18: + resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.15.18: + resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.15.18: + resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.15.18: + resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.15.18: + resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.15.18: + resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.15.18: + resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.15.18: + resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.15.18: + resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.15.18 + '@esbuild/linux-loong64': 0.15.18 + esbuild-android-64: 0.15.18 + esbuild-android-arm64: 0.15.18 + esbuild-darwin-64: 0.15.18 + esbuild-darwin-arm64: 0.15.18 + esbuild-freebsd-64: 0.15.18 + esbuild-freebsd-arm64: 0.15.18 + esbuild-linux-32: 0.15.18 + esbuild-linux-64: 0.15.18 + esbuild-linux-arm: 0.15.18 + esbuild-linux-arm64: 0.15.18 + esbuild-linux-mips64le: 0.15.18 + esbuild-linux-ppc64le: 0.15.18 + esbuild-linux-riscv64: 0.15.18 + esbuild-linux-s390x: 0.15.18 + esbuild-netbsd-64: 0.15.18 + esbuild-openbsd-64: 0.15.18 + esbuild-sunos-64: 0.15.18 + esbuild-windows-32: 0.15.18 + esbuild-windows-64: 0.15.18 + esbuild-windows-arm64: 0.15.18 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /exif-parser/0.1.12: + resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} + dev: true + + /expand-template/2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: true + + /extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /extsprintf/1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fastest-levenshtein/1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /favicons/6.2.2: + resolution: {integrity: sha512-qhvFqbhlXA/JYIDYuxTrE4uT9rcpTCrWvF3UG0GxBoLl/XgFBBTrZkQvASrkMebSwDCJ9kKGypRWIbvoRZLBsw==} + engines: {node: '>=10.13.0'} + dependencies: + clone: 2.1.2 + colors: 1.4.0 + image-size: 0.8.3 + jimp: 0.16.2 + jsontoxml: 1.0.1 + lodash.defaultsdeep: 4.6.1 + require-directory: 2.1.1 + sharp: 0.28.3 + through2: 4.0.2 + tinycolor2: 1.5.1 + to-ico: 1.1.5 + vinyl: 2.2.1 + xml2js: 0.4.23 + dev: true + + /file-type/3.9.0: + resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} + engines: {node: '>=0.10.0'} + dev: true + + /file-type/9.0.0: + resolution: {integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==} + engines: {node: '>=6'} + dev: true + + /filesize/10.0.6: + resolution: {integrity: sha512-rzpOZ4C9vMFDqOa6dNpog92CoLYjD79dnjLk2TYDDtImRIyLTOzqojCb05Opd1WuiWjs+fshhCgTd8cl7y5t+g==} + engines: {node: '>= 10.4.0'} + dev: false + + /find-cache-dir/3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + dev: true + + /find-root/1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: false + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /focus-lock/0.11.4: + resolution: {integrity: sha512-LzZWJcOBIcHslQ46N3SUu/760iLPSrUtp8omM4gh9du438V2CQdks8TcOu1yvmu2C68nVOBnl1WFiKGPbQ8L6g==} + engines: {node: '>=10'} + dependencies: + tslib: 2.4.1 + dev: false + + /follow-redirects/1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /forever-agent/0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: true + + /form-data/2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /form-data/4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /framer-motion/7.10.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-k2ccYeZNSpPg//HTaqrU+4pRq9f9ZpaaN7rr0+Rx5zA4wZLbk547wtDzge2db1sB+1mnJ6r59P4xb+aEIi/W+w==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@motionone/dom': 10.15.3 + hey-listen: 1.0.8 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + tslib: 2.4.0 + optionalDependencies: + '@emotion/is-prop-valid': 0.8.8 + dev: false + + /framesync/6.1.2: + resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} + dependencies: + tslib: 2.4.0 + dev: false + + /fs-constants/1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: true + + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-minipass/2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: 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==} + + /gauge/2.7.4: + resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} + dependencies: + aproba: 1.2.0 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 1.0.2 + strip-ansi: 3.0.1 + wide-align: 1.1.5 + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-nonce/1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: false + + /get-stream/2.3.1: + resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + pinkie-promise: 2.0.1 + dev: true + + /getpass/0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + dev: true + + /gifwrap/0.9.4: + resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} + dependencies: + image-q: 4.0.0 + omggif: 1.0.10 + dev: true + + /github-from-package/0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: true + + /glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/8.0.3: + resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.2 + once: 1.4.0 + dev: true + + /global/4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + dependencies: + min-document: 2.19.0 + process: 0.11.10 + dev: true + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true + + /har-schema/2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + dev: true + + /har-validator/5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-unicode/2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /hey-listen/1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + dev: false + + /highlight-es/1.0.3: + resolution: {integrity: sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==} + dependencies: + chalk: 2.4.2 + is-es2016-keyword: 1.0.0 + js-tokens: 3.0.2 + dev: true + + /hoist-non-react-statics/3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /html-parse-stringify/3.0.1: + resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} + dependencies: + void-elements: 3.1.0 + dev: false + + /http-signature/1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.17.0 + dev: true + + /i18next-browser-languagedetector/7.0.1: + resolution: {integrity: sha512-Pa5kFwaczXJAeHE56CHG2aWzFBMJNUNghf0Pm4SwSrEMps/PTKqW90EYWlIvhuYStf3Sn1K0vw+gH3+TLdkH1g==} + dependencies: + '@babel/runtime': 7.20.7 + dev: false + + /i18next/22.4.6: + resolution: {integrity: sha512-9Tm1ezxWyzV+306CIDMBbYBitC1jedQyYuuLtIv7oxjp2ohh8eyxP9xytIf+2bbQfhH784IQKPSYp+Zq9+YSbw==} + dependencies: + '@babel/runtime': 7.20.7 + dev: false + + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /image-q/4.0.0: + resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} + dependencies: + '@types/node': 16.9.1 + dev: true + + /image-size/0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /image-size/0.8.3: + resolution: {integrity: sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==} + engines: {node: '>=6.9.0'} + hasBin: true + dependencies: + queue: 6.0.1 + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: false + + /imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /infer-owner/1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + 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 + + /intersection-observer/0.12.2: + resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} + dev: false + + /invariant/2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /ip-regex/1.0.3: + resolution: {integrity: sha512-HjpCHTuxbR/6jWJroc/VN+npo5j0T4Vv2TAI5qdEHQx7hsL767MeccGFSsLtF694EiZKTSEqgoeU6DtGFCcuqQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-arrayish/0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: true + + /is-ci/3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.7.0 + dev: true + + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + + /is-es2016-keyword/1.0.0: + resolution: {integrity: sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==} + dev: true + + /is-fullwidth-code-point/1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + dependencies: + number-is-nan: 1.0.1 + dev: true + + /is-function/1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + dev: true + + /is-obj/2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-plain-object/5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-typedarray/1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true + + /isarray/1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isstream/0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: true + + /jimp/0.16.2: + resolution: {integrity: sha512-UpItBk81a92f8oEyoGYbO3YK4QcM0hoIyuGHmShoF9Ov63P5Qo7Q/X2xsAgnODmSuDJFOtrPtJd5GSWW4LKdOQ==} + dependencies: + '@babel/runtime': 7.20.7 + '@jimp/custom': 0.16.2 + '@jimp/plugins': 0.16.2_@jimp+custom@0.16.2 + '@jimp/types': 0.16.2_@jimp+custom@0.16.2 + regenerator-runtime: 0.13.11 + dev: true + + /jimp/0.2.28: + resolution: {integrity: sha512-9HT7DA279xkTlry2oG30s6AtOUglNiY2UdyYpj0yNI4/NBv8PmdNC0gcldgMU4HqvbUlrM3+v+6GaHnTkH23JQ==} + dependencies: + bignumber.js: 2.4.0 + bmp-js: 0.0.3 + es6-promise: 3.3.1 + exif-parser: 0.1.12 + file-type: 3.9.0 + jpeg-js: 0.2.0 + load-bmfont: 1.4.1 + mime: 1.6.0 + mkdirp: 0.5.1 + pixelmatch: 4.0.2 + pngjs: 3.4.0 + read-chunk: 1.0.1 + request: 2.88.2 + stream-to-buffer: 0.1.0 + tinycolor2: 1.5.1 + url-regex: 3.2.0 + dev: true + + /jpeg-js/0.1.2: + resolution: {integrity: sha512-CiRVjMKBUp6VYtGwzRjrdnro41yMwKGOWdP9ATXqmixdz2n7KHNwdqthTYSSbOKj/Ha79Gct1sA8ZQpse55TYA==} + dev: true + + /jpeg-js/0.2.0: + resolution: {integrity: sha512-Ni9PffhJtYtdD7VwxH6V2MnievekGfUefosGCHadog0/jAevRu6HPjYeMHbUemn0IPE8d4wGa8UsOGsX+iKy2g==} + dev: true + + /jpeg-js/0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + dev: true + + /js-cookie/2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + dev: false + + /js-tokens/3.0.2: + resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /jsbn/0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: true + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema/0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stringify-safe/5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true + + /json5/2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsontoxml/1.0.1: + resolution: {integrity: sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ==} + engines: {node: '>=0.2.0'} + dev: true + + /jsprim/1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /load-bmfont/1.4.1: + resolution: {integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==} + dependencies: + buffer-equal: 0.0.1 + mime: 1.6.0 + parse-bmfont-ascii: 1.0.6 + parse-bmfont-binary: 1.0.6 + parse-bmfont-xml: 1.1.4 + phin: 2.9.3 + xhr: 2.6.0 + xtend: 4.0.2 + dev: true + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /lodash.defaultsdeep/4.6.1: + resolution: {integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==} + dev: true + + /lodash.isequal/4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: true + + /lodash.mergewith/4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: false + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lru-cache/5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /lru-cache/7.14.1: + resolution: {integrity: sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==} + engines: {node: '>=12'} + dev: true + + /magic-string/0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} + engines: {node: '>=12'} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime/1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mimic-response/2.1.0: + resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} + engines: {node: '>=8'} + dev: true + + /min-document/2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + dependencies: + dom-walk: 0.1.2 + dev: true + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch/5.1.2: + resolution: {integrity: sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist/0.0.8: + resolution: {integrity: sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==} + dev: true + + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + + /minipass-collect/1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-flush/1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-pipeline/1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass/3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass/4.0.0: + resolution: {integrity: sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minizlib/2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mkdirp-classic/0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: true + + /mkdirp/0.5.1: + resolution: {integrity: sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==} + deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) + hasBin: true + dependencies: + minimist: 0.0.8 + dev: true + + /mkdirp/0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.7 + dev: true + + /mkdirp/1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /napi-build-utils/1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: true + + /node-abi/2.30.1: + resolution: {integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==} + dependencies: + semver: 5.7.1 + dev: true + + /node-addon-api/3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + dev: true + + /node-releases/2.0.8: + resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==} + + /npmlog/4.1.2: + resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} + dependencies: + are-we-there-yet: 1.1.7 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + dev: true + + /number-is-nan/1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + dev: true + + /oauth-sign/0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + dev: true + + /object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /omggif/1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + dev: true + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /over-9000/9000.1.4: + resolution: {integrity: sha512-4j7/ozQOyqXRNEY5HPmsOL6drQfpk4nEz87ciASGPZN3BQA19wIUHlvVO4FUpTG3+3IHrD3aduPGMPHyaD8sUA==} + dev: true + + /ow/0.22.0: + resolution: {integrity: sha512-VZpjntwsFxg+oM2pZ0Km8p6+FLAugD86TQWHmz0Ldm/rfSs6qezggArumK+FrBUFAXodWULJrbV5ie0LkhWJdQ==} + engines: {node: '>=10'} + dependencies: + '@sindresorhus/is': 4.6.0 + callsites: 3.1.0 + dot-prop: 6.0.1 + lodash.isequal: 4.5.0 + type-fest: 0.20.2 + vali-date: 1.0.0 + dev: true + + /ow/0.28.1: + resolution: {integrity: sha512-1EZTywPZeUKac9gD7q8np3Aj+V54kvfIcjNEVNDSbG2Ys5xA5foW2HquvMMqgyWGLqIFMlc0Iq/HmyMHqN48sA==} + engines: {node: '>=12'} + dependencies: + '@sindresorhus/is': 4.6.0 + callsites: 3.1.0 + dot-prop: 6.0.1 + lodash.isequal: 4.5.0 + type-fest: 2.19.0 + vali-date: 1.0.0 + dev: true + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /pako/1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: false + + /parse-bmfont-ascii/1.0.6: + resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} + dev: true + + /parse-bmfont-binary/1.0.6: + resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} + dev: true + + /parse-bmfont-xml/1.1.4: + resolution: {integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==} + dependencies: + xml-parse-from-string: 1.0.1 + xml2js: 0.4.23 + dev: true + + /parse-headers/2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /parse-ms/2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + dev: true + + /parse-png/1.1.2: + resolution: {integrity: sha512-Ge6gDV9T5zhkWHmjvnNiyhPTCIoY7W+FC7qWPtuL2lIGZAFxxqTRG/ouEXsH9qkw+HzYiPEU/tFcxOCEDTP1Yw==} + engines: {node: '>=4'} + dependencies: + pngjs: 3.4.0 + dev: true + + /parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /performance-now/2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: true + + /phin/2.9.3: + resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /pinkie-promise/2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + dev: true + + /pinkie/2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + dev: true + + /pixelmatch/4.0.2: + resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} + hasBin: true + dependencies: + pngjs: 3.4.0 + dev: true + + /pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pngjs/3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + dev: true + + /postcss/8.4.20: + resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prebuild-install/6.1.4: + resolution: {integrity: sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + detect-libc: 1.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.7 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 2.30.1 + npmlog: 4.1.2 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 3.1.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: true + + /prettier/2.8.1: + resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /pretty-ms/7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} + dependencies: + parse-ms: 2.1.0 + dev: true + + /process-nextick-args/2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /process/0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: true + + /promise-inflight/1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dev: true + + /prop-types/15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /proxy-from-env/1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + + /psl/1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /qs/6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: true + + /queue/6.0.1: + resolution: {integrity: sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==} + dependencies: + inherits: 2.0.4 + dev: true + + /ramda/0.28.0: + resolution: {integrity: sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==} + 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.7 + strip-json-comments: 2.0.1 + dev: true + + /react-clientside-effect/1.2.6_react@18.2.0: + resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} + peerDependencies: + react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.20.7 + react: 18.2.0 + dev: false + + /react-dom/18.2.0_react@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-fast-compare/3.2.0: + resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==} + dev: false + + /react-focus-lock/2.9.2_kzbn2opkn2327fwg5yzwzya5o4: + resolution: {integrity: sha512-5JfrsOKyA5Zn3h958mk7bAcfphr24jPoMoznJ8vaJF6fUrPQ8zrtEd3ILLOK8P5jvGxdMd96OxWNjDzATfR2qw==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.7 + '@types/react': 18.0.26 + focus-lock: 0.11.4 + prop-types: 15.8.1 + react: 18.2.0 + react-clientside-effect: 1.2.6_react@18.2.0 + use-callback-ref: 1.3.0_kzbn2opkn2327fwg5yzwzya5o4 + use-sidecar: 1.1.2_kzbn2opkn2327fwg5yzwzya5o4 + dev: false + + /react-hook-form/7.41.3_react@18.2.0: + resolution: {integrity: sha512-5QNTmqJtDb88WV5n41b6+AmcDMVyaJ3tccPgHAgS215w3jZ3bmJhDO27kNTr8u4YHNYXmS7p1/4/KachBAlUtw==} + engines: {node: '>=12.22.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + dependencies: + react: 18.2.0 + dev: false + + /react-i18next/12.1.1_6vygckh2jgtx4nucc3no6lnm3y: + resolution: {integrity: sha512-mFdieOI0LDy84q3JuZU6Aou1DoWW2fhapcTGeBS8+vWSJuViuoCLQAMYSb0QoHhXS8B0WKUOPpx4cffAP7r/aA==} + peerDependencies: + i18next: '>= 19.0.0' + react: '>= 16.8.0' + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@babel/runtime': 7.20.7 + html-parse-stringify: 3.0.1 + i18next: 22.4.6 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /react-icons/4.7.1_react@18.2.0: + resolution: {integrity: sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw==} + peerDependencies: + react: '*' + dependencies: + react: 18.2.0 + dev: false + + /react-intersection-observer/9.4.1_react@18.2.0: + resolution: {integrity: sha512-IXpIsPe6BleFOEHKzKh5UjwRUaz/JYS0lT/HPsupWEQou2hDqjhLMStc5zyE3eQVT4Fk3FufM8Fw33qW1uyeiw==} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /react-is/16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react-refresh/0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-remove-scroll-bar/2.3.4_kzbn2opkn2327fwg5yzwzya5o4: + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + react-style-singleton: 2.2.1_kzbn2opkn2327fwg5yzwzya5o4 + tslib: 2.4.1 + dev: false + + /react-remove-scroll/2.5.5_kzbn2opkn2327fwg5yzwzya5o4: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + react-remove-scroll-bar: 2.3.4_kzbn2opkn2327fwg5yzwzya5o4 + react-style-singleton: 2.2.1_kzbn2opkn2327fwg5yzwzya5o4 + tslib: 2.4.1 + use-callback-ref: 1.3.0_kzbn2opkn2327fwg5yzwzya5o4 + use-sidecar: 1.1.2_kzbn2opkn2327fwg5yzwzya5o4 + dev: false + + /react-style-singleton/2.2.1_kzbn2opkn2327fwg5yzwzya5o4: + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.4.1 + dev: false + + /react/18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /read-chunk/1.0.1: + resolution: {integrity: sha512-5NLTTdX45dKFtG8CX5pKmvS9V5u9wBE+gkklN7xhDuhq3pA2I4O7ALfKxosCMcLHOhkxj6GNacZhfXtp5nlCdg==} + engines: {node: '>=0.10.0'} + dev: true + + /readable-stream/2.3.7: + resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + 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 + + /readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + /remove-trailing-separator/1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + dev: true + + /replace-ext/1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + dev: true + + /request/2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /resize-img/1.1.2: + resolution: {integrity: sha512-/4nKUmuNPuM6gYTWad136ica81baOVjpesgv8FGaIvP0KWcbCWahOWBKaM4tFoM+aVcSA+qQDg28pcnIzFRpJw==} + engines: {node: '>=4'} + dependencies: + bmp-js: 0.0.1 + file-type: 3.9.0 + get-stream: 2.3.1 + jimp: 0.2.28 + jpeg-js: 0.1.2 + parse-png: 1.1.2 + dev: true + + /resize-observer-polyfill/1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /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 + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup/2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + 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 + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /sax/1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + dev: true + + /scheduler/0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /screenfull/5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + dev: false + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-blocking/2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /sharp/0.28.3: + resolution: {integrity: sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + color: 3.2.1 + detect-libc: 1.0.3 + node-addon-api: 3.2.1 + prebuild-install: 6.1.4 + semver: 7.3.8 + simple-get: 3.1.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: true + + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /simple-concat/1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: true + + /simple-get/3.1.1: + resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 + dev: true + + /simple-swizzle/0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map/0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + + /sshpk/1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + + /ssri/9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minipass: 3.3.6 + dev: true + + /stackframe/1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + dev: true + + /stream-to-buffer/0.1.0: + resolution: {integrity: sha512-Da4WoKaZyu3nf+bIdIifh7IPkFjARBnBK+pYqn0EUJqksjV9afojjaCCHUemH30Jmu7T2qcKvlZm2ykN38uzaw==} + engines: {node: '>= 0.8'} + dependencies: + stream-to: 0.2.2 + dev: true + + /stream-to/0.2.2: + resolution: {integrity: sha512-Kg1BSDTwgGiVMtTCJNlo7kk/xzL33ZuZveEBRt6rXw+f1WLK/8kmz2NVCT/Qnv0JkV85JOHcLhD82mnXsR3kPw==} + engines: {node: '>= 0.10.0'} + dev: true + + /string-width/1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.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 + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi/3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments/2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true + + /stylis/4.1.3: + resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} + dev: false + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /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-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /tar-fs/2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: true + + /tar-stream/2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + + /tar/6.1.13: + resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 4.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /through2/4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /timm/1.7.1: + resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} + dev: true + + /tiny-invariant/1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + dev: false + + /tinycolor2/1.5.1: + resolution: {integrity: sha512-BHlrsGeYN2OpkRpfAgkEwCMu6w8Quq8JkK/mp4c55NZP7OwceJObR1CPZt62TqiA0Y3J5pwuDX+fXDqc35REtg==} + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-ico/1.1.5: + resolution: {integrity: sha512-5kIh7m7bkIlqIESEZkL8gAMMzucXKfPe3hX2FoDY5HEAfD9OJU+Qh9b6Enp74w0qRcxVT5ejss66PHKqc3AVkg==} + engines: {node: '>=4'} + dependencies: + arrify: 1.0.1 + buffer-alloc: 1.2.0 + image-size: 0.5.5 + parse-png: 1.1.2 + resize-img: 1.1.2 + dev: true + + /toggle-selection/1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /tough-cookie/2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.9.0 + punycode: 2.1.1 + dev: true + + /ts-essentials/9.3.0_typescript@4.9.4: + resolution: {integrity: sha512-XeiCboEyBG8UqXZtXl59bWEi4ZgOqRsogFDI6WDGIF1LmzbYiAkIwjkXN6zZWWl4re/lsOqMlYfe8KA0XiiEPw==} + peerDependencies: + typescript: '>=4.1.0' + dependencies: + typescript: 4.9.4 + dev: true + + /tslib/2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + dev: false + + /tslib/2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + dev: false + + /tunnel-agent/0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /tweetnacl/0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest/2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: true + + /typescript/4.9.4: + resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unique-filename/2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + unique-slug: 3.0.0 + dev: true + + /unique-slug/3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /update-browserslist-db/1.0.10_browserslist@4.21.4: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.4 + escalade: 3.1.1 + picocolors: 1.0.0 + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + dev: true + + /url-regex/3.2.0: + resolution: {integrity: sha512-dQ9cJzMou5OKr6ZzfvwJkCq3rC72PNXhqz0v3EIhF4a3Np+ujr100AhUx2cKx5ei3iymoJpJrPB3sVSEMdqAeg==} + engines: {node: '>=0.10.0'} + dependencies: + ip-regex: 1.0.3 + dev: true + + /use-callback-ref/1.3.0_kzbn2opkn2327fwg5yzwzya5o4: + resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + tslib: 2.4.1 + dev: false + + /use-sidecar/1.1.2_kzbn2opkn2327fwg5yzwzya5o4: + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.4.1 + dev: false + + /utif/2.0.1: + resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} + dependencies: + pako: 1.0.11 + dev: true + + /util-deprecate/1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + 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 + + /vali-date/1.0.0: + resolution: {integrity: sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==} + engines: {node: '>=0.10.0'} + dev: true + + /verror/1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + + /vinyl/2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} + dependencies: + clone: 2.1.2 + clone-buffer: 1.0.0 + clone-stats: 1.0.0 + cloneable-readable: 1.1.3 + remove-trailing-separator: 1.1.0 + replace-ext: 1.0.1 + dev: true + + /vite-plugin-top-level-await/1.2.2_vite@3.2.5: + resolution: {integrity: sha512-JBuY9X5KCxZyzwQUOIBpgX0Jbe2BECxwElWPeyrdRC5xaWzDibTG65QBW25COmwqHBeVlV04u8GTlJkuOWhfgw==} + peerDependencies: + vite: '>=2.8' + dependencies: + '@swc/core': 1.3.24 + vite: 3.2.5_@types+node@18.11.18 + dev: true + + /vite/3.2.5_@types+node@18.11.18: + resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.11.18 + esbuild: 0.15.18 + postcss: 8.4.20 + resolve: 1.22.1 + rollup: 2.79.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /void-elements/3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} + dev: false + + /wide-align/1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 1.0.2 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /xhr/2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.5 + xtend: 4.0.2 + dev: true + + /xml-parse-from-string/1.0.1: + resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} + dev: true + + /xml2js/0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: true + + /xmlbuilder/11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: true + + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + + /yallist/3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: false diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx new file mode 100644 index 0000000..b1e748c --- /dev/null +++ b/frontend/src/App.tsx @@ -0,0 +1,67 @@ +import { Flex, HStack, Icon, IconButton, Spacer } from '@chakra-ui/react'; +import React, { Suspense, useState } from 'react'; +import { SkipNavContent, SkipNavLink } from '@chakra-ui/skip-nav'; + +import { Book } from './scripts/searcher'; +import BooksView from './components/BooksView'; +import ColorModeSwitch from './components/ColorModeSwitch'; +import ExternalLink from './components/ExternalLink'; +import { FaGithub } from 'react-icons/fa'; +import Footer from './components/Footer'; +import Header from './components/Header'; +import LanguageSwitch from './components/LanguageSwitch'; +import Search from './components/Search'; +import { repository } from '../package.json'; +import { useTranslation } from 'react-i18next'; + +const Main: React.FC = () => { + const [books, setBooks] = useState([]); + return ( + <> + + + + + ); +}; + +const Settings = + import.meta.env.VITE_TAURI === '1' + ? React.lazy(() => import('./components/Settings-tauri')) + : React.lazy(() => import('./components/Settings')); + +const App: React.FC = () => { + const { t } = useTranslation(); + + return ( + + Skip to content +
+ + } + /> + + + + + + +
+ +
+ + + + + ); +}; + +export default App; diff --git a/frontend/src/components/BooksDetailsCard.tsx b/frontend/src/components/BooksDetailsCard.tsx new file mode 100644 index 0000000..98ac9ee --- /dev/null +++ b/frontend/src/components/BooksDetailsCard.tsx @@ -0,0 +1,124 @@ +import { Card, CardHeader, Heading, Divider, CardBody, CardFooter, GridItem, SimpleGrid, Text, Button, Flex, Icon } from '@chakra-ui/react'; + +import React, { useContext } from 'react'; + +import { useTranslation } from 'react-i18next'; + +import { ipfsGateways } from '../scripts/ipfs'; + +import { Book, Row } from '../scripts/searcher'; + +import { filesize as formatFileSize } from 'filesize'; +import { TbChevronUp } from 'react-icons/tb'; +import ExternalLink from './ExternalLink'; +import Description from './Description'; + +interface IProps { + row: Row +} + +const BookDetailsCard: React.FC = (props) => { + + // const downloadLinkFromIPFS = (gateway: string, book: Book) => { + // return ( + // `https://${gateway}/ipfs/${book.ipfs_cid}?filename=` + + // encodeURIComponent(`${book.title}_${book.author}.${book.extension}`) + // ); + // } + + const { t } = useTranslation(); + + const { row } = props + + const { + id, + title, + author, + publisher, + extension, + filesize, + language, + year, + pages, + isbn, + ipfs_cid + } = row.original; + + return ( + + + + {title} + + + + + + {id} + + + {ipfs_cid} + + + {author} + + {publisher || t('book.unknown') || 'Unknown'} + + + {extension} + + + {formatFileSize(filesize) as string} + + + + {language} + + + + {year || t('book.unknown') || 'Unknown'} + + + {pages || t('book.unknown') || 'Unknown'} + + + {isbn || t('book.unknown') || 'Unknown'} + + + + + + {/* + {ipfsGateways.map((gateway) => ( + + ))} + + */} + + {t('disclaimer.nolink_warning')} + + + + + + + ); +}; + +export default BookDetailsCard; diff --git a/frontend/src/components/BooksView.tsx b/frontend/src/components/BooksView.tsx new file mode 100644 index 0000000..f58891f --- /dev/null +++ b/frontend/src/components/BooksView.tsx @@ -0,0 +1,30 @@ +import MediaQuery from 'react-responsive' + +import { Book } from '../scripts/searcher'; + +import React from 'react'; + +import MobileDataList from './MobileDataList'; +import DesktopDataList from './DesktopDataList'; + +import { MEDIA_QUERY_DESKTOP_STARTS, MEDIA_QUERY_MOBILE_ENDS } from '../constants/mediaquery'; + +export interface BooksViewProps { + books: Book[]; +} + +const BooksView: React.FC = ({ books }) => { + + return ( + <> + + + + + + + + ); +}; + +export default BooksView; diff --git a/frontend/src/components/ColorModeSwitch.tsx b/frontend/src/components/ColorModeSwitch.tsx new file mode 100644 index 0000000..c429589 --- /dev/null +++ b/frontend/src/components/ColorModeSwitch.tsx @@ -0,0 +1,24 @@ +import { Icon, IconButton, useColorMode } from '@chakra-ui/react'; +import { TbMoon, TbSun } from 'react-icons/tb'; + +import React from 'react'; +import { useTranslation } from 'react-i18next'; + +const ColorModeSwitch: React.FC = () => { + const { colorMode, toggleColorMode } = useColorMode(); + const { t } = useTranslation(); + + return ( + : + } + onClick={toggleColorMode} + variant="ghost" + /> + ); +}; + +export default ColorModeSwitch; diff --git a/frontend/src/components/DataFilter.tsx b/frontend/src/components/DataFilter.tsx new file mode 100644 index 0000000..ca4448d --- /dev/null +++ b/frontend/src/components/DataFilter.tsx @@ -0,0 +1,70 @@ +import React from 'react'; + +import MediaQuery from 'react-responsive' + +import { Button, Card, Flex, Box } from '@chakra-ui/react'; + +import { useTranslation } from 'react-i18next'; +import { BookFilterElement } from '../constants/book'; +import { MEDIA_QUERY_DESKTOP_STARTS, MEDIA_QUERY_MOBILE_ENDS } from '../constants/mediaquery'; + +interface IProps { + setSortingElement(element: string): void + activeFilter: string + currentDirection: string + elements: BookFilterElement[] +} + +const DataFilter: React.FC = (props) => { + + const { setSortingElement, activeFilter, currentDirection, elements } = props + + const { t } = useTranslation(); + + const getSortingArrow = (sortButton: string) => { + if (sortButton !== activeFilter) { + return '' + } else { + return currentDirection == 'asc' ?   ↓ :   ↑ + } + } + + const getBox = (elem: BookFilterElement, key: number) => { + return ( + + + + ) + } + + const getFlexWrapper = () => { + return ( + + {elements.map((elem, key) => { + return getBox(elem, key) + })} + + ) + } + + return ( + <> + + + {getFlexWrapper()} + + + + {getFlexWrapper()} + + + + ); +} + +export default DataFilter \ No newline at end of file diff --git a/frontend/src/components/Description.tsx b/frontend/src/components/Description.tsx new file mode 100644 index 0000000..0e56b9d --- /dev/null +++ b/frontend/src/components/Description.tsx @@ -0,0 +1,19 @@ +import { Text } from '@chakra-ui/react'; + +interface DescriptionProps { + name: string; + children: React.ReactNode; +} + +export const Description: React.FC = ({ name, children }) => { + return ( + + + {name} + + {children} + + ); +}; + +export default Description; \ No newline at end of file diff --git a/frontend/src/components/DesktopDataList.tsx b/frontend/src/components/DesktopDataList.tsx new file mode 100644 index 0000000..eb6964f --- /dev/null +++ b/frontend/src/components/DesktopDataList.tsx @@ -0,0 +1,104 @@ +import React, { useEffect, useState } from 'react'; + +import { bookDisplayDesktopElements } from '../constants/book'; +import { MAX_RESULTS_PER_PAGE } from '../constants/pagination'; + +import { Book } from '../scripts/searcher'; + +import DataFilter from './DataFilter'; + +import DesktopDataListElement from './DesktopDataListElement'; +import Paginator from './Paginator'; + +interface IProps { + books: Book[] +} + +const DesktopDataList: React.FC = (props) => { + const { books } = props; + + const [sortBy, setSortBy] = useState('title') + const [direction, setDirection] = useState('asc') + + const [currentIndex, setCurrentIndex] = useState(0) + + useEffect(() => { + setCurrentIndex(0) + }, [books]) + + const getMaxIndex = (): number => { + const maxIndex = String(books.length / MAX_RESULTS_PER_PAGE) + const res = books.length > MAX_RESULTS_PER_PAGE ? parseInt(maxIndex) : 1 + + return res + } + + const setPreviousIndex = () => { + if (currentIndex > 0) { + setCurrentIndex(currentIndex - 1) + } + } + const setNextIndex = () => { + if (currentIndex < getMaxIndex()) { + setCurrentIndex(currentIndex + 1) + } + } + + const getCurrentSliceStart = ():number => { + return currentIndex == 0 ? 0 : currentIndex * MAX_RESULTS_PER_PAGE + } + + const getCurrentSliceEnd = ():number => { + const maxIndex = getMaxIndex() + return currentIndex == maxIndex ? books.length - 1 : (currentIndex + 1) * MAX_RESULTS_PER_PAGE + } + + const handleSorting = (sortingElement: string) => { + if (sortBy == sortingElement) { + setDirection(direction == 'asc' ? 'desc' : 'asc') + } else { + setSortBy(sortingElement) + } + } + + const sortBooksFunction = (a: any, b: any) => { + var nameA = a[sortBy].toString().toUpperCase(); // ignore upper and lowercase + var nameB = b[sortBy].toString().toUpperCase(); // ignore upper and lowercase + if (nameA < nameB) { + return -1; //nameA comes first + } + if (nameA > nameB) { + return 1; // nameB comes first + } + return 0; // names must be equal + } + + const getSortedBooks = (): Book[] => { + return (direction == 'asc') ? books.sort(sortBooksFunction) : books.sort(sortBooksFunction).reverse() + } + + return ( + <> + {books.length > 0 && + } + + {getSortedBooks().slice(getCurrentSliceStart(), getCurrentSliceEnd()).map((book, key) => { + return + })} + + {books.length > 0 && + } + + ); +}; + +export default DesktopDataList; diff --git a/frontend/src/components/DesktopDataListElement.tsx b/frontend/src/components/DesktopDataListElement.tsx new file mode 100644 index 0000000..bcf8bba --- /dev/null +++ b/frontend/src/components/DesktopDataListElement.tsx @@ -0,0 +1,82 @@ +import { Card, Flex, Box, Text, Tag } from '@chakra-ui/react'; + +import React, { useState } from 'react'; +import { colorSchemes } from '../constants/color'; + +import { Book } from '../scripts/searcher'; +import BookDetailsCard from './BooksDetailsCard'; + +import { filesize as formatFileSize } from 'filesize'; + +interface IProps { + book: Book +} + +const DesktopDataListElement: React.FC = (props) => { + const { book } = props + + const languageColorScheme = colorSchemes[book.language.length % colorSchemes.length]; + const extensionColorScheme = colorSchemes[book.extension.charCodeAt(0) % colorSchemes.length]; + + const [isOpen, setIsOpen] = useState(false) + + return ( + <> +
{ setIsOpen(true) }}> + + + + + + + {book.title} + + + + + {book.author} + + + + + {book.publisher} + + + + {book.extension} + + + + {formatFileSize(book.filesize) as string} + + + + {book.language} + + + + {book.year} + + + + + {book.pages} + + + + + + +
+ + {isOpen && + } + + + ); +}; + +export default DesktopDataListElement; \ No newline at end of file diff --git a/frontend/src/components/ExternalLink-tauri.tsx b/frontend/src/components/ExternalLink-tauri.tsx new file mode 100644 index 0000000..311715b --- /dev/null +++ b/frontend/src/components/ExternalLink-tauri.tsx @@ -0,0 +1,19 @@ +import { Link, LinkProps } from '@chakra-ui/react'; + +import React from 'react'; +import { open } from '@tauri-apps/api/shell'; + +const ExternalLink = React.forwardRef((props, ref) => { + return ( + { + e.preventDefault(); + props.href && open(props.href); + }} + > + ); +}); + +export default ExternalLink; diff --git a/frontend/src/components/ExternalLink.tsx b/frontend/src/components/ExternalLink.tsx new file mode 100644 index 0000000..5e3f018 --- /dev/null +++ b/frontend/src/components/ExternalLink.tsx @@ -0,0 +1,19 @@ +import { Link, LinkProps } from '@chakra-ui/react'; +import React, { Suspense } from 'react'; + +const ExternalLinkInner = + import.meta.env.VITE_TAURI === '1' + ? React.lazy(() => import('./ExternalLink-tauri')) + : React.Fragment; + +const ExternalLink = React.forwardRef((props, ref) => { + if (import.meta.env.VITE_TAURI === '1') + return ( + }> + + + ); + return ; +}); + +export default ExternalLink; diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx new file mode 100644 index 0000000..c0fc71e --- /dev/null +++ b/frontend/src/components/Footer.tsx @@ -0,0 +1,16 @@ +import { Box } from '@chakra-ui/react'; +import React from 'react'; + +export interface FooterProps { + children: React.ReactNode; +} + +const Footer: React.FC = ({ children }) => { + return ( + + {children} + + ); +}; + +export default Footer; diff --git a/frontend/src/components/Header.tsx b/frontend/src/components/Header.tsx new file mode 100644 index 0000000..99f8e32 --- /dev/null +++ b/frontend/src/components/Header.tsx @@ -0,0 +1,48 @@ +import { Box, Flex, Heading, Spacer, useColorMode } from '@chakra-ui/react'; +import React, { useEffect } from 'react'; + +import { useInView } from 'react-intersection-observer'; + +export interface HeaderProps { + title: string; + children: React.ReactNode; +} + +const Header: React.FC = ({ title, children }) => { + const { ref, inView } = useInView({ threshold: 0 }); + const [bgColor, setBgColor] = React.useState('transparent'); + const { colorMode } = useColorMode(); + + useEffect(() => { + if (!inView) { + setBgColor(colorMode === 'light' ? 'white' : 'blue.900'); + } else { + setBgColor('transparent'); + } + }, [inView, colorMode]); + + return ( + <> + +

{title}

+ + {children} +
+ + + ); +}; + +export default Header; diff --git a/frontend/src/components/LanguageSwitch.tsx b/frontend/src/components/LanguageSwitch.tsx new file mode 100644 index 0000000..4bd6b6c --- /dev/null +++ b/frontend/src/components/LanguageSwitch.tsx @@ -0,0 +1,44 @@ +import { + Icon, + IconButton, + Menu, + MenuButton, + MenuItem, + MenuItemOption, + MenuList, + MenuOptionGroup +} from '@chakra-ui/react'; + +import { IoLanguage } from 'react-icons/io5'; +import React from 'react'; +import { useTranslation } from 'react-i18next'; + +const LanguageSwitch: React.FC = () => { + const { t, i18n } = useTranslation(); + + return ( + + } + variant="ghost" + /> + + i18n.changeLanguage(value as string)} + > + English + 简体中文 + French + Italian + + + + ); +}; + +export default LanguageSwitch; diff --git a/frontend/src/components/MobileDataList.tsx b/frontend/src/components/MobileDataList.tsx new file mode 100644 index 0000000..6d9315a --- /dev/null +++ b/frontend/src/components/MobileDataList.tsx @@ -0,0 +1,99 @@ +import React, { useState } from 'react'; + +import { bookDisplayMobileElements } from '../constants/book'; +import { MAX_RESULTS_PER_PAGE } from '../constants/pagination'; +import { Book } from '../scripts/searcher'; + +import DataFilter from './DataFilter'; +import MobileDataListElement from './MobileDataListElement'; +import Paginator from './Paginator'; + +interface IProps { + books: Book[] +} + +const MobileDataList: React.FC = (props) => { + const { books } = props; + + const [sortBy, setSortBy] = useState('title') + const [direction, setDirection] = useState('asc') + + const [currentIndex, setCurrentIndex] = useState(0) + + const getMaxIndex = (): number => { + const maxIndex = String(books.length / MAX_RESULTS_PER_PAGE) + const res = books.length > MAX_RESULTS_PER_PAGE ? parseInt(maxIndex) : 1 + + return res + } + + const setPreviousIndex = () => { + if (currentIndex > 0) { + setCurrentIndex(currentIndex - 1) + } + } + const setNextIndex = () => { + if (currentIndex < getMaxIndex()) { + setCurrentIndex(currentIndex + 1) + } + } + + const getCurrentSliceStart = (): number => { + return currentIndex == 0 ? 0 : currentIndex * MAX_RESULTS_PER_PAGE + } + + const getCurrentSliceEnd = (): number => { + const maxIndex = getMaxIndex() + return currentIndex == maxIndex ? books.length - 1 : (currentIndex + 1) * MAX_RESULTS_PER_PAGE + } + + + const handleSorting = (sortingElement: string) => { + if (sortBy == sortingElement) { + setDirection(direction == 'asc' ? 'desc' : 'asc') + } else { + setSortBy(sortingElement) + } + } + + const sortBooksFunction = (a: Book, b: Book) => { + var nameA = a[sortBy == 'title' ? 'title' : 'author'].toUpperCase(); // ignore upper and lowercase + var nameB = b[sortBy == 'title' ? 'title' : 'author'].toUpperCase(); // ignore upper and lowercase + if (nameA < nameB) { + return -1; //nameA comes first + } + if (nameA > nameB) { + return 1; // nameB comes first + } + return 0; // names must be equal + } + + const getSortedBooks = (): Book[] => { + return (direction == 'asc') ? books.sort(sortBooksFunction) : books.sort(sortBooksFunction).reverse() + } + + return ( + <> + {books.length > 0 && + } + + {getSortedBooks().slice(getCurrentSliceStart(), getCurrentSliceEnd()).map((book, key) => { + return + })} + + {books.length > 0 && + } + + ); +}; + +export default MobileDataList; diff --git a/frontend/src/components/MobileDataListElement.tsx b/frontend/src/components/MobileDataListElement.tsx new file mode 100644 index 0000000..c69864d --- /dev/null +++ b/frontend/src/components/MobileDataListElement.tsx @@ -0,0 +1,52 @@ +import { Card, CardHeader, Tag, Text } from '@chakra-ui/react'; +import React, { useState } from 'react'; +import { colorSchemes } from '../constants/color'; + +import { Book } from '../scripts/searcher'; +import BookDetailsCard from './BooksDetailsCard'; + +interface IProps { + book: Book +} + +const MobileDataListElement: React.FC = (props) => { + const { book } = props + + const languageColorScheme = colorSchemes[book.language.length % colorSchemes.length]; + const extensionColorScheme = colorSchemes[book.extension.charCodeAt(0) % colorSchemes.length]; + + const [isOpen, setIsOpen] = useState(false) + + return ( + <> +
{ setIsOpen(true) }}> + + + + + {book.title} + + + {book.author} + +
+ {book.language} + {" "} + {book.extension} +
+
+
+ +
+ + {isOpen && + } + + + ); +}; + +export default MobileDataListElement; diff --git a/frontend/src/components/Paginator.tsx b/frontend/src/components/Paginator.tsx new file mode 100644 index 0000000..e3e2405 --- /dev/null +++ b/frontend/src/components/Paginator.tsx @@ -0,0 +1,81 @@ +import React from 'react'; + +import { Flex, IconButton, Icon, Text, IconButtonProps } from '@chakra-ui/react'; + +import { useTranslation } from 'react-i18next'; + +import { TbChevronLeft, TbChevronRight, TbChevronsLeft, TbChevronsRight } from 'react-icons/tb'; + +export interface IProps { + currentIndex: number + maxIndex: number + setIndex(index: number): void + setPrevious():void + setNext():void +} + +const Paginator: React.FC = (props) => { + + const { currentIndex, maxIndex, setIndex, setPrevious, setNext } = props + + const { t } = useTranslation() + + return ( + + } + mr={1} + display={{ base: 'none', md: 'inline-flex' }} + onClick={() => setIndex(0)} + disabled={currentIndex == 0} + /> + } + mr={1} + onClick={() => setPrevious()} + disabled={currentIndex == 0} + /> + { + Array.from(Array(maxIndex).keys()).map((pageIndex) => { + const title = t('table.page', { page: pageIndex + 1 }); + const disabled = currentIndex === pageIndex; + const style: Partial = disabled ? { colorScheme: 'blue' } : {}; + return ( + {pageIndex + 1}} + mr={1} + onClick={() => setIndex(pageIndex)} + disabled={disabled} + {...style} + /> + ); + }) + } + } + mr={{ base: 0, md: 1 }} + onClick={() => setNext()} + disabled={currentIndex + 1 == maxIndex} + /> + } + display={{ base: 'none', md: 'inline-flex' }} + onClick={() => setIndex(maxIndex - 1)} + disabled={currentIndex + 1 == maxIndex} + /> + + ); +}; + +export default Paginator; diff --git a/frontend/src/components/Search.tsx b/frontend/src/components/Search.tsx new file mode 100644 index 0000000..97813a9 --- /dev/null +++ b/frontend/src/components/Search.tsx @@ -0,0 +1,138 @@ +import { GridItem, Icon, SimpleGrid } from '@chakra-ui/react'; +import React, { useState } from 'react'; +import { + TbBook2, + TbBuilding, + TbFileDescription, + TbHash, + TbReportSearch, + TbUserCircle +} from 'react-icons/tb'; +import search, { Book } from '../scripts/searcher'; + +import { IoLanguage } from 'react-icons/io5'; +import SearchInput from './SearchInput'; +import { useDebounceEffect } from 'ahooks'; +import { useTranslation } from 'react-i18next'; +import SearchLanguage from './SearchLanguage'; + +function constructQuery(parts: Record): string { + return Object.keys(parts) + .map((key) => + parts[key] + .split(' ') + .filter((s) => s !== '') + .map((s) => `${key}:"${s}"`) + ) + .flat() + .join(''); +} + +export interface SearchProps { + setBooks: (books: Book[]) => void; +} + +const Search: React.FC = ({ setBooks }) => { + const { t } = useTranslation(); + + const [title, setTitle] = useState(''); + const [author, setAuthor] = useState(''); + const [publisher, setPublisher] = useState(''); + const [extension, setExtension] = useState(''); + const [language, setLanguage] = useState(''); + const [isbn, setISBN] = useState(''); + const [complexQuery, setComplexQuery] = useState(''); + const [showLanguageDropdown, setShowLanguageDropdown] = useState(true) + + const handleLanguageChange = (language: string) => { + if (language == 'input') { + setShowLanguageDropdown(false) + } else { + setLanguage(language) + } + } + + const handleLanguageReset = () => { + setShowLanguageDropdown(true) + setLanguage('') + } + + useDebounceEffect( + () => { + const query = complexQuery + ? complexQuery + : constructQuery({ title, author, publisher, extension, language, isbn }); + + search(query, 100).then((books) => { + setBooks(books); + }); + }, + [title, author, publisher, extension, language, isbn, complexQuery], + { wait: 300 } + ); + + return ( + + } + placeholder={t('book.title')} + value={title} + onChange={setTitle} + /> + } + placeholder={t('book.author')} + value={author} + onChange={setAuthor} + /> + } + placeholder={t('book.publisher')} + value={publisher} + onChange={setPublisher} + /> + } + placeholder={t('book.extension')} + value={extension} + onChange={setExtension} + /> + + {!showLanguageDropdown && (} + placeholder={t('book.language')} + value={language} + onChange={handleLanguageChange} + onClear={handleLanguageReset} + />)} + + {showLanguageDropdown && (} + placeholder={t('book.language')} + value={language} + onChange={handleLanguageChange} + />)} + + } + placeholder={t('book.isbn')} + value={isbn} + onChange={setISBN} + /> + + } + placeholder={t('search.complex')} + value={complexQuery} + onChange={setComplexQuery} + /> + + + ); +}; + +export default Search; diff --git a/frontend/src/components/SearchInput.tsx b/frontend/src/components/SearchInput.tsx new file mode 100644 index 0000000..551e911 --- /dev/null +++ b/frontend/src/components/SearchInput.tsx @@ -0,0 +1,60 @@ +import { + Icon, + IconButton, + Input, + InputGroup, + InputLeftElement, + InputRightElement, + useControllableState +} from '@chakra-ui/react'; + +import React from 'react'; +import { TbCircleX } from 'react-icons/tb'; +import { useTranslation } from 'react-i18next'; + +interface SearchInputProps { + icon: React.ReactNode; + placeholder: string; + value?: string; + onChange?: (value: string) => void; + onClear?: () => void; +} + +const SearchInput: React.FC = ({ placeholder, icon, value, onChange, onClear }) => { + const [controlledValue, setControlledValue] = useControllableState({ + value, + onChange, + defaultValue: '' + }); + const { t } = useTranslation(); + + return ( + + + setControlledValue(e.target.value)} + /> + + {value === '' ? null : ( + } + variant="unstyled" + onClick={() => { + setControlledValue('') + onClear && onClear() + }} + /> + )} + + + ); +}; + +export default SearchInput; diff --git a/frontend/src/components/SearchLanguage.tsx b/frontend/src/components/SearchLanguage.tsx new file mode 100644 index 0000000..e328838 --- /dev/null +++ b/frontend/src/components/SearchLanguage.tsx @@ -0,0 +1,53 @@ +import { + Icon, + IconButton, + Input, + InputGroup, + InputLeftElement, + InputRightElement, + Select, + useControllableState +} from '@chakra-ui/react'; + +import React from 'react'; +import { TbCircleX } from 'react-icons/tb'; +import { useTranslation } from 'react-i18next'; + +interface SearchInputProps { + icon: React.ReactNode; + placeholder: string; + value?: string; + onChange?: (value: string) => void; +} + +const SearchLanguage: React.FC = ({ placeholder, icon, value, onChange }) => { + const [controlledValue, setControlledValue] = useControllableState({ + value, + onChange, + defaultValue: '' + }); + const { t } = useTranslation(); + + return ( + + + + + + + + ); +}; + +export default SearchLanguage; diff --git a/frontend/src/components/Settings-tauri.tsx b/frontend/src/components/Settings-tauri.tsx new file mode 100644 index 0000000..6869a13 --- /dev/null +++ b/frontend/src/components/Settings-tauri.tsx @@ -0,0 +1,153 @@ +import { + Button, + Drawer, + DrawerBody, + DrawerCloseButton, + DrawerContent, + DrawerFooter, + DrawerHeader, + DrawerOverlay, + Icon, + IconButton, + Input, + InputRightElement, + Stack, + Textarea, + useDisclosure +} from '@chakra-ui/react'; +import { TbFolder, TbHelp, TbSettings } from 'react-icons/tb'; + +import React from 'react'; +import { invoke } from '@tauri-apps/api'; +import { open } from '@tauri-apps/api/dialog'; +import { useForm } from 'react-hook-form'; +import { useTranslation } from 'react-i18next'; +import { SettingsItem } from './SettingsItem'; +import RootContext from '../store'; +import { parseIpfsGateways } from '../scripts/ipfs'; + +interface Config { + index_dir: string; + ipfs_gateways: string; +} + +const Settings: React.FC = () => { + const { t } = useTranslation(); + const { isOpen, onOpen, onClose } = useDisclosure(); + const btnRef = React.useRef(null); + const { + register, + handleSubmit, + watch, + setValue, + formState: { errors } + } = useForm(); + const [submitting, setSubmitting] = React.useState(false); + const rootContext = React.useContext(RootContext); + + React.useEffect(() => { + isOpen && + invoke('get_config').then((conf) => { + const config = conf as { + index_dir: string; + ipfs_gateways: string[]; + }; + setValue('index_dir', config.index_dir, { shouldValidate: true }); + setValue('ipfs_gateways', config.ipfs_gateways.join('\n'), { shouldValidate: true }); + }); + }, [isOpen]); + + const onSubmit = async (newConfig: Config) => { + setSubmitting(true); + + const ipfsGateways: string[]= parseIpfsGateways(newConfig.ipfs_gateways); + const config = { + index_dir: newConfig.index_dir, + ipfs_gateways: ipfsGateways + }; + await invoke('set_config', { newConfig: config }); + rootContext.ipfs_gateways = ipfsGateways; + onClose(); + setSubmitting(false); + }; + + return ( + <> + } + onClick={onOpen} + variant="ghost" + /> + + + + + {t('settings.title')} + + +
+ + + } + rightElement={ + + } + variant="unstyled" + pt={1} + onClick={async () => { + const selected = (await open({ + defaultPath: watch('index_dir'), + directory: true, + multiple: false + })) as string | null; + if (selected) setValue('index_dir', selected, { shouldValidate: true }); + }} + /> + + } + /> + + } + /> + +
+
+ + + + + +
+
+ + ); +}; + +export default Settings; diff --git a/frontend/src/components/Settings.tsx b/frontend/src/components/Settings.tsx new file mode 100644 index 0000000..c0af65b --- /dev/null +++ b/frontend/src/components/Settings.tsx @@ -0,0 +1,109 @@ +import { + Button, + Drawer, + DrawerBody, + DrawerCloseButton, + DrawerContent, + DrawerFooter, + DrawerHeader, + DrawerOverlay, + Icon, + IconButton, + Stack, + Textarea, + useDisclosure +} from '@chakra-ui/react'; +import { TbSettings } from 'react-icons/tb'; + +import React from 'react'; +import { useForm } from 'react-hook-form'; +import { useTranslation } from 'react-i18next'; +import { SettingsItem } from './SettingsItem'; +import RootContext from '../store'; +import { parseIpfsGateways } from '../scripts/ipfs'; + +interface Config { + ipfs_gateways: string; +} + +const Settings: React.FC = () => { + const { t } = useTranslation(); + const { isOpen, onOpen, onClose } = useDisclosure(); + const btnRef = React.useRef(null); + const { + register, + handleSubmit, + watch, + setValue, + formState: { errors } + } = useForm(); + const [submitting, setSubmitting] = React.useState(false); + const rootContext = React.useContext(RootContext); + + React.useEffect(() => { + if (isOpen) { + const ipfsGateways: string[] = JSON.parse(localStorage.getItem('ipfs_gateways') || '[]'); + setValue('ipfs_gateways', ipfsGateways.join('\n')); + } + }, [isOpen]); + + const onSubmit = async (newConfig: Config) => { + setSubmitting(true); + + const ipfsGateways: string[] = parseIpfsGateways(newConfig.ipfs_gateways); + localStorage.setItem('ipfs_gateways', JSON.stringify(ipfsGateways)); + rootContext.ipfs_gateways = ipfsGateways; + + onClose(); + setSubmitting(false); + }; + + return ( + <> + } + onClick={onOpen} + variant="ghost" + /> + + + + + {t('settings.title')} + + +
+ + + } + /> + +
+
+ + + + + +
+
+ + ); +}; + +export default Settings; diff --git a/frontend/src/components/SettingsItem.tsx b/frontend/src/components/SettingsItem.tsx new file mode 100644 index 0000000..a2c4d98 --- /dev/null +++ b/frontend/src/components/SettingsItem.tsx @@ -0,0 +1,38 @@ +import { FormControl, FormErrorMessage, FormLabel, Icon, InputGroup, InputProps, Tooltip, Text } from "@chakra-ui/react"; +import React from "react"; +import { TbHelp } from "react-icons/tb"; + +export interface SettingsItemProps extends InputProps { + label: string; + help?: string; + error?: string; + element: React.ReactNode; + leftElement?: React.ReactNode; + rightElement?: React.ReactNode; +} + +export const SettingsItem: React.FC = + ({ label, help, error, element, leftElement, rightElement }) => { + console.log(label, error); + return ( + + + {label}{' '} + {help && ( + + + + + + )} + + + {leftElement} + {element} + {rightElement} + + {error && {error}} + + ); + } + ; diff --git a/frontend/src/constants/book.ts b/frontend/src/constants/book.ts new file mode 100644 index 0000000..29ed2b0 --- /dev/null +++ b/frontend/src/constants/book.ts @@ -0,0 +1,61 @@ +export interface BookFilterElement { + field: string, + flex: number, + sortable: boolean +} + +export const bookDisplayDesktopElements: BookFilterElement[] = [ + { + field: 'title', + flex: 10, + sortable: true + }, + { + field: 'author', + flex: 6, + sortable: true + }, + { + field: 'publisher', + flex: 4, + sortable: true + }, + { + field: 'extension', + flex: 2, + sortable: true + }, + { + field: 'filesize', + flex: 3, + sortable: false + }, + { + field: 'language', + flex: 2, + sortable: true + }, + { + field: 'year', + flex: 2, + sortable: true + }, + { + field: 'pages', + flex: 2, + sortable: false + } +] + +export const bookDisplayMobileElements: BookFilterElement[] = [ + { + field: 'title', + flex: 0, + sortable: true + }, + { + field: 'author', + flex: 0, + sortable: true + } +] \ No newline at end of file diff --git a/frontend/src/constants/color.ts b/frontend/src/constants/color.ts new file mode 100644 index 0000000..f6423f1 --- /dev/null +++ b/frontend/src/constants/color.ts @@ -0,0 +1,12 @@ +export const colorSchemes = [ + 'red', + 'orange', + 'yellow', + 'green', + 'teal', + 'blue', + 'cyan', + 'purple', + 'pink', + 'gray' +]; diff --git a/frontend/src/constants/mediaquery.ts b/frontend/src/constants/mediaquery.ts new file mode 100644 index 0000000..55595e7 --- /dev/null +++ b/frontend/src/constants/mediaquery.ts @@ -0,0 +1,2 @@ +export const MEDIA_QUERY_MOBILE_ENDS = 899 +export const MEDIA_QUERY_DESKTOP_STARTS = 900 \ No newline at end of file diff --git a/frontend/src/constants/pagination.ts b/frontend/src/constants/pagination.ts new file mode 100644 index 0000000..e5b7ee5 --- /dev/null +++ b/frontend/src/constants/pagination.ts @@ -0,0 +1 @@ +export const MAX_RESULTS_PER_PAGE = 20 \ No newline at end of file diff --git a/frontend/src/font/LemonYellowSun.otf b/frontend/src/font/LemonYellowSun.otf new file mode 100644 index 0000000000000000000000000000000000000000..be1495c45ea6240ee9c8f1bdff87ffcf8c880f23 GIT binary patch literal 103152 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

hi~Pw!juq%agWBKsO| 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 literal 0 HcmV?d00001 diff --git a/frontend/src/i18n-tauri.json b/frontend/src/i18n-tauri.json new file mode 100644 index 0000000..e378b8a --- /dev/null +++ b/frontend/src/i18n-tauri.json @@ -0,0 +1,62 @@ +{ + "en": { + "translation": { + "settings": { + "title": "Settings", + "index_dir": "Index directory", + "index_dir_help": "The directory where the index is stored.", + "index_dir_required": "The index directory is required", + "index_dir_browse": "Browse", + "ipfs_gateways": "IPFS Gateways", + "ipfs_gateways_help": "IPFS Gateways List, line break", + "cancel": "Cancel", + "save": "Save" + } + } + }, + "zh-CN": { + "translation": { + "settings": { + "title": "设置", + "index_dir": "索引目录", + "index_dir_help": "存储索引的目录。", + "index_dir_required": "索引目录不能为空", + "index_dir_browse": "浏览", + "ipfs_gateways": "IPFS 网关", + "ipfs_gateways_help": "IPFS 网关列表,一行一个", + "cancel": "取消", + "save": "保存" + } + } + }, + "fr": { + "translation": { + "settings": { + "title": "Paramètres", + "index_dir": "Répertoire de l'index", + "index_dir_help": "Le répertoire où l'index est stocké.", + "index_dir_required": "Le répertoire de l'index est requis", + "index_dir_browse": "Parcourir", + "ipfs_gateways": "Passerelles IPFS", + "ipfs_gateways_help": "Liste des passerelles IPFS, saut de ligne", + "cancel": "Annuler", + "save": "Enregistrer" + } + } + }, + "it": { + "translation": { + "settings": { + "title": "Impostazioni", + "index_dir": "Directory del file index", + "index_dir_help": "La directory dove è salvato il file index", + "index_dir_required": "Il file index è obbligatorio", + "index_dir_browse": "Cerca", + "ipfs_gateways": "Gateway IPFS", + "ipfs_gateways_help": "Elenco dei gateway IPFS, interruzione di riga", + "cancel": "Annulla", + "save": "Salva" + } + } + } +} diff --git a/frontend/src/i18n.json b/frontend/src/i18n.json new file mode 100644 index 0000000..0dd41ce --- /dev/null +++ b/frontend/src/i18n.json @@ -0,0 +1,232 @@ +{ + "en": { + "translation": { + "nav": { + "repository": "GitHub Repository", + "toggle_dark": "Toggle to Dark Mode", + "toggle_light": "Toggle to Light Mode", + "toggle_language": "Toggle Language" + }, + "input": { + "clear": "Clear" + }, + "book": { + "id": "zlib/libgen id", + "title": "Title", + "author": "Author", + "publisher": "Publisher", + "extension": "Extension", + "filesize": "Filesize", + "language": "Language", + "year": "Year", + "pages": "Pages", + "isbn": "ISBN", + "ipfs_cid": "IPFS CID", + "unknown": "Unknown" + }, + "table": { + "sort_asc": "Sort ascending", + "sort_desc": "Sort descending", + "not_sorted": "Not sorted", + "filter": "Filter", + "no_data": "No data", + "first_page": "First page", + "last_page": "Last page", + "next_page": "Next page", + "previous_page": "Previous page", + "page": "Page {{page}}", + "collapse": "Collapse" + }, + "search": { + "complex": "Complex search" + }, + "settings": { + "title": "Settings", + "ipfs_gateways": "IPFS Gateways", + "ipfs_gateways_help": "IPFS Gateways List, line break", + "cancel": "Cancel", + "save": "Save" + }, + "languages": { + "chinese": "Chinese", + "english": "English", + "french": "French", + "german": "German", + "japanese": "Japanese", + "italian": "Italian", + "portuguese": "Portuguese", + "spanish": "Spanish", + "other": "Other / Unknown", + "input": "Input..." + }, + "disclaimer": { + "nolink_warning": "WARNING: This platform does not host any kind of link to copyrighted material. It just displays CID related to IPFS resources" + } + } + }, + "zh-CN": { + "translation": { + "nav": { + "repository": "GitHub 仓库", + "toggle_dark": "切换到暗黑模式", + "toggle_light": "切换到亮色模式", + "toggle_language": "切换语言" + }, + "input": { + "clear": "清空" + }, + "book": { + "id": "zlib/libgen id", + "title": "书名", + "author": "作者", + "publisher": "出版社", + "extension": "扩展名", + "filesize": "文件大小", + "language": "语言", + "year": "年份", + "pages": "页数", + "isbn": "ISBN", + "ipfs_cid": "IPFS CID", + "unknown": "未知" + }, + "table": { + "sort_asc": "升序排序", + "sort_desc": "降序排序", + "not_sorted": "未排序", + "filter": "过滤", + "no_data": "无数据", + "first_page": "第一页", + "last_page": "最后一页", + "next_page": "下一页", + "previous_page": "上一页", + "page": "第 {{page}} 页", + "collapse": "收起" + }, + "search": { + "complex": "复杂搜索" + }, + "settings": { + "title": "设置", + "ipfs_gateways": "IPFS 网关", + "ipfs_gateways_help": "IPFS 网关列表,一行一个", + "cancel": "取消", + "save": "保存" + } + } + }, + "fr": { + "translation": { + "nav": { + "repository": "Dépôt GitHub", + "toggle_dark": "Basculer en mode sombre", + "toggle_light": "Basculer en mode clair", + "toggle_language": "Basculer la langue" + }, + "input": { + "clear": "Effacer" + }, + "book": { + "id": "ID zlib/libgen", + "title": "Titre", + "author": "Auteur", + "publisher": "Éditeur", + "extension": "Extension", + "filesize": "Taille du fichier", + "language": "Langue", + "year": "Année", + "pages": "Pages", + "isbn": "ISBN", + "ipfs_cid": "CID IPFS", + "unknown": "Inconnu" + }, + "table": { + "sort_asc": "Trier par ordre croissant", + "sort_desc": "Trier par ordre décroissant", + "not_sorted": "Non trié", + "filter": "Filtrer", + "no_data": "Aucune donnée", + "first_page": "Première page", + "last_page": "Dernière page", + "next_page": "Page suivante", + "previous_page": "Page précédente", + "page": "Page {{page}}", + "collapse": "Replier" + }, + "search": { + "complex": "Recherche complexe" + }, + "settings": { + "title": "Paramètres", + "ipfs_gateways": "Passerelles IPFS", + "ipfs_gateways_help": "Liste des passerelles IPFS, saut de ligne", + "cancel": "Annuler", + "save": "Enregistrer" + } + } + }, + "it": { + "translation": { + "nav": { + "repository": "Repo GitHub", + "toggle_dark": "Modalità scura", + "toggle_light": "Modalità chiara", + "toggle_language": "Lingua" + }, + "input": { + "clear": "pulisci" + }, + "book": { + "id": "ID zlib/libgen", + "title": "Titolo", + "author": "Autore", + "publisher": "Editore", + "extension": "Estensione", + "filesize": "Dimensione file", + "language": "Lingua", + "year": "Anno", + "pages": "Pagina", + "isbn": "ISBN", + "ipfs_cid": "CID IPFS", + "unknown": "Sconosciuto" + }, + "table": { + "sort_asc": "Ordine crescente", + "sort_desc": "Ordine decrescente", + "not_sorted": "Non ordinato", + "filter": "Filtra", + "no_data": "Nessun risultato", + "first_page": "Prima pagina", + "last_page": "Ultima pagina", + "next_page": "Pagina seguente", + "previous_page": "Pagina precedente", + "page": "Pagina {{page}}", + "collapse": "Richiudi" + }, + "search": { + "complex": "Ricerca dettagliata" + }, + "settings": { + "title": "Impostazioni", + "ipfs_gateways": "Gateway IPFS", + "ipfs_gateways_help": "Elenco dei gateway IPFS, interruzione di riga", + "cancel": "Annulla", + "save": "Salva" + }, + "languages": { + "chinese": "Cinese", + "english": "Inglese", + "french": "Francese", + "german": "Tedesco", + "italian": "Italiano", + "japanese": "Giapponese", + "portuguese": "Portoghese", + "spanish": "Spagnolo", + "other": "Altro / Sconosciuto", + "input": "Scrivi..." + }, + "disclaimer": { + "nolink_warning": "IMPORTANTE: Questa piattaforma non ospita nessun tipo di link a materiale protetto da copyright. Solo CID relativi a risorse IPFS." + } + } + } +} diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx new file mode 100644 index 0000000..f48fb0c --- /dev/null +++ b/frontend/src/main.tsx @@ -0,0 +1,41 @@ +import './style.css'; + +import * as ReactDOM from 'react-dom/client'; + +import App from './App'; +import { ChakraProvider } from '@chakra-ui/react'; +import LanguageDetector from 'i18next-browser-languagedetector'; +import React from 'react'; +import i18n from 'i18next'; +import i18nResource from './i18n.json'; +import { initReactI18next } from 'react-i18next'; +import merge from 'lodash/merge'; +import theme from './theme'; +import RootContext, {initRootContext} from './store'; + +const resources = + import.meta.env.VITE_TAURI === '1' + ? merge(i18nResource, (await import('./i18n-tauri.json')).default) + : i18nResource; + +i18n + .use(LanguageDetector) + .use(initReactI18next) + .init({ + resources, + fallbackLng: 'en', + lng: 'it', // default language + // debug: true, + interpolation: { escapeValue: false } + }); + +const rootElement = document.getElementById('app')!; +ReactDOM.createRoot(rootElement).render( + + + + + + + +); diff --git a/frontend/src/scripts/ipfs.ts b/frontend/src/scripts/ipfs.ts new file mode 100644 index 0000000..9fb384d --- /dev/null +++ b/frontend/src/scripts/ipfs.ts @@ -0,0 +1,30 @@ +interface TauriConfig { + index_dir: string; + ipfs_gateways: string[]; +} + +export const ipfsGateways: string[] = [ + 'cloudflare-ipfs.com', + 'dweb.link', + 'ipfs.io', + 'gateway.pinata.cloud' + ]; + +export default async function getIpfsGateways() { + if (import.meta.env.VITE_TAURI === '1') { + import('@tauri-apps/api').then(api => { + api.invoke('get_config').then((conf) => { + const config = conf as TauriConfig; + return config.ipfs_gateways; + }); + }) + return []; + } else { + const ipfsGateways: string[] = JSON.parse(localStorage.getItem('ipfs_gateways') || '[]'); + return ipfsGateways; + } +} + +export function parseIpfsGateways(text: string) { + return text.split('\n').filter(g => g.length); +} \ No newline at end of file diff --git a/frontend/src/scripts/searcher-browser.ts b/frontend/src/scripts/searcher-browser.ts new file mode 100644 index 0000000..c40a1c1 --- /dev/null +++ b/frontend/src/scripts/searcher-browser.ts @@ -0,0 +1,12 @@ +import type { Book } from './searcher'; +import axios from 'axios'; + +const http = axios.create({ + baseURL: import.meta.env.VITE_BACKEND_BASE_API, + timeout: 5000 +}); + +export default async function search(query: string, limit: number) { + const response = await http.get(`search?limit=${limit}&query=${query}`); + return response.data.books as Book[]; +} diff --git a/frontend/src/scripts/searcher-tauri.ts b/frontend/src/scripts/searcher-tauri.ts new file mode 100644 index 0000000..fcdf9c5 --- /dev/null +++ b/frontend/src/scripts/searcher-tauri.ts @@ -0,0 +1,7 @@ +import type { Book } from './searcher'; +import { invoke } from '@tauri-apps/api'; + +export default async function search(query: string, limit: number) { + const response = await invoke('search', { query, limit }); + return response as Book[]; +} diff --git a/frontend/src/scripts/searcher.ts b/frontend/src/scripts/searcher.ts new file mode 100644 index 0000000..2263a6b --- /dev/null +++ b/frontend/src/scripts/searcher.ts @@ -0,0 +1,26 @@ +export interface Book { + id: number; + title: string; + author: string; + publisher?: string; + extension: string; + filesize: number; + language: string; + year?: number; + pages?: number; + isbn: string; + ipfs_cid: string; +} + +export interface Row { + original: Book; + toggleExpanded: (arg0: boolean) => void; +} + +export default async function search(query: string, limit: number) { + if (import.meta.env.VITE_TAURI === '1') { + return await import('./searcher-tauri').then(({ default: search }) => search(query, limit)); + } else { + return await import('./searcher-browser').then(({ default: search }) => search(query, limit)); + } +} diff --git a/frontend/src/store.ts b/frontend/src/store.ts new file mode 100644 index 0000000..1b26903 --- /dev/null +++ b/frontend/src/store.ts @@ -0,0 +1,9 @@ +import React from "react"; + +export const initRootContext = { + ipfs_gateways: [] +}; + +const RootContext = React.createContext(initRootContext); + +export default RootContext; \ No newline at end of file diff --git a/frontend/src/style.css b/frontend/src/style.css new file mode 100644 index 0000000..9390395 --- /dev/null +++ b/frontend/src/style.css @@ -0,0 +1,41 @@ +#app { + min-height: 100vh; +} + +::-webkit-scrollbar { + display: none; +} + +select.chakra-select { + padding-inline-start: var(--chakra-space-9); + color: var(--chakra-colors-chakra-placeholder-color); +} + +select.chakra-select.active { + padding-inline-start: var(--chakra-space-9); + color: var(--chakra-colors-whiteAlpha-900); +} + +.chakra-ui-light select.chakra-select { + color: var(--chakra-colors-gray-400); +} + +.chakra-ui-light select.chakra-select.active { + color: var(--chakra-colors-gray-800); +} + +.chakra-heading { + overflow: hidden; + text-overflow: ellipsis; +} + +@font-face { + font-family: 'Lemon Yellow Sun'; + src: url("./font/LemonYellowSun.otf") format("opentype"); +} + +h1 { + font-family: 'Lemon Yellow Sun' !important; + font-size: 32px !important; + font-weight: 700 !important; +} \ No newline at end of file diff --git a/frontend/src/theme.ts b/frontend/src/theme.ts new file mode 100644 index 0000000..afc0c14 --- /dev/null +++ b/frontend/src/theme.ts @@ -0,0 +1,10 @@ +import { extendTheme, type ThemeConfig } from '@chakra-ui/react'; + +const config: ThemeConfig = { + initialColorMode: 'light', + useSystemColorMode: true +}; + +const theme = extendTheme({ config }); + +export default theme; diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/frontend/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000..cc1f984 --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": [ + "DOM", + "DOM.Iterable", + "ESNext" + ], + "allowJs": false, + "skipLibCheck": false, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx" + ], + "references": [ + { + "path": "./tsconfig.node.json" + } + ] +} \ No newline at end of file diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json new file mode 100644 index 0000000..9d31e2a --- /dev/null +++ b/frontend/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 0000000..90288c4 --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,34 @@ +import { defineConfig } from 'vite'; +import faviconsPlugin from '@darkobits/vite-plugin-favicons'; +import react from '@vitejs/plugin-react'; +import topLevelAwait from 'vite-plugin-top-level-await'; + +// https://vitejs.dev/config/ +export default defineConfig(() => { + if (process.env.TAURI_PLATFORM) { + process.env.VITE_TAURI = '1'; + } else { + process.env.VITE_TAURI = '0'; + } + + return { + plugins: [ + process.env.VITE_TAURI === '1' ? topLevelAwait() : null, + react(), + process.env.VITE_TAURI === '0' + ? faviconsPlugin({ + icons: { favicons: { source: '../crates/zlib-searcher-desktop/icons/icon.png' } } + }) + : null + ], + build: { + rollupOptions: { + output: { + manualChunks: { + 'chakra-ui': ['@chakra-ui/react'] + } + } + } + } + }; +}); diff --git a/rust-toolchain b/rust-toolchain new file mode 100644 index 0000000..a316e85 --- /dev/null +++ b/rust-toolchain @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly" +components = ["rustfmt", "clippy"] \ No newline at end of file diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 0000000..53dc24b --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,4 @@ +version = "Two" + +indent_style = "Block" +imports_granularity = "Crate" diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000..ab7e3f5 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +NAME=zlib-searcher + +targets=(x86_64-unknown-linux-gnu x86_64-unknown-linux-musl) +targets_win=(x86_64-pc-windows-gnu) + +for target in "${targets[@]}" +do + echo $target + cargo build --release --target $target -p zlib-searcher + pushd target/$target/release/ && zip zlib-searcher-$target.zip $NAME && mv zlib-searcher-$target.zip ../../ && popd +done + +for target in "${targets_win[@]}" +do + echo $target + cargo build --release --target $target -p zlib-searcher + pushd target/$target/release/ && zip zlib-searcher-$target.zip $NAME.exe && mv zlib-searcher-$target.zip ../../ && popd +done diff --git a/scripts/build_best_speed.sh b/scripts/build_best_speed.sh new file mode 100755 index 0000000..8e41c09 --- /dev/null +++ b/scripts/build_best_speed.sh @@ -0,0 +1,2 @@ +#!/bin/bash +cargo build --release --no-default-features --features best-speed --target x86_64-unknown-linux-musl -p zlib-searcher diff --git a/scripts/build_release.sh b/scripts/build_release.sh new file mode 100755 index 0000000..b871dbe --- /dev/null +++ b/scripts/build_release.sh @@ -0,0 +1,119 @@ +#!/bin/bash + +CUR_DIR=$( cd $( dirname $0 ) && pwd ) + +project=zlib-searcher +targets=() +features=() + +ALL_TARGETS=" +i686-unknown-linux-musl +x86_64-pc-windows-gnu +x86_64-unknown-linux-gnu +x86_64-unknown-linux-musl +armv7-unknown-linux-musleabihf +armv7-unknown-linux-gnueabihf +arm-unknown-linux-gnueabi +arm-unknown-linux-gnueabihf +arm-unknown-linux-musleabi +arm-unknown-linux-musleabihf +aarch64-unknown-linux-gnu +aarch64-unknown-linux-musl +" + +while getopts "p:t:a:f" opt; do + case $opt in + p) + project=($OPTARG) + ;; + t) + targets+=($OPTARG) + ;; + a) + targets+=($ALL_TARGETS) + ;; + f) + features+=($OPTARG) + ;; + ?) + echo "Usage: $(basename $0) [-t ] [-f features]" + ;; + esac +done + +features+=${EXTRA_FEATURES} + +if [[ "${#targets[@]}" == "0" ]]; then + echo "Specifying compile target with -t " + exit 1 +fi + +function build() { + cd "$CUR_DIR/.." + + TARGET=$1 + + RELEASE_DIR="target/${TARGET}/release" + TARGET_FEATURES="${features[@]}" + + if [[ "${TARGET_FEATURES}" != "" ]]; then + echo "* Building ${project} package for ${TARGET} with features \"${TARGET_FEATURES}\" ..." + + cross build --target "${TARGET}" \ + --default-features=false + --features "${TARGET_FEATURES}" \ + -p zlib-searcher \ + --release + else + echo "* Building ${project} package for ${TARGET} ..." + + cross build --target "${TARGET}" \ + -p zlib-searcher \ + --release + fi + + if [[ $? != "0" ]]; then + exit 1 + fi + + PKG_DIR="${CUR_DIR}/../release" + mkdir -p "${PKG_DIR}" + + if [[ "$TARGET" == *"-windows-"* ]]; then + PKG_NAME="${project}-${TARGET}.zip" + PKG_PATH="${PKG_DIR}/${PKG_NAME}" + + echo "* Packaging ZIP in ${PKG_PATH} ..." + cd ${RELEASE_DIR} + zip ${PKG_PATH} ${project}.exe + + if [[ $? != "0" ]]; then + exit 1 + fi + + cd "${PKG_DIR}" + shasum -a 256 "${PKG_NAME}" > "${PKG_NAME}.sha256" + else + PKG_NAME="${project}-${TARGET}.tar.gz" + PKG_PATH="${PKG_DIR}/${PKG_NAME}" + + cd ${RELEASE_DIR} + + echo "* Packaging gz in ${PKG_PATH} ..." + tar -czf ${PKG_PATH} ${project} + + if [[ $? != "0" ]]; then + exit 1 + fi + + cd "${PKG_DIR}" + shasum -a 256 "${PKG_NAME}" > "${PKG_NAME}.sha256" + fi + + echo "* Done build package ${PKG_NAME}" +} + +for target in "${targets[@]}"; do + cargo clean; + build "$target"; +done