From fd33b5ceba84d35256336f63fac8cf1f274d2f4c Mon Sep 17 00:00:00 2001 From: Damian Wessels Date: Mon, 8 Sep 2025 11:01:51 +0200 Subject: [PATCH] Initial Commit --- .gitignore | 2 + Cargo.lock | 1801 +++ Cargo.toml | 2 + electron/.gitignore | 101 + electron/.prettierignore | 5 + electron/.prettierrc | 8 + electron/LICENSE | 21 + electron/README.md | 146 + electron/components.json | 20 + electron/eslint.config.mjs | 32 + electron/forge.config.ts | 55 + electron/forge.env.d.ts | 1 + electron/images/demo.gif | Bin 0 -> 907730 bytes electron/index.html | 13 + electron/package-lock.json | 13495 ++++++++++++++++ electron/package.json | 89 + electron/playwright.config.ts | 23 + electron/src/App.tsx | 26 + .../assets/fonts/geist-mono/geist-mono.ttf | Bin 0 -> 137740 bytes electron/src/assets/fonts/geist/geist.ttf | Bin 0 -> 148768 bytes .../fonts/tomorrow/tomorrow-bold-italic.ttf | Bin 0 -> 59636 bytes .../assets/fonts/tomorrow/tomorrow-bold.ttf | Bin 0 -> 56628 bytes .../assets/fonts/tomorrow/tomorrow-italic.ttf | Bin 0 -> 59240 bytes .../fonts/tomorrow/tomorrow-regular.ttf | Bin 0 -> 57388 bytes electron/src/components/DragWindowRegion.tsx | 97 + electron/src/components/LangToggle.tsx | 33 + electron/src/components/ToggleTheme.tsx | 12 + electron/src/components/template/Footer.tsx | 10 + .../src/components/template/InitialIcons.tsx | 14 + .../components/template/NavigationMenu.tsx | 31 + electron/src/components/ui/button.tsx | 59 + .../src/components/ui/navigation-menu.tsx | 168 + electron/src/components/ui/toggle-group.tsx | 73 + electron/src/components/ui/toggle.tsx | 45 + electron/src/helpers/ipc/context-exposer.ts | 7 + .../src/helpers/ipc/listeners-register.ts | 8 + .../src/helpers/ipc/theme/theme-channels.ts | 5 + .../src/helpers/ipc/theme/theme-context.ts | 18 + .../src/helpers/ipc/theme/theme-listeners.ts | 33 + .../src/helpers/ipc/window/window-channels.ts | 3 + .../src/helpers/ipc/window/window-context.ts | 14 + .../helpers/ipc/window/window-listeners.ts | 22 + electron/src/helpers/language_helpers.ts | 19 + electron/src/helpers/theme_helpers.ts | 64 + electron/src/helpers/window_helpers.ts | 9 + electron/src/layouts/BaseLayout.tsx | 17 + electron/src/localization/i18n.ts | 22 + electron/src/localization/langs.ts | 14 + electron/src/localization/language.ts | 5 + electron/src/main.ts | 64 + electron/src/pages/HomePage.tsx | 30 + electron/src/pages/SecondPage.tsx | 16 + electron/src/preload.ts | 3 + electron/src/renderer.ts | 1 + electron/src/routes/__root.tsx | 15 + electron/src/routes/router.tsx | 13 + electron/src/routes/routes.tsx | 37 + electron/src/styles/global.css | 203 + electron/src/tests/e2e/example.test.ts | 51 + electron/src/tests/unit/ToggleTheme.test.tsx | 27 + electron/src/tests/unit/setup.ts | 1 + electron/src/tests/unit/sum.test.ts | 14 + electron/src/types.d.ts | 24 + electron/src/types/theme-mode.ts | 1 + electron/src/utils/platform.ts | 13 + electron/src/utils/tailwind.ts | 6 + electron/tsconfig.json | 32 + electron/vite.main.config.mts | 11 + electron/vite.preload.config.mts | 4 + electron/vite.renderer.config.mts | 21 + electron/vitest.config.ts | 26 + server/.gitignore | 1 + server/Cargo.toml | 30 + server/rust-toolchain.toml | 10 + server/src/app_state.rs | 1 + server/src/main.rs | 15 + server/src/rest/handlers/mod.rs | 32 + server/src/rest/handlers/my_test.rs | 10 + server/src/rest/init.rs | 24 + server/src/rest/mod.rs | 3 + server/src/rest/util.rs | 51 + 81 files changed, 17432 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 electron/.gitignore create mode 100644 electron/.prettierignore create mode 100644 electron/.prettierrc create mode 100644 electron/LICENSE create mode 100644 electron/README.md create mode 100644 electron/components.json create mode 100644 electron/eslint.config.mjs create mode 100644 electron/forge.config.ts create mode 100644 electron/forge.env.d.ts create mode 100644 electron/images/demo.gif create mode 100644 electron/index.html create mode 100644 electron/package-lock.json create mode 100644 electron/package.json create mode 100644 electron/playwright.config.ts create mode 100644 electron/src/App.tsx create mode 100644 electron/src/assets/fonts/geist-mono/geist-mono.ttf create mode 100644 electron/src/assets/fonts/geist/geist.ttf create mode 100644 electron/src/assets/fonts/tomorrow/tomorrow-bold-italic.ttf create mode 100644 electron/src/assets/fonts/tomorrow/tomorrow-bold.ttf create mode 100644 electron/src/assets/fonts/tomorrow/tomorrow-italic.ttf create mode 100644 electron/src/assets/fonts/tomorrow/tomorrow-regular.ttf create mode 100644 electron/src/components/DragWindowRegion.tsx create mode 100644 electron/src/components/LangToggle.tsx create mode 100644 electron/src/components/ToggleTheme.tsx create mode 100644 electron/src/components/template/Footer.tsx create mode 100644 electron/src/components/template/InitialIcons.tsx create mode 100644 electron/src/components/template/NavigationMenu.tsx create mode 100644 electron/src/components/ui/button.tsx create mode 100644 electron/src/components/ui/navigation-menu.tsx create mode 100644 electron/src/components/ui/toggle-group.tsx create mode 100644 electron/src/components/ui/toggle.tsx create mode 100644 electron/src/helpers/ipc/context-exposer.ts create mode 100644 electron/src/helpers/ipc/listeners-register.ts create mode 100644 electron/src/helpers/ipc/theme/theme-channels.ts create mode 100644 electron/src/helpers/ipc/theme/theme-context.ts create mode 100644 electron/src/helpers/ipc/theme/theme-listeners.ts create mode 100644 electron/src/helpers/ipc/window/window-channels.ts create mode 100644 electron/src/helpers/ipc/window/window-context.ts create mode 100644 electron/src/helpers/ipc/window/window-listeners.ts create mode 100644 electron/src/helpers/language_helpers.ts create mode 100644 electron/src/helpers/theme_helpers.ts create mode 100644 electron/src/helpers/window_helpers.ts create mode 100644 electron/src/layouts/BaseLayout.tsx create mode 100644 electron/src/localization/i18n.ts create mode 100644 electron/src/localization/langs.ts create mode 100644 electron/src/localization/language.ts create mode 100644 electron/src/main.ts create mode 100644 electron/src/pages/HomePage.tsx create mode 100644 electron/src/pages/SecondPage.tsx create mode 100644 electron/src/preload.ts create mode 100644 electron/src/renderer.ts create mode 100644 electron/src/routes/__root.tsx create mode 100644 electron/src/routes/router.tsx create mode 100644 electron/src/routes/routes.tsx create mode 100644 electron/src/styles/global.css create mode 100644 electron/src/tests/e2e/example.test.ts create mode 100644 electron/src/tests/unit/ToggleTheme.test.tsx create mode 100644 electron/src/tests/unit/setup.ts create mode 100644 electron/src/tests/unit/sum.test.ts create mode 100644 electron/src/types.d.ts create mode 100644 electron/src/types/theme-mode.ts create mode 100644 electron/src/utils/platform.ts create mode 100644 electron/src/utils/tailwind.ts create mode 100644 electron/tsconfig.json create mode 100644 electron/vite.main.config.mts create mode 100644 electron/vite.preload.config.mts create mode 100644 electron/vite.renderer.config.mts create mode 100644 electron/vitest.config.ts create mode 100644 server/.gitignore create mode 100644 server/Cargo.toml create mode 100644 server/rust-toolchain.toml create mode 100644 server/src/app_state.rs create mode 100644 server/src/main.rs create mode 100644 server/src/rest/handlers/mod.rs create mode 100644 server/src/rest/handlers/my_test.rs create mode 100644 server/src/rest/init.rs create mode 100644 server/src/rest/mod.rs create mode 100644 server/src/rest/util.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..162a06c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +target/ +dist/ \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..509f203 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1801 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[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 = "anstream" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +dependencies = [ + "windows-sys 0.60.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.60.2", +] + +[[package]] +name = "anyhow" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "axum" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +dependencies = [ + "axum-core", + "axum-macros", + "bytes", + "form_urlencoded", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604fde5e028fea851ce1d8570bbdc034bec850d157f7569d10f347d06808c05c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "2.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +dependencies = [ + "serde", +] + +[[package]] +name = "cc" +version = "1.2.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" + +[[package]] +name = "chrono" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "engineioxide" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a36d7cb810f4501c85c13211064288cdc870742a072005de2851096d4956acb6" +dependencies = [ + "base64", + "bytes", + "engineioxide-core", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "pin-project-lite", + "serde", + "serde_json", + "smallvec", + "thiserror", + "tokio", + "tokio-tungstenite", + "tower-layer", + "tower-service", +] + +[[package]] +name = "engineioxide-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6512b1bc8dfb74d61b55878d712082be39a960abee8590f310723587de343e" +dependencies = [ + "base64", + "bytes", + "rand", + "serde", +] + +[[package]] +name = "env_filter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.4+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", +] + +[[package]] +name = "hyper-util" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "hyper", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "include_dir" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "io-uring" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +dependencies = [ + "bitflags", + "cfg-if", + "libc", +] + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jiff" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", +] + +[[package]] +name = "jiff-static" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "js-sys" +version = "0.3.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.175" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" + +[[package]] +name = "log" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" + +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + +[[package]] +name = "memchr" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + +[[package]] +name = "open" +version = "5.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "portable-atomic" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro2" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom", +] + +[[package]] +name = "regex" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.143" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "server" +version = "0.1.0" +dependencies = [ + "anyhow", + "axum", + "bitvec", + "chrono", + "env_logger", + "include_dir", + "lazy_static", + "log", + "mime_guess", + "open", + "serde", + "serde_json", + "signal-hook", + "socketioxide", + "socketioxide-core", + "tokio", + "tower-http", + "tower-livereload", + "tracing", + "tracing-subscriber", + "uom", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "socketioxide" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22bbd5602e94b08333c98a2f31ab7df6dced9f38562ff03aa671db1936e2f112" +dependencies = [ + "bytes", + "engineioxide", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "matchit", + "pin-project-lite", + "rustversion", + "serde", + "socketioxide-core", + "socketioxide-parser-common", + "thiserror", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "socketioxide-core" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93414eb4c54a5fd9dddc1fb80b56a00a3b0cbec60f5d7e3c479ccea73ac258b0" +dependencies = [ + "arbitrary", + "bytes", + "engineioxide-core", + "futures-core", + "serde", + "smallvec", + "thiserror", +] + +[[package]] +name = "socketioxide-parser-common" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9847d1b4ee0e5d419c78a9a3f29b204aeb0970303595fc24be045f244f076938" +dependencies = [ + "bytes", + "itoa", + "serde", + "serde_json", + "socketioxide-core", +] + +[[package]] +name = "syn" +version = "2.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "thiserror" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "tokio" +version = "1.47.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +dependencies = [ + "backtrace", + "bytes", + "io-uring", + "libc", + "mio", + "pin-project-lite", + "slab", + "socket2", + "tokio-macros", + "windows-sys 0.59.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "http-range-header", + "httpdate", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-livereload" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa6b29b17d4540f2bd9ec304ad39d280c4bdf291d0ea6c4123eeba10939af84" +dependencies = [ + "bytes", + "http", + "http-body", + "pin-project-lite", + "tokio", + "tower", +] + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tungstenite" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +dependencies = [ + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand", + "sha1", + "thiserror", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "uom" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffd36e5350a65d112584053ee91843955826bf9e56ec0d1351214e01f6d7cd9c" +dependencies = [ + "num-traits", + "typenum", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.4+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "wit-bindgen" +version = "0.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zerocopy" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..3c1ec85 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["server"] \ No newline at end of file diff --git a/electron/.gitignore b/electron/.gitignore new file mode 100644 index 0000000..9d2e4f1 --- /dev/null +++ b/electron/.gitignore @@ -0,0 +1,101 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock +.DS_Store + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# Webpack +.webpack/ + +# Vite +.vite/ +dist/ + +# Electron-Forge +out/ +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/electron/.prettierignore b/electron/.prettierignore new file mode 100644 index 0000000..d80e99a --- /dev/null +++ b/electron/.prettierignore @@ -0,0 +1,5 @@ +# Add files here to ignore them from prettier formatting +/dist +/coverage +/.vite +README.md \ No newline at end of file diff --git a/electron/.prettierrc b/electron/.prettierrc new file mode 100644 index 0000000..ab4c216 --- /dev/null +++ b/electron/.prettierrc @@ -0,0 +1,8 @@ +{ + "singleQuote": false, + "trailingComma": "all", + "tabWidth": 2, + "semi": true, + "endOfLine": "auto", + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/electron/LICENSE b/electron/LICENSE new file mode 100644 index 0000000..d8ba2e9 --- /dev/null +++ b/electron/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Luan Roger + +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/electron/README.md b/electron/README.md new file mode 100644 index 0000000..fd588d4 --- /dev/null +++ b/electron/README.md @@ -0,0 +1,146 @@ +# electron-shadcn + +Electron in all its glory. Everything you will need to develop your beautiful desktop application. + +![Demo GIF](https://github.com/LuanRoger/electron-shadcn/blob/main/images/demo.gif) + +## Libs and tools + +To develop a Electron app, you probably will need some UI, test, formatter, style or other kind of library or framework, so let me install and configure some of them to you. + +### Core 🏍️ + +- [Electron 38](https://www.electronjs.org) +- [Vite 7](https://vitejs.dev) + +### DX πŸ› οΈ + +- [TypeScript 5.9](https://www.typescriptlang.org) +- [Prettier](https://prettier.io) +- [ESLint 9](https://eslint.org) +- [Zod 4](https://zod.dev) +- [React Query (TanStack)](https://react-query.tanstack.com) + +### UI 🎨 + +- [React 19](https://reactjs.org) +- [Tailwind 4](https://tailwindcss.com) +- [Shadcn UI](https://ui.shadcn.com) +- [Geist](https://vercel.com/font) as default font +- [i18next](https://www.i18next.com) +- [TanStack Router](https://tanstack.com/router) +- [Lucide](https://lucide.dev) + +### Test πŸ§ͺ + +- [Vitest](https://vitest.dev) +- [Playwright](https://playwright.dev) +- [React Testing Library](https://testing-library.com/docs/react-testing-library/intro) + +### Packing and distribution πŸ“¦ + +- [Electron Forge](https://www.electronforge.io) + +### CI/CD πŸš€ + +- Pre-configured [GitHub Actions workflow](https://github.com/LuanRoger/electron-shadcn/blob/main/.github/workflows/playwright.yml), for test with Playwright + +### Project preferences 🎯 + +- Use Context isolation +- [React Compiler](https://react.dev/learn/react-compiler) is enabled by default. +- `titleBarStyle`: hidden (Using custom title bar) +- Geist as default font +- Some default styles was applied, check the [`styles`](https://github.com/LuanRoger/electron-shadcn/tree/main/src/styles) directory +- React DevTools are installed by default + +## Directory structure + +```plaintext +. +└── ./src/ + β”œβ”€β”€ ./src/assets/ + β”‚ └── ./src/assets/fonts/ + β”œβ”€β”€ ./src/components/ + β”‚ β”œβ”€β”€ ./src/components/template + β”‚ └── ./src/components/ui/ + β”œβ”€β”€ ./src/helpers/ + β”‚ └── ./src/helpers/ipc/ + β”œβ”€β”€ ./src/layout/ + β”œβ”€β”€ ./src/lib/ + β”œβ”€β”€ ./src/pages/ + β”œβ”€β”€ ./src/style/ + └── ./src/tests/ +``` + +- `src/`: Main directory + - `assets/`: Store assets like images, fonts, etc. + - `components/`: Store UI components + - `template/`: Store the all not important components used by the template. It doesn't include the `WindowRegion` or the theme toggler, if you want to start an empty project, you can safely delete this directory. + - `ui/`: Store Shadcn UI components (this is the default direcotry used by Shadcn UI) + - `helpers/`: Store IPC related functions to be called in the renderer process + - `ipc/`: Directory to store IPC context and listener functions + - Some implementations are already done, like `theme` and `window` for the custom title bar + - `layout/`: Directory to store layout components + - `lib/`: Store libraries and other utilities + - `pages/`: Store app's pages + - `style/`: Store global styles + - `tests/`: Store tests (from Vitest and Playwright) + +## NPM script + +To run any of those scripts: + +```bash +npm run + + diff --git a/electron/package-lock.json b/electron/package-lock.json new file mode 100644 index 0000000..fac4966 --- /dev/null +++ b/electron/package-lock.json @@ -0,0 +1,13495 @@ +{ + "name": "electron-shadcn", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-shadcn", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@icons-pack/react-simple-icons": "^13.7.0", + "@radix-ui/react-navigation-menu": "^1.2.14", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-toggle": "^1.1.9", + "@radix-ui/react-toggle-group": "^1.1.11", + "@tailwindcss/vite": "^4.1.13", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-router": "^1.131.35", + "@tanstack/router-devtools": "^1.131.35", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "electron-squirrel-startup": "^1.0.1", + "i18next": "^25.5.2", + "lucide-react": "^0.542.0", + "react": "^19.1.1", + "react-dom": "^19.1.1", + "react-i18next": "^15.7.3", + "tailwind-merge": "^3.3.1", + "tailwindcss-animate": "^1.0.7", + "zod": "^4.1.5" + }, + "devDependencies": { + "@electron-forge/cli": "^7.8.3", + "@electron-forge/maker-deb": "^7.8.3", + "@electron-forge/maker-rpm": "^7.8.3", + "@electron-forge/maker-squirrel": "^7.8.3", + "@electron-forge/maker-zip": "^7.8.3", + "@electron-forge/plugin-auto-unpack-natives": "^7.8.3", + "@electron-forge/plugin-fuses": "^7.8.3", + "@electron-forge/plugin-vite": "^7.8.3", + "@electron-forge/shared-types": "^7.8.1", + "@electron/fuses": "~1.8.0", + "@eslint/compat": "^1.3.2", + "@eslint/js": "^9.28.0", + "@playwright/test": "^1.55.0", + "@testing-library/jest-dom": "^6.8.0", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", + "@types/electron-squirrel-startup": "^1.0.2", + "@types/eslint-config-prettier": "^6.11.3", + "@types/node": "^22.18.1", + "@types/react": "^19.1.12", + "@types/react-dom": "^19.1.9", + "@vitejs/plugin-react": "^5.0.2", + "babel-plugin-react-compiler": "^19.1.0-rc.3", + "electron": "^38.0.0", + "electron-devtools-installer": "^4.0.0", + "electron-playwright-helpers": "^1.8.2", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-compiler": "^19.1.0-rc.2", + "globals": "^16.3.0", + "jsdom": "^26.1.0", + "prettier": "^3.6.2", + "prettier-plugin-tailwindcss": "^0.6.14", + "tailwindcss": "^4.1.11", + "ts-node": "^10.9.2", + "typescript": "^5.9.2", + "typescript-eslint": "^8.42.0", + "vite": "^7.1.4", + "vitest": "^3.2.4" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", + "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@electron-forge/cli": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.8.3.tgz", + "integrity": "sha512-BSAjGGfVf0yp3NQhXYmyCw9T//YCQHuktMv4HXfDVfo7AoV6DA1oEhqldI4Q7aHKeRob5+yBkvRRYPiu5ayCPw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.electron-forge-cli?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "MIT", + "dependencies": { + "@electron-forge/core": "7.8.3", + "@electron-forge/core-utils": "7.8.3", + "@electron-forge/shared-types": "7.8.3", + "@electron/get": "^3.0.0", + "chalk": "^4.0.0", + "commander": "^11.1.0", + "debug": "^4.3.1", + "fs-extra": "^10.0.0", + "listr2": "^7.0.2", + "log-symbols": "^4.0.0", + "semver": "^7.2.1" + }, + "bin": { + "electron-forge": "dist/electron-forge.js", + "electron-forge-vscode-nix": "script/vscode.sh", + "electron-forge-vscode-win": "script/vscode.cmd" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/core": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.8.3.tgz", + "integrity": "sha512-qX2vi/LP3HcSqSfLfzMeH2ll8SFZQnOk8VN/b3bq6XrBCbrfrSsTYYWakN6mmfalLJcQRm4jCEc6gcyuGO4i6Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.electron-forge-core?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "MIT", + "dependencies": { + "@electron-forge/core-utils": "7.8.3", + "@electron-forge/maker-base": "7.8.3", + "@electron-forge/plugin-base": "7.8.3", + "@electron-forge/publisher-base": "7.8.3", + "@electron-forge/shared-types": "7.8.3", + "@electron-forge/template-base": "7.8.3", + "@electron-forge/template-vite": "7.8.3", + "@electron-forge/template-vite-typescript": "7.8.3", + "@electron-forge/template-webpack": "7.8.3", + "@electron-forge/template-webpack-typescript": "7.8.3", + "@electron-forge/tracer": "7.8.3", + "@electron/get": "^3.0.0", + "@electron/packager": "^18.3.5", + "@electron/rebuild": "^3.7.0", + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.3.1", + "fast-glob": "^3.2.7", + "filenamify": "^4.1.0", + "find-up": "^5.0.0", + "fs-extra": "^10.0.0", + "global-dirs": "^3.0.0", + "got": "^11.8.5", + "interpret": "^3.1.1", + "jiti": "^2.4.2", + "listr2": "^7.0.2", + "lodash": "^4.17.20", + "log-symbols": "^4.0.0", + "node-fetch": "^2.6.7", + "rechoir": "^0.8.0", + "semver": "^7.2.1", + "source-map-support": "^0.5.13", + "sudo-prompt": "^9.1.1", + "username": "^5.1.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/core-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.8.3.tgz", + "integrity": "sha512-8jhK7AvUKEqDyTMMuRhvS1TkE73YEnHYAxVvkJq35e1KdCwGbGnSRhaEs7OOqRfkKxfepdJ7BMKFSoKFeP+z0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.8.3", + "@electron/rebuild": "^3.7.0", + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.3.1", + "find-up": "^5.0.0", + "fs-extra": "^10.0.0", + "log-symbols": "^4.0.0", + "semver": "^7.2.1" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/maker-base": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.8.3.tgz", + "integrity": "sha512-WmF66cHdziaK8Asi7IRTLxZjCZ8IqXXHr6IPl4d5oatN6s5RG+HHzG1hiJ7LzlOEntqdSpE8Wh2nB2TmyR4huQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.8.3", + "fs-extra": "^10.0.0", + "which": "^2.0.2" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/maker-deb": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.8.3.tgz", + "integrity": "sha512-GZHJU06LRFJkv1wMc3bjMVzedQhyxnyMZqgDJjE9TIlXXZkN2EqGmKLw/HxwNRA1R8yuQeA4Ih6/dEB4bZTevg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/maker-base": "7.8.3", + "@electron-forge/shared-types": "7.8.3" + }, + "engines": { + "node": ">= 16.4.0" + }, + "optionalDependencies": { + "electron-installer-debian": "^3.2.0" + } + }, + "node_modules/@electron-forge/maker-rpm": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.8.3.tgz", + "integrity": "sha512-TqHHdF5D3Dy4NgG+pi8eRc18P1D0FF1LE+CqQF4MRof+XrpHhRtog5Ac4gWjvg1Wma6WjPyTdryHAkURsoBbuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/maker-base": "7.8.3", + "@electron-forge/shared-types": "7.8.3" + }, + "engines": { + "node": ">= 16.4.0" + }, + "optionalDependencies": { + "electron-installer-redhat": "^3.2.0" + } + }, + "node_modules/@electron-forge/maker-squirrel": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.8.3.tgz", + "integrity": "sha512-6XSEhZMbgfjAaCm8A54pNjn4ghfxJgPu4i7ok3PhP44WOrFPaPivLttpvKRnxRb0PGZstPjPBFcwL1F9S1trjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/maker-base": "7.8.3", + "@electron-forge/shared-types": "7.8.3", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + }, + "optionalDependencies": { + "electron-winstaller": "^5.3.0" + } + }, + "node_modules/@electron-forge/maker-zip": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.8.3.tgz", + "integrity": "sha512-ytao285wKAjKBO6eULzLeqUDP5Zh7beQlGyHjgOMknk7FI0sNy+zGdh3CrCGIhkXSHU/DpukPwRu2SiKvIaIGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/maker-base": "7.8.3", + "@electron-forge/shared-types": "7.8.3", + "cross-zip": "^4.0.0", + "fs-extra": "^10.0.0", + "got": "^11.8.5" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/plugin-auto-unpack-natives": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-auto-unpack-natives/-/plugin-auto-unpack-natives-7.8.3.tgz", + "integrity": "sha512-7tRhySvfdTrBC4PEhAzjzjJGT5dBSU6jhy3XlQ8LJH50jHIT9bioQq6dfn/3iw/VaD1ftGWKx+HlntYCmBhViw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/plugin-base": "7.8.3", + "@electron-forge/shared-types": "7.8.3" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/plugin-base": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.8.3.tgz", + "integrity": "sha512-0CzPQlO3BGu5bLCrx2Xqo6B1yoHhA9wG9boZE58ANr8Qma1NQfAWZU3LnMmF3EdWNTX76PxpZeeb3QbPNcxSuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.8.3" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/plugin-fuses": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-fuses/-/plugin-fuses-7.8.3.tgz", + "integrity": "sha512-OPWfoVsQ3xzK7GB3C6zoGlUu21RCOEQAm5+zg9VP1HJg5dsrKkqU8A2DsHGxe7PHthUCuQUgcls0ciDOHvckCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/plugin-base": "7.8.3", + "@electron-forge/shared-types": "7.8.3" + }, + "engines": { + "node": ">= 16.4.0" + }, + "peerDependencies": { + "@electron/fuses": "^1.0.0" + } + }, + "node_modules/@electron-forge/plugin-vite": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-vite/-/plugin-vite-7.8.3.tgz", + "integrity": "sha512-f18x58SMpk47DADyydsMJSqHFDb2zp7WP3NwwpbfzSoyrfjuMaZFRlHsOP1JC7GhWejYMudHOUWLjKcZaeFWzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/plugin-base": "7.8.3", + "@electron-forge/shared-types": "7.8.3", + "chalk": "^4.0.0", + "debug": "^4.3.1", + "fs-extra": "^10.0.0", + "listr2": "^7.0.2" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/publisher-base": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.8.3.tgz", + "integrity": "sha512-kurRKVNyLsK2JgmVl88UHu0+qSH+PysMtk/xP0YX5sYNMVxRay8+S1T10tAh6Qom94KwpF3CLYtkebvxb/fq+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.8.3" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/shared-types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.8.3.tgz", + "integrity": "sha512-gkZtD7ALXHPDOthJo1rQYLDNfG09fdDRMWvjEgaXdF3Z69xXFfnOWPNuOkRUODNalMnuuGs6l7jDl+QFQgHlDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/tracer": "7.8.3", + "@electron/packager": "^18.3.5", + "@electron/rebuild": "^3.7.0", + "listr2": "^7.0.2" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-base": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.8.3.tgz", + "integrity": "sha512-C0tVODDNKoqhCf7T1HRONJs9DKAmjmk8Of0t8rVjT0ERDzMvLGlBByd785v5lFlKbGERyoaXsYltxPAu92G3aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/core-utils": "7.8.3", + "@electron-forge/shared-types": "7.8.3", + "@malept/cross-spawn-promise": "^2.0.0", + "debug": "^4.3.1", + "fs-extra": "^10.0.0", + "username": "^5.1.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-vite": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.8.3.tgz", + "integrity": "sha512-tDL5h+UO5iOzdEYNVsSu4zkUVN4RTxti5iXzcBquKd9Kgt/A/M7xHeuKj7g1Ds7Ul/n2XcFvcfgLcRmiXQeVDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.8.3", + "@electron-forge/template-base": "7.8.3", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-vite-typescript": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.8.3.tgz", + "integrity": "sha512-HJjjY9xmlpl0vx10mrXdWn2RYHExfazACxmDNNmGO1eq3eqrQk/3R+NDGyqMJ7ajBsRVbkQNt+wayH7HkRJUjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.8.3", + "@electron-forge/template-base": "7.8.3", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-webpack": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.8.3.tgz", + "integrity": "sha512-1zkji5px1kDXbigFN5959anCf3HAVBvam3bHh2VejnCScegLQP3JBjAn2Nw2ILWq6ej5JNuA/V99b1dr11hPOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.8.3", + "@electron-forge/template-base": "7.8.3", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/template-webpack-typescript": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.8.3.tgz", + "integrity": "sha512-Xz3X7YJvot08Xm+0BLIS28GJH+0z9vEN9xYX76SOL4jqDcHH8lRFpNWcE2HsxxxRbCVH+s0etVmACZcWoujUrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron-forge/shared-types": "7.8.3", + "@electron-forge/template-base": "7.8.3", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">= 16.4.0" + } + }, + "node_modules/@electron-forge/tracer": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.8.3.tgz", + "integrity": "sha512-YVVDaPEUOvR1z+DDdj8wR/vO9OSlC91wz4/2Iqe9rqQz8sztnnQBClMAZTqu9bkDTFyHrns8j8v7tPVuVS6ULQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chrome-trace-event": "^1.0.3" + }, + "engines": { + "node": ">= 14.17.5" + } + }, + "node_modules/@electron/asar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.4.1.tgz", + "integrity": "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/asar/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@electron/fuses": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@electron/fuses/-/fuses-1.8.0.tgz", + "integrity": "sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.1", + "fs-extra": "^9.0.1", + "minimist": "^1.2.5" + }, + "bin": { + "electron-fuses": "dist/bin.js" + } + }, + "node_modules/@electron/fuses/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-3.1.0.tgz", + "integrity": "sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@electron/get/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@electron/node-gyp": { + "version": "10.2.0-electron.1", + "resolved": "git+ssh://git@github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", + "integrity": "sha512-4MSBTT8y07YUDqf69/vSh80Hh791epYqGtWHO3zSKhYFwQg+gx9wi1PqbqP6YqC4WMsNxZ5l9oDmnWdK5pfCKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^8.1.0", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.2.1", + "nopt": "^6.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/@electron/node-gyp/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@electron/node-gyp/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@electron/node-gyp/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/notarize": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.5.0.tgz", + "integrity": "sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/osx-sign": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.3.tgz", + "integrity": "sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "compare-version": "^0.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "isbinaryfile": "^4.0.8", + "minimist": "^1.2.6", + "plist": "^3.0.5" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@electron/packager": { + "version": "18.4.4", + "resolved": "https://registry.npmjs.org/@electron/packager/-/packager-18.4.4.tgz", + "integrity": "sha512-fTUCmgL25WXTcFpM1M72VmFP8w3E4d+KNzWxmTDRpvwkfn/S206MAtM2cy0GF78KS9AwASMOUmlOIzCHeNxcGQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@electron/asar": "^3.2.13", + "@electron/get": "^3.0.0", + "@electron/notarize": "^2.1.0", + "@electron/osx-sign": "^1.0.5", + "@electron/universal": "^2.0.1", + "@electron/windows-sign": "^1.0.0", + "@malept/cross-spawn-promise": "^2.0.0", + "debug": "^4.0.1", + "extract-zip": "^2.0.0", + "filenamify": "^4.1.0", + "fs-extra": "^11.1.0", + "galactus": "^1.0.0", + "get-package-info": "^1.0.0", + "junk": "^3.1.0", + "parse-author": "^2.0.0", + "plist": "^3.0.0", + "prettier": "^3.4.2", + "resedit": "^2.0.0", + "resolve": "^1.1.6", + "semver": "^7.1.3", + "yargs-parser": "^21.1.1" + }, + "bin": { + "electron-packager": "bin/electron-packager.js" + }, + "engines": { + "node": ">= 16.13.0" + }, + "funding": { + "url": "https://github.com/electron/packager?sponsor=1" + } + }, + "node_modules/@electron/packager/node_modules/fs-extra": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/rebuild": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.7.2.tgz", + "integrity": "sha512-19/KbIR/DAxbsCkiaGMXIdPnMCJLkcf8AvGnduJtWBs/CBwiAjY1apCqOLVxrXg+rtXFCngbXhBanWjxLUt1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/node-gyp": "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.1.1", + "detect-libc": "^2.0.1", + "fs-extra": "^10.0.0", + "got": "^11.7.0", + "node-abi": "^3.45.0", + "node-api-version": "^0.2.0", + "ora": "^5.1.0", + "read-binary-file-arch": "^1.0.6", + "semver": "^7.3.5", + "tar": "^6.0.5", + "yargs": "^17.0.1" + }, + "bin": { + "electron-rebuild": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/@electron/universal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.3.tgz", + "integrity": "sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "^3.3.1", + "@malept/cross-spawn-promise": "^2.0.0", + "debug": "^4.3.1", + "dir-compare": "^4.2.0", + "fs-extra": "^11.1.1", + "minimatch": "^9.0.3", + "plist": "^3.1.0" + }, + "engines": { + "node": ">=16.4" + } + }, + "node_modules/@electron/universal/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/universal/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@electron/windows-sign": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.2.2.tgz", + "integrity": "sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "cross-dirname": "^0.1.0", + "debug": "^4.3.4", + "fs-extra": "^11.1.1", + "minimist": "^1.2.8", + "postject": "^1.0.0-alpha.6" + }, + "bin": { + "electron-windows-sign": "bin/electron-windows-sign.js" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/windows-sign/node_modules/fs-extra": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.8.0.tgz", + "integrity": "sha512-MJQFqrZgcW0UNYLGOuQpey/oTN59vyWwplvCGZztn1cKz9agZPPYpJB7h2OMmuu7VLqkvEjN8feFZJmxNF9D+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/compat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.3.2.tgz", + "integrity": "sha512-jRNwzTbd6p2Rw4sZ1CgWRS8YMtqG15YyZf7zvb6gY2rB2u6n+2Z+ELW0GtL0fQgyl0pr4Y/BzBfng/BdsereRA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^8.40 || 9" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.35.0.tgz", + "integrity": "sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.2", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@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, + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@icons-pack/react-simple-icons": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@icons-pack/react-simple-icons/-/react-simple-icons-13.7.0.tgz", + "integrity": "sha512-Vx5mnIm/3gD/9dpCfw/EdCXwzCswmvWnvMjL6zUJTbpk2PuyCdx5zSfiX8KQKYszD/1Z2mfaiBtqCxlHuDcpuA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.13 || ^17 || ^18 || ^19" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@isaacs/fs-minipass/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@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, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@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==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@playwright/test": { + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.55.0.tgz", + "integrity": "sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.55.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", + "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", + "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-toggle": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.34.tgz", + "integrity": "sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.0.tgz", + "integrity": "sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.0.tgz", + "integrity": "sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.0.tgz", + "integrity": "sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.0.tgz", + "integrity": "sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.0.tgz", + "integrity": "sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.0.tgz", + "integrity": "sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.0.tgz", + "integrity": "sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.0.tgz", + "integrity": "sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.0.tgz", + "integrity": "sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.0.tgz", + "integrity": "sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.0.tgz", + "integrity": "sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.0.tgz", + "integrity": "sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.0.tgz", + "integrity": "sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.0.tgz", + "integrity": "sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.0.tgz", + "integrity": "sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.0.tgz", + "integrity": "sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.0.tgz", + "integrity": "sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.0.tgz", + "integrity": "sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.0.tgz", + "integrity": "sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.0.tgz", + "integrity": "sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.0.tgz", + "integrity": "sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.13.tgz", + "integrity": "sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.5.1", + "lightningcss": "1.30.1", + "magic-string": "^0.30.18", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.13" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.13.tgz", + "integrity": "sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.13", + "@tailwindcss/oxide-darwin-arm64": "4.1.13", + "@tailwindcss/oxide-darwin-x64": "4.1.13", + "@tailwindcss/oxide-freebsd-x64": "4.1.13", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.13", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.13", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.13", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.13", + "@tailwindcss/oxide-linux-x64-musl": "4.1.13", + "@tailwindcss/oxide-wasm32-wasi": "4.1.13", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.13", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.13" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.13.tgz", + "integrity": "sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.13.tgz", + "integrity": "sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.13.tgz", + "integrity": "sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.13.tgz", + "integrity": "sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.13.tgz", + "integrity": "sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.13.tgz", + "integrity": "sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.13.tgz", + "integrity": "sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.13.tgz", + "integrity": "sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.13.tgz", + "integrity": "sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.13.tgz", + "integrity": "sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.5", + "@emnapi/runtime": "^1.4.5", + "@emnapi/wasi-threads": "^1.0.4", + "@napi-rs/wasm-runtime": "^0.2.12", + "@tybys/wasm-util": "^0.10.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.13.tgz", + "integrity": "sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.13.tgz", + "integrity": "sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@tailwindcss/oxide/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@tailwindcss/oxide/node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@tailwindcss/oxide/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tailwindcss/oxide/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@tailwindcss/oxide/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.13.tgz", + "integrity": "sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.13", + "@tailwindcss/oxide": "4.1.13", + "tailwindcss": "4.1.13" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" + } + }, + "node_modules/@tanstack/history": { + "version": "1.131.2", + "resolved": "https://registry.npmjs.org/@tanstack/history/-/history-1.131.2.tgz", + "integrity": "sha512-cs1WKawpXIe+vSTeiZUuSBy8JFjEuDgdMKZFRLKwQysKo8y2q6Q1HvS74Yw+m5IhOW1nTZooa6rlgdfXcgFAaw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.87.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.87.1.tgz", + "integrity": "sha512-HOFHVvhOCprrWvtccSzc7+RNqpnLlZ5R6lTmngb8aq7b4rc2/jDT0w+vLdQ4lD9bNtQ+/A4GsFXy030Gk4ollA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.87.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.87.1.tgz", + "integrity": "sha512-YKauf8jfMowgAqcxj96AHs+Ux3m3bWT1oSVKamaRPXSnW2HqSznnTCEkAVqctF1e/W9R/mPcyzzINIgpOH94qg==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.87.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@tanstack/react-router": { + "version": "1.131.35", + "resolved": "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.131.35.tgz", + "integrity": "sha512-2mwHgwoSs4wih67jfl2TjcF4enYpLpY0TljE+Sl1njZ01CWLrrQgjQ6tEuVA24Pm5re4V01A3abKvDtN1miQ9Q==", + "license": "MIT", + "dependencies": { + "@tanstack/history": "1.131.2", + "@tanstack/react-store": "^0.7.0", + "@tanstack/router-core": "1.131.35", + "isbot": "^5.1.22", + "tiny-invariant": "^1.3.3", + "tiny-warning": "^1.0.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=18.0.0 || >=19.0.0", + "react-dom": ">=18.0.0 || >=19.0.0" + } + }, + "node_modules/@tanstack/react-router-devtools": { + "version": "1.131.35", + "resolved": "https://registry.npmjs.org/@tanstack/react-router-devtools/-/react-router-devtools-1.131.35.tgz", + "integrity": "sha512-F93UQDpOJPXvyu4PUiRyr7al6B4sJIgwIkyr7O8QQNY2r2NLqyEWeJMWfOJD/FtrF6r+4G8UR/PE3sXF+kNO5Q==", + "license": "MIT", + "dependencies": { + "@tanstack/router-devtools-core": "1.131.35" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/react-router": "^1.131.35", + "react": ">=18.0.0 || >=19.0.0", + "react-dom": ">=18.0.0 || >=19.0.0" + } + }, + "node_modules/@tanstack/react-store": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.4.tgz", + "integrity": "sha512-DyG1e5Qz/c1cNLt/NdFbCA7K1QGuFXQYT6EfUltYMJoQ4LzBOGnOl5IjuxepNcRtmIKkGpmdMzdFZEkevgU9bQ==", + "license": "MIT", + "dependencies": { + "@tanstack/store": "0.7.4", + "use-sync-external-store": "^1.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tanstack/router-core": { + "version": "1.131.35", + "resolved": "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.131.35.tgz", + "integrity": "sha512-wS+Tcczo3+63LbrRKQGrpUSa9yws0V/fg32KK/tOi0BDlloVM3KTED3UP2hMVyqaMgts6jK7n1b/cEGWOlLdAA==", + "license": "MIT", + "dependencies": { + "@tanstack/history": "1.131.2", + "@tanstack/store": "^0.7.0", + "cookie-es": "^1.2.2", + "seroval": "^1.3.2", + "seroval-plugins": "^1.3.2", + "tiny-invariant": "^1.3.3", + "tiny-warning": "^1.0.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/router-devtools": { + "version": "1.131.35", + "resolved": "https://registry.npmjs.org/@tanstack/router-devtools/-/router-devtools-1.131.35.tgz", + "integrity": "sha512-EuJnW5M2N/ITb8946ydj4yj75EZ0gnSEse/ejrm0Z+NgUysRX7ri1Don+u3ymB5z3wSctjfvMqFxY0K8KuNQ/Q==", + "license": "MIT", + "dependencies": { + "@tanstack/react-router-devtools": "1.131.35", + "clsx": "^2.1.1", + "goober": "^2.1.16" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/react-router": "^1.131.35", + "csstype": "^3.0.10", + "react": ">=18.0.0 || >=19.0.0", + "react-dom": ">=18.0.0 || >=19.0.0" + }, + "peerDependenciesMeta": { + "csstype": { + "optional": true + } + } + }, + "node_modules/@tanstack/router-devtools-core": { + "version": "1.131.35", + "resolved": "https://registry.npmjs.org/@tanstack/router-devtools-core/-/router-devtools-core-1.131.35.tgz", + "integrity": "sha512-a3FgyedrjreUK3bypxvtUgumjsGsOQn6V/ksNVyC3yTIdpmRL1b7zrzkM0vT18H0x5iaX33Ix3Xt/renqh3qwg==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1", + "goober": "^2.1.16", + "solid-js": "^1.9.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/router-core": "^1.131.35", + "csstype": "^3.0.10", + "solid-js": ">=1.9.5", + "tiny-invariant": "^1.3.3" + }, + "peerDependenciesMeta": { + "csstype": { + "optional": true + } + } + }, + "node_modules/@tanstack/store": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@tanstack/store/-/store-0.7.4.tgz", + "integrity": "sha512-F1XqZQici1Aq6WigEfcxJSml92nW+85Om8ElBMokPNg5glCYVOmPkZGIQeieYFxcPiKTfwo0MTOQpUyJtwncrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.8.0.tgz", + "integrity": "sha512-WgXcWzVM6idy5JaftTVC8Vs83NKRmGJz4Hqs4oyOuO2J4r/y79vvKZsb+CaGyCSEbUPI6OsewfPd0G1A0/TUZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", + "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", + "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/electron-squirrel-startup": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/electron-squirrel-startup/-/electron-squirrel-startup-1.0.2.tgz", + "integrity": "sha512-AzxnvBzNh8K/0SmxMmZtpJf1/IWoGXLP+pQDuUaVkPyotI8ryvAtBSqgxR/qOSvxWHYWrxkeNsJ+Ca5xOuUxJQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/eslint-config-prettier": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/@types/eslint-config-prettier/-/eslint-config-prettier-6.11.3.tgz", + "integrity": "sha512-3wXCiM8croUnhg9LdtZUJQwNcQYGWxxdOWDjPe1ykCqJFPVpzAKfs/2dgSoCtAvdPeaponcWPI7mPcGGp9dkKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "22.18.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.1.tgz", + "integrity": "sha512-rzSDyhn4cYznVG+PCzGe1lwuMYJrcBS1fc3JqSa2PvtABwWo+dZ1ij5OVok3tqfpEBCBoaR4d7upFJk73HRJDw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/react": { + "version": "19.1.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.12.tgz", + "integrity": "sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.9.tgz", + "integrity": "sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.42.0.tgz", + "integrity": "sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.42.0", + "@typescript-eslint/type-utils": "8.42.0", + "@typescript-eslint/utils": "8.42.0", + "@typescript-eslint/visitor-keys": "8.42.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.42.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.42.0.tgz", + "integrity": "sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.42.0", + "@typescript-eslint/types": "8.42.0", + "@typescript-eslint/typescript-estree": "8.42.0", + "@typescript-eslint/visitor-keys": "8.42.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.42.0.tgz", + "integrity": "sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.42.0", + "@typescript-eslint/types": "^8.42.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.42.0.tgz", + "integrity": "sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.42.0", + "@typescript-eslint/visitor-keys": "8.42.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.42.0.tgz", + "integrity": "sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.42.0.tgz", + "integrity": "sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.42.0", + "@typescript-eslint/typescript-estree": "8.42.0", + "@typescript-eslint/utils": "8.42.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.42.0.tgz", + "integrity": "sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.42.0.tgz", + "integrity": "sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.42.0", + "@typescript-eslint/tsconfig-utils": "8.42.0", + "@typescript-eslint/types": "8.42.0", + "@typescript-eslint/visitor-keys": "8.42.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.42.0.tgz", + "integrity": "sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.42.0", + "@typescript-eslint/types": "8.42.0", + "@typescript-eslint/typescript-estree": "8.42.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.42.0.tgz", + "integrity": "sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.42.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.2.tgz", + "integrity": "sha512-tmyFgixPZCx2+e6VO9TNITWcCQl8+Nl/E8YbAyPVv85QCc7/A3JrdfG2A8gIzvVhWuzMOVrFW1aReaNxrI6tbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.3", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.34", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/author-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", + "integrity": "sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-plugin-react-compiler": { + "version": "19.1.0-rc.3", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-19.1.0-rc.3.tgz", + "integrity": "sha512-mjRn69WuTz4adL0bXGx8Rsyk1086zFJeKmes6aK0xPuK3aaXmDJdLHqwKKMrpm6KAI1MCoUK72d2VeqQbu8YIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", + "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001737", + "electron-to-chromium": "^1.5.211", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@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" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001741", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz", + "integrity": "sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie-es": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-dirname": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", + "integrity": "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-zip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cross-zip/-/cross-zip-4.0.1.tgz", + "integrity": "sha512-n63i0lZ0rvQ6FXiGQ+/JFCKAUyPFhLQYJIqKaa+tSJtfKeULF/IDNDAbdnSIxgS4NTuw2b0+lj8LzfITuq+ZxQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=12.10" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-compare": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz", + "integrity": "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5", + "p-limit": "^3.1.0 " + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron": { + "version": "38.0.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-38.0.0.tgz", + "integrity": "sha512-egljptiPJqbL/oamFCEY+g3RNeONWTVxZSGeyLqzK8xq106JhzuxnhJZ3sxt4DzJFaofbGyGJA37Oe9d+gVzYw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^22.7.7", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron-devtools-installer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/electron-devtools-installer/-/electron-devtools-installer-4.0.0.tgz", + "integrity": "sha512-9Tntu/jtfSn0n6N/ZI6IdvRqXpDyLQiDuuIbsBI+dL+1Ef7C8J2JwByw58P3TJiNeuqyV3ZkphpNWuZK5iSY2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "unzip-crx-3": "^0.2.0" + } + }, + "node_modules/electron-installer-common": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/electron-installer-common/-/electron-installer-common-0.10.4.tgz", + "integrity": "sha512-8gMNPXfAqUE5CfXg8RL0vXpLE9HAaPkgLXVoHE3BMUzogMWenf4LmwQ27BdCUrEhkjrKl+igs2IHJibclR3z3Q==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@electron/asar": "^3.2.5", + "@malept/cross-spawn-promise": "^1.0.0", + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "glob": "^7.1.4", + "lodash": "^4.17.15", + "parse-author": "^2.0.0", + "semver": "^7.1.1", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "url": "https://github.com/electron-userland/electron-installer-common?sponsor=1" + }, + "optionalDependencies": { + "@types/fs-extra": "^9.0.1" + } + }, + "node_modules/electron-installer-common/node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/electron-installer-common/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-installer-debian": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/electron-installer-debian/-/electron-installer-debian-3.2.0.tgz", + "integrity": "sha512-58ZrlJ1HQY80VucsEIG9tQ//HrTlG6sfofA3nRGr6TmkX661uJyu4cMPPh6kXW+aHdq/7+q25KyQhDrXvRL7jw==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin", + "linux" + ], + "dependencies": { + "@malept/cross-spawn-promise": "^1.0.0", + "debug": "^4.1.1", + "electron-installer-common": "^0.10.2", + "fs-extra": "^9.0.0", + "get-folder-size": "^2.0.1", + "lodash": "^4.17.4", + "word-wrap": "^1.2.3", + "yargs": "^16.0.2" + }, + "bin": { + "electron-installer-debian": "src/cli.js" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-installer-debian/node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/electron-installer-debian/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/electron-installer-debian/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/electron-installer-debian/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-installer-debian/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-installer-debian/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-installer-debian/node_modules/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, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-installer-debian/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/electron-installer-debian/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-installer-debian/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-installer-redhat": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/electron-installer-redhat/-/electron-installer-redhat-3.4.0.tgz", + "integrity": "sha512-gEISr3U32Sgtj+fjxUAlSDo3wyGGq6OBx7rF5UdpIgbnpUvMN4W5uYb0ThpnAZ42VEJh/3aODQXHbFS4f5J3Iw==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin", + "linux" + ], + "dependencies": { + "@malept/cross-spawn-promise": "^1.0.0", + "debug": "^4.1.1", + "electron-installer-common": "^0.10.2", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "word-wrap": "^1.2.3", + "yargs": "^16.0.2" + }, + "bin": { + "electron-installer-redhat": "src/cli.js" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-installer-redhat/node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/electron-installer-redhat/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/electron-installer-redhat/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/electron-installer-redhat/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-installer-redhat/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-installer-redhat/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-installer-redhat/node_modules/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, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-installer-redhat/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/electron-installer-redhat/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-installer-redhat/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-playwright-helpers": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/electron-playwright-helpers/-/electron-playwright-helpers-1.8.2.tgz", + "integrity": "sha512-sM9fDSEFDOptKDa8oiNphiXdR1KR1uFe8yHnlrnvyQE1ScnHizca/SoYvUdtn+5IuVNTkT8MesKWJ6seS4/zuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "^3.2.4" + } + }, + "node_modules/electron-squirrel-startup": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/electron-squirrel-startup/-/electron-squirrel-startup-1.0.1.tgz", + "integrity": "sha512-sTfFIHGku+7PsHLJ7v0dRcZNkALrV+YEozINTW8X1nM//e5O3L+rfYuvSW00lmGHnYmUjARZulD8F2V8ISI9RA==", + "license": "Apache-2.0", + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/electron-squirrel-startup/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/electron-squirrel-startup/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.214", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.214.tgz", + "integrity": "sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/electron-winstaller": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-5.4.0.tgz", + "integrity": "sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@electron/asar": "^3.2.1", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "lodash": "^4.17.21", + "temp": "^0.9.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "@electron/windows-sign": "^1.1.2" + } + }, + "node_modules/electron-winstaller/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/electron-winstaller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optional": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-winstaller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/electron/node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/electron/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/electron/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/electron/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.35.0.tgz", + "integrity": "sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.35.0", + "@eslint/plugin-kit": "^0.3.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-compiler": { + "version": "19.1.0-rc.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-compiler/-/eslint-plugin-react-compiler-19.1.0-rc.2.tgz", + "integrity": "sha512-oKalwDGcD+RX9mf3NEO4zOoUMeLvjSvcbbEOpquzmzqEEM2MQdp7/FY/Hx9NzmUwFzH1W9SKTz5fihfMldpEYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "hermes-parser": "^0.25.1", + "zod": "^3.22.4", + "zod-validation-error": "^3.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.0.0 || >= 18.0.0" + }, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-plugin-react-compiler/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/expect-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", + "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/flora-colossus": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-2.0.0.tgz", + "integrity": "sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "fs-extra": "^10.1.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/galactus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/galactus/-/galactus-1.0.0.tgz", + "integrity": "sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "flora-colossus": "^2.0.0", + "fs-extra": "^10.1.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/gar": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz", + "integrity": "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-folder-size": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz", + "integrity": "sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "gar": "^1.0.4", + "tiny-each-async": "2.0.3" + }, + "bin": { + "get-folder-size": "bin/get-folder-size" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-info": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz", + "integrity": "sha512-SCbprXGAPdIhKAXiG+Mk6yeoFH61JlYunqdFQFHDtLjJlDjFf6x07dsS8acO+xWt52jpdVo49AlVDnUVK1sDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.1.1", + "debug": "^2.2.0", + "lodash.get": "^4.0.0", + "read-pkg-up": "^2.0.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/get-package-info/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/get-package-info/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", + "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/goober": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz", + "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==", + "license": "MIT", + "peerDependencies": { + "csstype": "^3.0.10" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/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==", + "license": "MIT", + "dependencies": { + "void-elements": "3.1.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/i18next": { + "version": "25.5.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.5.2.tgz", + "integrity": "sha512-lW8Zeh37i/o0zVr+NoCHfNnfvVw+M6FQbRp36ZZ/NyHDJ3NJVpp2HhAUyU9WafL5AssymNoOjMRB48mmx2P6Hw==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.6" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ip-address": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isbot": { + "version": "5.1.30", + "resolved": "https://registry.npmjs.org/isbot/-/isbot-5.1.30.tgz", + "integrity": "sha512-3wVJEonAns1OETX83uWsk5IAne2S5zfDcntD2hbtU23LelSqNXzXs9zKjMPOLMzroCgIjCfjYAEHrd2D6FOkiA==", + "license": "Unlicense", + "engines": { + "node": ">=18" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jiti": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz", + "integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", + "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.5.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.1.1", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.1", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "ISC", + "optional": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "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" + } + }, + "node_modules/jszip/node_modules/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, + "license": "MIT" + }, + "node_modules/jszip/node_modules/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/listr2": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-7.0.2.tgz", + "integrity": "sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", + "rfdc": "^1.3.0", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.542.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.542.0.tgz", + "integrity": "sha512-w3hD8/SQB7+lzU2r4VdFyzzOzKnUjTZIF/MQJGSSvni7Llewni4vuViRppfRAa2guOsY5k4jZyxw/i9DQHv+dw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.18", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz", + "integrity": "sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-abi": { + "version": "3.77.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.77.0.tgz", + "integrity": "sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-api-version": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.1.tgz", + "integrity": "sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.20.tgz", + "integrity": "sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nwsapi": { + "version": "2.2.22", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz", + "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true, + "license": "(MIT AND Zlib)" + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-author": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", + "integrity": "sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "author-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/pe-library": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pe-library/-/pe-library-1.0.1.tgz", + "integrity": "sha512-nh39Mo1eGWmZS7y+mK/dQIqg7S1lp38DpRxkyoHf0ZcUs/HDc+yyTjuOtTvSMZHmfSLuSQaX945u05Y2Q6UWZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14", + "npm": ">=7" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/playwright": { + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.0.tgz", + "integrity": "sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.55.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.0.tgz", + "integrity": "sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postject": { + "version": "1.0.0-alpha.6", + "resolved": "https://registry.npmjs.org/postject/-/postject-1.0.0-alpha.6.tgz", + "integrity": "sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^9.4.0" + }, + "bin": { + "postject": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/postject/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.6.14", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.14.tgz", + "integrity": "sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-hermes": "*", + "@prettier/plugin-oxc": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-hermes": { + "optional": true + }, + "@prettier/plugin-oxc": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proc-log": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", + "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.1" + } + }, + "node_modules/react-i18next": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.3.tgz", + "integrity": "sha512-AANws4tOE+QSq/IeMF/ncoHlMNZaVLxpa5uUGW1wjike68elVYr0018L9xYoqBr1OFO7G7boDPrbn0HpMCJxTw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.6", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 25.4.1", + "react": ">= 16.8.0", + "typescript": "^5" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-binary-file-arch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", + "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "bin": { + "read-binary-file-arch": "cli.js" + } + }, + "node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resedit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resedit/-/resedit-2.0.3.tgz", + "integrity": "sha512-oTeemxwoMuxxTYxXUwjkrOPfngTQehlv0/HoYFNkB4uzsP1Un1A9nI8JQKGOFkxpqkC7qkMs0lUsGrvUlbLNUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pe-library": "^1.0.1" + }, + "engines": { + "node": ">=14", + "npm": ">=7" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/rollup": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.0.tgz", + "integrity": "sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.0", + "@rollup/rollup-android-arm64": "4.50.0", + "@rollup/rollup-darwin-arm64": "4.50.0", + "@rollup/rollup-darwin-x64": "4.50.0", + "@rollup/rollup-freebsd-arm64": "4.50.0", + "@rollup/rollup-freebsd-x64": "4.50.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.0", + "@rollup/rollup-linux-arm-musleabihf": "4.50.0", + "@rollup/rollup-linux-arm64-gnu": "4.50.0", + "@rollup/rollup-linux-arm64-musl": "4.50.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.0", + "@rollup/rollup-linux-ppc64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-musl": "4.50.0", + "@rollup/rollup-linux-s390x-gnu": "4.50.0", + "@rollup/rollup-linux-x64-gnu": "4.50.0", + "@rollup/rollup-linux-x64-musl": "4.50.0", + "@rollup/rollup-openharmony-arm64": "4.50.0", + "@rollup/rollup-win32-arm64-msvc": "4.50.0", + "@rollup/rollup-win32-ia32-msvc": "4.50.0", + "@rollup/rollup-win32-x64-msvc": "4.50.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/seroval": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.3.2.tgz", + "integrity": "sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/seroval-plugins": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.3.3.tgz", + "integrity": "sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "seroval": "^1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/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, + "license": "ISC" + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/solid-js": { + "version": "1.9.9", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.9.tgz", + "integrity": "sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA==", + "license": "MIT", + "dependencies": { + "csstype": "^3.1.0", + "seroval": "~1.3.0", + "seroval-plugins": "~1.3.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "dev": true, + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-outer/node_modules/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sudo-prompt": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT" + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/tailwind-merge": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", + "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.13.tgz", + "integrity": "sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==", + "license": "MIT" + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/temp/node_modules/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, + "license": "MIT", + "optional": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/tiny-each-async": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", + "integrity": "sha512-5ROII7nElnAirvFn8g7H7MtpfV1daMcyfTGQwsn/x2VtyV+VPiO5CjReCJtWLvoKTDEDmZocf3cNPraiMnBXLA==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz", + "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-repeated/node_modules/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.42.0.tgz", + "integrity": "sha512-ozR/rQn+aQXQxh1YgbCzQWDFrsi9mcg+1PM3l/z5o1+20P7suOIaNg515bpr/OYt6FObz/NHcBstydDLHWeEKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.42.0", + "@typescript-eslint/parser": "8.42.0", + "@typescript-eslint/typescript-estree": "8.42.0", + "@typescript-eslint/utils": "8.42.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unzip-crx-3": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/unzip-crx-3/-/unzip-crx-3-0.2.0.tgz", + "integrity": "sha512-0+JiUq/z7faJ6oifVB5nSwt589v1KCduqIJupNVDoWSXZtWDmjDGO3RAEOvwJ07w90aoXoP4enKsR7ecMrJtWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "jszip": "^3.1.0", + "mkdirp": "^0.5.1", + "yaku": "^0.16.6" + } + }, + "node_modules/unzip-crx-3/node_modules/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, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/username": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/username/-/username-5.1.0.tgz", + "integrity": "sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^1.0.0", + "mem": "^4.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.4.tgz", + "integrity": "sha512-X5QFK4SGynAeeIt+A7ZWnApdUyHYm+pzv/8/A57LqSGcI88U6R6ipOs3uCesdc6yl7nl+zNO0t8LmqAdXcQihw==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.14" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/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, + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaku": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/yaku/-/yaku-0.16.7.tgz", + "integrity": "sha512-Syu3IB3rZvKvYk7yTiyl1bo/jiEFaaStrgv1V2TIJTqYPStSMQVO8EQjg/z+DRzLq/4LIIharNT3iH1hylEIRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.5.tgz", + "integrity": "sha512-rcUUZqlLJgBC33IT3PNMgsCq6TzLQEG/Ei/KTCU0PedSWRMAXoOUN+4t/0H+Q8bdnLPdqUYnvboJT0bn/229qg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.5.3.tgz", + "integrity": "sha512-OT5Y8lbUadqVZCsnyFaTQ4/O2mys4tj7PqhdbBCp7McPwvIEKfPtdA6QfPeFQK2/Rz5LgwmAXRJTugBNBi0btw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + } + } +} diff --git a/electron/package.json b/electron/package.json new file mode 100644 index 0000000..308991d --- /dev/null +++ b/electron/package.json @@ -0,0 +1,89 @@ +{ + "name": "electron-shadcn", + "productName": "electron-shadcn Template", + "version": "1.0.0", + "description": "Electron Forge with shadcn-ui (Vite + Typescript)", + "main": ".vite/build/main.js", + "private": true, + "scripts": { + "start": "electron-forge start", + "package": "electron-forge package", + "make": "electron-forge make", + "publish": "electron-forge publish", + "lint": "eslint .", + "format": "prettier --check .", + "format:write": "prettier --write .", + "test": "vitest run", + "test:watch": "vitest watch", + "test:unit": "vitest", + "test:e2e": "playwright test", + "test:all": "vitest run && playwright test" + }, + "author": "ROG ", + "license": "MIT", + "devDependencies": { + "@electron-forge/cli": "^7.8.3", + "@electron-forge/maker-deb": "^7.8.3", + "@electron-forge/maker-rpm": "^7.8.3", + "@electron-forge/maker-squirrel": "^7.8.3", + "@electron-forge/maker-zip": "^7.8.3", + "@electron-forge/plugin-auto-unpack-natives": "^7.8.3", + "@electron-forge/plugin-fuses": "^7.8.3", + "@electron-forge/plugin-vite": "^7.8.3", + "@electron-forge/shared-types": "^7.8.1", + "@electron/fuses": "~1.8.0", + "@eslint/compat": "^1.3.2", + "@eslint/js": "^9.28.0", + "@playwright/test": "^1.55.0", + "@testing-library/jest-dom": "^6.8.0", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", + "@types/electron-squirrel-startup": "^1.0.2", + "@types/eslint-config-prettier": "^6.11.3", + "@types/node": "^22.18.1", + "@types/react": "^19.1.12", + "@types/react-dom": "^19.1.9", + "@vitejs/plugin-react": "^5.0.2", + "babel-plugin-react-compiler": "^19.1.0-rc.3", + "electron": "^38.0.0", + "electron-devtools-installer": "^4.0.0", + "electron-playwright-helpers": "^1.8.2", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-compiler": "^19.1.0-rc.2", + "globals": "^16.3.0", + "jsdom": "^26.1.0", + "prettier": "^3.6.2", + "prettier-plugin-tailwindcss": "^0.6.14", + "tailwindcss": "^4.1.11", + "ts-node": "^10.9.2", + "typescript": "^5.9.2", + "typescript-eslint": "^8.42.0", + "vite": "^7.1.4", + "vitest": "^3.2.4" + }, + "dependencies": { + "@icons-pack/react-simple-icons": "^13.7.0", + "@radix-ui/react-navigation-menu": "^1.2.14", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-toggle": "^1.1.9", + "@radix-ui/react-toggle-group": "^1.1.11", + "@tailwindcss/vite": "^4.1.13", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-router": "^1.131.35", + "@tanstack/router-devtools": "^1.131.35", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "electron-squirrel-startup": "^1.0.1", + "i18next": "^25.5.2", + "lucide-react": "^0.542.0", + "react": "^19.1.1", + "react-dom": "^19.1.1", + "react-i18next": "^15.7.3", + "tailwind-merge": "^3.3.1", + "tailwindcss-animate": "^1.0.7", + "zod": "^4.1.5" + } +} diff --git a/electron/playwright.config.ts b/electron/playwright.config.ts new file mode 100644 index 0000000..b937b2b --- /dev/null +++ b/electron/playwright.config.ts @@ -0,0 +1,23 @@ +import { defineConfig, devices } from "@playwright/test"; + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: "./src/tests/e2e", + fullyParallel: false, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + reporter: "html", + use: { + trace: "on-first-retry", + }, + + projects: [ + { + name: "chromium", + use: { ...devices["Desktop Chrome"] }, + }, + ], +}); diff --git a/electron/src/App.tsx b/electron/src/App.tsx new file mode 100644 index 0000000..cf46bcc --- /dev/null +++ b/electron/src/App.tsx @@ -0,0 +1,26 @@ +import React, { useEffect } from "react"; +import { createRoot } from "react-dom/client"; +import { syncThemeWithLocal } from "./helpers/theme_helpers"; +import { useTranslation } from "react-i18next"; +import "./localization/i18n"; +import { updateAppLanguage } from "./helpers/language_helpers"; +import { router } from "./routes/router"; +import { RouterProvider } from "@tanstack/react-router"; + +export default function App() { + const { i18n } = useTranslation(); + + useEffect(() => { + syncThemeWithLocal(); + updateAppLanguage(i18n); + }, [i18n]); + + return ; +} + +const root = createRoot(document.getElementById("app")!); +root.render( + + + , +); diff --git a/electron/src/assets/fonts/geist-mono/geist-mono.ttf b/electron/src/assets/fonts/geist-mono/geist-mono.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c3d9789bb78bd7135fd9b5f958485b7b45232e5c GIT binary patch literal 137740 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 KH{|6Iss96aCPlme literal 0 HcmV?d00001 diff --git a/electron/src/assets/fonts/geist/geist.ttf b/electron/src/assets/fonts/geist/geist.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6ae64b3b9ab6812f27da72305614ec2decc8b935 GIT binary patch literal 148768 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 ReqkHdZ=qSJcd&iG|;hE1of9e#lW4*@R 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 My5#T1dFUnoFOs^j`Tzg` literal 0 HcmV?d00001 diff --git a/electron/src/assets/fonts/tomorrow/tomorrow-bold-italic.ttf b/electron/src/assets/fonts/tomorrow/tomorrow-bold-italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dec6bc23bbe4916625b51ef408585f112d29bce7 GIT binary patch literal 59636 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 literal 0 HcmV?d00001 diff --git a/electron/src/assets/fonts/tomorrow/tomorrow-bold.ttf b/electron/src/assets/fonts/tomorrow/tomorrow-bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..474194c0fb6a91186e4b1ce35c41d8e590abcdfd GIT binary patch literal 56628 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 z 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%0D{E2IM* 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 +
+ {title && !isMacOS() && ( +
+ {title} +
+ )} + {isMacOS() && ( +
+ {/* Maintain the same height but do not display content */} +
+ )} +
+ {!isMacOS() && } + + ); +} + +function WindowButtons() { + return ( +
+ + + +
+ ); +} diff --git a/electron/src/components/LangToggle.tsx b/electron/src/components/LangToggle.tsx new file mode 100644 index 0000000..4802e34 --- /dev/null +++ b/electron/src/components/LangToggle.tsx @@ -0,0 +1,33 @@ +import React from "react"; +import { ToggleGroup, ToggleGroupItem } from "./ui/toggle-group"; +import langs from "@/localization/langs"; +import { useTranslation } from "react-i18next"; +import { setAppLanguage } from "@/helpers/language_helpers"; + +export default function LangToggle() { + const { i18n } = useTranslation(); + const currentLang = i18n.language; + + function onValueChange(value: string) { + setAppLanguage(value, i18n); + } + + return ( + + {langs.map((lang) => ( + + {`${lang.prefix}`} + + ))} + + ); +} diff --git a/electron/src/components/ToggleTheme.tsx b/electron/src/components/ToggleTheme.tsx new file mode 100644 index 0000000..a088410 --- /dev/null +++ b/electron/src/components/ToggleTheme.tsx @@ -0,0 +1,12 @@ +import { Moon } from "lucide-react"; +import React from "react"; +import { Button } from "@/components/ui/button"; +import { toggleTheme } from "@/helpers/theme_helpers"; + +export default function ToggleTheme() { + return ( + + ); +} diff --git a/electron/src/components/template/Footer.tsx b/electron/src/components/template/Footer.tsx new file mode 100644 index 0000000..715a23c --- /dev/null +++ b/electron/src/components/template/Footer.tsx @@ -0,0 +1,10 @@ +import React from "react"; + +export default function Footer() { + return ( +
+

Made by LuanRoger - Based in Brazil πŸ‡§πŸ‡·

+

Powered by Electron

+
+ ); +} diff --git a/electron/src/components/template/InitialIcons.tsx b/electron/src/components/template/InitialIcons.tsx new file mode 100644 index 0000000..11c13d0 --- /dev/null +++ b/electron/src/components/template/InitialIcons.tsx @@ -0,0 +1,14 @@ +import React from "react"; +import { SiElectron, SiReact, SiVite } from "@icons-pack/react-simple-icons"; + +export default function InitalIcons() { + const iconSize = 48; + + return ( +
+ + + +
+ ); +} diff --git a/electron/src/components/template/NavigationMenu.tsx b/electron/src/components/template/NavigationMenu.tsx new file mode 100644 index 0000000..bec627c --- /dev/null +++ b/electron/src/components/template/NavigationMenu.tsx @@ -0,0 +1,31 @@ +import React from "react"; +import { Link } from "@tanstack/react-router"; +import { useTranslation } from "react-i18next"; +import { + NavigationMenu as NavigationMenuBase, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + navigationMenuTriggerStyle, +} from "../ui/navigation-menu"; + +export default function NavigationMenu() { + const { t } = useTranslation(); + + return ( + + + + + {t("titleHomePage")} + + + + + {t("titleSecondPage")} + + + + + ); +} diff --git a/electron/src/components/ui/button.tsx b/electron/src/components/ui/button.tsx new file mode 100644 index 0000000..7faa1b1 --- /dev/null +++ b/electron/src/components/ui/button.tsx @@ -0,0 +1,59 @@ +import * as React from "react"; +import { Slot } from "@radix-ui/react-slot"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/utils/tailwind"; + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", + destructive: + "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", + outline: + "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", + secondary: + "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", + ghost: + "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2 has-[>svg]:px-3", + sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", + lg: "h-10 rounded-md px-6 has-[>svg]:px-4", + icon: "size-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + }, +); + +function Button({ + className, + variant, + size, + asChild = false, + ...props +}: React.ComponentProps<"button"> & + VariantProps & { + asChild?: boolean; + }) { + const Comp = asChild ? Slot : "button"; + + return ( + + ); +} + +export { Button, buttonVariants }; diff --git a/electron/src/components/ui/navigation-menu.tsx b/electron/src/components/ui/navigation-menu.tsx new file mode 100644 index 0000000..ec9fa8c --- /dev/null +++ b/electron/src/components/ui/navigation-menu.tsx @@ -0,0 +1,168 @@ +import * as React from "react"; +import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu"; +import { cva } from "class-variance-authority"; +import { ChevronDownIcon } from "lucide-react"; + +import { cn } from "@/utils/tailwind"; + +function NavigationMenu({ + className, + children, + viewport = true, + ...props +}: React.ComponentProps & { + viewport?: boolean; +}) { + return ( + + {children} + {viewport && } + + ); +} + +function NavigationMenuList({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function NavigationMenuItem({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +const navigationMenuTriggerStyle = cva( + "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1", +); + +function NavigationMenuTrigger({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + {children}{" "} + + ); +} + +function NavigationMenuContent({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function NavigationMenuViewport({ + className, + ...props +}: React.ComponentProps) { + return ( +
+ +
+ ); +} + +function NavigationMenuLink({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function NavigationMenuIndicator({ + className, + ...props +}: React.ComponentProps) { + return ( + +
+ + ); +} + +export { + NavigationMenu, + NavigationMenuList, + NavigationMenuItem, + NavigationMenuContent, + NavigationMenuTrigger, + NavigationMenuLink, + NavigationMenuIndicator, + NavigationMenuViewport, + navigationMenuTriggerStyle, +}; diff --git a/electron/src/components/ui/toggle-group.tsx b/electron/src/components/ui/toggle-group.tsx new file mode 100644 index 0000000..92aa9ce --- /dev/null +++ b/electron/src/components/ui/toggle-group.tsx @@ -0,0 +1,73 @@ +"use client"; + +import * as React from "react"; +import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group"; +import { type VariantProps } from "class-variance-authority"; + +import { cn } from "@/utils/tailwind"; +import { toggleVariants } from "@/components/ui/toggle"; + +const ToggleGroupContext = React.createContext< + VariantProps +>({ + size: "default", + variant: "default", +}); + +function ToggleGroup({ + className, + variant, + size, + children, + ...props +}: React.ComponentProps & + VariantProps) { + return ( + + + {children} + + + ); +} + +function ToggleGroupItem({ + className, + children, + variant, + size, + ...props +}: React.ComponentProps & + VariantProps) { + const context = React.useContext(ToggleGroupContext); + + return ( + + {children} + + ); +} + +export { ToggleGroup, ToggleGroupItem }; diff --git a/electron/src/components/ui/toggle.tsx b/electron/src/components/ui/toggle.tsx new file mode 100644 index 0000000..714f114 --- /dev/null +++ b/electron/src/components/ui/toggle.tsx @@ -0,0 +1,45 @@ +import * as React from "react"; +import * as TogglePrimitive from "@radix-ui/react-toggle"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/utils/tailwind"; + +const toggleVariants = cva( + "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap", + { + variants: { + variant: { + default: "bg-transparent", + outline: + "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground", + }, + size: { + default: "h-9 px-2 min-w-9", + sm: "h-8 px-1.5 min-w-8", + lg: "h-10 px-2.5 min-w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + }, +); + +function Toggle({ + className, + variant, + size, + ...props +}: React.ComponentProps & + VariantProps) { + return ( + + ); +} + +export { Toggle, toggleVariants }; diff --git a/electron/src/helpers/ipc/context-exposer.ts b/electron/src/helpers/ipc/context-exposer.ts new file mode 100644 index 0000000..14aecd9 --- /dev/null +++ b/electron/src/helpers/ipc/context-exposer.ts @@ -0,0 +1,7 @@ +import { exposeThemeContext } from "./theme/theme-context"; +import { exposeWindowContext } from "./window/window-context"; + +export default function exposeContexts() { + exposeWindowContext(); + exposeThemeContext(); +} diff --git a/electron/src/helpers/ipc/listeners-register.ts b/electron/src/helpers/ipc/listeners-register.ts new file mode 100644 index 0000000..8c86fe4 --- /dev/null +++ b/electron/src/helpers/ipc/listeners-register.ts @@ -0,0 +1,8 @@ +import { BrowserWindow } from "electron"; +import { addThemeEventListeners } from "./theme/theme-listeners"; +import { addWindowEventListeners } from "./window/window-listeners"; + +export default function registerListeners(mainWindow: BrowserWindow) { + addWindowEventListeners(mainWindow); + addThemeEventListeners(); +} diff --git a/electron/src/helpers/ipc/theme/theme-channels.ts b/electron/src/helpers/ipc/theme/theme-channels.ts new file mode 100644 index 0000000..a41ad8a --- /dev/null +++ b/electron/src/helpers/ipc/theme/theme-channels.ts @@ -0,0 +1,5 @@ +export const THEME_MODE_CURRENT_CHANNEL = "theme-mode:current"; +export const THEME_MODE_TOGGLE_CHANNEL = "theme-mode:toggle"; +export const THEME_MODE_DARK_CHANNEL = "theme-mode:dark"; +export const THEME_MODE_LIGHT_CHANNEL = "theme-mode:light"; +export const THEME_MODE_SYSTEM_CHANNEL = "theme-mode:system"; diff --git a/electron/src/helpers/ipc/theme/theme-context.ts b/electron/src/helpers/ipc/theme/theme-context.ts new file mode 100644 index 0000000..170e128 --- /dev/null +++ b/electron/src/helpers/ipc/theme/theme-context.ts @@ -0,0 +1,18 @@ +import { + THEME_MODE_CURRENT_CHANNEL, + THEME_MODE_DARK_CHANNEL, + THEME_MODE_LIGHT_CHANNEL, + THEME_MODE_SYSTEM_CHANNEL, + THEME_MODE_TOGGLE_CHANNEL, +} from "./theme-channels"; + +export function exposeThemeContext() { + const { contextBridge, ipcRenderer } = window.require("electron"); + contextBridge.exposeInMainWorld("themeMode", { + current: () => ipcRenderer.invoke(THEME_MODE_CURRENT_CHANNEL), + toggle: () => ipcRenderer.invoke(THEME_MODE_TOGGLE_CHANNEL), + dark: () => ipcRenderer.invoke(THEME_MODE_DARK_CHANNEL), + light: () => ipcRenderer.invoke(THEME_MODE_LIGHT_CHANNEL), + system: () => ipcRenderer.invoke(THEME_MODE_SYSTEM_CHANNEL), + }); +} diff --git a/electron/src/helpers/ipc/theme/theme-listeners.ts b/electron/src/helpers/ipc/theme/theme-listeners.ts new file mode 100644 index 0000000..022b187 --- /dev/null +++ b/electron/src/helpers/ipc/theme/theme-listeners.ts @@ -0,0 +1,33 @@ +import { nativeTheme } from "electron"; +import { ipcMain } from "electron"; +import { + THEME_MODE_CURRENT_CHANNEL, + THEME_MODE_DARK_CHANNEL, + THEME_MODE_LIGHT_CHANNEL, + THEME_MODE_SYSTEM_CHANNEL, + THEME_MODE_TOGGLE_CHANNEL, +} from "./theme-channels"; + +export function addThemeEventListeners() { + ipcMain.handle(THEME_MODE_CURRENT_CHANNEL, () => nativeTheme.themeSource); + ipcMain.handle(THEME_MODE_TOGGLE_CHANNEL, () => { + if (nativeTheme.shouldUseDarkColors) { + nativeTheme.themeSource = "light"; + } else { + nativeTheme.themeSource = "dark"; + } + return nativeTheme.shouldUseDarkColors; + }); + ipcMain.handle( + THEME_MODE_DARK_CHANNEL, + () => (nativeTheme.themeSource = "dark"), + ); + ipcMain.handle( + THEME_MODE_LIGHT_CHANNEL, + () => (nativeTheme.themeSource = "light"), + ); + ipcMain.handle(THEME_MODE_SYSTEM_CHANNEL, () => { + nativeTheme.themeSource = "system"; + return nativeTheme.shouldUseDarkColors; + }); +} diff --git a/electron/src/helpers/ipc/window/window-channels.ts b/electron/src/helpers/ipc/window/window-channels.ts new file mode 100644 index 0000000..3760008 --- /dev/null +++ b/electron/src/helpers/ipc/window/window-channels.ts @@ -0,0 +1,3 @@ +export const WIN_MINIMIZE_CHANNEL = "window:minimize"; +export const WIN_MAXIMIZE_CHANNEL = "window:maximize"; +export const WIN_CLOSE_CHANNEL = "window:close"; diff --git a/electron/src/helpers/ipc/window/window-context.ts b/electron/src/helpers/ipc/window/window-context.ts new file mode 100644 index 0000000..9ebe386 --- /dev/null +++ b/electron/src/helpers/ipc/window/window-context.ts @@ -0,0 +1,14 @@ +import { + WIN_MINIMIZE_CHANNEL, + WIN_MAXIMIZE_CHANNEL, + WIN_CLOSE_CHANNEL, +} from "./window-channels"; + +export function exposeWindowContext() { + const { contextBridge, ipcRenderer } = window.require("electron"); + contextBridge.exposeInMainWorld("electronWindow", { + minimize: () => ipcRenderer.invoke(WIN_MINIMIZE_CHANNEL), + maximize: () => ipcRenderer.invoke(WIN_MAXIMIZE_CHANNEL), + close: () => ipcRenderer.invoke(WIN_CLOSE_CHANNEL), + }); +} diff --git a/electron/src/helpers/ipc/window/window-listeners.ts b/electron/src/helpers/ipc/window/window-listeners.ts new file mode 100644 index 0000000..5964f89 --- /dev/null +++ b/electron/src/helpers/ipc/window/window-listeners.ts @@ -0,0 +1,22 @@ +import { BrowserWindow, ipcMain } from "electron"; +import { + WIN_CLOSE_CHANNEL, + WIN_MAXIMIZE_CHANNEL, + WIN_MINIMIZE_CHANNEL, +} from "./window-channels"; + +export function addWindowEventListeners(mainWindow: BrowserWindow) { + ipcMain.handle(WIN_MINIMIZE_CHANNEL, () => { + mainWindow.minimize(); + }); + ipcMain.handle(WIN_MAXIMIZE_CHANNEL, () => { + if (mainWindow.isMaximized()) { + mainWindow.unmaximize(); + } else { + mainWindow.maximize(); + } + }); + ipcMain.handle(WIN_CLOSE_CHANNEL, () => { + mainWindow.close(); + }); +} diff --git a/electron/src/helpers/language_helpers.ts b/electron/src/helpers/language_helpers.ts new file mode 100644 index 0000000..2d47a5e --- /dev/null +++ b/electron/src/helpers/language_helpers.ts @@ -0,0 +1,19 @@ +import type { i18n } from "i18next"; + +const languageLocalStorageKey = "lang"; + +export function setAppLanguage(lang: string, i18n: i18n) { + localStorage.setItem(languageLocalStorageKey, lang); + i18n.changeLanguage(lang); + document.documentElement.lang = lang; +} + +export function updateAppLanguage(i18n: i18n) { + const localLang = localStorage.getItem(languageLocalStorageKey); + if (!localLang) { + return; + } + + i18n.changeLanguage(localLang); + document.documentElement.lang = localLang; +} diff --git a/electron/src/helpers/theme_helpers.ts b/electron/src/helpers/theme_helpers.ts new file mode 100644 index 0000000..0726b8a --- /dev/null +++ b/electron/src/helpers/theme_helpers.ts @@ -0,0 +1,64 @@ +import { ThemeMode } from "@/types/theme-mode"; + +const THEME_KEY = "theme"; + +export interface ThemePreferences { + system: ThemeMode; + local: ThemeMode | null; +} + +export async function getCurrentTheme(): Promise { + const currentTheme = await window.themeMode.current(); + const localTheme = localStorage.getItem(THEME_KEY) as ThemeMode | null; + + return { + system: currentTheme, + local: localTheme, + }; +} + +export async function setTheme(newTheme: ThemeMode) { + switch (newTheme) { + case "dark": + await window.themeMode.dark(); + updateDocumentTheme(true); + break; + case "light": + await window.themeMode.light(); + updateDocumentTheme(false); + break; + case "system": { + const isDarkMode = await window.themeMode.system(); + updateDocumentTheme(isDarkMode); + break; + } + } + + localStorage.setItem(THEME_KEY, newTheme); +} + +export async function toggleTheme() { + const isDarkMode = await window.themeMode.toggle(); + const newTheme = isDarkMode ? "dark" : "light"; + + updateDocumentTheme(isDarkMode); + localStorage.setItem(THEME_KEY, newTheme); +} + +export async function syncThemeWithLocal() { + const { local } = await getCurrentTheme(); + if (!local) { + setTheme("system"); + return; + } + + await setTheme(local); +} + +function updateDocumentTheme(isDarkMode: boolean) { + if (!isDarkMode) { + document.documentElement.classList.remove("dark"); + } else { + document.documentElement.classList.add("dark"); + } +} diff --git a/electron/src/helpers/window_helpers.ts b/electron/src/helpers/window_helpers.ts new file mode 100644 index 0000000..3ab8664 --- /dev/null +++ b/electron/src/helpers/window_helpers.ts @@ -0,0 +1,9 @@ +export async function minimizeWindow() { + await window.electronWindow.minimize(); +} +export async function maximizeWindow() { + await window.electronWindow.maximize(); +} +export async function closeWindow() { + await window.electronWindow.close(); +} diff --git a/electron/src/layouts/BaseLayout.tsx b/electron/src/layouts/BaseLayout.tsx new file mode 100644 index 0000000..9fa6118 --- /dev/null +++ b/electron/src/layouts/BaseLayout.tsx @@ -0,0 +1,17 @@ +import React from "react"; +import DragWindowRegion from "@/components/DragWindowRegion"; +import NavigationMenu from "@/components/template/NavigationMenu"; + +export default function BaseLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + + +
{children}
+ + ); +} diff --git a/electron/src/localization/i18n.ts b/electron/src/localization/i18n.ts new file mode 100644 index 0000000..deaf26c --- /dev/null +++ b/electron/src/localization/i18n.ts @@ -0,0 +1,22 @@ +import i18n from "i18next"; +import { initReactI18next } from "react-i18next"; + +i18n.use(initReactI18next).init({ + fallbackLng: "en", + resources: { + en: { + translation: { + appName: "electron-shadcn", + titleHomePage: "Home Page", + titleSecondPage: "Second Page", + }, + }, + "pt-BR": { + translation: { + appName: "electron-shadcn", + titleHomePage: "PΓ‘gina Inicial", + titleSecondPage: "Segunda PΓ‘gina", + }, + }, + }, +}); diff --git a/electron/src/localization/langs.ts b/electron/src/localization/langs.ts new file mode 100644 index 0000000..009d45e --- /dev/null +++ b/electron/src/localization/langs.ts @@ -0,0 +1,14 @@ +import { Language } from "./language"; + +export default [ + { + key: "en", + nativeName: "English", + prefix: "EN-US", + }, + { + key: "pt-BR", + nativeName: "PortuguΓͺs (Brasil)", + prefix: "PT-BR", + }, +] satisfies Language[]; diff --git a/electron/src/localization/language.ts b/electron/src/localization/language.ts new file mode 100644 index 0000000..086c391 --- /dev/null +++ b/electron/src/localization/language.ts @@ -0,0 +1,5 @@ +export interface Language { + key: string; + nativeName: string; + prefix: string; +} diff --git a/electron/src/main.ts b/electron/src/main.ts new file mode 100644 index 0000000..ed6b8b4 --- /dev/null +++ b/electron/src/main.ts @@ -0,0 +1,64 @@ +import { app, BrowserWindow } from "electron"; +import registerListeners from "./helpers/ipc/listeners-register"; +// "electron-squirrel-startup" seems broken when packaging with vite +//import started from "electron-squirrel-startup"; +import path from "path"; +import { + installExtension, + REACT_DEVELOPER_TOOLS, +} from "electron-devtools-installer"; + +const inDevelopment = process.env.NODE_ENV === "development"; + +function createWindow() { + const preload = path.join(__dirname, "preload.js"); + const mainWindow = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + devTools: inDevelopment, + contextIsolation: true, + nodeIntegration: true, + nodeIntegrationInSubFrames: false, + + preload: preload, + }, + titleBarStyle: process.platform === "darwin" ? "hiddenInset" : "hidden", + trafficLightPosition: + process.platform === "darwin" ? { x: 5, y: 5 } : undefined, + }); + registerListeners(mainWindow); + + if (MAIN_WINDOW_VITE_DEV_SERVER_URL) { + mainWindow.loadURL(MAIN_WINDOW_VITE_DEV_SERVER_URL); + } else { + mainWindow.loadFile( + path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`), + ); + } +} + +async function installExtensions() { + try { + const result = await installExtension(REACT_DEVELOPER_TOOLS); + console.log(`Extensions installed successfully: ${result.name}`); + } catch { + console.error("Failed to install extensions"); + } +} + +app.whenReady().then(createWindow).then(installExtensions); + +//osX only +app.on("window-all-closed", () => { + if (process.platform !== "darwin") { + app.quit(); + } +}); + +app.on("activate", () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow(); + } +}); +//osX only ends diff --git a/electron/src/pages/HomePage.tsx b/electron/src/pages/HomePage.tsx new file mode 100644 index 0000000..73634dc --- /dev/null +++ b/electron/src/pages/HomePage.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import ToggleTheme from "@/components/ToggleTheme"; +import { useTranslation } from "react-i18next"; +import LangToggle from "@/components/LangToggle"; +import Footer from "@/components/template/Footer"; +import InitialIcons from "@/components/template/InitialIcons"; + +export default function HomePage() { + const { t } = useTranslation(); + + return ( +
+
+ + +

{t("appName")}

+

+ {t("titleHomePage")} +

+
+ + +
+
+
+ ); +} diff --git a/electron/src/pages/SecondPage.tsx b/electron/src/pages/SecondPage.tsx new file mode 100644 index 0000000..c87b921 --- /dev/null +++ b/electron/src/pages/SecondPage.tsx @@ -0,0 +1,16 @@ +import React from "react"; +import Footer from "@/components/template/Footer"; +import { useTranslation } from "react-i18next"; + +export default function SecondPage() { + const { t } = useTranslation(); + + return ( +
+
+

{t("titleSecondPage")}

+
+
+
+ ); +} diff --git a/electron/src/preload.ts b/electron/src/preload.ts new file mode 100644 index 0000000..78d0e3c --- /dev/null +++ b/electron/src/preload.ts @@ -0,0 +1,3 @@ +import exposeContexts from "./helpers/ipc/context-exposer"; + +exposeContexts(); diff --git a/electron/src/renderer.ts b/electron/src/renderer.ts new file mode 100644 index 0000000..f9393a8 --- /dev/null +++ b/electron/src/renderer.ts @@ -0,0 +1 @@ +import "@/App"; diff --git a/electron/src/routes/__root.tsx b/electron/src/routes/__root.tsx new file mode 100644 index 0000000..3fa8f06 --- /dev/null +++ b/electron/src/routes/__root.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import BaseLayout from "@/layouts/BaseLayout"; +import { Outlet, createRootRoute } from "@tanstack/react-router"; + +export const RootRoute = createRootRoute({ + component: Root, +}); + +function Root() { + return ( + + + + ); +} diff --git a/electron/src/routes/router.tsx b/electron/src/routes/router.tsx new file mode 100644 index 0000000..edbd2c2 --- /dev/null +++ b/electron/src/routes/router.tsx @@ -0,0 +1,13 @@ +import { createMemoryHistory, createRouter } from "@tanstack/react-router"; +import { rootTree } from "./routes"; + +declare module "@tanstack/react-router" { + interface Register { + router: typeof router; + } +} + +const history = createMemoryHistory({ + initialEntries: ["/"], +}); +export const router = createRouter({ routeTree: rootTree, history: history }); diff --git a/electron/src/routes/routes.tsx b/electron/src/routes/routes.tsx new file mode 100644 index 0000000..db5dbed --- /dev/null +++ b/electron/src/routes/routes.tsx @@ -0,0 +1,37 @@ +import { createRoute } from "@tanstack/react-router"; +import { RootRoute } from "./__root"; +import HomePage from "../pages/HomePage"; +import SecondPage from "@/pages/SecondPage"; + +// TODO: Steps to add a new route: +// 1. Create a new page component in the '../pages/' directory (e.g., NewPage.tsx) +// 2. Import the new page component at the top of this file +// 3. Define a new route for the page using createRoute() +// 4. Add the new route to the routeTree in RootRoute.addChildren([...]) +// 5. Add a new Link in the navigation section of RootRoute if needed + +// Example of adding a new route: +// 1. Create '../pages/NewPage.tsx' +// 2. Import: import NewPage from '../pages/NewPage'; +// 3. Define route: +// const NewRoute = createRoute({ +// getParentRoute: () => RootRoute, +// path: '/new', +// component: NewPage, +// }); +// 4. Add to routeTree: RootRoute.addChildren([HomeRoute, NewRoute, ...]) +// 5. Add Link: New Page + +export const HomeRoute = createRoute({ + getParentRoute: () => RootRoute, + path: "/", + component: HomePage, +}); + +export const SecondPageRoute = createRoute({ + getParentRoute: () => RootRoute, + path: "/second-page", + component: SecondPage, +}); + +export const rootTree = RootRoute.addChildren([HomeRoute, SecondPageRoute]); diff --git a/electron/src/styles/global.css b/electron/src/styles/global.css new file mode 100644 index 0000000..f244ad2 --- /dev/null +++ b/electron/src/styles/global.css @@ -0,0 +1,203 @@ +@import "tailwindcss"; + +@plugin 'tailwindcss-animate'; + +@custom-variant dark (&:is(.dark *)); + +@theme { + --color-border: hsl(var(--border)); + --color-input: hsl(var(--input)); + --color-ring: hsl(var(--ring)); + --color-background: hsl(var(--background)); + --color-foreground: hsl(var(--foreground)); + + --color-primary: hsl(var(--primary)); + --color-primary-foreground: hsl(var(--primary-foreground)); + + --color-secondary: hsl(var(--secondary)); + --color-secondary-foreground: hsl(var(--secondary-foreground)); + + --color-destructive: hsl(var(--destructive)); + --color-destructive-foreground: hsl(var(--destructive-foreground)); + + --color-muted: hsl(var(--muted)); + --color-muted-foreground: hsl(var(--muted-foreground)); + + --color-accent: hsl(var(--accent)); + --color-accent-foreground: hsl(var(--accent-foreground)); + + --color-popover: hsl(var(--popover)); + --color-popover-foreground: hsl(var(--popover-foreground)); + + --color-card: hsl(var(--card)); + --color-card-foreground: hsl(var(--card-foreground)); + + --font-sans: Geist, sans-serif; + --font-mono: Geist Mono, monospace; + --font-tomorrow: Tomorrow, sans-serif; + + --radius-lg: var(--radius); + --radius-md: calc(var(--radius) - 2px); + --radius-sm: calc(var(--radius) - 4px); + + --animate-accordion-down: accordion-down 0.2s ease-out; + --animate-accordion-up: accordion-up 0.2s ease-out; + + @keyframes accordion-down { + from { + height: 0; + } + to { + height: var(--radix-accordion-content-height); + } + } + @keyframes accordion-up { + from { + height: var(--radix-accordion-content-height); + } + to { + height: 0; + } + } +} + +@utility container { + margin-inline: auto; + padding-inline: 2rem; + @media (width >= --theme(--breakpoint-sm)) { + max-width: none; + } + @media (width >= 1400px) { + max-width: 1400px; + } +} + +@layer base { + @font-face { + font-family: "Geist"; + + src: url("../assets/fonts/geist/geist.ttf") format("truetype"); + } + @font-face { + font-family: "Geist Mono"; + font-display: swap; + + src: url("../assets/fonts/geist-mono/geist-mono.ttf") format("truetype"); + } + + @font-face { + font-family: "Tomorrow"; + font-weight: 400; + font-style: normal; + + src: url("../assets/fonts/tomorrow/tomorrow-regular.ttf") format("truetype"); + } + @font-face { + font-family: "Tomorrow"; + font-weight: 400; + font-style: italic; + + src: url("../assets/fonts/tomorrow/tomorrow-italic.ttf") format("truetype"); + } + @font-face { + font-family: "Tomorrow"; + font-weight: 700; + font-style: normal; + + src: url("../assets/fonts/tomorrow/tomorrow-bold.ttf") format("truetype"); + } + @font-face { + font-family: "Tomorrow"; + font-weight: 700; + font-style: italic; + + src: url("../assets/fonts/tomorrow/tomorrow-bold-italic.ttf") + format("truetype"); + } +} + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; + + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; + + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; + + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 40% 98%; + + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --ring: 222.2 84% 4.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; + + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 212.7 26.8% 83.9%; + } +} + +@layer base { + body { + @apply overflow-hidden; + } + .draglayer { + @apply bg-background; + -webkit-app-region: drag; + } + button { + @apply cursor-pointer; + } +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/electron/src/tests/e2e/example.test.ts b/electron/src/tests/e2e/example.test.ts new file mode 100644 index 0000000..592b11e --- /dev/null +++ b/electron/src/tests/e2e/example.test.ts @@ -0,0 +1,51 @@ +import { + test, + expect, + _electron as electron, + ElectronApplication, + Page, +} from "@playwright/test"; +import { findLatestBuild, parseElectronApp } from "electron-playwright-helpers"; + +/* + * Using Playwright with Electron: + * https://www.electronjs.org/pt/docs/latest/tutorial/automated-testing#using-playwright + */ + +let electronApp: ElectronApplication; + +test.beforeAll(async () => { + const latestBuild = findLatestBuild(); + const appInfo = parseElectronApp(latestBuild); + process.env.CI = "e2e"; + + electronApp = await electron.launch({ + args: [appInfo.main], + }); + electronApp.on("window", async (page) => { + const filename = page.url()?.split("/").pop(); + console.log(`Window opened: ${filename}`); + + page.on("pageerror", (error) => { + console.error(error); + }); + page.on("console", (msg) => { + console.log(msg.text()); + }); + }); +}); + +test("renders the first page", async () => { + const page: Page = await electronApp.firstWindow(); + const title = await page.waitForSelector("h1"); + const text = await title.textContent(); + expect(text).toBe("electron-shadcn"); +}); + +test("renders page name", async () => { + const page: Page = await electronApp.firstWindow(); + await page.waitForSelector("h1"); + const pageName = await page.getByTestId("pageTitle"); + const text = await pageName.textContent(); + expect(text).toBe("Home Page"); +}); diff --git a/electron/src/tests/unit/ToggleTheme.test.tsx b/electron/src/tests/unit/ToggleTheme.test.tsx new file mode 100644 index 0000000..f71e5dc --- /dev/null +++ b/electron/src/tests/unit/ToggleTheme.test.tsx @@ -0,0 +1,27 @@ +import { render } from "@testing-library/react"; +import { test, expect } from "vitest"; +import ToggleTheme from "@/components/ToggleTheme"; +import React from "react"; + +test("renders ToggleTheme", () => { + const { getByRole } = render(); + const isButton = getByRole("button"); + + expect(isButton).toBeInTheDocument(); +}); + +test("has icon", () => { + const { getByRole } = render(); + const button = getByRole("button"); + const icon = button.querySelector("svg"); + + expect(icon).toBeInTheDocument(); +}); + +test("is moon icon", () => { + const svgIconClassName: string = "lucide-moon"; + const { getByRole } = render(); + const svg = getByRole("button").querySelector("svg"); + + expect(svg?.classList).toContain(svgIconClassName); +}); diff --git a/electron/src/tests/unit/setup.ts b/electron/src/tests/unit/setup.ts new file mode 100644 index 0000000..d0de870 --- /dev/null +++ b/electron/src/tests/unit/setup.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom"; diff --git a/electron/src/tests/unit/sum.test.ts b/electron/src/tests/unit/sum.test.ts new file mode 100644 index 0000000..b9af594 --- /dev/null +++ b/electron/src/tests/unit/sum.test.ts @@ -0,0 +1,14 @@ +import { expect, test } from "vitest"; + +function sum(a: number, b: number): number { + return a + b; +} + +test("sum", () => { + const param1: number = 2; + const param2: number = 2; + + const result: number = sum(param1, param2); + + expect(result).toBe(4); +}); diff --git a/electron/src/types.d.ts b/electron/src/types.d.ts new file mode 100644 index 0000000..79df517 --- /dev/null +++ b/electron/src/types.d.ts @@ -0,0 +1,24 @@ +// This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Vite +// plugin that tells the Electron app where to look for the Vite-bundled app code (depending on +// whether you're running in development or production). +declare const MAIN_WINDOW_VITE_DEV_SERVER_URL: string; +declare const MAIN_WINDOW_VITE_NAME: string; + +// Preload types +interface ThemeModeContext { + toggle: () => Promise; + dark: () => Promise; + light: () => Promise; + system: () => Promise; + current: () => Promise<"dark" | "light" | "system">; +} +interface ElectronWindow { + minimize: () => Promise; + maximize: () => Promise; + close: () => Promise; +} + +declare interface Window { + themeMode: ThemeModeContext; + electronWindow: ElectronWindow; +} diff --git a/electron/src/types/theme-mode.ts b/electron/src/types/theme-mode.ts new file mode 100644 index 0000000..e73a3a6 --- /dev/null +++ b/electron/src/types/theme-mode.ts @@ -0,0 +1 @@ +export type ThemeMode = "dark" | "light" | "system"; diff --git a/electron/src/utils/platform.ts b/electron/src/utils/platform.ts new file mode 100644 index 0000000..97976c2 --- /dev/null +++ b/electron/src/utils/platform.ts @@ -0,0 +1,13 @@ +/** + * Platform detection utilities + */ + +/** + * Check if the current platform is macOS + * @returns true if running on macOS, false otherwise + */ +export const isMacOS = (): boolean => { + return ( + typeof window !== "undefined" && window.navigator.platform.includes("Mac") + ); +}; diff --git a/electron/src/utils/tailwind.ts b/electron/src/utils/tailwind.ts new file mode 100644 index 0000000..365058c --- /dev/null +++ b/electron/src/utils/tailwind.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/electron/tsconfig.json b/electron/tsconfig.json new file mode 100644 index 0000000..45fea85 --- /dev/null +++ b/electron/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "jsx": "react-jsx", + "target": "ESNext", + "module": "ESNext", + "lib": ["dom", "ESNext"], + "experimentalDecorators": true, + "composite": true, + "declaration": true, + "forceConsistentCasingInFileNames": true, + "allowJs": false, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "noImplicitAny": true, + "sourceMap": true, + "strict": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "outDir": "dist", + "moduleResolution": "bundler", + "resolveJsonModule": true + }, + "include": [ + "src/**/*", + "./package.json", + "./forge.config.ts", + "*.mts", + "vite.renderer.config.mts" + ] +} diff --git a/electron/vite.main.config.mts b/electron/vite.main.config.mts new file mode 100644 index 0000000..ae8d116 --- /dev/null +++ b/electron/vite.main.config.mts @@ -0,0 +1,11 @@ +import { defineConfig } from "vite"; +import path from "path"; + +// https://vitejs.dev/config +export default defineConfig({ + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, +}); diff --git a/electron/vite.preload.config.mts b/electron/vite.preload.config.mts new file mode 100644 index 0000000..fbf7eda --- /dev/null +++ b/electron/vite.preload.config.mts @@ -0,0 +1,4 @@ +import { defineConfig } from "vite"; + +// https://vitejs.dev/config +export default defineConfig({}); diff --git a/electron/vite.renderer.config.mts b/electron/vite.renderer.config.mts new file mode 100644 index 0000000..5ff3fc6 --- /dev/null +++ b/electron/vite.renderer.config.mts @@ -0,0 +1,21 @@ +import * as path from "path"; +import react from "@vitejs/plugin-react"; +import tailwindcss from "@tailwindcss/vite"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [ + tailwindcss(), + react({ + babel: { + plugins: [["babel-plugin-react-compiler"]], + }, + }), + ], + resolve: { + preserveSymlinks: true, + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, +}); diff --git a/electron/vitest.config.ts b/electron/vitest.config.ts new file mode 100644 index 0000000..083dfc8 --- /dev/null +++ b/electron/vitest.config.ts @@ -0,0 +1,26 @@ +import * as path from "path"; +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + plugins: [react()], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, + test: { + dir: "./src/tests/unit", + globals: true, + environment: "jsdom", + setupFiles: "./src/tests/unit/setup.ts", + css: true, + reporters: ["verbose"], + coverage: { + provider: "v8", + reporter: ["text", "json", "html"], + include: ["src/**/*"], + exclude: [], + }, + }, +}); diff --git a/server/.gitignore b/server/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/server/.gitignore @@ -0,0 +1 @@ +/target diff --git a/server/Cargo.toml b/server/Cargo.toml new file mode 100644 index 0000000..983efe4 --- /dev/null +++ b/server/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "server" +version = "0.1.0" +edition = "2024" + +[dependencies] +# web +tower-livereload = "0.9.6" +socketioxide-core = "0.16.0" +socketioxide = "0.16.0" +tower-http = { version = "0.6.2", features = ["cors", "trace", "fs"] } +axum = { version = "0.8.1", features = ["macros"] } + +# utility +uom = "0.36.0" +chrono = "0.4.39" +tracing = "0.1.41" +tracing-subscriber = "0.3.19" +serde = "1.0.217" +anyhow = "1.0.95" +serde_json = "1.0.137" +signal-hook = "0.3.17" +log = "0.4.25" +env_logger = "0.11.6" +tokio = { version = "1.43.0", features = ["rt-multi-thread"] } +include_dir = "0.7.4" +mime_guess = "2.0.5" +open = "5.3.2" +bitvec = "1.0.1" +lazy_static = "1.5.0" diff --git a/server/rust-toolchain.toml b/server/rust-toolchain.toml new file mode 100644 index 0000000..4a378d7 --- /dev/null +++ b/server/rust-toolchain.toml @@ -0,0 +1,10 @@ +[toolchain] +channel = "beta" +components = [ + "rustfmt", + "clippy", + "rust-src", + "rustc-dev", + "llvm-tools-preview", + "rust-analyzer", +] diff --git a/server/src/app_state.rs b/server/src/app_state.rs new file mode 100644 index 0000000..63beef8 --- /dev/null +++ b/server/src/app_state.rs @@ -0,0 +1 @@ +pub static APP_STATE: LazyLock> = LazyLock::new(|| Arc::new(AppState::new())); \ No newline at end of file diff --git a/server/src/main.rs b/server/src/main.rs new file mode 100644 index 0000000..89d5d03 --- /dev/null +++ b/server/src/main.rs @@ -0,0 +1,15 @@ +use anyhow::{Error, Result}; +//use app_state::APP_STATE; +use env_logger::Env; +use rest::init::init_api; +//use socketio::init::init_socketio; + +pub mod rest; + +#[tokio::main] +async fn main() -> Result<(), Error> { + env_logger::Builder::from_env(Env::default().default_filter_or("info")).init(); + + init_api().await?; + Ok(()) +} diff --git a/server/src/rest/handlers/mod.rs b/server/src/rest/handlers/mod.rs new file mode 100644 index 0000000..2e9a185 --- /dev/null +++ b/server/src/rest/handlers/mod.rs @@ -0,0 +1,32 @@ +use axum::body::Body; +use serde::Serialize; + +pub mod my_test; + +#[derive(Debug, Serialize, Clone)] +pub struct MutationResponse { + pub success: bool, + pub error: Option, +} + +impl MutationResponse { + pub fn success() -> Self { + Self { + success: true, + error: None, + } + } + pub fn error(error: String) -> Self { + Self { + success: false, + error: Some(error), + } + } +} + +impl From for Body { + fn from(mutation_response: MutationResponse) -> Self { + let body = serde_json::to_string(&mutation_response).unwrap(); + Body::from(body) + } +} \ No newline at end of file diff --git a/server/src/rest/handlers/my_test.rs b/server/src/rest/handlers/my_test.rs new file mode 100644 index 0000000..e1ebcd9 --- /dev/null +++ b/server/src/rest/handlers/my_test.rs @@ -0,0 +1,10 @@ +use super::MutationResponse; +use crate::rest::util::ResponseUtil; + +use axum::{body::Body, extract::State, http::Response, Json}; +use std::sync::Arc; + +#[axum::debug_handler] +pub async fn post_my_test() -> Response { + ResponseUtil::ok(MutationResponse::success()) +} \ No newline at end of file diff --git a/server/src/rest/init.rs b/server/src/rest/init.rs new file mode 100644 index 0000000..c45bc39 --- /dev/null +++ b/server/src/rest/init.rs @@ -0,0 +1,24 @@ +use super::handlers::my_test::post_my_test; +use tower_http::{cors::CorsLayer, trace::TraceLayer}; +use std::io::Error; +use axum::routing::post; + +pub async fn init_api( + +) -> Result<(), Error> { + let cors = CorsLayer::permissive(); + let app = axum::Router::new() + .route( + "/api/v1/test", + post(post_my_test) + ) + .layer(cors) + .layer(TraceLayer::new_for_http()); + + let listener = tokio::net::TcpListener::bind("0.0.0.0:3001").await?; + axum::serve(listener, app).await?; + + open::that("http://localhost:3001")?; + + Ok(()) +} \ No newline at end of file diff --git a/server/src/rest/mod.rs b/server/src/rest/mod.rs new file mode 100644 index 0000000..fc8e296 --- /dev/null +++ b/server/src/rest/mod.rs @@ -0,0 +1,3 @@ +pub mod handlers; +pub mod init; +pub mod util; \ No newline at end of file diff --git a/server/src/rest/util.rs b/server/src/rest/util.rs new file mode 100644 index 0000000..ab25bd4 --- /dev/null +++ b/server/src/rest/util.rs @@ -0,0 +1,51 @@ +use axum::{ + body::Body, + http::{Response, StatusCode}, +}; +use serde_json::json; + +pub struct ResponseUtil {} + +impl ResponseUtil { + pub fn error(message: &str) -> Response { + Response::builder() + .status(StatusCode::INTERNAL_SERVER_ERROR) + .header("Content-Type", "application/json") + .body(Body::from( + serde_json::to_string(&json!({ "error": message })).unwrap(), + )) + .unwrap() + } + + pub fn ok(data: T) -> Response { + Response::builder() + .status(StatusCode::OK) + .header("Content-Type", "application/json") + .body(Body::from(serde_json::to_string(&data).unwrap())) + .unwrap() + } + + pub fn not_found(message: &str) -> Response { + Response::builder() + .status(StatusCode::NOT_FOUND) + .header("Content-Type", "application/json") + .body(Body::from( + serde_json::to_string(&json!({ "error": message })).unwrap(), + )) + .unwrap() + } +} + +pub enum ResponseUtilError { + Error(anyhow::Error), + NotFound(anyhow::Error), +} + +impl From for Response { + fn from(error: ResponseUtilError) -> Self { + match error { + ResponseUtilError::Error(e) => ResponseUtil::error(&e.to_string()), + ResponseUtilError::NotFound(e) => ResponseUtil::not_found(&e.to_string()), + } + } +}