diff --git a/.release-it.ts b/.release-it.ts
new file mode 100644
index 0000000..fbc7b87
--- /dev/null
+++ b/.release-it.ts
@@ -0,0 +1,15 @@
+/* eslint-disable no-template-curly-in-string */
+import type { Config } from 'release-it'
+
+export default {
+ git: {
+ commitMessage: 'v${version}',
+ tagName: 'v${version}',
+ },
+ npm: {
+ publish: false,
+ },
+ hooks: {
+ 'after:bump': 'tsx scripts/release.ts',
+ },
+} satisfies Config
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index fa6314a..0b69b00 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,8 +1,8 @@
{
- "recommendations": [
- "tauri-apps.tauri-vscode",
- "rust-lang.rust-analyzer",
- "biomejs.biome",
- "antfu.unocss"
- ]
+ "recommendations": [
+ "tauri-apps.tauri-vscode",
+ "rust-lang.rust-analyzer",
+ "antfu.unocss",
+ "dbaeumer.vscode-eslint"
+ ]
}
diff --git a/Cargo.lock b/Cargo.lock
index d68f097..8e47990 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -62,6 +62,149 @@ version = "1.0.97"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f"
+[[package]]
+name = "async-broadcast"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
+dependencies = [
+ "event-listener",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
+dependencies = [
+ "concurrent-queue",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec"
+dependencies = [
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "slab",
+]
+
+[[package]]
+name = "async-fs"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
+dependencies = [
+ "async-lock",
+ "blocking",
+ "futures-lite",
+]
+
+[[package]]
+name = "async-io"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059"
+dependencies = [
+ "async-lock",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite",
+ "parking",
+ "polling",
+ "rustix 0.38.44",
+ "slab",
+ "tracing",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
+dependencies = [
+ "event-listener",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-process"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb"
+dependencies = [
+ "async-channel",
+ "async-io",
+ "async-lock",
+ "async-signal",
+ "async-task",
+ "blocking",
+ "cfg-if",
+ "event-listener",
+ "futures-lite",
+ "rustix 0.38.44",
+ "tracing",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.100",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3"
+dependencies = [
+ "async-io",
+ "async-lock",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.44",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+
+[[package]]
+name = "async-trait"
+version = "0.1.88"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.100",
+]
+
[[package]]
name = "atk"
version = "0.18.2"
@@ -85,6 +228,12 @@ dependencies = [
"system-deps",
]
+[[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.4.0"
@@ -166,6 +315,19 @@ dependencies = [
"objc2 0.6.0",
]
+[[package]]
+name = "blocking"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
+dependencies = [
+ "async-channel",
+ "async-task",
+ "futures-io",
+ "futures-lite",
+ "piper",
+]
+
[[package]]
name = "bongo-cat"
version = "0.0.0"
@@ -177,6 +339,7 @@ dependencies = [
"tauri-build",
"tauri-nspanel",
"tauri-plugin-custom-window",
+ "tauri-plugin-opener",
"tauri-plugin-os",
"tauri-plugin-process",
]
@@ -418,6 +581,15 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "concurrent-queue"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+dependencies = [
+ "crossbeam-utils",
+]
+
[[package]]
name = "convert_case"
version = "0.4.0"
@@ -789,6 +961,33 @@ version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
+[[package]]
+name = "endi"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
+
+[[package]]
+name = "enumflags2"
+version = "0.7.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147"
+dependencies = [
+ "enumflags2_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.100",
+]
+
[[package]]
name = "equivalent"
version = "1.0.2"
@@ -815,6 +1014,33 @@ dependencies = [
"windows-sys 0.59.0",
]
+[[package]]
+name = "event-listener"
+version = "5.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
+dependencies = [
+ "event-listener",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
+
[[package]]
name = "fdeflate"
version = "0.3.7"
@@ -943,6 +1169,19 @@ version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
+[[package]]
+name = "futures-lite"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
[[package]]
name = "futures-macro"
version = "0.3.31"
@@ -1107,7 +1346,7 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed7131e57abbde63513e0e6636f76668a1ca9798dcae2df4e283cae9ee83859e"
dependencies = [
- "rustix",
+ "rustix 1.0.3",
"windows-targets 0.52.6",
]
@@ -1323,6 +1562,12 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+[[package]]
+name = "hermit-abi"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+
[[package]]
name = "hex"
version = "0.4.3"
@@ -1649,6 +1894,25 @@ version = "2.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
+[[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 = "itoa"
version = "0.4.8"
@@ -1818,6 +2082,12 @@ dependencies = [
"libc",
]
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
+
[[package]]
name = "linux-raw-sys"
version = "0.9.3"
@@ -1980,6 +2250,19 @@ version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
+[[package]]
+name = "nix"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
+dependencies = [
+ "bitflags 2.9.0",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+ "memoffset",
+]
+
[[package]]
name = "nodrop"
version = "0.1.14"
@@ -2278,12 +2561,34 @@ version = "1.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2806eaa3524762875e21c3dcd057bc4b7bfa01ce4da8d46be1cd43649e1cc6b"
+[[package]]
+name = "open"
+version = "5.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95"
+dependencies = [
+ "dunce",
+ "is-wsl",
+ "libc",
+ "pathdiff",
+]
+
[[package]]
name = "option-ext"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+[[package]]
+name = "ordered-stream"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
[[package]]
name = "os_info"
version = "3.10.0"
@@ -2320,6 +2625,12 @@ dependencies = [
"system-deps",
]
+[[package]]
+name = "parking"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
+
[[package]]
name = "parking_lot"
version = "0.12.3"
@@ -2343,6 +2654,12 @@ dependencies = [
"windows-targets 0.52.6",
]
+[[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.1"
@@ -2495,6 +2812,17 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+[[package]]
+name = "piper"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
+dependencies = [
+ "atomic-waker",
+ "fastrand",
+ "futures-io",
+]
+
[[package]]
name = "pkg-config"
version = "0.3.32"
@@ -2527,6 +2855,21 @@ dependencies = [
"miniz_oxide",
]
+[[package]]
+name = "polling"
+version = "3.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "hermit-abi",
+ "pin-project-lite",
+ "rustix 0.38.44",
+ "tracing",
+ "windows-sys 0.59.0",
+]
+
[[package]]
name = "powerfmt"
version = "0.2.0"
@@ -2844,6 +3187,19 @@ dependencies = [
"semver",
]
+[[package]]
+name = "rustix"
+version = "0.38.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
+dependencies = [
+ "bitflags 2.9.0",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.15",
+ "windows-sys 0.59.0",
+]
+
[[package]]
name = "rustix"
version = "1.0.3"
@@ -2853,7 +3209,7 @@ dependencies = [
"bitflags 2.9.0",
"errno",
"libc",
- "linux-raw-sys",
+ "linux-raw-sys 0.9.3",
"windows-sys 0.59.0",
]
@@ -3105,6 +3461,15 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "simd-adler32"
version = "0.3.7"
@@ -3202,6 +3567,12 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
[[package]]
name = "string_cache"
version = "0.8.9"
@@ -3521,6 +3892,28 @@ dependencies = [
"tauri-plugin",
]
+[[package]]
+name = "tauri-plugin-opener"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fdc6cb608e04b7d2b6d1f21e9444ad49245f6d03465ba53323d692d1ceb1a30"
+dependencies = [
+ "dunce",
+ "glob",
+ "objc2-app-kit",
+ "objc2-foundation 0.3.0",
+ "open",
+ "schemars",
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-plugin",
+ "thiserror 2.0.12",
+ "url",
+ "windows",
+ "zbus",
+]
+
[[package]]
name = "tauri-plugin-os"
version = "2.2.1"
@@ -3644,6 +4037,19 @@ dependencies = [
"toml",
]
+[[package]]
+name = "tempfile"
+version = "3.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf"
+dependencies = [
+ "fastrand",
+ "getrandom 0.3.2",
+ "once_cell",
+ "rustix 1.0.3",
+ "windows-sys 0.59.0",
+]
+
[[package]]
name = "tendril"
version = "0.4.3"
@@ -3860,9 +4266,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
dependencies = [
"pin-project-lite",
+ "tracing-attributes",
"tracing-core",
]
+[[package]]
+name = "tracing-attributes"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.100",
+]
+
[[package]]
name = "tracing-core"
version = "0.1.33"
@@ -3912,6 +4330,17 @@ version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
+[[package]]
+name = "uds_windows"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
+dependencies = [
+ "memoffset",
+ "tempfile",
+ "winapi",
+]
+
[[package]]
name = "unic-char-property"
version = "0.9.0"
@@ -4831,6 +5260,16 @@ dependencies = [
"pkg-config",
]
+[[package]]
+name = "xdg-home"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6"
+dependencies = [
+ "libc",
+ "windows-sys 0.59.0",
+]
+
[[package]]
name = "yoke"
version = "0.7.5"
@@ -4855,6 +5294,69 @@ dependencies = [
"synstructure",
]
+[[package]]
+name = "zbus"
+version = "5.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59c333f648ea1b647bc95dc1d34807c8e25ed7a6feff3394034dc4776054b236"
+dependencies = [
+ "async-broadcast",
+ "async-executor",
+ "async-fs",
+ "async-io",
+ "async-lock",
+ "async-process",
+ "async-recursion",
+ "async-task",
+ "async-trait",
+ "blocking",
+ "enumflags2",
+ "event-listener",
+ "futures-core",
+ "futures-lite",
+ "hex",
+ "nix",
+ "ordered-stream",
+ "serde",
+ "serde_repr",
+ "static_assertions",
+ "tracing",
+ "uds_windows",
+ "windows-sys 0.59.0",
+ "winnow 0.7.4",
+ "xdg-home",
+ "zbus_macros",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "5.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f325ad10eb0d0a3eb060203494c3b7ec3162a01a59db75d2deee100339709fc0"
+dependencies = [
+ "proc-macro-crate 3.3.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.100",
+ "zbus_names",
+ "zvariant",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zbus_names"
+version = "4.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97"
+dependencies = [
+ "serde",
+ "static_assertions",
+ "winnow 0.7.4",
+ "zvariant",
+]
+
[[package]]
name = "zerocopy"
version = "0.8.24"
@@ -4917,3 +5419,45 @@ dependencies = [
"quote",
"syn 2.0.100",
]
+
+[[package]]
+name = "zvariant"
+version = "5.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2df9ee044893fcffbdc25de30546edef3e32341466811ca18421e3cd6c5a3ac"
+dependencies = [
+ "endi",
+ "enumflags2",
+ "serde",
+ "static_assertions",
+ "winnow 0.7.4",
+ "zvariant_derive",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "5.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74170caa85b8b84cc4935f2d56a57c7a15ea6185ccdd7eadb57e6edd90f94b2f"
+dependencies = [
+ "proc-macro-crate 3.3.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.100",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_utils"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde",
+ "static_assertions",
+ "syn 2.0.100",
+ "winnow 0.7.4",
+]
diff --git a/Cargo.toml b/Cargo.toml
index 3cfc49e..eefb316 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,14 +1,12 @@
[workspace]
-resolver="2"
-members = [
- "src-tauri"
-]
+resolver = "2"
+members = [ "src-tauri" ]
[workspace.dependencies]
-tauri = "2"
+tauri = "2"
serde = "1"
serde_json = "1"
fs_extra = "1"
-tauri-plugin = { version = "2", features = ["build"] }
+tauri-plugin = { version = "2", features = [ "build" ] }
tauri-nspanel = { git = "https://github.com/ahkohd/tauri-nspanel", branch = "v2" }
-tauri-plugin-custom-window = { path = "./src-tauri/src/plugins/window" }
\ No newline at end of file
+tauri-plugin-custom-window = { path = "./src-tauri/src/plugins/window" }
diff --git a/README.md b/README.md
index 66cecc4..fe8ccc8 100644
--- a/README.md
+++ b/README.md
@@ -15,9 +15,9 @@
/>
-
@@ -36,7 +36,7 @@
+ />
diff --git a/biome.json b/biome.json
deleted file mode 100644
index 96013fb..0000000
--- a/biome.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
- "files": {
- "ignoreUnknown": false,
- "ignore": []
- },
- "formatter": {
- "enabled": true,
- "indentStyle": "tab"
- },
- "organizeImports": {
- "enabled": true
- },
- "linter": {
- "enabled": true,
- "rules": {
- "recommended": true,
- "suspicious": {
- "noConsoleLog": "error"
- },
- "correctness": {
- "noUnusedVariables": "error",
- "noUnusedImports": "error",
- "useExhaustiveDependencies": "off"
- },
- "nursery": {
- "useSortedClasses": {
- "level": "error",
- "fix": "safe"
- }
- },
- "style": {
- "noUnusedTemplateLiteral": {
- "level": "error",
- "fix": "safe"
- },
- "useTemplate": {
- "level": "error",
- "fix": "safe"
- },
- "useSelfClosingElements": {
- "level": "error",
- "fix": "safe"
- }
- },
- "a11y": {
- "useAltText": "off"
- }
- }
- },
- "javascript": {
- "formatter": {
- "quoteStyle": "double"
- }
- }
-}
diff --git a/eslint.config.ts b/eslint.config.ts
new file mode 100644
index 0000000..8fb5ac4
--- /dev/null
+++ b/eslint.config.ts
@@ -0,0 +1,12 @@
+import antfu from '@antfu/eslint-config'
+
+export default antfu({
+ formatters: true,
+ unocss: true,
+ rules: {
+ 'antfu/if-newline': 'off',
+ 'style/brace-style': ['error', '1tbs'],
+ 'ts/no-use-before-define': 'off',
+ 'unused-imports/no-unused-imports': 'error',
+ },
+})
diff --git a/index.html b/index.html
index 313fe05..d93c193 100644
--- a/index.html
+++ b/index.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -10,7 +10,7 @@
-
-
+
+
diff --git a/package.json b/package.json
index 34a8408..864f592 100644
--- a/package.json
+++ b/package.json
@@ -1,64 +1,66 @@
{
- "name": "bongo-cat",
- "private": true,
- "author": {
- "name": "ayangweb",
- "email": "ayangweb@foxmail.com"
- },
- "version": "0.0.0",
- "type": "module",
- "scripts": {
- "dev": "run-s build:icon dev:vite",
- "build": "run-s build:*",
- "dev:vite": "vite",
- "build:vite": "vite build",
- "build:icon": "tauri icon src-tauri/assets/logo.png",
- "preview": "vite preview",
- "tauri": "tauri",
- "lint": "biome check --write src",
- "preinstall": "npx only-allow pnpm",
- "prepare": "simple-git-hooks",
- "release": "release-it"
- },
- "dependencies": {
- "@tauri-apps/api": "^2.4.0",
- "@tauri-apps/plugin-os": "^2.2.1",
- "@tauri-apps/plugin-process": "^2.2.0",
- "@unocss/reset": "66.1.0-beta.7",
- "pixi-live2d-display": "^0.4.0",
- "pixi.js": "^6.5.10",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "react-router-dom": "^7.4.0"
- },
- "devDependencies": {
- "@biomejs/biome": "1.9.4",
- "@commitlint/cli": "^19.8.0",
- "@commitlint/config-conventional": "^19.8.0",
- "@tauri-apps/cli": "^2.4.0",
- "@types/node": "^22.13.14",
- "@types/react": "^18.3.20",
- "@types/react-dom": "^18.3.5",
- "@unocss/preset-rem-to-px": "66.1.0-beta.7",
- "@vitejs/plugin-react": "^4.3.4",
- "lint-staged": "^15.5.0",
- "npm-run-all": "^4.1.5",
- "release-it": "^18.1.2",
- "simple-git-hooks": "^2.12.1",
- "typescript": "~5.6.3",
- "unocss": "66.1.0-beta.7",
- "vite": "^6.2.3"
- },
- "pnpm": {
- "patchedDependencies": {
- "pixi-live2d-display": "patches/pixi-live2d-display.patch"
- }
- },
- "simple-git-hooks": {
- "commit-msg": "npx --no-install commitlint -e",
- "pre-commit": "npx lint-staged"
- },
- "lint-staged": {
- "**.{ts,tsx,json}": ["biome check --apply --no-errors-on-unmatched"]
- }
+ "name": "bongo-cat",
+ "type": "module",
+ "version": "0.0.0",
+ "private": true,
+ "author": {
+ "name": "ayangweb",
+ "email": "ayangweb@foxmail.com"
+ },
+ "scripts": {
+ "dev": "run-s build:icon dev:vite",
+ "build": "run-s build:*",
+ "dev:vite": "vite",
+ "build:vite": "vite build",
+ "build:icon": "tsx scripts/buildIcon.ts",
+ "preview": "vite preview",
+ "tauri": "tauri",
+ "lint": "eslint --fix",
+ "preinstall": "npx only-allow pnpm",
+ "prepare": "simple-git-hooks",
+ "release": "release-it"
+ },
+ "dependencies": {
+ "@tauri-apps/api": "^2.4.0",
+ "@tauri-apps/plugin-opener": "~2.2.6",
+ "@tauri-apps/plugin-os": "^2.2.1",
+ "@tauri-apps/plugin-process": "^2.2.0",
+ "@unocss/reset": "66.1.0-beta.7",
+ "pixi-live2d-display": "^0.4.0",
+ "pixi.js": "^6.5.10",
+ "vue": "^3.5.13",
+ "vue-router": "^4.5.0"
+ },
+ "devDependencies": {
+ "@antfu/eslint-config": "^4.11.0",
+ "@commitlint/cli": "^19.8.0",
+ "@commitlint/config-conventional": "^19.8.0",
+ "@tauri-apps/cli": "^2.4.0",
+ "@types/node": "^22.13.14",
+ "@unocss/eslint-plugin": "^66.0.0",
+ "@unocss/preset-rem-to-px": "66.1.0-beta.7",
+ "@vitejs/plugin-vue": "^5.2.3",
+ "eslint": "^9.23.0",
+ "eslint-plugin-format": "^1.0.1",
+ "lint-staged": "^15.5.0",
+ "npm-run-all": "^4.1.5",
+ "release-it": "^18.1.2",
+ "simple-git-hooks": "^2.12.1",
+ "tsx": "^4.19.3",
+ "typescript": "~5.6.3",
+ "unocss": "66.1.0-beta.7",
+ "vite": "^6.2.3"
+ },
+ "pnpm": {
+ "patchedDependencies": {
+ "pixi-live2d-display": "patches/pixi-live2d-display.patch"
+ }
+ },
+ "simple-git-hooks": {
+ "commit-msg": "npx --no-install commitlint -e",
+ "pre-commit": "npx lint-staged"
+ },
+ "lint-staged": {
+ "*": "eslint --fix"
+ }
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 17d3f85..3faf2eb 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16,6 +16,9 @@ importers:
'@tauri-apps/api':
specifier: ^2.4.0
version: 2.4.0
+ '@tauri-apps/plugin-opener':
+ specifier: ~2.2.6
+ version: 2.2.6
'@tauri-apps/plugin-os':
specifier: ^2.2.1
version: 2.2.1
@@ -31,19 +34,16 @@ importers:
pixi.js:
specifier: ^6.5.10
version: 6.5.10
- react:
- specifier: ^18.3.1
- version: 18.3.1
- react-dom:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
- react-router-dom:
- specifier: ^7.4.0
- version: 7.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ vue:
+ specifier: ^3.5.13
+ version: 3.5.13(typescript@5.6.3)
+ vue-router:
+ specifier: ^4.5.0
+ version: 4.5.0(vue@3.5.13(typescript@5.6.3))
devDependencies:
- '@biomejs/biome':
- specifier: 1.9.4
- version: 1.9.4
+ '@antfu/eslint-config':
+ specifier: ^4.11.0
+ version: 4.11.0(@typescript-eslint/utils@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(@unocss/eslint-plugin@66.0.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint-plugin-format@1.0.1(eslint@9.23.0(jiti@2.4.2)))(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
'@commitlint/cli':
specifier: ^19.8.0
version: 19.8.0(@types/node@22.13.14)(typescript@5.6.3)
@@ -56,18 +56,21 @@ importers:
'@types/node':
specifier: ^22.13.14
version: 22.13.14
- '@types/react':
- specifier: ^18.3.20
- version: 18.3.20
- '@types/react-dom':
- specifier: ^18.3.5
- version: 18.3.5(@types/react@18.3.20)
+ '@unocss/eslint-plugin':
+ specifier: ^66.0.0
+ version: 66.0.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
'@unocss/preset-rem-to-px':
specifier: 66.1.0-beta.7
version: 66.1.0-beta.7
- '@vitejs/plugin-react':
- specifier: ^4.3.4
- version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0))
+ '@vitejs/plugin-vue':
+ specifier: ^5.2.3
+ version: 5.2.3(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))
+ eslint:
+ specifier: ^9.23.0
+ version: 9.23.0(jiti@2.4.2)
+ eslint-plugin-format:
+ specifier: ^1.0.1
+ version: 1.0.1(eslint@9.23.0(jiti@2.4.2))
lint-staged:
specifier: ^15.5.0
version: 15.5.0
@@ -80,15 +83,18 @@ importers:
simple-git-hooks:
specifier: ^2.12.1
version: 2.12.1
+ tsx:
+ specifier: ^4.19.3
+ version: 4.19.3
typescript:
specifier: ~5.6.3
version: 5.6.3
unocss:
specifier: 66.1.0-beta.7
- version: 66.1.0-beta.7(postcss@8.5.3)(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))
+ version: 66.1.0-beta.7(postcss@8.5.3)(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))
vite:
specifier: ^6.2.3
- version: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0)
+ version: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
packages:
@@ -96,6 +102,55 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
+ '@antfu/eslint-config@4.11.0':
+ resolution: {integrity: sha512-KMLIrZflEFsOEF/N0Xl8iVaheLTdgT3gAwXVzdG5Ng8ieNhBsRsaThnqI7of10kh6psSBLJ6SkNK+ZF98fQIXQ==}
+ hasBin: true
+ peerDependencies:
+ '@eslint-react/eslint-plugin': ^1.19.0
+ '@prettier/plugin-xml': ^3.4.1
+ '@unocss/eslint-plugin': '>=0.50.0'
+ astro-eslint-parser: ^1.0.2
+ eslint: ^9.10.0
+ eslint-plugin-astro: ^1.2.0
+ eslint-plugin-format: '>=0.1.0'
+ eslint-plugin-react-hooks: ^5.2.0
+ eslint-plugin-react-refresh: ^0.4.19
+ eslint-plugin-solid: ^0.14.3
+ eslint-plugin-svelte: '>=2.35.1'
+ eslint-plugin-vuejs-accessibility: ^2.4.1
+ prettier-plugin-astro: ^0.14.0
+ prettier-plugin-slidev: ^1.0.5
+ svelte-eslint-parser: '>=0.37.0'
+ peerDependenciesMeta:
+ '@eslint-react/eslint-plugin':
+ optional: true
+ '@prettier/plugin-xml':
+ optional: true
+ '@unocss/eslint-plugin':
+ optional: true
+ astro-eslint-parser:
+ optional: true
+ eslint-plugin-astro:
+ optional: true
+ eslint-plugin-format:
+ optional: true
+ eslint-plugin-react-hooks:
+ optional: true
+ eslint-plugin-react-refresh:
+ optional: true
+ eslint-plugin-solid:
+ optional: true
+ eslint-plugin-svelte:
+ optional: true
+ eslint-plugin-vuejs-accessibility:
+ optional: true
+ prettier-plugin-astro:
+ optional: true
+ prettier-plugin-slidev:
+ optional: true
+ svelte-eslint-parser:
+ optional: true
+
'@antfu/install-pkg@1.0.0':
resolution: {integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==}
@@ -106,36 +161,6 @@ packages:
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.26.8':
- resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/core@7.26.10':
- resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/generator@7.27.0':
- resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-compilation-targets@7.27.0':
- resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-imports@7.25.9':
- resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-transforms@7.26.0':
- resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- '@babel/helper-plugin-utils@7.26.5':
- resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-string-parser@7.25.9':
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
@@ -144,95 +169,20 @@ packages:
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-option@7.25.9':
- resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helpers@7.27.0':
- resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==}
- engines: {node: '>=6.9.0'}
-
'@babel/parser@7.27.0':
resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/plugin-transform-react-jsx-self@7.25.9':
- resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-transform-react-jsx-source@7.25.9':
- resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/template@7.27.0':
- resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/traverse@7.27.0':
- resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==}
- engines: {node: '>=6.9.0'}
-
'@babel/types@7.27.0':
resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
engines: {node: '>=6.9.0'}
- '@biomejs/biome@1.9.4':
- resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==}
- engines: {node: '>=14.21.3'}
- hasBin: true
+ '@clack/core@0.4.1':
+ resolution: {integrity: sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==}
- '@biomejs/cli-darwin-arm64@1.9.4':
- resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==}
- engines: {node: '>=14.21.3'}
- cpu: [arm64]
- os: [darwin]
-
- '@biomejs/cli-darwin-x64@1.9.4':
- resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==}
- engines: {node: '>=14.21.3'}
- cpu: [x64]
- os: [darwin]
-
- '@biomejs/cli-linux-arm64-musl@1.9.4':
- resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==}
- engines: {node: '>=14.21.3'}
- cpu: [arm64]
- os: [linux]
-
- '@biomejs/cli-linux-arm64@1.9.4':
- resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==}
- engines: {node: '>=14.21.3'}
- cpu: [arm64]
- os: [linux]
-
- '@biomejs/cli-linux-x64-musl@1.9.4':
- resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==}
- engines: {node: '>=14.21.3'}
- cpu: [x64]
- os: [linux]
-
- '@biomejs/cli-linux-x64@1.9.4':
- resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==}
- engines: {node: '>=14.21.3'}
- cpu: [x64]
- os: [linux]
-
- '@biomejs/cli-win32-arm64@1.9.4':
- resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==}
- engines: {node: '>=14.21.3'}
- cpu: [arm64]
- os: [win32]
-
- '@biomejs/cli-win32-x64@1.9.4':
- resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==}
- engines: {node: '>=14.21.3'}
- cpu: [x64]
- os: [win32]
+ '@clack/prompts@0.10.0':
+ resolution: {integrity: sha512-H3rCl6CwW1NdQt9rE3n373t7o5cthPv7yUoxF2ytZvyvlJv89C5RYMJu83Hed8ODgys5vpBU0GKxIRG83jd8NQ==}
'@commitlint/cli@19.8.0':
resolution: {integrity: sha512-t/fCrLVu+Ru01h0DtlgHZXbHV2Y8gKocTR5elDOqIRUzQd0/6hpt2VIWOj9b3NDo7y4/gfxeR2zRtXq/qO6iUg==}
@@ -303,6 +253,32 @@ packages:
resolution: {integrity: sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==}
engines: {node: '>=v18'}
+ '@dprint/formatter@0.3.0':
+ resolution: {integrity: sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==}
+
+ '@dprint/markdown@0.17.8':
+ resolution: {integrity: sha512-ukHFOg+RpG284aPdIg7iPrCYmMs3Dqy43S1ejybnwlJoFiW02b+6Bbr5cfZKFRYNP3dKGM86BqHEnMzBOyLvvA==}
+
+ '@dprint/toml@0.6.4':
+ resolution: {integrity: sha512-bZXIUjxr0LIuHWshZr/5mtUkOrnh0NKVZEF6ACojW5z7zkJu7s9sV2mMXm8XQDqN4cJzdHYUYzUyEGdfciaLJA==}
+
+ '@emnapi/core@1.3.1':
+ resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==}
+
+ '@emnapi/runtime@1.3.1':
+ resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
+
+ '@emnapi/wasi-threads@1.0.1':
+ resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==}
+
+ '@es-joy/jsdoccomment@0.49.0':
+ resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==}
+ engines: {node: '>=16'}
+
+ '@es-joy/jsdoccomment@0.50.0':
+ resolution: {integrity: sha512-+zZymuVLH6zVwXPtCAtC+bDymxmEwEqDftdAK+f407IF1bnX49anIxvBhCA1AqUIfD6egj1jM1vUnSuijjNyYg==}
+ engines: {node: '>=18'}
+
'@esbuild/aix-ppc64@0.25.1':
resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==}
engines: {node: '>=18'}
@@ -453,6 +429,87 @@ packages:
cpu: [x64]
os: [win32]
+ '@eslint-community/eslint-plugin-eslint-comments@4.4.1':
+ resolution: {integrity: sha512-lb/Z/MzbTf7CaVYM9WCFNQZ4L1yi3ev2fsFPF99h31ljhSEyUoyEsKsNWiU+qD1glbYTDJdqgyaLKtyTkkqtuQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
+
+ '@eslint-community/eslint-utils@4.5.1':
+ resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.1':
+ resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/compat@1.2.7':
+ resolution: {integrity: sha512-xvv7hJE32yhegJ8xNAnb62ggiAwTYHBpUCWhRxEj/ksvgDJuSXfoDkBcRYaYNFiJ+jH0IE3K16hd+xXzhBgNbg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^9.10.0
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+
+ '@eslint/config-array@0.19.2':
+ resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/config-helpers@0.2.0':
+ resolution: {integrity: sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.10.0':
+ resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.12.0':
+ resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.3.1':
+ resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.23.0':
+ resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/markdown@6.3.0':
+ resolution: {integrity: sha512-8rj7wmuP5hwXZ0HWoad+WL9nftpN373bCCQz9QL6sA+clZiz7et8Pk0yDAKeo//xLlPONKQ6wCpjkOHCLkbYUw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.6':
+ resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.2.7':
+ resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.6':
+ resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.3.1':
+ resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
+ engines: {node: '>=18.18'}
+
+ '@humanwhocodes/retry@0.4.2':
+ resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
+ engines: {node: '>=18.18'}
+
'@iarna/toml@2.2.5':
resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
@@ -601,6 +658,9 @@ packages:
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+ '@napi-rs/wasm-runtime@0.2.7':
+ resolution: {integrity: sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==}
+
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -926,6 +986,14 @@ packages:
'@pixi/constants': 6.5.10
'@pixi/settings': 6.5.10
+ '@pkgr/core@0.1.2':
+ resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
+ '@pkgr/core@0.2.0':
+ resolution: {integrity: sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
'@pnpm/config.env-replace@1.1.0':
resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
engines: {node: '>=12.22.0'}
@@ -1056,6 +1124,12 @@ packages:
resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
engines: {node: '>=18'}
+ '@stylistic/eslint-plugin@4.2.0':
+ resolution: {integrity: sha512-8hXezgz7jexGHdo5WN6JBEIPHCSFyyU4vgbxevu4YLVS5vl+sxqAAGyXSzfNDyR6xMNSH5H1x67nsXcYMOHtZA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=9.0.0'
+
'@tauri-apps/api@2.4.0':
resolution: {integrity: sha512-F1zXTsmwcCp+ocg6fbzD/YL0OHeSG1eynCag1UNlX2tD5+dlXy7eRbTu9cAcscPjcR7Nix7by2wiv/+VfWUieg==}
@@ -1130,6 +1204,9 @@ packages:
engines: {node: '>= 10'}
hasBin: true
+ '@tauri-apps/plugin-opener@2.2.6':
+ resolution: {integrity: sha512-bSdkuP71ZQRepPOn8BOEdBKYJQvl6+jb160QtJX/i2H9BF6ZySY/kYljh76N2Ne5fJMQRge7rlKoStYQY5Jq1w==}
+
'@tauri-apps/plugin-os@2.2.1':
resolution: {integrity: sha512-cNYpNri2CCc6BaNeB6G/mOtLvg8dFyFQyCUdf2y0K8PIAKGEWdEcu8DECkydU2B+oj4OJihDPD2de5K6cbVl9A==}
@@ -1139,49 +1216,100 @@ packages:
'@tootallnate/quickjs-emscripten@0.23.0':
resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
- '@types/babel__core@7.20.5':
- resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
-
- '@types/babel__generator@7.6.8':
- resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
-
- '@types/babel__template@7.4.4':
- resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
-
- '@types/babel__traverse@7.20.7':
- resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==}
+ '@tybys/wasm-util@0.9.0':
+ resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
'@types/conventional-commits-parser@5.0.1':
resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==}
- '@types/cookie@0.6.0':
- resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
+ '@types/debug@4.1.12':
+ resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
+
+ '@types/doctrine@0.0.9':
+ resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==}
'@types/earcut@2.1.4':
resolution: {integrity: sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==}
+ '@types/eslint@9.6.1':
+ resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
+
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ '@types/estree@1.0.7':
+ resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/mdast@4.0.4':
+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+
+ '@types/ms@2.1.0':
+ resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
+
'@types/node@22.13.14':
resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==}
+ '@types/normalize-package-data@2.4.4':
+ resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+
'@types/offscreencanvas@2019.7.3':
resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==}
'@types/parse-path@7.0.3':
resolution: {integrity: sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==}
- '@types/prop-types@15.7.14':
- resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
+ '@types/unist@3.0.3':
+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
- '@types/react-dom@18.3.5':
- resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==}
+ '@typescript-eslint/eslint-plugin@8.28.0':
+ resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@types/react': ^18.0.0
+ '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
- '@types/react@18.3.20':
- resolution: {integrity: sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==}
+ '@typescript-eslint/parser@8.28.0':
+ resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/scope-manager@8.28.0':
+ resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/type-utils@8.28.0':
+ resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/types@8.28.0':
+ resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@8.28.0':
+ resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/utils@8.28.0':
+ resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/visitor-keys@8.28.0':
+ resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@unocss/astro@66.1.0-beta.7':
resolution: {integrity: sha512-cqimcWi/JNwNIMFHi3MCWUlF64y867AQmXd1/L3ZpGwb45EdYY2T7RsTsFwh4POdDQT1GRKwpAeYObOs8DhExQ==}
@@ -1196,13 +1324,24 @@ packages:
engines: {node: '>=14'}
hasBin: true
+ '@unocss/config@66.0.0':
+ resolution: {integrity: sha512-nFRGop/guBa4jLkrgXjaRDm5JPz4x3YpP10m5IQkHpHwlnHUVn1L9smyPl04ohYWhYn9ZcAHgR28Ih2jwta8hw==}
+ engines: {node: '>=14'}
+
'@unocss/config@66.1.0-beta.7':
resolution: {integrity: sha512-4FILwDExyRgBmZpky9OyJpgjHetCLUzythNhuU6wxBD+6xyfa8aZSrtC27bcMRbjLweXMKFVYk49bSkajmUWMw==}
engines: {node: '>=14'}
+ '@unocss/core@66.0.0':
+ resolution: {integrity: sha512-PdVbSMHNDDkr++9nkqzsZRAkaU84gxMTEgYbqI7dt2p1DXp/5tomVtmMsr2/whXGYKRiUc0xZ3p4Pzraz8TcXA==}
+
'@unocss/core@66.1.0-beta.7':
resolution: {integrity: sha512-l1/r+Jd9TbsRqR/geEdIV/Erzvs26GitTtMVsGcJfuaK1/WWOLtbSHRUDQAB/UpcOOWvuNuAv4UWsXX9Z0DFmw==}
+ '@unocss/eslint-plugin@66.0.0':
+ resolution: {integrity: sha512-KTP6uK0loH9+PkUjL2F4eyuMcUZRiVYkg4zJfqVWNctE1yGkuTUzCvm6ORRvLakajAU8G/Zzvuo1pE94zyZQbw==}
+ engines: {node: '>=14'}
+
'@unocss/extractor-arbitrary-variants@66.1.0-beta.7':
resolution: {integrity: sha512-LD8W9PlpHnFmuynI+TJzdE5z9OKY/tVaagY/Ak1mICFEWveH3jFuN13KH2jaI3/V2KaTwkcY/8tGQJXv8dKWAw==}
@@ -1251,6 +1390,10 @@ packages:
'@unocss/reset@66.1.0-beta.7':
resolution: {integrity: sha512-6GAvIfcuEGkx3rryIHWaF6Uwh0QZJYJTmDog/88X2He8v1yGR2RfrUSrrYUf8KfmLQYSZ/u7WazLwJTVmpvjaQ==}
+ '@unocss/rule-utils@66.0.0':
+ resolution: {integrity: sha512-UJ51YHbwxYTGyj35ugsPlOT4gaa7tCbXdywZ3m5Nn0JgywwIqGmBFyiN9ZjHBHfJuDxmmPd6lxojoBscih/WMQ==}
+ engines: {node: '>=14'}
+
'@unocss/rule-utils@66.1.0-beta.7':
resolution: {integrity: sha512-oJ5lcHRgN1aabsszkBXoiYp0G6LLM011BJoAEfKOeRZ14FGFlg0zuOi/h7aKlVuIvBt6q8BWosJLlZSAQnNypg==}
engines: {node: '>=14'}
@@ -1272,11 +1415,100 @@ packages:
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
- '@vitejs/plugin-react@4.3.4':
- resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
- engines: {node: ^14.18.0 || >=16.0.0}
+ '@unrs/resolver-binding-darwin-arm64@1.3.2':
+ resolution: {integrity: sha512-ddnlXgRi0Fog5+7U5Q1qY62wl95Q1lB4tXQX1UIA9YHmRCHN2twaQW0/4tDVGCvTVEU3xEayU7VemEr7GcBYUw==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@unrs/resolver-binding-darwin-x64@1.3.2':
+ resolution: {integrity: sha512-tnl9xoEeg503jis+LW5cuq4hyLGQyqaoBL8VdPSqcewo/FL1C8POHbzl+AL25TidWYJD+R6bGUTE381kA1sT9w==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@unrs/resolver-binding-freebsd-x64@1.3.2':
+ resolution: {integrity: sha512-zyPn9LFCCjhKPeCtECZaiMUgkYN/VpLb4a9Xv7QriJmTaQxsuDtXqOHifrzUXIhorJTyS+5MOKDuNL0X9I4EHA==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.3.2':
+ resolution: {integrity: sha512-UWx56Wh59Ro69fe+Wfvld4E1n9KG0e3zeouWLn8eSasyi/yVH/7ZW3CLTVFQ81oMKSpXwr5u6RpzttDXZKiO4g==}
+ cpu: [arm]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.3.2':
+ resolution: {integrity: sha512-VYGQXsOEJtfaoY2fOm8Z9ii5idFaHFYlrq3yMFZPaFKo8ufOXYm8hnfru7qetbM9MX116iWaPC0ZX5sK+1Dr+g==}
+ cpu: [arm]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm64-gnu@1.3.2':
+ resolution: {integrity: sha512-3zP420zxJfYPD1rGp2/OTIBxF8E3+/6VqCG+DEO6kkDgBiloa7Y8pw1o7N9BfgAC+VC8FPZsFXhV2lpx+lLRMQ==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm64-musl@1.3.2':
+ resolution: {integrity: sha512-ZWjSleUgr88H4Kei7yT4PlPqySTuWN1OYDDcdbmMCtLWFly3ed+rkrcCb3gvqXdDbYrGOtzv3g2qPEN+WWNv5Q==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.3.2':
+ resolution: {integrity: sha512-p+5OvYJ2UOlpjes3WfBlxyvQok2u26hLyPxLFHkYlfzhZW0juhvBf/tvewz1LDFe30M7zL9cF4OOO5dcvtk+cw==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-s390x-gnu@1.3.2':
+ resolution: {integrity: sha512-yweY7I6SqNn3kvj6vE4PQRo7j8Oz6+NiUhmgciBNAUOuI3Jq0bnW29hbHJdxZRSN1kYkQnSkbbA1tT8VnK816w==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-x64-gnu@1.3.2':
+ resolution: {integrity: sha512-fNIvtzJcGN9hzWTIayrTSk2+KHQrqKbbY+I88xMVMOFV9t4AXha4veJdKaIuuks+2JNr6GuuNdsL7+exywZ32w==}
+ cpu: [x64]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-x64-musl@1.3.2':
+ resolution: {integrity: sha512-OaFEw8WAjiwBGxutQgkWhoAGB5BQqZJ8Gjt/mW+m6DWNjimcxU22uWCuEtfw1CIwLlKPOzsgH0429fWmZcTGkg==}
+ cpu: [x64]
+ os: [linux]
+
+ '@unrs/resolver-binding-wasm32-wasi@1.3.2':
+ resolution: {integrity: sha512-u+sumtO7M0AGQ9bNQrF4BHNpUyxo23FM/yXZfmVAicTQ+mXtG06O7pm5zQUw3Mr4jRs2I84uh4O0hd8bdouuvQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@unrs/resolver-binding-win32-arm64-msvc@1.3.2':
+ resolution: {integrity: sha512-ZAJKy95vmDIHsRFuPNqPQRON8r2mSMf3p9DoX+OMOhvu2c8OXGg8MvhGRf3PNg45ozRrPdXDnngURKgaFfpGoQ==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@unrs/resolver-binding-win32-ia32-msvc@1.3.2':
+ resolution: {integrity: sha512-nQG4YFAS2BLoKVQFK/FrWJvFATI5DQUWQrcPcsWG9Ve5BLLHZuPOrJ2SpAJwLXQrRv6XHSFAYGI8wQpBg/CiFA==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@unrs/resolver-binding-win32-x64-msvc@1.3.2':
+ resolution: {integrity: sha512-XBWpUP0mHya6yGBwNefhyEa6V7HgYKCxEAY4qhTm/PcAQyBPNmjj97VZJOJkVdUsyuuii7xmq0pXWX/c2aToHQ==}
+ cpu: [x64]
+ os: [win32]
+
+ '@vitejs/plugin-vue@5.2.3':
+ resolution: {integrity: sha512-IYSLEQj4LgZZuoVpdSUCw3dIynTWQgPlaRP6iAvMle4My0HdYwr5g5wQAfwOeHQBmYwEkqF70nRpSilr6PoUDg==}
+ engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
- vite: ^4.2.0 || ^5.0.0 || ^6.0.0
+ vite: ^5.0.0 || ^6.0.0
+ vue: ^3.2.25
+
+ '@vitest/eslint-plugin@1.1.38':
+ resolution: {integrity: sha512-KcOTZyVz8RiM5HyriiDVrP1CyBGuhRxle+lBsmSs6NTJEO/8dKVAq+f5vQzHj1/Kc7bYXSDO6yBe62Zx0t5iaw==}
+ peerDependencies:
+ '@typescript-eslint/utils': ^8.24.0
+ eslint: '>= 8.57.0'
+ typescript: '>= 5.0.0'
+ vitest: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ vitest:
+ optional: true
'@vue/compiler-core@3.5.13':
resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
@@ -1290,6 +1522,9 @@ packages:
'@vue/compiler-ssr@3.5.13':
resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==}
+ '@vue/devtools-api@6.6.4':
+ resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
+
'@vue/reactivity@3.5.13':
resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
@@ -1311,6 +1546,11 @@ packages:
resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
hasBin: true
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
acorn@8.14.1:
resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
engines: {node: '>=0.4.0'}
@@ -1320,6 +1560,9 @@ packages:
resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
engines: {node: '>= 14'}
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
@@ -1354,10 +1597,18 @@ packages:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
+ ansis@3.17.0:
+ resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==}
+ engines: {node: '>=14'}
+
anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
+ are-docs-informative@0.0.2:
+ resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
+ engines: {node: '>=14'}
+
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@@ -1415,6 +1666,9 @@ packages:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
+ boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
boxen@8.0.1:
resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==}
engines: {node: '>=18'}
@@ -1422,6 +1676,9 @@ packages:
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
@@ -1431,6 +1688,10 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
+ builtin-modules@4.0.0:
+ resolution: {integrity: sha512-p1n8zyCkt1BVrKNFymOHjcDSAl7oq/gUvfgULv2EblgpPVQlQr9yHnWjg9IJ2MhfwPqiYqMMrr01OY7yQoK2yA==}
+ engines: {node: '>=18.20'}
+
bundle-name@4.1.0:
resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
engines: {node: '>=18'}
@@ -1462,14 +1723,24 @@ packages:
caniuse-lite@1.0.30001707:
resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==}
+ ccount@2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+
chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'}
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
chalk@5.4.1:
resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ character-entities@2.0.2:
+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
+
chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
@@ -1481,6 +1752,10 @@ packages:
resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==}
engines: {node: '>=8'}
+ clean-regexp@1.0.0:
+ resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
+ engines: {node: '>=4'}
+
cli-boxes@3.0.0:
resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
engines: {node: '>=10'}
@@ -1528,6 +1803,10 @@ packages:
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ comment-parser@1.4.1:
+ resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==}
+ engines: {node: '>= 12.0.0'}
+
commondir@1.0.1:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
@@ -1567,12 +1846,8 @@ packages:
engines: {node: '>=16'}
hasBin: true
- convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
-
- cookie@1.0.2:
- resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
- engines: {node: '>=18'}
+ core-js-compat@3.41.0:
+ resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==}
cosmiconfig-typescript-loader@6.1.0:
resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==}
@@ -1603,6 +1878,11 @@ packages:
resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
@@ -1626,6 +1906,14 @@ packages:
resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
engines: {node: '>= 0.4'}
+ debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
debug@4.4.0:
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
engines: {node: '>=6.0'}
@@ -1635,10 +1923,16 @@ packages:
supports-color:
optional: true
+ decode-named-character-reference@1.1.0:
+ resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==}
+
deep-extend@0.6.0:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
default-browser-id@5.0.0:
resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
engines: {node: '>=18'}
@@ -1666,9 +1960,20 @@ packages:
resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
engines: {node: '>= 14'}
+ dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+
destr@2.0.3:
resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
+ devlop@1.1.0:
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+
+ doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+
dot-prop@5.3.0:
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
engines: {node: '>=8'}
@@ -1699,6 +2004,10 @@ packages:
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ enhanced-resolve@5.18.1:
+ resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
+ engines: {node: '>=10.13.0'}
+
entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
@@ -1726,6 +2035,9 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
+ es-module-lexer@1.6.0:
+ resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}
+
es-object-atoms@1.1.1:
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
engines: {node: '>= 0.4'}
@@ -1755,16 +2067,215 @@ packages:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+
escodegen@2.1.0:
resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
engines: {node: '>=6.0'}
hasBin: true
+ eslint-compat-utils@0.5.1:
+ resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-compat-utils@0.6.4:
+ resolution: {integrity: sha512-/u+GQt8NMfXO8w17QendT4gvO5acfxQsAKirAt0LVxDnr2N8YLCVbregaNc/Yhp7NM128DwCaRvr8PLDfeNkQw==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-config-flat-gitignore@2.1.0:
+ resolution: {integrity: sha512-cJzNJ7L+psWp5mXM7jBX+fjHtBvvh06RBlcweMhKD8jWqQw0G78hOW5tpVALGHGFPsBV+ot2H+pdDGJy6CV8pA==}
+ peerDependencies:
+ eslint: ^9.5.0
+
+ eslint-flat-config-utils@2.0.1:
+ resolution: {integrity: sha512-brf0eAgQ6JlKj3bKfOTuuI7VcCZvi8ZCD1MMTVoEvS/d38j8cByZViLFALH/36+eqB17ukmfmKq3bWzGvizejA==}
+
+ eslint-formatting-reporter@0.0.0:
+ resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==}
+ peerDependencies:
+ eslint: '>=8.40.0'
+
+ eslint-import-resolver-node@0.3.9:
+ resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
+
+ eslint-json-compat-utils@0.2.1:
+ resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ '@eslint/json': '*'
+ eslint: '*'
+ jsonc-eslint-parser: ^2.4.0
+ peerDependenciesMeta:
+ '@eslint/json':
+ optional: true
+
+ eslint-merge-processors@2.0.0:
+ resolution: {integrity: sha512-sUuhSf3IrJdGooquEUB5TNpGNpBoQccbnaLHsb1XkBLUPPqCNivCpY05ZcpCOiV9uHwO2yxXEWVczVclzMxYlA==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-parser-plain@0.1.1:
+ resolution: {integrity: sha512-KRgd6wuxH4U8kczqPp+Oyk4irThIhHWxgFgLDtpgjUGVIS3wGrJntvZW/p6hHq1T4FOwnOtCNkvAI4Kr+mQ/Hw==}
+
+ eslint-plugin-antfu@3.1.1:
+ resolution: {integrity: sha512-7Q+NhwLfHJFvopI2HBZbSxWXngTwBLKxW1AGXLr2lEGxcEIK/AsDs8pn8fvIizl5aZjBbVbVK5ujmMpBe4Tvdg==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-plugin-command@3.2.0:
+ resolution: {integrity: sha512-PSDOB9k7Wd57pp4HD/l3C1D93pKX8/wQo0kWDI4q6/UpgrfMTyNsavklipgiZqbXl1+VBABY1buCcQE5LDpg5g==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-plugin-es-x@7.8.0:
+ resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=8'
+
+ eslint-plugin-format@1.0.1:
+ resolution: {integrity: sha512-Tdns+CDjS+m7QrM85wwRi2yLae88XiWVdIOXjp9mDII0pmTBQlczPCmjpKnjiUIY3yPZNLqb5Ms/A/JXcBF2Dw==}
+ peerDependencies:
+ eslint: ^8.40.0 || ^9.0.0
+
+ eslint-plugin-import-x@4.9.3:
+ resolution: {integrity: sha512-NrPUarxpFzGpQVXdVWkGttDD8WIxBuM/dRNw5kKFxrlGdjAJ3l8ma0LK5hsK5Qp79GBGM+HY1zYVbHqateTklA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+
+ eslint-plugin-jsdoc@50.6.9:
+ resolution: {integrity: sha512-7/nHu3FWD4QRG8tCVqcv+BfFtctUtEDWc29oeDXB4bwmDM2/r1ndl14AG/2DUntdqH7qmpvdemJKwb3R97/QEw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
+
+ eslint-plugin-jsonc@2.20.0:
+ resolution: {integrity: sha512-FRgCn9Hzk5eKboCbVMrr9QrhM0eO4G+WKH8IFXoaeqhM/2kuWzbStJn4kkr0VWL8J5H8RYZF+Aoam1vlBaZVkw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-plugin-n@17.17.0:
+ resolution: {integrity: sha512-2VvPK7Mo73z1rDFb6pTvkH6kFibAmnTubFq5l83vePxu0WiY1s0LOtj2WHb6Sa40R3w4mnh8GFYbHBQyMlotKw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8.23.0'
+
+ eslint-plugin-no-only-tests@3.3.0:
+ resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==}
+ engines: {node: '>=5.0.0'}
+
+ eslint-plugin-perfectionist@4.10.1:
+ resolution: {integrity: sha512-GXwFfL47RfBLZRGQdrvGZw9Ali2T2GPW8p4Gyj2fyWQ9396R/HgJMf0m9kn7D6WXRwrINfTDGLS+QYIeok9qEg==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ eslint: '>=8.45.0'
+
+ eslint-plugin-pnpm@0.3.1:
+ resolution: {integrity: sha512-vi5iHoELIAlBbX4AW8ZGzU3tUnfxuXhC/NKo3qRcI5o9igbz6zJUqSlQ03bPeMqWIGTPatZnbWsNR1RnlNERNQ==}
+ peerDependencies:
+ eslint: ^9.0.0
+
+ eslint-plugin-regexp@2.7.0:
+ resolution: {integrity: sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==}
+ engines: {node: ^18 || >=20}
+ peerDependencies:
+ eslint: '>=8.44.0'
+
+ eslint-plugin-toml@0.12.0:
+ resolution: {integrity: sha512-+/wVObA9DVhwZB1nG83D2OAQRrcQZXy+drqUnFJKymqnmbnbfg/UPmEMCKrJNcEboUGxUjYrJlgy+/Y930mURQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-plugin-unicorn@57.0.0:
+ resolution: {integrity: sha512-zUYYa6zfNdTeG9BISWDlcLmz16c+2Ck2o5ZDHh0UzXJz3DEP7xjmlVDTzbyV0W+XksgZ0q37WEWzN2D2Ze+g9Q==}
+ engines: {node: '>=18.18'}
+ peerDependencies:
+ eslint: '>=9.20.0'
+
+ eslint-plugin-unused-imports@4.1.4:
+ resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0
+ eslint: ^9.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+
+ eslint-plugin-vue@10.0.0:
+ resolution: {integrity: sha512-XKckedtajqwmaX6u1VnECmZ6xJt+YvlmMzBPZd+/sI3ub2lpYZyFnsyWo7c3nMOQKJQudeyk1lw/JxdgeKT64w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ vue-eslint-parser: ^10.0.0
+
+ eslint-plugin-yml@1.17.0:
+ resolution: {integrity: sha512-Q3LXFRnNpGYAK/PM0BY1Xs0IY1xTLfM0kC986nNQkx1l8tOGz+YS50N6wXkAJkrBpeUN9OxEMB7QJ+9MTDAqIQ==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-processor-vue-blocks@2.0.0:
+ resolution: {integrity: sha512-u4W0CJwGoWY3bjXAuFpc/b6eK3NQEI8MoeW7ritKj3G3z/WtHrKjkqf+wk8mPEy5rlMGS+k6AZYOw2XBoN/02Q==}
+ peerDependencies:
+ '@vue/compiler-sfc': ^3.3.0
+ eslint: '>=9.0.0'
+
+ eslint-scope@8.3.0:
+ resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@4.2.0:
+ resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.23.0:
+ resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.3.0:
+ resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
+ esquery@1.6.0:
+ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
@@ -1803,10 +2314,19 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ fast-diff@1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+
fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
fast-uri@3.0.6:
resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
@@ -1825,6 +2345,10 @@ packages:
resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
engines: {node: '>=18'}
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
filename-reserved-regex@2.0.0:
resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==}
engines: {node: '>=4'}
@@ -1841,14 +2365,29 @@ packages:
resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
engines: {node: '>=8'}
+ find-up-simple@1.0.1:
+ resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
+ engines: {node: '>=18'}
+
find-up@4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
find-up@7.0.0:
resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==}
engines: {node: '>=18'}
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+
for-each@0.3.5:
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
engines: {node: '>= 0.4'}
@@ -1875,10 +2414,6 @@ packages:
functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
- gensync@1.0.0-beta.2:
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
- engines: {node: '>=6.9.0'}
-
get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
@@ -1907,6 +2442,9 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
+ get-tsconfig@4.10.0:
+ resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==}
+
get-uri@6.0.4:
resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==}
engines: {node: '>= 14'}
@@ -1931,6 +2469,10 @@ packages:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
@@ -1939,14 +2481,18 @@ packages:
resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==}
engines: {node: '>=18'}
- globals@11.12.0:
- resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
- engines: {node: '>=4'}
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
globals@15.15.0:
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
engines: {node: '>=18'}
+ globals@16.0.0:
+ resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==}
+ engines: {node: '>=18'}
+
globalthis@1.0.4:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
engines: {node: '>= 0.4'}
@@ -1969,6 +2515,9 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
gzip-size@6.0.0:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
@@ -1981,6 +2530,10 @@ packages:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
@@ -2003,6 +2556,10 @@ packages:
hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+ hosted-git-info@7.0.2:
+ resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
http-proxy-agent@7.0.2:
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
engines: {node: '>= 14'}
@@ -2034,6 +2591,18 @@ packages:
import-meta-resolve@4.1.0:
resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ indent-string@5.0.0:
+ resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
+ engines: {node: '>=12'}
+
+ index-to-position@1.0.0:
+ resolution: {integrity: sha512-sCO7uaLVhRJ25vz1o8s9IFM3nVS4DkuQnyjMwiQPKvQuBYBDmb8H7zx8ki7nVh4HJQOdVWebyvLE0qt+clruxA==}
+ engines: {node: '>=18'}
+
inflight@1.0.6:
resolution: {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.
@@ -2089,6 +2658,10 @@ packages:
resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
engines: {node: '>= 0.4'}
+ is-builtin-module@4.0.0:
+ resolution: {integrity: sha512-rWP3AMAalQSesXO8gleROyL2iKU73SX5Er66losQn9rWOWL4Gef0a/xOEOVqjWGMuR2vHG3FJ8UUmT700O8oFg==}
+ engines: {node: '>=18.20'}
+
is-callable@1.2.7:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
@@ -2271,24 +2844,41 @@ packages:
jsbn@1.1.0:
resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
+ jsdoc-type-pratt-parser@4.1.0:
+ resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==}
+ engines: {node: '>=12.0.0'}
+
+ jsesc@3.0.2:
+ resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
+ engines: {node: '>=6'}
+ hasBin: true
+
jsesc@3.1.0:
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
engines: {node: '>=6'}
hasBin: true
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
json-parse-better-errors@1.0.2:
resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
- json5@2.2.3:
- resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
- engines: {node: '>=6'}
- hasBin: true
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ jsonc-eslint-parser@2.4.0:
+ resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
@@ -2297,6 +2887,9 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
kolorist@1.8.0:
resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
@@ -2308,6 +2901,10 @@ packages:
resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==}
engines: {node: '>=18'}
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
lilconfig@3.1.3:
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
engines: {node: '>=14'}
@@ -2336,6 +2933,10 @@ packages:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: '>=8'}
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
locate-path@7.2.0:
resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2390,12 +2991,11 @@ packages:
resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
engines: {node: '>=18'}
- loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
+ longest-streak@3.1.0:
+ resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
- lru-cache@5.1.1:
- resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
lru-cache@7.18.3:
resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
@@ -2412,10 +3012,46 @@ packages:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
engines: {node: '>=8'}
+ markdown-table@3.0.4:
+ resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
+
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
+ mdast-util-find-and-replace@3.0.2:
+ resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
+
+ mdast-util-from-markdown@2.0.2:
+ resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
+
+ mdast-util-gfm-autolink-literal@2.0.1:
+ resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
+
+ mdast-util-gfm-footnote@2.1.0:
+ resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
+
+ mdast-util-gfm-strikethrough@2.0.0:
+ resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
+
+ mdast-util-gfm-table@2.0.0:
+ resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
+
+ mdast-util-gfm-task-list-item@2.0.0:
+ resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
+
+ mdast-util-gfm@3.1.0:
+ resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
+
+ mdast-util-phrasing@4.1.0:
+ resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
+
+ mdast-util-to-markdown@2.1.2:
+ resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
+
+ mdast-util-to-string@4.0.0:
+ resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
+
mdn-data@2.12.2:
resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
@@ -2434,6 +3070,90 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
+ micromark-core-commonmark@2.0.3:
+ resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
+
+ micromark-extension-gfm-autolink-literal@2.1.0:
+ resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
+
+ micromark-extension-gfm-footnote@2.1.0:
+ resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
+
+ micromark-extension-gfm-strikethrough@2.1.0:
+ resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
+
+ micromark-extension-gfm-table@2.1.1:
+ resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
+
+ micromark-extension-gfm-tagfilter@2.0.0:
+ resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
+
+ micromark-extension-gfm-task-list-item@2.1.0:
+ resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
+
+ micromark-extension-gfm@3.0.0:
+ resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
+
+ micromark-factory-destination@2.0.1:
+ resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
+
+ micromark-factory-label@2.0.1:
+ resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
+
+ micromark-factory-space@2.0.1:
+ resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
+
+ micromark-factory-title@2.0.1:
+ resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
+
+ micromark-factory-whitespace@2.0.1:
+ resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
+
+ micromark-util-character@2.1.1:
+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
+
+ micromark-util-chunked@2.0.1:
+ resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
+
+ micromark-util-classify-character@2.0.1:
+ resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
+
+ micromark-util-combine-extensions@2.0.1:
+ resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
+
+ micromark-util-decode-string@2.0.1:
+ resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
+
+ micromark-util-encode@2.0.1:
+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
+
+ micromark-util-html-tag-name@2.0.1:
+ resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
+
+ micromark-util-normalize-identifier@2.0.1:
+ resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
+
+ micromark-util-resolve-all@2.0.1:
+ resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
+
+ micromark-util-sanitize-uri@2.0.1:
+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
+
+ micromark-util-subtokenize@2.1.0:
+ resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
+
+ micromark-util-symbol@2.0.1:
+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
+
+ micromark-util-types@2.0.2:
+ resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
+
+ micromark@4.0.2:
+ resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
+
micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'}
@@ -2454,9 +3174,21 @@ packages:
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
engines: {node: '>=18'}
+ min-indent@1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+
+ minimatch@10.0.1:
+ resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+ engines: {node: 20 || >=22}
+
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
@@ -2479,6 +3211,13 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ natural-orderby@5.0.0:
+ resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==}
+ engines: {node: '>=18'}
+
netmask@2.0.2:
resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
engines: {node: '>= 0.4.0'}
@@ -2499,6 +3238,10 @@ packages:
normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+ normalize-package-data@6.0.2:
+ resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
@@ -2516,6 +3259,9 @@ packages:
resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
engines: {node: '>=18'}
+ nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -2550,6 +3296,10 @@ packages:
resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
engines: {node: '>=18'}
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
ora@8.1.1:
resolution: {integrity: sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==}
engines: {node: '>=18'}
@@ -2570,6 +3320,10 @@ packages:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
p-limit@4.0.0:
resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2578,6 +3332,10 @@ packages:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
engines: {node: '>=8'}
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
p-locate@6.0.0:
resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2605,6 +3363,14 @@ packages:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
+ parse-gitignore@2.0.0:
+ resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==}
+ engines: {node: '>=14'}
+
+ parse-imports@2.2.1:
+ resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==}
+ engines: {node: '>= 18'}
+
parse-json@4.0.0:
resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
engines: {node: '>=4'}
@@ -2613,6 +3379,10 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
+ parse-json@8.2.0:
+ resolution: {integrity: sha512-eONBZy4hm2AgxjNFd8a4nyDJnzUAH0g34xSQAwWEVGCjdZ4ZL7dKZBfq267GWP/JaS9zW62Xs2FeAdDvpHHJGQ==}
+ engines: {node: '>=18'}
+
parse-ms@4.0.0:
resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
engines: {node: '>=18'}
@@ -2725,14 +3495,38 @@ packages:
pkg-types@2.1.0:
resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==}
+ pluralize@8.0.0:
+ resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
+ engines: {node: '>=4'}
+
+ pnpm-workspace-yaml@0.3.1:
+ resolution: {integrity: sha512-3nW5RLmREmZ8Pm8MbPsO2RM+99RRjYd25ynj3NV0cFsN7CcEl4sDFzgoFmSyduFwxFQ2Qbu3y2UdCh6HlyUOeA==}
+
possible-typed-array-names@1.1.0:
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: '>= 0.4'}
+ postcss-selector-parser@6.1.2:
+ resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
+ engines: {node: '>=4'}
+
postcss@8.5.3:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier-linter-helpers@1.0.0:
+ resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+ engines: {node: '>=6.0.0'}
+
+ prettier@3.5.3:
+ resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
+ engines: {node: '>=14'}
+ hasBin: true
+
pretty-ms@9.2.0:
resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==}
engines: {node: '>=18'}
@@ -2756,6 +3550,10 @@ packages:
punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
pupa@3.1.0:
resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
engines: {node: '>=12.20'}
@@ -2774,40 +3572,18 @@ packages:
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
hasBin: true
- react-dom@18.3.1:
- resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
- peerDependencies:
- react: ^18.3.1
-
- react-refresh@0.14.2:
- resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
- engines: {node: '>=0.10.0'}
-
- react-router-dom@7.4.0:
- resolution: {integrity: sha512-VlksBPf3n2bijPvnA7nkTsXxMAKOj+bWp4R9c3i+bnwlSOFAGOkJkKhzy/OsRkWaBMICqcAl1JDzh9ZSOze9CA==}
- engines: {node: '>=20.0.0'}
- peerDependencies:
- react: '>=18'
- react-dom: '>=18'
-
- react-router@7.4.0:
- resolution: {integrity: sha512-Y2g5ObjkvX3VFeVt+0CIPuYd9PpgqCslG7ASSIdN73LwA1nNWzcMLaoMRJfP3prZFI92svxFwbn7XkLJ+UPQ6A==}
- engines: {node: '>=20.0.0'}
- peerDependencies:
- react: '>=18'
- react-dom: '>=18'
- peerDependenciesMeta:
- react-dom:
- optional: true
-
- react@18.3.1:
- resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
- engines: {node: '>=0.10.0'}
+ read-package-up@11.0.0:
+ resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==}
+ engines: {node: '>=18'}
read-pkg@3.0.0:
resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==}
engines: {node: '>=4'}
+ read-pkg@9.0.1:
+ resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==}
+ engines: {node: '>=18'}
+
readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
@@ -2816,10 +3592,22 @@ packages:
resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
engines: {node: '>= 0.10'}
+ refa@0.12.1:
+ resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
reflect.getprototypeof@1.0.10:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
+ regexp-ast-analysis@0.7.1:
+ resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ regexp-tree@0.1.27:
+ resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
+ hasBin: true
+
regexp.prototype.flags@1.5.4:
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
@@ -2832,6 +3620,10 @@ packages:
resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==}
engines: {node: '>=12'}
+ regjsparser@0.12.0:
+ resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==}
+ hasBin: true
+
release-it@18.1.2:
resolution: {integrity: sha512-HOVRcicehCgoCsPFOu0iCBlEC8GDOoKS5s6ICkWmqomGEoZtRQ88D3RCsI5MciSU8vAQU+aWZW2z57NQNNb74w==}
engines: {node: ^20.9.0 || >=22.0.0}
@@ -2853,6 +3645,9 @@ packages:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
resolve@1.22.10:
resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
engines: {node: '>= 0.4'}
@@ -2907,8 +3702,9 @@ packages:
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
- scheduler@0.23.2:
- resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+ scslre@0.3.0:
+ resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==}
+ engines: {node: ^14.0.0 || >=16.0.0}
semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
@@ -2928,9 +3724,6 @@ packages:
engines: {node: '>=10'}
hasBin: true
- set-cookie-parser@2.7.1:
- resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
-
set-function-length@1.2.2:
resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
engines: {node: '>= 0.4'}
@@ -2996,10 +3789,16 @@ packages:
resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
engines: {node: '>=18'}
+ sisteransi@1.0.5:
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+
slash@5.1.0:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'}
+ slashes@3.0.12:
+ resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
+
slice-ansi@5.0.0:
resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
engines: {node: '>=12'}
@@ -3037,6 +3836,9 @@ packages:
spdx-expression-parse@3.0.1:
resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+ spdx-expression-parse@4.0.0:
+ resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==}
+
spdx-license-ids@3.0.21:
resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==}
@@ -3047,6 +3849,9 @@ packages:
sprintf-js@1.1.3:
resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+ stable-hash@0.0.5:
+ resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==}
+
stdin-discarder@0.2.2:
resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==}
engines: {node: '>=18'}
@@ -3099,10 +3904,18 @@ packages:
resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
engines: {node: '>=18'}
+ strip-indent@4.0.0:
+ resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
+ engines: {node: '>=12'}
+
strip-json-comments@2.0.1:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
engines: {node: '>=0.10.0'}
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
strip-outer@1.0.1:
resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==}
engines: {node: '>=0.10.0'}
@@ -3114,10 +3927,26 @@ packages:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
+ synckit@0.10.3:
+ resolution: {integrity: sha512-R1urvuyiTaWfeCggqEvpDJwAlDVdsT9NM+IP//Tk2x7qHCkSvBk/fwFgw/TLAHzZlrAnnazMcRw0ZD8HlYFTEQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ synckit@0.9.2:
+ resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ tapable@2.2.1:
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ engines: {node: '>=6'}
+
text-extensions@2.4.0:
resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==}
engines: {node: '>=8'}
@@ -3140,6 +3969,10 @@ packages:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
+ toml-eslint-parser@0.10.0:
+ resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
totalist@3.0.1:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
@@ -3148,11 +3981,23 @@ packages:
resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==}
engines: {node: '>=0.10.0'}
+ ts-api-utils@2.1.0:
+ resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
+ engines: {node: '>=18.12'}
+ peerDependencies:
+ typescript: '>=4.8.4'
+
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
- turbo-stream@2.4.0:
- resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==}
+ tsx@4.19.3:
+ resolution: {integrity: sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
type-fest@0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
@@ -3194,6 +4039,9 @@ packages:
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines: {node: '>= 0.4'}
+ unconfig@7.0.0:
+ resolution: {integrity: sha512-G5CJSoG6ZTxgzCJblEfgpdRK2tos9+UdD2WtecDUVfImzQ0hFjwpH5RVvGMhP4pRpC9ML7NrC4qBsBl0Ttj35A==}
+
unconfig@7.3.1:
resolution: {integrity: sha512-LH5WL+un92tGAzWS87k7LkAfwpMdm7V0IXG2FxEjZz/QxiIW5J5LkcrKQThj0aRz6+h/lFmKI9EUXmK/T0bcrw==}
@@ -3212,6 +4060,18 @@ packages:
resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
engines: {node: '>=18'}
+ unist-util-is@6.0.0:
+ resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+
+ unist-util-stringify-position@4.0.0:
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+
+ unist-util-visit-parents@6.0.1:
+ resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+
+ unist-util-visit@5.0.0:
+ resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+
universal-user-agent@7.0.2:
resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==}
@@ -3235,6 +4095,9 @@ packages:
resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==}
engines: {node: '>=18.12.0'}
+ unrs-resolver@1.3.2:
+ resolution: {integrity: sha512-ZKQBC351Ubw0PY8xWhneIfb6dygTQeUHtCcNGd0QB618zabD/WbFMYdRyJ7xeVT+6G82K5v/oyZO0QSHFtbIuw==}
+
update-browserslist-db@1.1.3:
resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
hasBin: true
@@ -3245,6 +4108,9 @@ packages:
resolution: {integrity: sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==}
engines: {node: '>=18'}
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
url-join@5.0.0:
resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -3253,6 +4119,9 @@ packages:
resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==}
engines: {node: '>= 0.4'}
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
@@ -3296,11 +4165,22 @@ packages:
yaml:
optional: true
+ vue-eslint-parser@10.1.1:
+ resolution: {integrity: sha512-bh2Z/Au5slro9QJ3neFYLanZtb1jH+W2bKqGHXAoYD4vZgNG3KeotL7JpPv5xzY4UXUXJl7TrIsnzECH63kd3Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+
vue-flow-layout@0.1.1:
resolution: {integrity: sha512-JdgRRUVrN0Y2GosA0M68DEbKlXMqJ7FQgsK8CjQD2vxvNSqAU6PZEpi4cfcTVtfM2GVOMjHo7GKKLbXxOBqDqA==}
peerDependencies:
vue: ^3.4.37
+ vue-router@4.5.0:
+ resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==}
+ peerDependencies:
+ vue: ^3.2.0
+
vue@3.5.13:
resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
peerDependencies:
@@ -3348,6 +4228,10 @@ packages:
resolution: {integrity: sha512-MS3BzG8QK33dAyqwxfYJCJ03arkwKaddUOvvnnlFdXLudflsQF6I8yAxrLBeQk4yO8wjdH/+ax0YzxJEDrOftg==}
engines: {node: '>=18'}
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
@@ -3367,12 +4251,17 @@ packages:
resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
engines: {node: '>=12'}
+ xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+
y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
- yallist@3.1.1:
- resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+ yaml-eslint-parser@1.3.0:
+ resolution: {integrity: sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==}
+ engines: {node: ^14.17.0 || >=16.0.0}
yaml@2.7.0:
resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==}
@@ -3387,6 +4276,10 @@ packages:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
yocto-queue@1.2.1:
resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
engines: {node: '>=12.20'}
@@ -3399,6 +4292,9 @@ packages:
resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==}
engines: {node: '>=18'}
+ zwitch@2.0.4:
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+
snapshots:
'@ampproject/remapping@2.3.0':
@@ -3406,6 +4302,56 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
+ '@antfu/eslint-config@4.11.0(@typescript-eslint/utils@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(@unocss/eslint-plugin@66.0.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(@vue/compiler-sfc@3.5.13)(eslint-plugin-format@1.0.1(eslint@9.23.0(jiti@2.4.2)))(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@antfu/install-pkg': 1.0.0
+ '@clack/prompts': 0.10.0
+ '@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.23.0(jiti@2.4.2))
+ '@eslint/markdown': 6.3.0
+ '@stylistic/eslint-plugin': 4.2.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/parser': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ '@vitest/eslint-plugin': 1.1.38(@typescript-eslint/utils@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ ansis: 3.17.0
+ cac: 6.7.14
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-config-flat-gitignore: 2.1.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-flat-config-utils: 2.0.1
+ eslint-merge-processors: 2.0.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-antfu: 3.1.1(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-command: 3.2.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-import-x: 4.9.3(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ eslint-plugin-jsdoc: 50.6.9(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-jsonc: 2.20.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-n: 17.17.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-no-only-tests: 3.3.0
+ eslint-plugin-perfectionist: 4.10.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ eslint-plugin-pnpm: 0.3.1(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-regexp: 2.7.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-toml: 0.12.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-unicorn: 57.0.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.23.0(jiti@2.4.2))
+ eslint-plugin-vue: 10.0.0(eslint@9.23.0(jiti@2.4.2))(vue-eslint-parser@10.1.1(eslint@9.23.0(jiti@2.4.2)))
+ eslint-plugin-yml: 1.17.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.13)(eslint@9.23.0(jiti@2.4.2))
+ globals: 16.0.0
+ jsonc-eslint-parser: 2.4.0
+ local-pkg: 1.1.1
+ parse-gitignore: 2.0.0
+ toml-eslint-parser: 0.10.0
+ vue-eslint-parser: 10.1.1(eslint@9.23.0(jiti@2.4.2))
+ yaml-eslint-parser: 1.3.0
+ optionalDependencies:
+ '@unocss/eslint-plugin': 66.0.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ eslint-plugin-format: 1.0.1(eslint@9.23.0(jiti@2.4.2))
+ transitivePeerDependencies:
+ - '@eslint/json'
+ - '@typescript-eslint/utils'
+ - '@vue/compiler-sfc'
+ - supports-color
+ - typescript
+ - vitest
+
'@antfu/install-pkg@1.0.0':
dependencies:
package-manager-detector: 0.2.11
@@ -3419,144 +4365,29 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
- '@babel/compat-data@7.26.8': {}
-
- '@babel/core@7.26.10':
- dependencies:
- '@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.26.2
- '@babel/generator': 7.27.0
- '@babel/helper-compilation-targets': 7.27.0
- '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
- '@babel/helpers': 7.27.0
- '@babel/parser': 7.27.0
- '@babel/template': 7.27.0
- '@babel/traverse': 7.27.0
- '@babel/types': 7.27.0
- convert-source-map: 2.0.0
- debug: 4.4.0
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
- '@babel/generator@7.27.0':
- dependencies:
- '@babel/parser': 7.27.0
- '@babel/types': 7.27.0
- '@jridgewell/gen-mapping': 0.3.8
- '@jridgewell/trace-mapping': 0.3.25
- jsesc: 3.1.0
-
- '@babel/helper-compilation-targets@7.27.0':
- dependencies:
- '@babel/compat-data': 7.26.8
- '@babel/helper-validator-option': 7.25.9
- browserslist: 4.24.4
- lru-cache: 5.1.1
- semver: 6.3.1
-
- '@babel/helper-module-imports@7.25.9':
- dependencies:
- '@babel/traverse': 7.27.0
- '@babel/types': 7.27.0
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)':
- dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-module-imports': 7.25.9
- '@babel/helper-validator-identifier': 7.25.9
- '@babel/traverse': 7.27.0
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-plugin-utils@7.26.5': {}
-
'@babel/helper-string-parser@7.25.9': {}
'@babel/helper-validator-identifier@7.25.9': {}
- '@babel/helper-validator-option@7.25.9': {}
-
- '@babel/helpers@7.27.0':
- dependencies:
- '@babel/template': 7.27.0
- '@babel/types': 7.27.0
-
'@babel/parser@7.27.0':
dependencies:
'@babel/types': 7.27.0
- '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.10)':
- dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
-
- '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.10)':
- dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
-
- '@babel/template@7.27.0':
- dependencies:
- '@babel/code-frame': 7.26.2
- '@babel/parser': 7.27.0
- '@babel/types': 7.27.0
-
- '@babel/traverse@7.27.0':
- dependencies:
- '@babel/code-frame': 7.26.2
- '@babel/generator': 7.27.0
- '@babel/parser': 7.27.0
- '@babel/template': 7.27.0
- '@babel/types': 7.27.0
- debug: 4.4.0
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
-
'@babel/types@7.27.0':
dependencies:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
- '@biomejs/biome@1.9.4':
- optionalDependencies:
- '@biomejs/cli-darwin-arm64': 1.9.4
- '@biomejs/cli-darwin-x64': 1.9.4
- '@biomejs/cli-linux-arm64': 1.9.4
- '@biomejs/cli-linux-arm64-musl': 1.9.4
- '@biomejs/cli-linux-x64': 1.9.4
- '@biomejs/cli-linux-x64-musl': 1.9.4
- '@biomejs/cli-win32-arm64': 1.9.4
- '@biomejs/cli-win32-x64': 1.9.4
+ '@clack/core@0.4.1':
+ dependencies:
+ picocolors: 1.1.1
+ sisteransi: 1.0.5
- '@biomejs/cli-darwin-arm64@1.9.4':
- optional: true
-
- '@biomejs/cli-darwin-x64@1.9.4':
- optional: true
-
- '@biomejs/cli-linux-arm64-musl@1.9.4':
- optional: true
-
- '@biomejs/cli-linux-arm64@1.9.4':
- optional: true
-
- '@biomejs/cli-linux-x64-musl@1.9.4':
- optional: true
-
- '@biomejs/cli-linux-x64@1.9.4':
- optional: true
-
- '@biomejs/cli-win32-arm64@1.9.4':
- optional: true
-
- '@biomejs/cli-win32-x64@1.9.4':
- optional: true
+ '@clack/prompts@0.10.0':
+ dependencies:
+ '@clack/core': 0.4.1
+ picocolors: 1.1.1
+ sisteransi: 1.0.5
'@commitlint/cli@19.8.0(@types/node@22.13.14)(typescript@5.6.3)':
dependencies:
@@ -3668,6 +4499,43 @@ snapshots:
'@types/conventional-commits-parser': 5.0.1
chalk: 5.4.1
+ '@dprint/formatter@0.3.0': {}
+
+ '@dprint/markdown@0.17.8': {}
+
+ '@dprint/toml@0.6.4': {}
+
+ '@emnapi/core@1.3.1':
+ dependencies:
+ '@emnapi/wasi-threads': 1.0.1
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.3.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/wasi-threads@1.0.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@es-joy/jsdoccomment@0.49.0':
+ dependencies:
+ comment-parser: 1.4.1
+ esquery: 1.6.0
+ jsdoc-type-pratt-parser: 4.1.0
+
+ '@es-joy/jsdoccomment@0.50.0':
+ dependencies:
+ '@types/eslint': 9.6.1
+ '@types/estree': 1.0.7
+ '@typescript-eslint/types': 8.28.0
+ comment-parser: 1.4.1
+ esquery: 1.6.0
+ jsdoc-type-pratt-parser: 4.1.0
+
'@esbuild/aix-ppc64@0.25.1':
optional: true
@@ -3743,6 +4611,87 @@ snapshots:
'@esbuild/win32-x64@0.25.1':
optional: true
+ '@eslint-community/eslint-plugin-eslint-comments@4.4.1(eslint@9.23.0(jiti@2.4.2))':
+ dependencies:
+ escape-string-regexp: 4.0.0
+ eslint: 9.23.0(jiti@2.4.2)
+ ignore: 5.3.2
+
+ '@eslint-community/eslint-utils@4.5.1(eslint@9.23.0(jiti@2.4.2))':
+ dependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.1': {}
+
+ '@eslint/compat@1.2.7(eslint@9.23.0(jiti@2.4.2))':
+ optionalDependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+
+ '@eslint/config-array@0.19.2':
+ dependencies:
+ '@eslint/object-schema': 2.1.6
+ debug: 4.4.0
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/config-helpers@0.2.0': {}
+
+ '@eslint/core@0.10.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/core@0.12.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/eslintrc@3.3.1':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.0
+ espree: 10.3.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@9.23.0': {}
+
+ '@eslint/markdown@6.3.0':
+ dependencies:
+ '@eslint/core': 0.10.0
+ '@eslint/plugin-kit': 0.2.7
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-gfm: 3.1.0
+ micromark-extension-gfm: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/object-schema@2.1.6': {}
+
+ '@eslint/plugin-kit@0.2.7':
+ dependencies:
+ '@eslint/core': 0.12.0
+ levn: 0.4.1
+
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.6':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.3.1
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.3.1': {}
+
+ '@humanwhocodes/retry@0.4.2': {}
+
'@iarna/toml@2.2.5': {}
'@iconify/types@2.0.0': {}
@@ -3893,6 +4842,13 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
+ '@napi-rs/wasm-runtime@0.2.7':
+ dependencies:
+ '@emnapi/core': 1.3.1
+ '@emnapi/runtime': 1.3.1
+ '@tybys/wasm-util': 0.9.0
+ optional: true
+
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -4200,6 +5156,10 @@ snapshots:
eventemitter3: 3.1.2
url: 0.11.4
+ '@pkgr/core@0.1.2': {}
+
+ '@pkgr/core@0.2.0': {}
+
'@pnpm/config.env-replace@1.1.0': {}
'@pnpm/network.ca-file@1.0.2':
@@ -4284,6 +5244,18 @@ snapshots:
'@sindresorhus/merge-streams@4.0.0': {}
+ '@stylistic/eslint-plugin@4.2.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-visitor-keys: 4.2.0
+ espree: 10.3.0
+ estraverse: 5.3.0
+ picomatch: 4.0.2
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
'@tauri-apps/api@2.4.0': {}
'@tauri-apps/cli-darwin-arm64@2.4.0':
@@ -4333,6 +5305,10 @@ snapshots:
'@tauri-apps/cli-win32-ia32-msvc': 2.4.0
'@tauri-apps/cli-win32-x64-msvc': 2.4.0
+ '@tauri-apps/plugin-opener@2.2.6':
+ dependencies:
+ '@tauri-apps/api': 2.4.0
+
'@tauri-apps/plugin-os@2.2.1':
dependencies:
'@tauri-apps/api': 2.4.0
@@ -4343,63 +5319,136 @@ snapshots:
'@tootallnate/quickjs-emscripten@0.23.0': {}
- '@types/babel__core@7.20.5':
+ '@tybys/wasm-util@0.9.0':
dependencies:
- '@babel/parser': 7.27.0
- '@babel/types': 7.27.0
- '@types/babel__generator': 7.6.8
- '@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.20.7
-
- '@types/babel__generator@7.6.8':
- dependencies:
- '@babel/types': 7.27.0
-
- '@types/babel__template@7.4.4':
- dependencies:
- '@babel/parser': 7.27.0
- '@babel/types': 7.27.0
-
- '@types/babel__traverse@7.20.7':
- dependencies:
- '@babel/types': 7.27.0
+ tslib: 2.8.1
+ optional: true
'@types/conventional-commits-parser@5.0.1':
dependencies:
'@types/node': 22.13.14
- '@types/cookie@0.6.0': {}
+ '@types/debug@4.1.12':
+ dependencies:
+ '@types/ms': 2.1.0
+
+ '@types/doctrine@0.0.9': {}
'@types/earcut@2.1.4': {}
+ '@types/eslint@9.6.1':
+ dependencies:
+ '@types/estree': 1.0.7
+ '@types/json-schema': 7.0.15
+
'@types/estree@1.0.6': {}
+ '@types/estree@1.0.7': {}
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/mdast@4.0.4':
+ dependencies:
+ '@types/unist': 3.0.3
+
+ '@types/ms@2.1.0': {}
+
'@types/node@22.13.14':
dependencies:
undici-types: 6.20.0
+ '@types/normalize-package-data@2.4.4': {}
+
'@types/offscreencanvas@2019.7.3': {}
'@types/parse-path@7.0.3': {}
- '@types/prop-types@15.7.14': {}
+ '@types/unist@3.0.3': {}
- '@types/react-dom@18.3.5(@types/react@18.3.20)':
+ '@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)':
dependencies:
- '@types/react': 18.3.20
+ '@eslint-community/regexpp': 4.12.1
+ '@typescript-eslint/parser': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/scope-manager': 8.28.0
+ '@typescript-eslint/type-utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/visitor-keys': 8.28.0
+ eslint: 9.23.0(jiti@2.4.2)
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ natural-compare: 1.4.0
+ ts-api-utils: 2.1.0(typescript@5.6.3)
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
- '@types/react@18.3.20':
+ '@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)':
dependencies:
- '@types/prop-types': 15.7.14
- csstype: 3.1.3
+ '@typescript-eslint/scope-manager': 8.28.0
+ '@typescript-eslint/types': 8.28.0
+ '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.6.3)
+ '@typescript-eslint/visitor-keys': 8.28.0
+ debug: 4.4.0
+ eslint: 9.23.0(jiti@2.4.2)
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
- '@unocss/astro@66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))':
+ '@typescript-eslint/scope-manager@8.28.0':
+ dependencies:
+ '@typescript-eslint/types': 8.28.0
+ '@typescript-eslint/visitor-keys': 8.28.0
+
+ '@typescript-eslint/type-utils@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.6.3)
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ debug: 4.4.0
+ eslint: 9.23.0(jiti@2.4.2)
+ ts-api-utils: 2.1.0(typescript@5.6.3)
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@8.28.0': {}
+
+ '@typescript-eslint/typescript-estree@8.28.0(typescript@5.6.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.28.0
+ '@typescript-eslint/visitor-keys': 8.28.0
+ debug: 4.4.0
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.1
+ ts-api-utils: 2.1.0(typescript@5.6.3)
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
+ '@typescript-eslint/scope-manager': 8.28.0
+ '@typescript-eslint/types': 8.28.0
+ '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.6.3)
+ eslint: 9.23.0(jiti@2.4.2)
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/visitor-keys@8.28.0':
+ dependencies:
+ '@typescript-eslint/types': 8.28.0
+ eslint-visitor-keys: 4.2.0
+
+ '@unocss/astro@66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))':
dependencies:
'@unocss/core': 66.1.0-beta.7
'@unocss/reset': 66.1.0-beta.7
- '@unocss/vite': 66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))
+ '@unocss/vite': 66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))
optionalDependencies:
- vite: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0)
+ vite: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
transitivePeerDependencies:
- vue
@@ -4419,13 +5468,33 @@ snapshots:
tinyglobby: 0.2.12
unplugin-utils: 0.2.4
+ '@unocss/config@66.0.0':
+ dependencies:
+ '@unocss/core': 66.0.0
+ unconfig: 7.0.0
+
'@unocss/config@66.1.0-beta.7':
dependencies:
'@unocss/core': 66.1.0-beta.7
unconfig: 7.3.1
+ '@unocss/core@66.0.0': {}
+
'@unocss/core@66.1.0-beta.7': {}
+ '@unocss/eslint-plugin@66.0.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ '@unocss/config': 66.0.0
+ '@unocss/core': 66.0.0
+ '@unocss/rule-utils': 66.0.0
+ magic-string: 0.30.17
+ synckit: 0.9.2
+ transitivePeerDependencies:
+ - eslint
+ - supports-color
+ - typescript
+
'@unocss/extractor-arbitrary-variants@66.1.0-beta.7':
dependencies:
'@unocss/core': 66.1.0-beta.7
@@ -4511,6 +5580,11 @@ snapshots:
'@unocss/reset@66.1.0-beta.7': {}
+ '@unocss/rule-utils@66.0.0':
+ dependencies:
+ '@unocss/core': 66.0.0
+ magic-string: 0.30.17
+
'@unocss/rule-utils@66.1.0-beta.7':
dependencies:
'@unocss/core': 66.1.0-beta.7
@@ -4534,7 +5608,7 @@ snapshots:
dependencies:
'@unocss/core': 66.1.0-beta.7
- '@unocss/vite@66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))':
+ '@unocss/vite@66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))':
dependencies:
'@ampproject/remapping': 2.3.0
'@unocss/config': 66.1.0-beta.7
@@ -4544,20 +5618,68 @@ snapshots:
magic-string: 0.30.17
tinyglobby: 0.2.12
unplugin-utils: 0.2.4
- vite: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0)
+ vite: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
transitivePeerDependencies:
- vue
- '@vitejs/plugin-react@4.3.4(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0))':
+ '@unrs/resolver-binding-darwin-arm64@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-darwin-x64@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-freebsd-x64@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm64-gnu@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm64-musl@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-linux-s390x-gnu@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-linux-x64-gnu@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-linux-x64-musl@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-wasm32-wasi@1.3.2':
dependencies:
- '@babel/core': 7.26.10
- '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10)
- '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10)
- '@types/babel__core': 7.20.5
- react-refresh: 0.14.2
- vite: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0)
- transitivePeerDependencies:
- - supports-color
+ '@napi-rs/wasm-runtime': 0.2.7
+ optional: true
+
+ '@unrs/resolver-binding-win32-arm64-msvc@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-win32-ia32-msvc@1.3.2':
+ optional: true
+
+ '@unrs/resolver-binding-win32-x64-msvc@1.3.2':
+ optional: true
+
+ '@vitejs/plugin-vue@5.2.3(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))':
+ dependencies:
+ vite: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
+ vue: 3.5.13(typescript@5.6.3)
+
+ '@vitest/eslint-plugin@1.1.38(@typescript-eslint/utils@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ eslint: 9.23.0(jiti@2.4.2)
+ optionalDependencies:
+ typescript: 5.6.3
'@vue/compiler-core@3.5.13':
dependencies:
@@ -4589,6 +5711,8 @@ snapshots:
'@vue/compiler-dom': 3.5.13
'@vue/shared': 3.5.13
+ '@vue/devtools-api@6.6.4': {}
+
'@vue/reactivity@3.5.13':
dependencies:
'@vue/shared': 3.5.13
@@ -4618,10 +5742,21 @@ snapshots:
jsonparse: 1.3.1
through: 2.3.8
+ acorn-jsx@5.3.2(acorn@8.14.1):
+ dependencies:
+ acorn: 8.14.1
+
acorn@8.14.1: {}
agent-base@7.1.3: {}
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
ajv@8.17.1:
dependencies:
fast-deep-equal: 3.1.3
@@ -4655,11 +5790,15 @@ snapshots:
ansi-styles@6.2.1: {}
+ ansis@3.17.0: {}
+
anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
+ are-docs-informative@0.0.2: {}
+
argparse@2.0.1: {}
array-buffer-byte-length@1.0.2:
@@ -4716,6 +5855,8 @@ snapshots:
binary-extensions@2.3.0: {}
+ boolbase@1.0.0: {}
+
boxen@8.0.1:
dependencies:
ansi-align: 3.0.1
@@ -4732,6 +5873,10 @@ snapshots:
balanced-match: 1.0.2
concat-map: 0.0.1
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
braces@3.0.3:
dependencies:
fill-range: 7.1.1
@@ -4743,6 +5888,8 @@ snapshots:
node-releases: 2.0.19
update-browserslist-db: 1.1.3(browserslist@4.24.4)
+ builtin-modules@4.0.0: {}
+
bundle-name@4.1.0:
dependencies:
run-applescript: 7.0.0
@@ -4772,14 +5919,23 @@ snapshots:
caniuse-lite@1.0.30001707: {}
+ ccount@2.0.1: {}
+
chalk@2.4.2:
dependencies:
ansi-styles: 3.2.1
escape-string-regexp: 1.0.5
supports-color: 5.5.0
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
chalk@5.4.1: {}
+ character-entities@2.0.2: {}
+
chardet@0.7.0: {}
chokidar@3.6.0:
@@ -4796,6 +5952,10 @@ snapshots:
ci-info@4.2.0: {}
+ clean-regexp@1.0.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
cli-boxes@3.0.0: {}
cli-cursor@5.0.0:
@@ -4835,6 +5995,8 @@ snapshots:
commander@2.20.3: {}
+ comment-parser@1.4.1: {}
+
commondir@1.0.1: {}
compare-func@2.0.0:
@@ -4877,9 +6039,9 @@ snapshots:
meow: 12.1.1
split2: 4.2.0
- convert-source-map@2.0.0: {}
-
- cookie@1.0.2: {}
+ core-js-compat@3.41.0:
+ dependencies:
+ browserslist: 4.24.4
cosmiconfig-typescript-loader@6.1.0(@types/node@22.13.14)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3):
dependencies:
@@ -4916,6 +6078,8 @@ snapshots:
mdn-data: 2.12.2
source-map-js: 1.2.1
+ cssesc@3.0.0: {}
+
csstype@3.1.3: {}
dargs@8.1.0: {}
@@ -4940,12 +6104,22 @@ snapshots:
es-errors: 1.3.0
is-data-view: 1.0.2
+ debug@3.2.7:
+ dependencies:
+ ms: 2.1.3
+
debug@4.4.0:
dependencies:
ms: 2.1.3
+ decode-named-character-reference@1.1.0:
+ dependencies:
+ character-entities: 2.0.2
+
deep-extend@0.6.0: {}
+ deep-is@0.1.4: {}
+
default-browser-id@5.0.0: {}
default-browser@5.2.1:
@@ -4975,8 +6149,18 @@ snapshots:
escodegen: 2.1.0
esprima: 4.0.1
+ dequal@2.0.3: {}
+
destr@2.0.3: {}
+ devlop@1.1.0:
+ dependencies:
+ dequal: 2.0.3
+
+ doctrine@3.0.0:
+ dependencies:
+ esutils: 2.0.3
+
dot-prop@5.3.0:
dependencies:
is-obj: 2.0.0
@@ -5003,6 +6187,11 @@ snapshots:
emoji-regex@8.0.0: {}
+ enhanced-resolve@5.18.1:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+
entities@4.5.0: {}
env-paths@2.2.1: {}
@@ -5071,6 +6260,8 @@ snapshots:
es-errors@1.3.0: {}
+ es-module-lexer@1.6.0: {}
+
es-object-atoms@1.1.1:
dependencies:
es-errors: 1.3.0
@@ -5122,6 +6313,10 @@ snapshots:
escape-string-regexp@1.0.5: {}
+ escape-string-regexp@4.0.0: {}
+
+ escape-string-regexp@5.0.0: {}
+
escodegen@2.1.0:
dependencies:
esprima: 4.0.1
@@ -5130,8 +6325,308 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
+ eslint-compat-utils@0.5.1(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+ semver: 7.7.1
+
+ eslint-compat-utils@0.6.4(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+ semver: 7.7.1
+
+ eslint-config-flat-gitignore@2.1.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@eslint/compat': 1.2.7(eslint@9.23.0(jiti@2.4.2))
+ eslint: 9.23.0(jiti@2.4.2)
+
+ eslint-flat-config-utils@2.0.1:
+ dependencies:
+ pathe: 2.0.3
+
+ eslint-formatting-reporter@0.0.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+ prettier-linter-helpers: 1.0.0
+
+ eslint-import-resolver-node@0.3.9:
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.16.1
+ resolve: 1.22.10
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-json-compat-utils@0.2.1(eslint@9.23.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0):
+ dependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+ esquery: 1.6.0
+ jsonc-eslint-parser: 2.4.0
+
+ eslint-merge-processors@2.0.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+
+ eslint-parser-plain@0.1.1: {}
+
+ eslint-plugin-antfu@3.1.1(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+
+ eslint-plugin-command@3.2.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@es-joy/jsdoccomment': 0.50.0
+ eslint: 9.23.0(jiti@2.4.2)
+
+ eslint-plugin-es-x@7.8.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
+ '@eslint-community/regexpp': 4.12.1
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-compat-utils: 0.5.1(eslint@9.23.0(jiti@2.4.2))
+
+ eslint-plugin-format@1.0.1(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@dprint/formatter': 0.3.0
+ '@dprint/markdown': 0.17.8
+ '@dprint/toml': 0.6.4
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-formatting-reporter: 0.0.0(eslint@9.23.0(jiti@2.4.2))
+ eslint-parser-plain: 0.1.1
+ prettier: 3.5.3
+ synckit: 0.9.2
+
+ eslint-plugin-import-x@4.9.3(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3):
+ dependencies:
+ '@types/doctrine': 0.0.9
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ debug: 4.4.0
+ doctrine: 3.0.0
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-import-resolver-node: 0.3.9
+ get-tsconfig: 4.10.0
+ is-glob: 4.0.3
+ minimatch: 10.0.1
+ semver: 7.7.1
+ stable-hash: 0.0.5
+ tslib: 2.8.1
+ unrs-resolver: 1.3.2
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ eslint-plugin-jsdoc@50.6.9(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@es-joy/jsdoccomment': 0.49.0
+ are-docs-informative: 0.0.2
+ comment-parser: 1.4.1
+ debug: 4.4.0
+ escape-string-regexp: 4.0.0
+ eslint: 9.23.0(jiti@2.4.2)
+ espree: 10.3.0
+ esquery: 1.6.0
+ parse-imports: 2.2.1
+ semver: 7.7.1
+ spdx-expression-parse: 4.0.0
+ synckit: 0.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-jsonc@2.20.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-compat-utils: 0.6.4(eslint@9.23.0(jiti@2.4.2))
+ eslint-json-compat-utils: 0.2.1(eslint@9.23.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0)
+ espree: 10.3.0
+ graphemer: 1.4.0
+ jsonc-eslint-parser: 2.4.0
+ natural-compare: 1.4.0
+ synckit: 0.10.3
+ transitivePeerDependencies:
+ - '@eslint/json'
+
+ eslint-plugin-n@17.17.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
+ enhanced-resolve: 5.18.1
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-plugin-es-x: 7.8.0(eslint@9.23.0(jiti@2.4.2))
+ get-tsconfig: 4.10.0
+ globals: 15.15.0
+ ignore: 5.3.2
+ minimatch: 9.0.5
+ semver: 7.7.1
+
+ eslint-plugin-no-only-tests@3.3.0: {}
+
+ eslint-plugin-perfectionist@4.10.1(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3):
+ dependencies:
+ '@typescript-eslint/types': 8.28.0
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+ eslint: 9.23.0(jiti@2.4.2)
+ natural-orderby: 5.0.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ eslint-plugin-pnpm@0.3.1(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+ find-up-simple: 1.0.1
+ jsonc-eslint-parser: 2.4.0
+ pathe: 2.0.3
+ pnpm-workspace-yaml: 0.3.1
+ tinyglobby: 0.2.12
+ yaml-eslint-parser: 1.3.0
+
+ eslint-plugin-regexp@2.7.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
+ '@eslint-community/regexpp': 4.12.1
+ comment-parser: 1.4.1
+ eslint: 9.23.0(jiti@2.4.2)
+ jsdoc-type-pratt-parser: 4.1.0
+ refa: 0.12.1
+ regexp-ast-analysis: 0.7.1
+ scslre: 0.3.0
+
+ eslint-plugin-toml@0.12.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ debug: 4.4.0
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-compat-utils: 0.6.4(eslint@9.23.0(jiti@2.4.2))
+ lodash: 4.17.21
+ toml-eslint-parser: 0.10.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-unicorn@57.0.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@babel/helper-validator-identifier': 7.25.9
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
+ ci-info: 4.2.0
+ clean-regexp: 1.0.0
+ core-js-compat: 3.41.0
+ eslint: 9.23.0(jiti@2.4.2)
+ esquery: 1.6.0
+ globals: 15.15.0
+ indent-string: 5.0.0
+ is-builtin-module: 4.0.0
+ jsesc: 3.1.0
+ pluralize: 8.0.0
+ read-package-up: 11.0.0
+ regexp-tree: 0.1.27
+ regjsparser: 0.12.0
+ semver: 7.7.1
+ strip-indent: 4.0.0
+
+ eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.23.0(jiti@2.4.2)
+ optionalDependencies:
+ '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.23.0(jiti@2.4.2))(typescript@5.6.3)
+
+ eslint-plugin-vue@10.0.0(eslint@9.23.0(jiti@2.4.2))(vue-eslint-parser@10.1.1(eslint@9.23.0(jiti@2.4.2))):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
+ eslint: 9.23.0(jiti@2.4.2)
+ natural-compare: 1.4.0
+ nth-check: 2.1.1
+ postcss-selector-parser: 6.1.2
+ semver: 7.7.1
+ vue-eslint-parser: 10.1.1(eslint@9.23.0(jiti@2.4.2))
+ xml-name-validator: 4.0.0
+
+ eslint-plugin-yml@1.17.0(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ debug: 4.4.0
+ escape-string-regexp: 4.0.0
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-compat-utils: 0.6.4(eslint@9.23.0(jiti@2.4.2))
+ natural-compare: 1.4.0
+ yaml-eslint-parser: 1.3.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.13)(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ '@vue/compiler-sfc': 3.5.13
+ eslint: 9.23.0(jiti@2.4.2)
+
+ eslint-scope@8.3.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.2.0: {}
+
+ eslint@9.23.0(jiti@2.4.2):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/config-array': 0.19.2
+ '@eslint/config-helpers': 0.2.0
+ '@eslint/core': 0.12.0
+ '@eslint/eslintrc': 3.3.1
+ '@eslint/js': 9.23.0
+ '@eslint/plugin-kit': 0.2.7
+ '@humanfs/node': 0.16.6
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.2
+ '@types/estree': 1.0.7
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.3.0
+ eslint-visitor-keys: 4.2.0
+ espree: 10.3.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ 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.4
+ optionalDependencies:
+ jiti: 2.4.2
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.3.0:
+ dependencies:
+ acorn: 8.14.1
+ acorn-jsx: 5.3.2(acorn@8.14.1)
+ eslint-visitor-keys: 4.2.0
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.14.1
+ acorn-jsx: 5.3.2(acorn@8.14.1)
+ eslint-visitor-keys: 3.4.3
+
esprima@4.0.1: {}
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
estraverse@5.3.0: {}
estree-walker@2.0.2: {}
@@ -5181,6 +6676,8 @@ snapshots:
fast-deep-equal@3.1.3: {}
+ fast-diff@1.3.0: {}
+
fast-glob@3.3.3:
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -5189,6 +6686,10 @@ snapshots:
merge2: 1.4.1
micromatch: 4.0.8
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
fast-uri@3.0.6: {}
fastq@1.19.1:
@@ -5203,6 +6704,10 @@ snapshots:
dependencies:
is-unicode-supported: 2.1.0
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
filename-reserved-regex@2.0.0: {}
filenamify@4.3.0:
@@ -5221,17 +6726,31 @@ snapshots:
make-dir: 3.1.0
pkg-dir: 4.2.0
+ find-up-simple@1.0.1: {}
+
find-up@4.1.0:
dependencies:
locate-path: 5.0.0
path-exists: 4.0.0
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
find-up@7.0.0:
dependencies:
locate-path: 7.2.0
path-exists: 5.0.0
unicorn-magic: 0.1.0
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.3
+ keyv: 4.5.4
+
+ flatted@3.3.3: {}
+
for-each@0.3.5:
dependencies:
is-callable: 1.2.7
@@ -5260,8 +6779,6 @@ snapshots:
functions-have-names@1.2.3: {}
- gensync@1.0.0-beta.2: {}
-
get-caller-file@2.0.5: {}
get-east-asian-width@1.3.0: {}
@@ -5297,6 +6814,10 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
+ get-tsconfig@4.10.0:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
get-uri@6.0.4:
dependencies:
basic-ftp: 5.0.5
@@ -5334,6 +6855,10 @@ snapshots:
dependencies:
is-glob: 4.0.3
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -5347,10 +6872,12 @@ snapshots:
dependencies:
ini: 4.1.1
- globals@11.12.0: {}
+ globals@14.0.0: {}
globals@15.15.0: {}
+ globals@16.0.0: {}
+
globalthis@1.0.4:
dependencies:
define-properties: 1.2.1
@@ -5379,6 +6906,8 @@ snapshots:
graceful-fs@4.2.11: {}
+ graphemer@1.4.0: {}
+
gzip-size@6.0.0:
dependencies:
duplexer: 0.1.2
@@ -5387,6 +6916,8 @@ snapshots:
has-flag@3.0.0: {}
+ has-flag@4.0.0: {}
+
has-property-descriptors@1.0.2:
dependencies:
es-define-property: 1.0.1
@@ -5407,6 +6938,10 @@ snapshots:
hosted-git-info@2.8.9: {}
+ hosted-git-info@7.0.2:
+ dependencies:
+ lru-cache: 10.4.3
+
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.3
@@ -5438,6 +6973,12 @@ snapshots:
import-meta-resolve@4.1.0: {}
+ imurmurhash@0.1.4: {}
+
+ indent-string@5.0.0: {}
+
+ index-to-position@1.0.0: {}
+
inflight@1.0.6:
dependencies:
once: 1.4.0
@@ -5502,6 +7043,10 @@ snapshots:
call-bound: 1.0.4
has-tostringtag: 1.0.2
+ is-builtin-module@4.0.0:
+ dependencies:
+ builtin-modules: 4.0.0
+
is-callable@1.2.7: {}
is-core-module@2.16.1:
@@ -5657,15 +7202,30 @@ snapshots:
jsbn@1.1.0: {}
+ jsdoc-type-pratt-parser@4.1.0: {}
+
+ jsesc@3.0.2: {}
+
jsesc@3.1.0: {}
+ json-buffer@3.0.1: {}
+
json-parse-better-errors@1.0.2: {}
json-parse-even-better-errors@2.3.1: {}
+ json-schema-traverse@0.4.1: {}
+
json-schema-traverse@1.0.0: {}
- json5@2.2.3: {}
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ jsonc-eslint-parser@2.4.0:
+ dependencies:
+ acorn: 8.14.1
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ semver: 7.7.1
jsonfile@4.0.0:
optionalDependencies:
@@ -5673,6 +7233,10 @@ snapshots:
jsonparse@1.3.1: {}
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
kolorist@1.8.0: {}
ky@1.7.5: {}
@@ -5681,6 +7245,11 @@ snapshots:
dependencies:
package-json: 10.0.1
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
lilconfig@3.1.3: {}
lines-and-columns@1.2.4: {}
@@ -5726,6 +7295,10 @@ snapshots:
dependencies:
p-locate: 4.1.0
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
locate-path@7.2.0:
dependencies:
p-locate: 6.0.0
@@ -5771,13 +7344,9 @@ snapshots:
strip-ansi: 7.1.0
wrap-ansi: 9.0.0
- loose-envify@1.4.0:
- dependencies:
- js-tokens: 4.0.0
+ longest-streak@3.1.0: {}
- lru-cache@5.1.1:
- dependencies:
- yallist: 3.1.1
+ lru-cache@10.4.3: {}
lru-cache@7.18.3: {}
@@ -5791,8 +7360,112 @@ snapshots:
dependencies:
semver: 6.3.1
+ markdown-table@3.0.4: {}
+
math-intrinsics@1.1.0: {}
+ mdast-util-find-and-replace@3.0.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ escape-string-regexp: 5.0.0
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
+
+ mdast-util-from-markdown@2.0.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ decode-named-character-reference: 1.1.0
+ devlop: 1.1.0
+ mdast-util-to-string: 4.0.0
+ micromark: 4.0.2
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-decode-string: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ unist-util-stringify-position: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-autolink-literal@2.0.1:
+ dependencies:
+ '@types/mdast': 4.0.4
+ ccount: 2.0.1
+ devlop: 1.1.0
+ mdast-util-find-and-replace: 3.0.2
+ micromark-util-character: 2.1.1
+
+ mdast-util-gfm-footnote@2.1.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ micromark-util-normalize-identifier: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-strikethrough@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-table@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ markdown-table: 3.0.4
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-task-list-item@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm@3.1.0:
+ dependencies:
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-gfm-autolink-literal: 2.0.1
+ mdast-util-gfm-footnote: 2.1.0
+ mdast-util-gfm-strikethrough: 2.0.0
+ mdast-util-gfm-table: 2.0.0
+ mdast-util-gfm-task-list-item: 2.0.0
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-phrasing@4.1.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ unist-util-is: 6.0.0
+
+ mdast-util-to-markdown@2.1.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ longest-streak: 3.1.0
+ mdast-util-phrasing: 4.1.0
+ mdast-util-to-string: 4.0.0
+ micromark-util-classify-character: 2.0.1
+ micromark-util-decode-string: 2.0.1
+ unist-util-visit: 5.0.0
+ zwitch: 2.0.4
+
+ mdast-util-to-string@4.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+
mdn-data@2.12.2: {}
memorystream@0.3.1: {}
@@ -5803,6 +7476,197 @@ snapshots:
merge2@1.4.1: {}
+ micromark-core-commonmark@2.0.3:
+ dependencies:
+ decode-named-character-reference: 1.1.0
+ devlop: 1.1.0
+ micromark-factory-destination: 2.0.1
+ micromark-factory-label: 2.0.1
+ micromark-factory-space: 2.0.1
+ micromark-factory-title: 2.0.1
+ micromark-factory-whitespace: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-html-tag-name: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-autolink-literal@2.1.0:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-footnote@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-strikethrough@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-table@2.1.1:
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-tagfilter@2.0.0:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-task-list-item@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm@3.0.0:
+ dependencies:
+ micromark-extension-gfm-autolink-literal: 2.1.0
+ micromark-extension-gfm-footnote: 2.1.0
+ micromark-extension-gfm-strikethrough: 2.1.0
+ micromark-extension-gfm-table: 2.1.1
+ micromark-extension-gfm-tagfilter: 2.0.0
+ micromark-extension-gfm-task-list-item: 2.1.0
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-destination@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-label@2.0.1:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-space@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-title@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-whitespace@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-character@2.1.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-chunked@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-classify-character@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-combine-extensions@2.0.1:
+ dependencies:
+ micromark-util-chunked: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-decode-string@2.0.1:
+ dependencies:
+ decode-named-character-reference: 1.1.0
+ micromark-util-character: 2.1.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-encode@2.0.1: {}
+
+ micromark-util-html-tag-name@2.0.1: {}
+
+ micromark-util-normalize-identifier@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-resolve-all@2.0.1:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-util-sanitize-uri@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-encode: 2.0.1
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-subtokenize@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-symbol@2.0.1: {}
+
+ micromark-util-types@2.0.2: {}
+
+ micromark@4.0.2:
+ dependencies:
+ '@types/debug': 4.1.12
+ debug: 4.4.0
+ decode-named-character-reference: 1.1.0
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-encode: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+
micromatch@4.0.8:
dependencies:
braces: 3.0.3
@@ -5818,10 +7682,20 @@ snapshots:
mimic-function@5.0.1: {}
+ min-indent@1.0.1: {}
+
+ minimatch@10.0.1:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimist@1.2.8: {}
mlly@1.7.4:
@@ -5839,6 +7713,10 @@ snapshots:
nanoid@3.3.11: {}
+ natural-compare@1.4.0: {}
+
+ natural-orderby@5.0.0: {}
+
netmask@2.0.2: {}
new-github-release-url@2.0.0:
@@ -5858,6 +7736,12 @@ snapshots:
semver: 5.7.2
validate-npm-package-license: 3.0.4
+ normalize-package-data@6.0.2:
+ dependencies:
+ hosted-git-info: 7.0.2
+ semver: 7.7.1
+ validate-npm-package-license: 3.0.4
+
normalize-path@3.0.0: {}
npm-run-all@4.1.5:
@@ -5881,6 +7765,10 @@ snapshots:
path-key: 4.0.0
unicorn-magic: 0.3.0
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
object-assign@4.1.1: {}
object-inspect@1.13.4: {}
@@ -5921,6 +7809,15 @@ snapshots:
is-inside-container: 1.0.0
is-wsl: 3.1.0
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
ora@8.1.1:
dependencies:
chalk: 5.4.1
@@ -5950,6 +7847,10 @@ snapshots:
dependencies:
p-try: 2.2.0
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
p-limit@4.0.0:
dependencies:
yocto-queue: 1.2.1
@@ -5958,6 +7859,10 @@ snapshots:
dependencies:
p-limit: 2.3.0
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
p-locate@6.0.0:
dependencies:
p-limit: 4.0.0
@@ -5997,6 +7902,13 @@ snapshots:
dependencies:
callsites: 3.1.0
+ parse-gitignore@2.0.0: {}
+
+ parse-imports@2.2.1:
+ dependencies:
+ es-module-lexer: 1.6.0
+ slashes: 3.0.12
+
parse-json@4.0.0:
dependencies:
error-ex: 1.3.2
@@ -6009,6 +7921,12 @@ snapshots:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
+ parse-json@8.2.0:
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ index-to-position: 1.0.0
+ type-fest: 4.38.0
+
parse-ms@4.0.0: {}
parse-path@7.0.1:
@@ -6129,14 +8047,33 @@ snapshots:
exsolve: 1.0.4
pathe: 2.0.3
+ pluralize@8.0.0: {}
+
+ pnpm-workspace-yaml@0.3.1:
+ dependencies:
+ yaml: 2.7.0
+
possible-typed-array-names@1.1.0: {}
+ postcss-selector-parser@6.1.2:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
postcss@8.5.3:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
+ prelude-ls@1.2.1: {}
+
+ prettier-linter-helpers@1.0.0:
+ dependencies:
+ fast-diff: 1.3.0
+
+ prettier@3.5.3: {}
+
pretty-ms@9.2.0:
dependencies:
parse-ms: 4.0.0
@@ -6164,6 +8101,8 @@ snapshots:
punycode@1.4.1: {}
+ punycode@2.3.1: {}
+
pupa@3.1.0:
dependencies:
escape-goat: 4.0.0
@@ -6183,33 +8122,11 @@ snapshots:
minimist: 1.2.8
strip-json-comments: 2.0.1
- react-dom@18.3.1(react@18.3.1):
+ read-package-up@11.0.0:
dependencies:
- loose-envify: 1.4.0
- react: 18.3.1
- scheduler: 0.23.2
-
- react-refresh@0.14.2: {}
-
- react-router-dom@7.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-router: 7.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-
- react-router@7.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
- dependencies:
- '@types/cookie': 0.6.0
- cookie: 1.0.2
- react: 18.3.1
- set-cookie-parser: 2.7.1
- turbo-stream: 2.4.0
- optionalDependencies:
- react-dom: 18.3.1(react@18.3.1)
-
- react@18.3.1:
- dependencies:
- loose-envify: 1.4.0
+ find-up-simple: 1.0.1
+ read-pkg: 9.0.1
+ type-fest: 4.38.0
read-pkg@3.0.0:
dependencies:
@@ -6217,6 +8134,14 @@ snapshots:
normalize-package-data: 2.5.0
path-type: 3.0.0
+ read-pkg@9.0.1:
+ dependencies:
+ '@types/normalize-package-data': 2.4.4
+ normalize-package-data: 6.0.2
+ parse-json: 8.2.0
+ type-fest: 4.38.0
+ unicorn-magic: 0.1.0
+
readdirp@3.6.0:
dependencies:
picomatch: 2.3.1
@@ -6225,6 +8150,10 @@ snapshots:
dependencies:
resolve: 1.22.10
+ refa@0.12.1:
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+
reflect.getprototypeof@1.0.10:
dependencies:
call-bind: 1.0.8
@@ -6236,6 +8165,13 @@ snapshots:
get-proto: 1.0.1
which-builtin-type: 1.2.1
+ regexp-ast-analysis@0.7.1:
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+ refa: 0.12.1
+
+ regexp-tree@0.1.27: {}
+
regexp.prototype.flags@1.5.4:
dependencies:
call-bind: 1.0.8
@@ -6253,6 +8189,10 @@ snapshots:
dependencies:
rc: 1.2.8
+ regjsparser@0.12.0:
+ dependencies:
+ jsesc: 3.0.2
+
release-it@18.1.2(@types/node@22.13.14)(typescript@5.6.3):
dependencies:
'@iarna/toml': 2.2.5
@@ -6293,6 +8233,8 @@ snapshots:
resolve-from@5.0.0: {}
+ resolve-pkg-maps@1.0.0: {}
+
resolve@1.22.10:
dependencies:
is-core-module: 2.16.1
@@ -6369,9 +8311,11 @@ snapshots:
safer-buffer@2.1.2: {}
- scheduler@0.23.2:
+ scslre@0.3.0:
dependencies:
- loose-envify: 1.4.0
+ '@eslint-community/regexpp': 4.12.1
+ refa: 0.12.1
+ regexp-ast-analysis: 0.7.1
semver@5.7.2: {}
@@ -6381,8 +8325,6 @@ snapshots:
semver@7.7.1: {}
- set-cookie-parser@2.7.1: {}
-
set-function-length@1.2.2:
dependencies:
define-data-property: 1.1.4
@@ -6463,8 +8405,12 @@ snapshots:
mrmime: 2.0.1
totalist: 3.0.1
+ sisteransi@1.0.5: {}
+
slash@5.1.0: {}
+ slashes@3.0.12: {}
+
slice-ansi@5.0.0:
dependencies:
ansi-styles: 6.2.1
@@ -6507,12 +8453,19 @@ snapshots:
spdx-exceptions: 2.5.0
spdx-license-ids: 3.0.21
+ spdx-expression-parse@4.0.0:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.21
+
spdx-license-ids@3.0.21: {}
split2@4.2.0: {}
sprintf-js@1.1.3: {}
+ stable-hash@0.0.5: {}
+
stdin-discarder@0.2.2: {}
string-argv@0.3.2: {}
@@ -6573,8 +8526,14 @@ snapshots:
strip-final-newline@4.0.0: {}
+ strip-indent@4.0.0:
+ dependencies:
+ min-indent: 1.0.1
+
strip-json-comments@2.0.1: {}
+ strip-json-comments@3.1.1: {}
+
strip-outer@1.0.1:
dependencies:
escape-string-regexp: 1.0.5
@@ -6585,8 +8544,24 @@ snapshots:
dependencies:
has-flag: 3.0.0
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
supports-preserve-symlinks-flag@1.0.0: {}
+ synckit@0.10.3:
+ dependencies:
+ '@pkgr/core': 0.2.0
+ tslib: 2.8.1
+
+ synckit@0.9.2:
+ dependencies:
+ '@pkgr/core': 0.1.2
+ tslib: 2.8.1
+
+ tapable@2.2.1: {}
+
text-extensions@2.4.0: {}
through@2.3.8: {}
@@ -6606,15 +8581,32 @@ snapshots:
dependencies:
is-number: 7.0.0
+ toml-eslint-parser@0.10.0:
+ dependencies:
+ eslint-visitor-keys: 3.4.3
+
totalist@3.0.1: {}
trim-repeated@1.0.0:
dependencies:
escape-string-regexp: 1.0.5
+ ts-api-utils@2.1.0(typescript@5.6.3):
+ dependencies:
+ typescript: 5.6.3
+
tslib@2.8.1: {}
- turbo-stream@2.4.0: {}
+ tsx@4.19.3:
+ dependencies:
+ esbuild: 0.25.1
+ get-tsconfig: 4.10.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
type-fest@0.21.3: {}
@@ -6666,6 +8658,12 @@ snapshots:
has-symbols: 1.1.0
which-boxed-primitive: 1.1.1
+ unconfig@7.0.0:
+ dependencies:
+ '@antfu/utils': 8.1.1
+ defu: 6.1.4
+ jiti: 2.4.2
+
unconfig@7.3.1:
dependencies:
'@quansync/fs': 0.1.1
@@ -6681,13 +8679,32 @@ snapshots:
unicorn-magic@0.3.0: {}
+ unist-util-is@6.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-stringify-position@4.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-visit-parents@6.0.1:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+
+ unist-util-visit@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
+
universal-user-agent@7.0.2: {}
universalify@0.1.2: {}
- unocss@66.1.0-beta.7(postcss@8.5.3)(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3)):
+ unocss@66.1.0-beta.7(postcss@8.5.3)(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3)):
dependencies:
- '@unocss/astro': 66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))
+ '@unocss/astro': 66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))
'@unocss/cli': 66.1.0-beta.7
'@unocss/core': 66.1.0-beta.7
'@unocss/postcss': 66.1.0-beta.7(postcss@8.5.3)
@@ -6705,9 +8722,9 @@ snapshots:
'@unocss/transformer-compile-class': 66.1.0-beta.7
'@unocss/transformer-directives': 66.1.0-beta.7
'@unocss/transformer-variant-group': 66.1.0-beta.7
- '@unocss/vite': 66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))
+ '@unocss/vite': 66.1.0-beta.7(vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))
optionalDependencies:
- vite: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0)
+ vite: 6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)
transitivePeerDependencies:
- postcss
- supports-color
@@ -6718,6 +8735,24 @@ snapshots:
pathe: 2.0.3
picomatch: 4.0.2
+ unrs-resolver@1.3.2:
+ optionalDependencies:
+ '@unrs/resolver-binding-darwin-arm64': 1.3.2
+ '@unrs/resolver-binding-darwin-x64': 1.3.2
+ '@unrs/resolver-binding-freebsd-x64': 1.3.2
+ '@unrs/resolver-binding-linux-arm-gnueabihf': 1.3.2
+ '@unrs/resolver-binding-linux-arm-musleabihf': 1.3.2
+ '@unrs/resolver-binding-linux-arm64-gnu': 1.3.2
+ '@unrs/resolver-binding-linux-arm64-musl': 1.3.2
+ '@unrs/resolver-binding-linux-ppc64-gnu': 1.3.2
+ '@unrs/resolver-binding-linux-s390x-gnu': 1.3.2
+ '@unrs/resolver-binding-linux-x64-gnu': 1.3.2
+ '@unrs/resolver-binding-linux-x64-musl': 1.3.2
+ '@unrs/resolver-binding-wasm32-wasi': 1.3.2
+ '@unrs/resolver-binding-win32-arm64-msvc': 1.3.2
+ '@unrs/resolver-binding-win32-ia32-msvc': 1.3.2
+ '@unrs/resolver-binding-win32-x64-msvc': 1.3.2
+
update-browserslist-db@1.1.3(browserslist@4.24.4):
dependencies:
browserslist: 4.24.4
@@ -6737,6 +8772,10 @@ snapshots:
semver: 7.6.3
xdg-basedir: 5.1.0
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
url-join@5.0.0: {}
url@0.11.4:
@@ -6744,12 +8783,14 @@ snapshots:
punycode: 1.4.1
qs: 6.14.0
+ util-deprecate@1.0.2: {}
+
validate-npm-package-license@3.0.4:
dependencies:
spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1
- vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(yaml@2.7.0):
+ vite@6.2.3(@types/node@22.13.14)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0):
dependencies:
esbuild: 0.25.1
postcss: 8.5.3
@@ -6758,12 +8799,31 @@ snapshots:
'@types/node': 22.13.14
fsevents: 2.3.3
jiti: 2.4.2
+ tsx: 4.19.3
yaml: 2.7.0
+ vue-eslint-parser@10.1.1(eslint@9.23.0(jiti@2.4.2)):
+ dependencies:
+ debug: 4.4.0
+ eslint: 9.23.0(jiti@2.4.2)
+ eslint-scope: 8.3.0
+ eslint-visitor-keys: 4.2.0
+ espree: 10.3.0
+ esquery: 1.6.0
+ lodash: 4.17.21
+ semver: 7.7.1
+ transitivePeerDependencies:
+ - supports-color
+
vue-flow-layout@0.1.1(vue@3.5.13(typescript@5.6.3)):
dependencies:
vue: 3.5.13(typescript@5.6.3)
+ vue-router@4.5.0(vue@3.5.13(typescript@5.6.3)):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.13(typescript@5.6.3)
+
vue@3.5.13(typescript@5.6.3):
dependencies:
'@vue/compiler-dom': 3.5.13
@@ -6835,6 +8895,8 @@ snapshots:
dependencies:
execa: 8.0.1
+ word-wrap@1.2.5: {}
+
wrap-ansi@6.2.0:
dependencies:
ansi-styles: 4.3.0
@@ -6857,9 +8919,14 @@ snapshots:
xdg-basedir@5.1.0: {}
+ xml-name-validator@4.0.0: {}
+
y18n@5.0.8: {}
- yallist@3.1.1: {}
+ yaml-eslint-parser@1.3.0:
+ dependencies:
+ eslint-visitor-keys: 3.4.3
+ yaml: 2.7.0
yaml@2.7.0: {}
@@ -6875,8 +8942,12 @@ snapshots:
y18n: 5.0.8
yargs-parser: 21.1.1
+ yocto-queue@0.1.0: {}
+
yocto-queue@1.2.1: {}
yoctocolors-cjs@2.1.2: {}
yoctocolors@2.1.1: {}
+
+ zwitch@2.0.4: {}
diff --git a/public/images/logo.png b/public/images/logo.png
new file mode 100644
index 0000000..2718ae7
Binary files /dev/null and b/public/images/logo.png differ
diff --git a/public/models/keyboard/cat.model3.json b/public/models/keyboard/cat.model3.json
index dc49ebb..5404d72 100755
--- a/public/models/keyboard/cat.model3.json
+++ b/public/models/keyboard/cat.model3.json
@@ -1,66 +1,69 @@
{
- "Version": 3,
- "FileReferences": {
- "Moc": "demomodel2.moc3",
- "Textures": [
- "demomodel2.1024/texture_00.png",
- "demomodel2.1024/texture_01.png",
- "demomodel2.1024/texture_02.png"
- ],
- "DisplayInfo": "demomodel2.cdi3.json",
- "Expressions": [
- {
- "Name": "live2d_expression0.exp3.json",
- "File": "live2d_expression0.exp3.json"
- },
- {
- "Name": "live2d_expression1.exp3.json",
- "File": "live2d_expression1.exp3.json"
- },
- {
- "Name": "live2d_expression2.exp3.json",
- "File": "live2d_expression2.exp3.json"
- }
- ],
- "Motions": {
- "CAT_motion": [
- {
- "File": "live2d_motion1.motion3.json",
- "Sound": "live2d_motion1.flac",
- "FadeInTime": 0,
- "FadeOutTime": 0
- },
- {
- "File": "live2d_motion2.motion3.json",
- "FadeInTime": 0,
- "FadeOutTime": 0
- }
- ],
- "CAT_motion_lock": [
- {
- "File": "live2d_motion1.motion3.json",
- "Sound": "live2d_motion1.flac",
- "FadeInTime": 0,
- "FadeOutTime": 0
- },
- {
- "File": "live2d_motion2.motion3.json",
- "FadeInTime": 0,
- "FadeOutTime": 0
- }
- ]
- }
- },
- "Groups": [
- {
- "Target": "Parameter",
- "Name": "EyeBlink",
- "Ids": ["ParamEyeLOpen", "ParamEyeROpen"]
- },
- {
- "Target": "Parameter",
- "Name": "LipSync",
- "Ids": []
- }
- ]
+ "Version": 3,
+ "FileReferences": {
+ "Moc": "demomodel2.moc3",
+ "Textures": [
+ "demomodel2.1024/texture_00.png",
+ "demomodel2.1024/texture_01.png",
+ "demomodel2.1024/texture_02.png"
+ ],
+ "DisplayInfo": "demomodel2.cdi3.json",
+ "Expressions": [
+ {
+ "Name": "live2d_expression0.exp3.json",
+ "File": "live2d_expression0.exp3.json"
+ },
+ {
+ "Name": "live2d_expression1.exp3.json",
+ "File": "live2d_expression1.exp3.json"
+ },
+ {
+ "Name": "live2d_expression2.exp3.json",
+ "File": "live2d_expression2.exp3.json"
+ }
+ ],
+ "Motions": {
+ "CAT_motion": [
+ {
+ "File": "live2d_motion1.motion3.json",
+ "Sound": "live2d_motion1.flac",
+ "FadeInTime": 0,
+ "FadeOutTime": 0
+ },
+ {
+ "File": "live2d_motion2.motion3.json",
+ "FadeInTime": 0,
+ "FadeOutTime": 0
+ }
+ ],
+ "CAT_motion_lock": [
+ {
+ "File": "live2d_motion1.motion3.json",
+ "Sound": "live2d_motion1.flac",
+ "FadeInTime": 0,
+ "FadeOutTime": 0
+ },
+ {
+ "File": "live2d_motion2.motion3.json",
+ "FadeInTime": 0,
+ "FadeOutTime": 0
+ }
+ ]
+ }
+ },
+ "Groups": [
+ {
+ "Target": "Parameter",
+ "Name": "EyeBlink",
+ "Ids": [
+ "ParamEyeLOpen",
+ "ParamEyeROpen"
+ ]
+ },
+ {
+ "Target": "Parameter",
+ "Name": "LipSync",
+ "Ids": []
+ }
+ ]
}
diff --git a/public/models/keyboard/demomodel2.cdi3.json b/public/models/keyboard/demomodel2.cdi3.json
index ec49c91..ed40d7e 100755
--- a/public/models/keyboard/demomodel2.cdi3.json
+++ b/public/models/keyboard/demomodel2.cdi3.json
@@ -1,233 +1,233 @@
{
- "Version": 3,
- "Parameters": [
- {
- "Id": "ParamAngleX",
- "GroupId": "",
- "Name": "角度 X"
- },
- {
- "Id": "ParamAngleY",
- "GroupId": "",
- "Name": "角度 Y"
- },
- {
- "Id": "CatParamRightHandDown",
- "GroupId": "",
- "Name": "右手按下"
- },
- {
- "Id": "CatParamLeftHandDown",
- "GroupId": "",
- "Name": "左手按下"
- },
- {
- "Id": "ParamAngleZ",
- "GroupId": "",
- "Name": "角度 Z"
- },
- {
- "Id": "ParamEyeLOpen",
- "GroupId": "",
- "Name": "左眼 开闭"
- },
- {
- "Id": "ParamEyeLSmile",
- "GroupId": "",
- "Name": "左眼 微笑"
- },
- {
- "Id": "ParamEyeROpen",
- "GroupId": "",
- "Name": "右眼"
- },
- {
- "Id": "ParamEyeRSmile",
- "GroupId": "",
- "Name": "右眼 微笑"
- },
- {
- "Id": "Param3",
- "GroupId": "",
- "Name": "挥手"
- },
- {
- "Id": "Param",
- "GroupId": "ParamGroup",
- "Name": "开启闪电"
- },
- {
- "Id": "Param2",
- "GroupId": "ParamGroup",
- "Name": "闪电划过"
- },
- {
- "Id": "Param4",
- "GroupId": "ParamGroup2",
- "Name": "表情:thuglife"
- },
- {
- "Id": "Param5",
- "GroupId": "ParamGroup2",
- "Name": "表情:升天"
- },
- {
- "Id": "ParamEyeBallX",
- "GroupId": "",
- "Name": "眼球 X"
- },
- {
- "Id": "ParamEyeBallY",
- "GroupId": "",
- "Name": "眼球 Y"
- },
- {
- "Id": "ParamBrowLY",
- "GroupId": "",
- "Name": "左眉上下"
- },
- {
- "Id": "ParamBrowRY",
- "GroupId": "",
- "Name": "右眉 上下"
- },
- {
- "Id": "ParamBrowLX",
- "GroupId": "",
- "Name": "左眉 左右"
- },
- {
- "Id": "ParamBrowRX",
- "GroupId": "",
- "Name": "右眉 左右"
- },
- {
- "Id": "ParamBrowLAngle",
- "GroupId": "",
- "Name": "左眉 角度"
- },
- {
- "Id": "ParamBrowRAngle",
- "GroupId": "",
- "Name": "右眉 角度"
- },
- {
- "Id": "ParamBrowLForm",
- "GroupId": "",
- "Name": "左眉 変形"
- },
- {
- "Id": "ParamBrowRForm",
- "GroupId": "",
- "Name": "右眉 変形"
- },
- {
- "Id": "ParamMouthForm",
- "GroupId": "",
- "Name": "嘴部 变形"
- },
- {
- "Id": "ParamMouthOpenY",
- "GroupId": "",
- "Name": "嘴巴 张开和闭合"
- },
- {
- "Id": "ParamCheek",
- "GroupId": "",
- "Name": "脸颊"
- },
- {
- "Id": "ParamBodyAngleX",
- "GroupId": "",
- "Name": "身体旋转 X"
- },
- {
- "Id": "ParamBodyAngleY",
- "GroupId": "",
- "Name": "身体旋转 Y"
- },
- {
- "Id": "ParamBodyAngleZ",
- "GroupId": "",
- "Name": "身体旋转 Z"
- },
- {
- "Id": "ParamBreath",
- "GroupId": "",
- "Name": "呼吸"
- },
- {
- "Id": "ParamHairFront",
- "GroupId": "",
- "Name": "摇动 前发"
- },
- {
- "Id": "ParamHairSide",
- "GroupId": "",
- "Name": "摇动 侧发"
- },
- {
- "Id": "ParamHairBack",
- "GroupId": "",
- "Name": "摇动 后发"
- }
- ],
- "ParameterGroups": [
- {
- "Id": "ParamGroup",
- "GroupId": "",
- "Name": "闪电"
- },
- {
- "Id": "ParamGroup2",
- "GroupId": "",
- "Name": "表情"
- }
- ],
- "Parts": [
- {
- "Id": "Part11",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part7",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part3",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part2",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part10",
- "Name": "天使环"
- },
- {
- "Id": "Part5",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "PartSketch0",
- "Name": "[ 参考图 ]"
- },
- {
- "Id": "Part8",
- "Name": "thug life"
- },
- {
- "Id": "Part6",
- "Name": "闪电"
- },
- {
- "Id": "Part4",
- "Name": "闪电"
- }
- ]
+ "Version": 3,
+ "Parameters": [
+ {
+ "Id": "ParamAngleX",
+ "GroupId": "",
+ "Name": "角度 X"
+ },
+ {
+ "Id": "ParamAngleY",
+ "GroupId": "",
+ "Name": "角度 Y"
+ },
+ {
+ "Id": "CatParamRightHandDown",
+ "GroupId": "",
+ "Name": "右手按下"
+ },
+ {
+ "Id": "CatParamLeftHandDown",
+ "GroupId": "",
+ "Name": "左手按下"
+ },
+ {
+ "Id": "ParamAngleZ",
+ "GroupId": "",
+ "Name": "角度 Z"
+ },
+ {
+ "Id": "ParamEyeLOpen",
+ "GroupId": "",
+ "Name": "左眼 开闭"
+ },
+ {
+ "Id": "ParamEyeLSmile",
+ "GroupId": "",
+ "Name": "左眼 微笑"
+ },
+ {
+ "Id": "ParamEyeROpen",
+ "GroupId": "",
+ "Name": "右眼"
+ },
+ {
+ "Id": "ParamEyeRSmile",
+ "GroupId": "",
+ "Name": "右眼 微笑"
+ },
+ {
+ "Id": "Param3",
+ "GroupId": "",
+ "Name": "挥手"
+ },
+ {
+ "Id": "Param",
+ "GroupId": "ParamGroup",
+ "Name": "开启闪电"
+ },
+ {
+ "Id": "Param2",
+ "GroupId": "ParamGroup",
+ "Name": "闪电划过"
+ },
+ {
+ "Id": "Param4",
+ "GroupId": "ParamGroup2",
+ "Name": "表情:thuglife"
+ },
+ {
+ "Id": "Param5",
+ "GroupId": "ParamGroup2",
+ "Name": "表情:升天"
+ },
+ {
+ "Id": "ParamEyeBallX",
+ "GroupId": "",
+ "Name": "眼球 X"
+ },
+ {
+ "Id": "ParamEyeBallY",
+ "GroupId": "",
+ "Name": "眼球 Y"
+ },
+ {
+ "Id": "ParamBrowLY",
+ "GroupId": "",
+ "Name": "左眉上下"
+ },
+ {
+ "Id": "ParamBrowRY",
+ "GroupId": "",
+ "Name": "右眉 上下"
+ },
+ {
+ "Id": "ParamBrowLX",
+ "GroupId": "",
+ "Name": "左眉 左右"
+ },
+ {
+ "Id": "ParamBrowRX",
+ "GroupId": "",
+ "Name": "右眉 左右"
+ },
+ {
+ "Id": "ParamBrowLAngle",
+ "GroupId": "",
+ "Name": "左眉 角度"
+ },
+ {
+ "Id": "ParamBrowRAngle",
+ "GroupId": "",
+ "Name": "右眉 角度"
+ },
+ {
+ "Id": "ParamBrowLForm",
+ "GroupId": "",
+ "Name": "左眉 変形"
+ },
+ {
+ "Id": "ParamBrowRForm",
+ "GroupId": "",
+ "Name": "右眉 変形"
+ },
+ {
+ "Id": "ParamMouthForm",
+ "GroupId": "",
+ "Name": "嘴部 变形"
+ },
+ {
+ "Id": "ParamMouthOpenY",
+ "GroupId": "",
+ "Name": "嘴巴 张开和闭合"
+ },
+ {
+ "Id": "ParamCheek",
+ "GroupId": "",
+ "Name": "脸颊"
+ },
+ {
+ "Id": "ParamBodyAngleX",
+ "GroupId": "",
+ "Name": "身体旋转 X"
+ },
+ {
+ "Id": "ParamBodyAngleY",
+ "GroupId": "",
+ "Name": "身体旋转 Y"
+ },
+ {
+ "Id": "ParamBodyAngleZ",
+ "GroupId": "",
+ "Name": "身体旋转 Z"
+ },
+ {
+ "Id": "ParamBreath",
+ "GroupId": "",
+ "Name": "呼吸"
+ },
+ {
+ "Id": "ParamHairFront",
+ "GroupId": "",
+ "Name": "摇动 前发"
+ },
+ {
+ "Id": "ParamHairSide",
+ "GroupId": "",
+ "Name": "摇动 侧发"
+ },
+ {
+ "Id": "ParamHairBack",
+ "GroupId": "",
+ "Name": "摇动 后发"
+ }
+ ],
+ "ParameterGroups": [
+ {
+ "Id": "ParamGroup",
+ "GroupId": "",
+ "Name": "闪电"
+ },
+ {
+ "Id": "ParamGroup2",
+ "GroupId": "",
+ "Name": "表情"
+ }
+ ],
+ "Parts": [
+ {
+ "Id": "Part11",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part7",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part3",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part2",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part10",
+ "Name": "天使环"
+ },
+ {
+ "Id": "Part5",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "PartSketch0",
+ "Name": "[ 参考图 ]"
+ },
+ {
+ "Id": "Part8",
+ "Name": "thug life"
+ },
+ {
+ "Id": "Part6",
+ "Name": "闪电"
+ },
+ {
+ "Id": "Part4",
+ "Name": "闪电"
+ }
+ ]
}
diff --git a/public/models/keyboard/exp_1.exp3.json b/public/models/keyboard/exp_1.exp3.json
index 05dd096..285e4c1 100755
--- a/public/models/keyboard/exp_1.exp3.json
+++ b/public/models/keyboard/exp_1.exp3.json
@@ -1,15 +1,15 @@
{
- "Type": "Live2D Expression",
- "Parameters": [
- {
- "Id": "ParamEyeLOpen",
- "Value": 0.321,
- "Blend": "Multiply"
- },
- {
- "Id": "ParamEyeROpen",
- "Value": 0.313,
- "Blend": "Multiply"
- }
- ]
+ "Type": "Live2D Expression",
+ "Parameters": [
+ {
+ "Id": "ParamEyeLOpen",
+ "Value": 0.321,
+ "Blend": "Multiply"
+ },
+ {
+ "Id": "ParamEyeROpen",
+ "Value": 0.313,
+ "Blend": "Multiply"
+ }
+ ]
}
diff --git a/public/models/keyboard/exp_2.exp3.json b/public/models/keyboard/exp_2.exp3.json
index db4d68d..0c389fe 100755
--- a/public/models/keyboard/exp_2.exp3.json
+++ b/public/models/keyboard/exp_2.exp3.json
@@ -1,10 +1,10 @@
{
- "Type": "Live2D Expression",
- "Parameters": [
- {
- "Id": "ParamEyeLOpen",
- "Value": -1,
- "Blend": "Add"
- }
- ]
+ "Type": "Live2D Expression",
+ "Parameters": [
+ {
+ "Id": "ParamEyeLOpen",
+ "Value": -1,
+ "Blend": "Add"
+ }
+ ]
}
diff --git a/public/models/keyboard/live2d_expression0.exp3.json b/public/models/keyboard/live2d_expression0.exp3.json
index 21f59d3..4162d04 100755
--- a/public/models/keyboard/live2d_expression0.exp3.json
+++ b/public/models/keyboard/live2d_expression0.exp3.json
@@ -1,4 +1,4 @@
{
- "Type": "Live2D Expression",
- "Parameters": []
+ "Type": "Live2D Expression",
+ "Parameters": []
}
diff --git a/public/models/keyboard/live2d_expression1.exp3.json b/public/models/keyboard/live2d_expression1.exp3.json
index 8308da7..d87ba5d 100755
--- a/public/models/keyboard/live2d_expression1.exp3.json
+++ b/public/models/keyboard/live2d_expression1.exp3.json
@@ -1,11 +1,11 @@
{
- "Type": "Live2D Expression",
- "FadeInTime": 0.8,
- "Parameters": [
- {
- "Id": "Param4",
- "Value": 1,
- "Blend": "Add"
- }
- ]
+ "Type": "Live2D Expression",
+ "FadeInTime": 0.8,
+ "Parameters": [
+ {
+ "Id": "Param4",
+ "Value": 1,
+ "Blend": "Add"
+ }
+ ]
}
diff --git a/public/models/keyboard/live2d_expression2.exp3.json b/public/models/keyboard/live2d_expression2.exp3.json
index 08b159a..2008f51 100755
--- a/public/models/keyboard/live2d_expression2.exp3.json
+++ b/public/models/keyboard/live2d_expression2.exp3.json
@@ -1,11 +1,11 @@
{
- "Type": "Live2D Expression",
- "FadeInTime": 0.5,
- "Parameters": [
- {
- "Id": "Param5",
- "Value": 1,
- "Blend": "Add"
- }
- ]
+ "Type": "Live2D Expression",
+ "FadeInTime": 0.5,
+ "Parameters": [
+ {
+ "Id": "Param5",
+ "Value": 1,
+ "Blend": "Add"
+ }
+ ]
}
diff --git a/public/models/keyboard/live2d_motion1.motion3.json b/public/models/keyboard/live2d_motion1.motion3.json
index 4b1d0fe..42c68d4 100755
--- a/public/models/keyboard/live2d_motion1.motion3.json
+++ b/public/models/keyboard/live2d_motion1.motion3.json
@@ -1,32 +1,76 @@
{
- "Version": 3,
- "Meta": {
- "Duration": 1.633,
- "Fps": 30.0,
- "Loop": true,
- "AreBeziersRestricted": false,
- "CurveCount": 2,
- "TotalSegmentCount": 8,
- "TotalPointCount": 20,
- "UserDataCount": 0,
- "TotalUserDataSize": 0
- },
- "Curves": [
- {
- "Target": "Parameter",
- "Id": "Param",
- "Segments": [
- 0, 0, 1, 0.033, 0, 0.067, 1, 0.1, 1, 1, 0.411, 1, 0.722, 1, 1.033, 1, 1,
- 1.189, 1, 1.344, 0, 1.5, 0, 0, 1.633, 0
- ]
- },
- {
- "Target": "Parameter",
- "Id": "Param2",
- "Segments": [
- 0, 0, 0, 0.067, 0, 1, 0.1, 0, 0.133, 0.142, 0.167, 0.2, 1, 0.489, 0.764,
- 0.811, 1, 1.133, 1, 0, 1.633, 1
- ]
- }
- ]
+ "Version": 3,
+ "Meta": {
+ "Duration": 1.633,
+ "Fps": 30.0,
+ "Loop": true,
+ "AreBeziersRestricted": false,
+ "CurveCount": 2,
+ "TotalSegmentCount": 8,
+ "TotalPointCount": 20,
+ "UserDataCount": 0,
+ "TotalUserDataSize": 0
+ },
+ "Curves": [
+ {
+ "Target": "Parameter",
+ "Id": "Param",
+ "Segments": [
+ 0,
+ 0,
+ 1,
+ 0.033,
+ 0,
+ 0.067,
+ 1,
+ 0.1,
+ 1,
+ 1,
+ 0.411,
+ 1,
+ 0.722,
+ 1,
+ 1.033,
+ 1,
+ 1,
+ 1.189,
+ 1,
+ 1.344,
+ 0,
+ 1.5,
+ 0,
+ 0,
+ 1.633,
+ 0
+ ]
+ },
+ {
+ "Target": "Parameter",
+ "Id": "Param2",
+ "Segments": [
+ 0,
+ 0,
+ 0,
+ 0.067,
+ 0,
+ 1,
+ 0.1,
+ 0,
+ 0.133,
+ 0.142,
+ 0.167,
+ 0.2,
+ 1,
+ 0.489,
+ 0.764,
+ 0.811,
+ 1,
+ 1.133,
+ 1,
+ 0,
+ 1.633,
+ 1
+ ]
+ }
+ ]
}
diff --git a/public/models/keyboard/live2d_motion2.motion3.json b/public/models/keyboard/live2d_motion2.motion3.json
index 5e1a63e..bae53b4 100755
--- a/public/models/keyboard/live2d_motion2.motion3.json
+++ b/public/models/keyboard/live2d_motion2.motion3.json
@@ -1,30 +1,77 @@
{
- "Version": 3,
- "Meta": {
- "Duration": 2.333,
- "Fps": 30.0,
- "Loop": true,
- "AreBeziersRestricted": true,
- "CurveCount": 2,
- "TotalSegmentCount": 7,
- "TotalPointCount": 21,
- "UserDataCount": 0,
- "TotalUserDataSize": 0
- },
- "Curves": [
- {
- "Target": "Parameter",
- "Id": "CatParamLeftHandDown",
- "Segments": [0, 0, 0, 2.333, 0]
- },
- {
- "Target": "Parameter",
- "Id": "Param3",
- "Segments": [
- 0, 0, 1, 0.133, 0, 0.267, 30, 0.4, 30, 1, 0.522, 30, 0.644, 0, 0.767, 0,
- 1, 0.9, 0, 1.033, 30, 1.167, 30, 1, 1.3, 30, 1.433, 0, 1.567, 0, 1, 1.7,
- 0, 1.833, 30, 1.967, 30, 1, 2.089, 30, 2.211, 0, 2.333, 0
- ]
- }
- ]
+ "Version": 3,
+ "Meta": {
+ "Duration": 2.333,
+ "Fps": 30.0,
+ "Loop": true,
+ "AreBeziersRestricted": true,
+ "CurveCount": 2,
+ "TotalSegmentCount": 7,
+ "TotalPointCount": 21,
+ "UserDataCount": 0,
+ "TotalUserDataSize": 0
+ },
+ "Curves": [
+ {
+ "Target": "Parameter",
+ "Id": "CatParamLeftHandDown",
+ "Segments": [
+ 0,
+ 0,
+ 0,
+ 2.333,
+ 0
+ ]
+ },
+ {
+ "Target": "Parameter",
+ "Id": "Param3",
+ "Segments": [
+ 0,
+ 0,
+ 1,
+ 0.133,
+ 0,
+ 0.267,
+ 30,
+ 0.4,
+ 30,
+ 1,
+ 0.522,
+ 30,
+ 0.644,
+ 0,
+ 0.767,
+ 0,
+ 1,
+ 0.9,
+ 0,
+ 1.033,
+ 30,
+ 1.167,
+ 30,
+ 1,
+ 1.3,
+ 30,
+ 1.433,
+ 0,
+ 1.567,
+ 0,
+ 1,
+ 1.7,
+ 0,
+ 1.833,
+ 30,
+ 1.967,
+ 30,
+ 1,
+ 2.089,
+ 30,
+ 2.211,
+ 0,
+ 2.333,
+ 0
+ ]
+ }
+ ]
}
diff --git a/public/models/standard/cat.model3.json b/public/models/standard/cat.model3.json
index 935a0ff..e666036 100755
--- a/public/models/standard/cat.model3.json
+++ b/public/models/standard/cat.model3.json
@@ -1,67 +1,70 @@
{
- "Version": 3,
- "FileReferences": {
- "Moc": "demomodel.moc3",
- "Textures": [
- "demomodel.1024/texture_00.png",
- "demomodel.1024/texture_01.png",
- "demomodel.1024/texture_02.png"
- ],
- "DisplayInfo": "demomodel.cdi3.json",
- "Expressions": [
- {
- "Name": "live2d_expression0.exp3.json",
- "File": "live2d_expression0.exp3.json"
- },
- {
- "Name": "live2d_expression1.exp3.json",
- "File": "live2d_expression1.exp3.json"
- },
- {
- "Name": "live2d_expression2.exp3.json",
- "File": "live2d_expression2.exp3.json"
- }
- ],
- "Motions": {
- "CAT_motion": [
- {
- "File": "live2d_motion1.motion3.json",
- "Sound": "live2d_motion1.flac",
- "FadeInTime": 0,
- "FadeOutTime": 0
- },
- {
- "File": "live2d_motion2.motion3.json",
- "FadeInTime": 0,
- "FadeOutTime": 0
- }
- ],
- "CAT_motion_lock": [
- {
- "File": "live2d_motion1.motion3.json",
- "Sound": "live2d_motion1.flac",
- "FadeInTime": 0,
- "FadeOutTime": 0
- },
- {
- "File": "live2d_motion2.motion3.json",
- "FadeInTime": 0,
- "FadeOutTime": 0
- }
- ]
- }
- },
- "Groups": [
- {
- "Target": "Parameter",
- "Name": "EyeBlink",
- "Ids": ["ParamEyeLOpen", "ParamEyeROpen"]
- },
- {
- "Target": "Parameter",
- "Name": "LipSync",
- "Ids": []
- }
- ],
- "HitAreas": []
+ "Version": 3,
+ "FileReferences": {
+ "Moc": "demomodel.moc3",
+ "Textures": [
+ "demomodel.1024/texture_00.png",
+ "demomodel.1024/texture_01.png",
+ "demomodel.1024/texture_02.png"
+ ],
+ "DisplayInfo": "demomodel.cdi3.json",
+ "Expressions": [
+ {
+ "Name": "live2d_expression0.exp3.json",
+ "File": "live2d_expression0.exp3.json"
+ },
+ {
+ "Name": "live2d_expression1.exp3.json",
+ "File": "live2d_expression1.exp3.json"
+ },
+ {
+ "Name": "live2d_expression2.exp3.json",
+ "File": "live2d_expression2.exp3.json"
+ }
+ ],
+ "Motions": {
+ "CAT_motion": [
+ {
+ "File": "live2d_motion1.motion3.json",
+ "Sound": "live2d_motion1.flac",
+ "FadeInTime": 0,
+ "FadeOutTime": 0
+ },
+ {
+ "File": "live2d_motion2.motion3.json",
+ "FadeInTime": 0,
+ "FadeOutTime": 0
+ }
+ ],
+ "CAT_motion_lock": [
+ {
+ "File": "live2d_motion1.motion3.json",
+ "Sound": "live2d_motion1.flac",
+ "FadeInTime": 0,
+ "FadeOutTime": 0
+ },
+ {
+ "File": "live2d_motion2.motion3.json",
+ "FadeInTime": 0,
+ "FadeOutTime": 0
+ }
+ ]
+ }
+ },
+ "Groups": [
+ {
+ "Target": "Parameter",
+ "Name": "EyeBlink",
+ "Ids": [
+ "ParamEyeLOpen",
+ "ParamEyeROpen"
+ ]
+ },
+ {
+ "Target": "Parameter",
+ "Name": "LipSync",
+ "Ids": []
+ }
+ ],
+ "HitAreas": []
}
diff --git a/public/models/standard/demomodel.cdi3.json b/public/models/standard/demomodel.cdi3.json
index 81c9347..3cabe9a 100755
--- a/public/models/standard/demomodel.cdi3.json
+++ b/public/models/standard/demomodel.cdi3.json
@@ -1,244 +1,244 @@
{
- "Version": 3,
- "Parameters": [
- {
- "Id": "ParamAngleX",
- "GroupId": "",
- "Name": "角度 X"
- },
- {
- "Id": "ParamAngleY",
- "GroupId": "",
- "Name": "角度 Y"
- },
- {
- "Id": "ParamMouseX",
- "GroupId": "",
- "Name": "鼠标X"
- },
- {
- "Id": "ParamMouseY",
- "GroupId": "",
- "Name": "鼠标Y"
- },
- {
- "Id": "ParamMouseLeftDown",
- "GroupId": "",
- "Name": "鼠标左键按下"
- },
- {
- "Id": "ParamMouseRightDown",
- "GroupId": "",
- "Name": "鼠标右键按下"
- },
- {
- "Id": "CatParamLeftHandDown",
- "GroupId": "",
- "Name": "键盘按下"
- },
- {
- "Id": "ParamAngleZ",
- "GroupId": "",
- "Name": "角度 Z"
- },
- {
- "Id": "ParamEyeLOpen",
- "GroupId": "",
- "Name": "左眼 开闭"
- },
- {
- "Id": "ParamEyeLSmile",
- "GroupId": "",
- "Name": "左眼 微笑"
- },
- {
- "Id": "ParamEyeROpen",
- "GroupId": "",
- "Name": "右眼"
- },
- {
- "Id": "ParamEyeRSmile",
- "GroupId": "",
- "Name": "右眼 微笑"
- },
- {
- "Id": "Param3",
- "GroupId": "",
- "Name": "挥手"
- },
- {
- "Id": "Param",
- "GroupId": "ParamGroup",
- "Name": "开启闪电"
- },
- {
- "Id": "Param2",
- "GroupId": "ParamGroup",
- "Name": "闪电划过"
- },
- {
- "Id": "Param4",
- "GroupId": "ParamGroup2",
- "Name": "表情:thuglife"
- },
- {
- "Id": "Param5",
- "GroupId": "ParamGroup2",
- "Name": "表情:升天"
- },
- {
- "Id": "ParamEyeBallX",
- "GroupId": "",
- "Name": "眼球 X"
- },
- {
- "Id": "ParamEyeBallY",
- "GroupId": "",
- "Name": "眼球 Y"
- },
- {
- "Id": "ParamBrowLY",
- "GroupId": "",
- "Name": "左眉上下"
- },
- {
- "Id": "ParamBrowRY",
- "GroupId": "",
- "Name": "右眉 上下"
- },
- {
- "Id": "ParamBrowLX",
- "GroupId": "",
- "Name": "左眉 左右"
- },
- {
- "Id": "ParamBrowRX",
- "GroupId": "",
- "Name": "右眉 左右"
- },
- {
- "Id": "ParamBrowLAngle",
- "GroupId": "",
- "Name": "左眉 角度"
- },
- {
- "Id": "ParamBrowRAngle",
- "GroupId": "",
- "Name": "右眉 角度"
- },
- {
- "Id": "ParamBrowLForm",
- "GroupId": "",
- "Name": "左眉 変形"
- },
- {
- "Id": "ParamBrowRForm",
- "GroupId": "",
- "Name": "右眉 変形"
- },
- {
- "Id": "ParamMouthForm",
- "GroupId": "",
- "Name": "嘴部 变形"
- },
- {
- "Id": "ParamMouthOpenY",
- "GroupId": "",
- "Name": "嘴巴 张开和闭合"
- },
- {
- "Id": "ParamCheek",
- "GroupId": "",
- "Name": "脸颊"
- },
- {
- "Id": "ParamBodyAngleX",
- "GroupId": "",
- "Name": "身体旋转 X"
- },
- {
- "Id": "ParamBodyAngleY",
- "GroupId": "",
- "Name": "身体旋转 Y"
- },
- {
- "Id": "ParamBodyAngleZ",
- "GroupId": "",
- "Name": "身体旋转 Z"
- },
- {
- "Id": "ParamBreath",
- "GroupId": "",
- "Name": "呼吸"
- },
- {
- "Id": "ParamHairFront",
- "GroupId": "",
- "Name": "摇动 前发"
- },
- {
- "Id": "ParamHairSide",
- "GroupId": "",
- "Name": "摇动 侧发"
- },
- {
- "Id": "ParamHairBack",
- "GroupId": "",
- "Name": "摇动 后发"
- }
- ],
- "ParameterGroups": [
- {
- "Id": "ParamGroup",
- "GroupId": "",
- "Name": "闪电"
- },
- {
- "Id": "ParamGroup2",
- "GroupId": "",
- "Name": "表情"
- }
- ],
- "Parts": [
- {
- "Id": "Part11",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part7",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part3",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part2",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part10",
- "Name": "天使环"
- },
- {
- "Id": "Part5",
- "Name": "demomodel.psd(未找到对应图层)"
- },
- {
- "Id": "Part8",
- "Name": "thug life"
- },
- {
- "Id": "Part6",
- "Name": "闪电"
- },
- {
- "Id": "Part4",
- "Name": "闪电"
- }
- ]
+ "Version": 3,
+ "Parameters": [
+ {
+ "Id": "ParamAngleX",
+ "GroupId": "",
+ "Name": "角度 X"
+ },
+ {
+ "Id": "ParamAngleY",
+ "GroupId": "",
+ "Name": "角度 Y"
+ },
+ {
+ "Id": "ParamMouseX",
+ "GroupId": "",
+ "Name": "鼠标X"
+ },
+ {
+ "Id": "ParamMouseY",
+ "GroupId": "",
+ "Name": "鼠标Y"
+ },
+ {
+ "Id": "ParamMouseLeftDown",
+ "GroupId": "",
+ "Name": "鼠标左键按下"
+ },
+ {
+ "Id": "ParamMouseRightDown",
+ "GroupId": "",
+ "Name": "鼠标右键按下"
+ },
+ {
+ "Id": "CatParamLeftHandDown",
+ "GroupId": "",
+ "Name": "键盘按下"
+ },
+ {
+ "Id": "ParamAngleZ",
+ "GroupId": "",
+ "Name": "角度 Z"
+ },
+ {
+ "Id": "ParamEyeLOpen",
+ "GroupId": "",
+ "Name": "左眼 开闭"
+ },
+ {
+ "Id": "ParamEyeLSmile",
+ "GroupId": "",
+ "Name": "左眼 微笑"
+ },
+ {
+ "Id": "ParamEyeROpen",
+ "GroupId": "",
+ "Name": "右眼"
+ },
+ {
+ "Id": "ParamEyeRSmile",
+ "GroupId": "",
+ "Name": "右眼 微笑"
+ },
+ {
+ "Id": "Param3",
+ "GroupId": "",
+ "Name": "挥手"
+ },
+ {
+ "Id": "Param",
+ "GroupId": "ParamGroup",
+ "Name": "开启闪电"
+ },
+ {
+ "Id": "Param2",
+ "GroupId": "ParamGroup",
+ "Name": "闪电划过"
+ },
+ {
+ "Id": "Param4",
+ "GroupId": "ParamGroup2",
+ "Name": "表情:thuglife"
+ },
+ {
+ "Id": "Param5",
+ "GroupId": "ParamGroup2",
+ "Name": "表情:升天"
+ },
+ {
+ "Id": "ParamEyeBallX",
+ "GroupId": "",
+ "Name": "眼球 X"
+ },
+ {
+ "Id": "ParamEyeBallY",
+ "GroupId": "",
+ "Name": "眼球 Y"
+ },
+ {
+ "Id": "ParamBrowLY",
+ "GroupId": "",
+ "Name": "左眉上下"
+ },
+ {
+ "Id": "ParamBrowRY",
+ "GroupId": "",
+ "Name": "右眉 上下"
+ },
+ {
+ "Id": "ParamBrowLX",
+ "GroupId": "",
+ "Name": "左眉 左右"
+ },
+ {
+ "Id": "ParamBrowRX",
+ "GroupId": "",
+ "Name": "右眉 左右"
+ },
+ {
+ "Id": "ParamBrowLAngle",
+ "GroupId": "",
+ "Name": "左眉 角度"
+ },
+ {
+ "Id": "ParamBrowRAngle",
+ "GroupId": "",
+ "Name": "右眉 角度"
+ },
+ {
+ "Id": "ParamBrowLForm",
+ "GroupId": "",
+ "Name": "左眉 変形"
+ },
+ {
+ "Id": "ParamBrowRForm",
+ "GroupId": "",
+ "Name": "右眉 変形"
+ },
+ {
+ "Id": "ParamMouthForm",
+ "GroupId": "",
+ "Name": "嘴部 变形"
+ },
+ {
+ "Id": "ParamMouthOpenY",
+ "GroupId": "",
+ "Name": "嘴巴 张开和闭合"
+ },
+ {
+ "Id": "ParamCheek",
+ "GroupId": "",
+ "Name": "脸颊"
+ },
+ {
+ "Id": "ParamBodyAngleX",
+ "GroupId": "",
+ "Name": "身体旋转 X"
+ },
+ {
+ "Id": "ParamBodyAngleY",
+ "GroupId": "",
+ "Name": "身体旋转 Y"
+ },
+ {
+ "Id": "ParamBodyAngleZ",
+ "GroupId": "",
+ "Name": "身体旋转 Z"
+ },
+ {
+ "Id": "ParamBreath",
+ "GroupId": "",
+ "Name": "呼吸"
+ },
+ {
+ "Id": "ParamHairFront",
+ "GroupId": "",
+ "Name": "摇动 前发"
+ },
+ {
+ "Id": "ParamHairSide",
+ "GroupId": "",
+ "Name": "摇动 侧发"
+ },
+ {
+ "Id": "ParamHairBack",
+ "GroupId": "",
+ "Name": "摇动 后发"
+ }
+ ],
+ "ParameterGroups": [
+ {
+ "Id": "ParamGroup",
+ "GroupId": "",
+ "Name": "闪电"
+ },
+ {
+ "Id": "ParamGroup2",
+ "GroupId": "",
+ "Name": "表情"
+ }
+ ],
+ "Parts": [
+ {
+ "Id": "Part11",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part7",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part3",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part2",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part10",
+ "Name": "天使环"
+ },
+ {
+ "Id": "Part5",
+ "Name": "demomodel.psd(未找到对应图层)"
+ },
+ {
+ "Id": "Part8",
+ "Name": "thug life"
+ },
+ {
+ "Id": "Part6",
+ "Name": "闪电"
+ },
+ {
+ "Id": "Part4",
+ "Name": "闪电"
+ }
+ ]
}
diff --git a/public/models/standard/exp_1.exp3.json b/public/models/standard/exp_1.exp3.json
index 05dd096..285e4c1 100755
--- a/public/models/standard/exp_1.exp3.json
+++ b/public/models/standard/exp_1.exp3.json
@@ -1,15 +1,15 @@
{
- "Type": "Live2D Expression",
- "Parameters": [
- {
- "Id": "ParamEyeLOpen",
- "Value": 0.321,
- "Blend": "Multiply"
- },
- {
- "Id": "ParamEyeROpen",
- "Value": 0.313,
- "Blend": "Multiply"
- }
- ]
+ "Type": "Live2D Expression",
+ "Parameters": [
+ {
+ "Id": "ParamEyeLOpen",
+ "Value": 0.321,
+ "Blend": "Multiply"
+ },
+ {
+ "Id": "ParamEyeROpen",
+ "Value": 0.313,
+ "Blend": "Multiply"
+ }
+ ]
}
diff --git a/public/models/standard/exp_2.exp3.json b/public/models/standard/exp_2.exp3.json
index db4d68d..0c389fe 100755
--- a/public/models/standard/exp_2.exp3.json
+++ b/public/models/standard/exp_2.exp3.json
@@ -1,10 +1,10 @@
{
- "Type": "Live2D Expression",
- "Parameters": [
- {
- "Id": "ParamEyeLOpen",
- "Value": -1,
- "Blend": "Add"
- }
- ]
+ "Type": "Live2D Expression",
+ "Parameters": [
+ {
+ "Id": "ParamEyeLOpen",
+ "Value": -1,
+ "Blend": "Add"
+ }
+ ]
}
diff --git a/public/models/standard/live2d_expression0.exp3.json b/public/models/standard/live2d_expression0.exp3.json
index 21f59d3..4162d04 100755
--- a/public/models/standard/live2d_expression0.exp3.json
+++ b/public/models/standard/live2d_expression0.exp3.json
@@ -1,4 +1,4 @@
{
- "Type": "Live2D Expression",
- "Parameters": []
+ "Type": "Live2D Expression",
+ "Parameters": []
}
diff --git a/public/models/standard/live2d_expression1.exp3.json b/public/models/standard/live2d_expression1.exp3.json
index 8308da7..d87ba5d 100755
--- a/public/models/standard/live2d_expression1.exp3.json
+++ b/public/models/standard/live2d_expression1.exp3.json
@@ -1,11 +1,11 @@
{
- "Type": "Live2D Expression",
- "FadeInTime": 0.8,
- "Parameters": [
- {
- "Id": "Param4",
- "Value": 1,
- "Blend": "Add"
- }
- ]
+ "Type": "Live2D Expression",
+ "FadeInTime": 0.8,
+ "Parameters": [
+ {
+ "Id": "Param4",
+ "Value": 1,
+ "Blend": "Add"
+ }
+ ]
}
diff --git a/public/models/standard/live2d_expression2.exp3.json b/public/models/standard/live2d_expression2.exp3.json
index 08b159a..2008f51 100755
--- a/public/models/standard/live2d_expression2.exp3.json
+++ b/public/models/standard/live2d_expression2.exp3.json
@@ -1,11 +1,11 @@
{
- "Type": "Live2D Expression",
- "FadeInTime": 0.5,
- "Parameters": [
- {
- "Id": "Param5",
- "Value": 1,
- "Blend": "Add"
- }
- ]
+ "Type": "Live2D Expression",
+ "FadeInTime": 0.5,
+ "Parameters": [
+ {
+ "Id": "Param5",
+ "Value": 1,
+ "Blend": "Add"
+ }
+ ]
}
diff --git a/public/models/standard/live2d_motion1.motion3.json b/public/models/standard/live2d_motion1.motion3.json
index 4b1d0fe..42c68d4 100755
--- a/public/models/standard/live2d_motion1.motion3.json
+++ b/public/models/standard/live2d_motion1.motion3.json
@@ -1,32 +1,76 @@
{
- "Version": 3,
- "Meta": {
- "Duration": 1.633,
- "Fps": 30.0,
- "Loop": true,
- "AreBeziersRestricted": false,
- "CurveCount": 2,
- "TotalSegmentCount": 8,
- "TotalPointCount": 20,
- "UserDataCount": 0,
- "TotalUserDataSize": 0
- },
- "Curves": [
- {
- "Target": "Parameter",
- "Id": "Param",
- "Segments": [
- 0, 0, 1, 0.033, 0, 0.067, 1, 0.1, 1, 1, 0.411, 1, 0.722, 1, 1.033, 1, 1,
- 1.189, 1, 1.344, 0, 1.5, 0, 0, 1.633, 0
- ]
- },
- {
- "Target": "Parameter",
- "Id": "Param2",
- "Segments": [
- 0, 0, 0, 0.067, 0, 1, 0.1, 0, 0.133, 0.142, 0.167, 0.2, 1, 0.489, 0.764,
- 0.811, 1, 1.133, 1, 0, 1.633, 1
- ]
- }
- ]
+ "Version": 3,
+ "Meta": {
+ "Duration": 1.633,
+ "Fps": 30.0,
+ "Loop": true,
+ "AreBeziersRestricted": false,
+ "CurveCount": 2,
+ "TotalSegmentCount": 8,
+ "TotalPointCount": 20,
+ "UserDataCount": 0,
+ "TotalUserDataSize": 0
+ },
+ "Curves": [
+ {
+ "Target": "Parameter",
+ "Id": "Param",
+ "Segments": [
+ 0,
+ 0,
+ 1,
+ 0.033,
+ 0,
+ 0.067,
+ 1,
+ 0.1,
+ 1,
+ 1,
+ 0.411,
+ 1,
+ 0.722,
+ 1,
+ 1.033,
+ 1,
+ 1,
+ 1.189,
+ 1,
+ 1.344,
+ 0,
+ 1.5,
+ 0,
+ 0,
+ 1.633,
+ 0
+ ]
+ },
+ {
+ "Target": "Parameter",
+ "Id": "Param2",
+ "Segments": [
+ 0,
+ 0,
+ 0,
+ 0.067,
+ 0,
+ 1,
+ 0.1,
+ 0,
+ 0.133,
+ 0.142,
+ 0.167,
+ 0.2,
+ 1,
+ 0.489,
+ 0.764,
+ 0.811,
+ 1,
+ 1.133,
+ 1,
+ 0,
+ 1.633,
+ 1
+ ]
+ }
+ ]
}
diff --git a/public/models/standard/live2d_motion2.motion3.json b/public/models/standard/live2d_motion2.motion3.json
index 5e1a63e..bae53b4 100755
--- a/public/models/standard/live2d_motion2.motion3.json
+++ b/public/models/standard/live2d_motion2.motion3.json
@@ -1,30 +1,77 @@
{
- "Version": 3,
- "Meta": {
- "Duration": 2.333,
- "Fps": 30.0,
- "Loop": true,
- "AreBeziersRestricted": true,
- "CurveCount": 2,
- "TotalSegmentCount": 7,
- "TotalPointCount": 21,
- "UserDataCount": 0,
- "TotalUserDataSize": 0
- },
- "Curves": [
- {
- "Target": "Parameter",
- "Id": "CatParamLeftHandDown",
- "Segments": [0, 0, 0, 2.333, 0]
- },
- {
- "Target": "Parameter",
- "Id": "Param3",
- "Segments": [
- 0, 0, 1, 0.133, 0, 0.267, 30, 0.4, 30, 1, 0.522, 30, 0.644, 0, 0.767, 0,
- 1, 0.9, 0, 1.033, 30, 1.167, 30, 1, 1.3, 30, 1.433, 0, 1.567, 0, 1, 1.7,
- 0, 1.833, 30, 1.967, 30, 1, 2.089, 30, 2.211, 0, 2.333, 0
- ]
- }
- ]
+ "Version": 3,
+ "Meta": {
+ "Duration": 2.333,
+ "Fps": 30.0,
+ "Loop": true,
+ "AreBeziersRestricted": true,
+ "CurveCount": 2,
+ "TotalSegmentCount": 7,
+ "TotalPointCount": 21,
+ "UserDataCount": 0,
+ "TotalUserDataSize": 0
+ },
+ "Curves": [
+ {
+ "Target": "Parameter",
+ "Id": "CatParamLeftHandDown",
+ "Segments": [
+ 0,
+ 0,
+ 0,
+ 2.333,
+ 0
+ ]
+ },
+ {
+ "Target": "Parameter",
+ "Id": "Param3",
+ "Segments": [
+ 0,
+ 0,
+ 1,
+ 0.133,
+ 0,
+ 0.267,
+ 30,
+ 0.4,
+ 30,
+ 1,
+ 0.522,
+ 30,
+ 0.644,
+ 0,
+ 0.767,
+ 0,
+ 1,
+ 0.9,
+ 0,
+ 1.033,
+ 30,
+ 1.167,
+ 30,
+ 1,
+ 1.3,
+ 30,
+ 1.433,
+ 0,
+ 1.567,
+ 0,
+ 1,
+ 1.7,
+ 0,
+ 1.833,
+ 30,
+ 1.967,
+ 30,
+ 1,
+ 2.089,
+ 30,
+ 2.211,
+ 0,
+ 2.333,
+ 0
+ ]
+ }
+ ]
}
diff --git a/scripts/buildIcon.ts b/scripts/buildIcon.ts
new file mode 100644
index 0000000..e1ff799
--- /dev/null
+++ b/scripts/buildIcon.ts
@@ -0,0 +1,12 @@
+import { execSync } from 'node:child_process'
+import { env, platform } from 'node:process'
+
+(() => {
+ const isMac = env.PLATFORM?.startsWith('macos') ?? platform === 'darwin'
+
+ const logoName = isMac ? 'logo-mac' : 'logo'
+
+ const command = `tauri icon src-tauri/assets/${logoName}.png`
+
+ execSync(command, { stdio: 'inherit' })
+})()
diff --git a/scripts/release.ts b/scripts/release.ts
new file mode 100644
index 0000000..d1a5e6d
--- /dev/null
+++ b/scripts/release.ts
@@ -0,0 +1,23 @@
+import { readFileSync, writeFileSync } from 'node:fs'
+import { dirname, resolve } from 'node:path'
+import { fileURLToPath } from 'node:url'
+import { name, version } from '../package.json'
+
+const __dirname = dirname(fileURLToPath(import.meta.url));
+
+(() => {
+ const tomlPath = resolve(__dirname, '..', 'src-tauri', 'Cargo.toml')
+ const lockPath = resolve(__dirname, '..', 'Cargo.lock')
+
+ for (const path of [tomlPath, lockPath]) {
+ let content = readFileSync(path, 'utf-8')
+
+ const regexp = new RegExp(
+ `(name\\s*=\\s*"${name}"\\s*version\\s*=\\s*)"(\\d+\\.\\d+\\.\\d+(-\\w+\\.\\d+)?)"`,
+ )
+
+ content = content.replace(regexp, `$1"${version}"`)
+
+ writeFileSync(path, content)
+ }
+})()
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index 1458b90..bdee83b 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -2,7 +2,7 @@
name = "bongo-cat"
version = "0.0.0"
description = "A Tauri App"
-authors = ["ayangweb"]
+authors = [ "ayangweb" ]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -12,19 +12,31 @@ edition = "2021"
# to make the lib name unique and wouldn't conflict with the bin name.
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
name = "bongo_cat_lib"
-crate-type = ["staticlib", "cdylib", "rlib"]
+crate-type = [
+ "staticlib",
+ "cdylib",
+ "rlib"
+]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
-tauri = { workspace = true, features = ["macos-private-api", "tray-icon", "image-png"] }
-serde = { workspace = true, features = ["derive"] }
+tauri = { workspace = true, features = [
+ "macos-private-api",
+ "tray-icon",
+ "image-png"
+] }
+serde = { workspace = true, features = [ "derive" ] }
+
serde_json.workspace = true
+
tauri-plugin-custom-window.workspace = true
+
rdev = "0.5"
tauri-plugin-os = "2"
tauri-plugin-process = "2"
+tauri-plugin-opener = "2"
[target."cfg(target_os = \"macos\")".dependencies]
tauri-nspanel.workspace = true
diff --git a/src-tauri/assets/logo-mac.png b/src-tauri/assets/logo-mac.png
new file mode 100644
index 0000000..f3894cc
Binary files /dev/null and b/src-tauri/assets/logo-mac.png differ
diff --git a/src-tauri/assets/logo.png b/src-tauri/assets/logo.png
index f3894cc..2718ae7 100644
Binary files a/src-tauri/assets/logo.png and b/src-tauri/assets/logo.png differ
diff --git a/src-tauri/assets/tray.png b/src-tauri/assets/tray.png
index 4907f53..2718ae7 100644
Binary files a/src-tauri/assets/tray.png and b/src-tauri/assets/tray.png differ
diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json
index fba2e59..5ce132f 100644
--- a/src-tauri/capabilities/default.json
+++ b/src-tauri/capabilities/default.json
@@ -1,14 +1,17 @@
{
- "$schema": "../gen/schemas/desktop-schema.json",
- "identifier": "default",
- "description": "Capability for the main window",
- "windows": ["*"],
- "permissions": [
- "core:default",
- "core:window:allow-start-dragging",
- "core:window:allow-set-size",
- "custom-window:default",
- "os:default",
- "process:default"
- ]
+ "$schema": "../gen/schemas/desktop-schema.json",
+ "identifier": "default",
+ "description": "Capability for the main window",
+ "windows": [
+ "*"
+ ],
+ "permissions": [
+ "core:default",
+ "core:window:allow-start-dragging",
+ "core:window:allow-set-size",
+ "custom-window:default",
+ "os:default",
+ "process:default",
+ "opener:default"
+ ]
}
diff --git a/src-tauri/src/core/setup/macos.rs b/src-tauri/src/core/setup/macos.rs
index d62d7dc..27a28db 100644
--- a/src-tauri/src/core/setup/macos.rs
+++ b/src-tauri/src/core/setup/macos.rs
@@ -1,5 +1,8 @@
use tauri::{ActivationPolicy, AppHandle, Emitter, EventTarget, WebviewWindow};
-use tauri_nspanel::{cocoa::appkit::NSWindowCollectionBehavior, panel_delegate, WebviewWindowExt};
+use tauri_nspanel::{
+ cocoa::appkit::{NSMainMenuWindowLevel, NSWindowCollectionBehavior},
+ panel_delegate, WebviewWindowExt,
+};
use tauri_plugin_custom_window::MAIN_WINDOW_LABEL;
#[allow(non_upper_case_globals)]
@@ -22,7 +25,7 @@ pub fn platform(
let panel = main_window.to_panel().unwrap();
- panel.set_level(20);
+ panel.set_level(NSMainMenuWindowLevel);
panel.set_style_mask(NSWindowStyleMaskNonActivatingPanel | NSResizableWindowMask);
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs
index 09518e0..d957bb7 100644
--- a/src-tauri/src/lib.rs
+++ b/src-tauri/src/lib.rs
@@ -23,6 +23,7 @@ pub fn run() {
.plugin(tauri_plugin_custom_window::init())
.plugin(tauri_plugin_os::init())
.plugin(tauri_plugin_process::init())
+ .plugin(tauri_plugin_opener::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
diff --git a/src-tauri/src/plugins/window/Cargo.toml b/src-tauri/src/plugins/window/Cargo.toml
index ea55b78..989136d 100644
--- a/src-tauri/src/plugins/window/Cargo.toml
+++ b/src-tauri/src/plugins/window/Cargo.toml
@@ -9,10 +9,11 @@ links = "tauri-plugin-custom-window"
[dependencies]
tauri.workspace = true
+
serde.workspace = true
[build-dependencies]
tauri-plugin.workspace = true
[target."cfg(target_os = \"macos\")".dependencies]
-tauri-nspanel.workspace = true
\ No newline at end of file
+tauri-nspanel.workspace = true
diff --git a/src-tauri/src/plugins/window/permissions/default.toml b/src-tauri/src/plugins/window/permissions/default.toml
index a0ab744..a4eac2e 100644
--- a/src-tauri/src/plugins/window/permissions/default.toml
+++ b/src-tauri/src/plugins/window/permissions/default.toml
@@ -2,4 +2,7 @@
[default]
description = "Default permissions for the plugin"
-permissions = ["allow-show-window", "allow-hide-window"]
+permissions = [
+ "allow-show-window",
+ "allow-hide-window"
+]
diff --git a/src-tauri/src/plugins/window/permissions/schemas/schema.json b/src-tauri/src/plugins/window/permissions/schemas/schema.json
index d1783ed..028819b 100644
--- a/src-tauri/src/plugins/window/permissions/schemas/schema.json
+++ b/src-tauri/src/plugins/window/permissions/schemas/schema.json
@@ -1,286 +1,325 @@
{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "PermissionFile",
- "description": "Permission file that can define a default permission, a set of permissions or a list of inlined permissions.",
- "type": "object",
- "properties": {
- "default": {
- "description": "The default permission set for the plugin",
- "anyOf": [
- {
- "$ref": "#/definitions/DefaultPermission"
- },
- {
- "type": "null"
- }
- ]
- },
- "set": {
- "description": "A list of permissions sets defined",
- "type": "array",
- "items": {
- "$ref": "#/definitions/PermissionSet"
- }
- },
- "permission": {
- "description": "A list of inlined permissions",
- "default": [],
- "type": "array",
- "items": {
- "$ref": "#/definitions/Permission"
- }
- }
- },
- "definitions": {
- "DefaultPermission": {
- "description": "The default permission set of the plugin.\n\nWorks similarly to a permission with the \"default\" identifier.",
- "type": "object",
- "required": ["permissions"],
- "properties": {
- "version": {
- "description": "The version of the permission.",
- "type": ["integer", "null"],
- "format": "uint64",
- "minimum": 1.0
- },
- "description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
- "type": ["string", "null"]
- },
- "permissions": {
- "description": "All permissions this set contains.",
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- },
- "PermissionSet": {
- "description": "A set of direct permissions grouped together under a new name.",
- "type": "object",
- "required": ["description", "identifier", "permissions"],
- "properties": {
- "identifier": {
- "description": "A unique identifier for the permission.",
- "type": "string"
- },
- "description": {
- "description": "Human-readable description of what the permission does.",
- "type": "string"
- },
- "permissions": {
- "description": "All permissions this set contains.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/PermissionKind"
- }
- }
- }
- },
- "Permission": {
- "description": "Descriptions of explicit privileges of commands.\n\nIt can enable commands to be accessible in the frontend of the application.\n\nIf the scope is defined it can be used to fine grain control the access of individual or multiple commands.",
- "type": "object",
- "required": ["identifier"],
- "properties": {
- "version": {
- "description": "The version of the permission.",
- "type": ["integer", "null"],
- "format": "uint64",
- "minimum": 1.0
- },
- "identifier": {
- "description": "A unique identifier for the permission.",
- "type": "string"
- },
- "description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
- "type": ["string", "null"]
- },
- "commands": {
- "description": "Allowed or denied commands when using this permission.",
- "default": {
- "allow": [],
- "deny": []
- },
- "allOf": [
- {
- "$ref": "#/definitions/Commands"
- }
- ]
- },
- "scope": {
- "description": "Allowed or denied scoped when using this permission.",
- "allOf": [
- {
- "$ref": "#/definitions/Scopes"
- }
- ]
- },
- "platforms": {
- "description": "Target platforms this permission applies. By default all platforms are affected by this permission.",
- "type": ["array", "null"],
- "items": {
- "$ref": "#/definitions/Target"
- }
- }
- }
- },
- "Commands": {
- "description": "Allowed and denied commands inside a permission.\n\nIf two commands clash inside of `allow` and `deny`, it should be denied by default.",
- "type": "object",
- "properties": {
- "allow": {
- "description": "Allowed command.",
- "default": [],
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "deny": {
- "description": "Denied command, which takes priority.",
- "default": [],
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- },
- "Scopes": {
- "description": "An argument for fine grained behavior control of Tauri commands.\n\nIt can be of any serde serializable type and is used to allow or prevent certain actions inside a Tauri command. The configured scope is passed to the command and will be enforced by the command implementation.\n\n## Example\n\n```json { \"allow\": [{ \"path\": \"$HOME/**\" }], \"deny\": [{ \"path\": \"$HOME/secret.txt\" }] } ```",
- "type": "object",
- "properties": {
- "allow": {
- "description": "Data that defines what is allowed by the scope.",
- "type": ["array", "null"],
- "items": {
- "$ref": "#/definitions/Value"
- }
- },
- "deny": {
- "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.",
- "type": ["array", "null"],
- "items": {
- "$ref": "#/definitions/Value"
- }
- }
- }
- },
- "Value": {
- "description": "All supported ACL values.",
- "anyOf": [
- {
- "description": "Represents a null JSON value.",
- "type": "null"
- },
- {
- "description": "Represents a [`bool`].",
- "type": "boolean"
- },
- {
- "description": "Represents a valid ACL [`Number`].",
- "allOf": [
- {
- "$ref": "#/definitions/Number"
- }
- ]
- },
- {
- "description": "Represents a [`String`].",
- "type": "string"
- },
- {
- "description": "Represents a list of other [`Value`]s.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/Value"
- }
- },
- {
- "description": "Represents a map of [`String`] keys to [`Value`]s.",
- "type": "object",
- "additionalProperties": {
- "$ref": "#/definitions/Value"
- }
- }
- ]
- },
- "Number": {
- "description": "A valid ACL number.",
- "anyOf": [
- {
- "description": "Represents an [`i64`].",
- "type": "integer",
- "format": "int64"
- },
- {
- "description": "Represents a [`f64`].",
- "type": "number",
- "format": "double"
- }
- ]
- },
- "Target": {
- "description": "Platform target.",
- "oneOf": [
- {
- "description": "MacOS.",
- "type": "string",
- "enum": ["macOS"]
- },
- {
- "description": "Windows.",
- "type": "string",
- "enum": ["windows"]
- },
- {
- "description": "Linux.",
- "type": "string",
- "enum": ["linux"]
- },
- {
- "description": "Android.",
- "type": "string",
- "enum": ["android"]
- },
- {
- "description": "iOS.",
- "type": "string",
- "enum": ["iOS"]
- }
- ]
- },
- "PermissionKind": {
- "type": "string",
- "oneOf": [
- {
- "description": "Enables the hide_window command without any pre-configured scope.",
- "type": "string",
- "const": "allow-hide-window"
- },
- {
- "description": "Denies the hide_window command without any pre-configured scope.",
- "type": "string",
- "const": "deny-hide-window"
- },
- {
- "description": "Enables the show_window command without any pre-configured scope.",
- "type": "string",
- "const": "allow-show-window"
- },
- {
- "description": "Denies the show_window command without any pre-configured scope.",
- "type": "string",
- "const": "deny-show-window"
- },
- {
- "description": "Default permissions for the plugin",
- "type": "string",
- "const": "default"
- }
- ]
- }
- }
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "PermissionFile",
+ "description": "Permission file that can define a default permission, a set of permissions or a list of inlined permissions.",
+ "type": "object",
+ "properties": {
+ "default": {
+ "description": "The default permission set for the plugin",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/DefaultPermission"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "set": {
+ "description": "A list of permissions sets defined",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PermissionSet"
+ }
+ },
+ "permission": {
+ "description": "A list of inlined permissions",
+ "default": [],
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Permission"
+ }
+ }
+ },
+ "definitions": {
+ "DefaultPermission": {
+ "description": "The default permission set of the plugin.\n\nWorks similarly to a permission with the \"default\" identifier.",
+ "type": "object",
+ "required": [
+ "permissions"
+ ],
+ "properties": {
+ "version": {
+ "description": "The version of the permission.",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint64",
+ "minimum": 1.0
+ },
+ "description": {
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "permissions": {
+ "description": "All permissions this set contains.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "PermissionSet": {
+ "description": "A set of direct permissions grouped together under a new name.",
+ "type": "object",
+ "required": [
+ "description",
+ "identifier",
+ "permissions"
+ ],
+ "properties": {
+ "identifier": {
+ "description": "A unique identifier for the permission.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Human-readable description of what the permission does.",
+ "type": "string"
+ },
+ "permissions": {
+ "description": "All permissions this set contains.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PermissionKind"
+ }
+ }
+ }
+ },
+ "Permission": {
+ "description": "Descriptions of explicit privileges of commands.\n\nIt can enable commands to be accessible in the frontend of the application.\n\nIf the scope is defined it can be used to fine grain control the access of individual or multiple commands.",
+ "type": "object",
+ "required": [
+ "identifier"
+ ],
+ "properties": {
+ "version": {
+ "description": "The version of the permission.",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint64",
+ "minimum": 1.0
+ },
+ "identifier": {
+ "description": "A unique identifier for the permission.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "commands": {
+ "description": "Allowed or denied commands when using this permission.",
+ "default": {
+ "allow": [],
+ "deny": []
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Commands"
+ }
+ ]
+ },
+ "scope": {
+ "description": "Allowed or denied scoped when using this permission.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Scopes"
+ }
+ ]
+ },
+ "platforms": {
+ "description": "Target platforms this permission applies. By default all platforms are affected by this permission.",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/definitions/Target"
+ }
+ }
+ }
+ },
+ "Commands": {
+ "description": "Allowed and denied commands inside a permission.\n\nIf two commands clash inside of `allow` and `deny`, it should be denied by default.",
+ "type": "object",
+ "properties": {
+ "allow": {
+ "description": "Allowed command.",
+ "default": [],
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "deny": {
+ "description": "Denied command, which takes priority.",
+ "default": [],
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "Scopes": {
+ "description": "An argument for fine grained behavior control of Tauri commands.\n\nIt can be of any serde serializable type and is used to allow or prevent certain actions inside a Tauri command. The configured scope is passed to the command and will be enforced by the command implementation.\n\n## Example\n\n```json { \"allow\": [{ \"path\": \"$HOME/**\" }], \"deny\": [{ \"path\": \"$HOME/secret.txt\" }] } ```",
+ "type": "object",
+ "properties": {
+ "allow": {
+ "description": "Data that defines what is allowed by the scope.",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/definitions/Value"
+ }
+ },
+ "deny": {
+ "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/definitions/Value"
+ }
+ }
+ }
+ },
+ "Value": {
+ "description": "All supported ACL values.",
+ "anyOf": [
+ {
+ "description": "Represents a null JSON value.",
+ "type": "null"
+ },
+ {
+ "description": "Represents a [`bool`].",
+ "type": "boolean"
+ },
+ {
+ "description": "Represents a valid ACL [`Number`].",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Number"
+ }
+ ]
+ },
+ {
+ "description": "Represents a [`String`].",
+ "type": "string"
+ },
+ {
+ "description": "Represents a list of other [`Value`]s.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Value"
+ }
+ },
+ {
+ "description": "Represents a map of [`String`] keys to [`Value`]s.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/Value"
+ }
+ }
+ ]
+ },
+ "Number": {
+ "description": "A valid ACL number.",
+ "anyOf": [
+ {
+ "description": "Represents an [`i64`].",
+ "type": "integer",
+ "format": "int64"
+ },
+ {
+ "description": "Represents a [`f64`].",
+ "type": "number",
+ "format": "double"
+ }
+ ]
+ },
+ "Target": {
+ "description": "Platform target.",
+ "oneOf": [
+ {
+ "description": "MacOS.",
+ "type": "string",
+ "enum": [
+ "macOS"
+ ]
+ },
+ {
+ "description": "Windows.",
+ "type": "string",
+ "enum": [
+ "windows"
+ ]
+ },
+ {
+ "description": "Linux.",
+ "type": "string",
+ "enum": [
+ "linux"
+ ]
+ },
+ {
+ "description": "Android.",
+ "type": "string",
+ "enum": [
+ "android"
+ ]
+ },
+ {
+ "description": "iOS.",
+ "type": "string",
+ "enum": [
+ "iOS"
+ ]
+ }
+ ]
+ },
+ "PermissionKind": {
+ "type": "string",
+ "oneOf": [
+ {
+ "description": "Enables the hide_window command without any pre-configured scope.",
+ "type": "string",
+ "const": "allow-hide-window"
+ },
+ {
+ "description": "Denies the hide_window command without any pre-configured scope.",
+ "type": "string",
+ "const": "deny-hide-window"
+ },
+ {
+ "description": "Enables the show_window command without any pre-configured scope.",
+ "type": "string",
+ "const": "allow-show-window"
+ },
+ {
+ "description": "Denies the show_window command without any pre-configured scope.",
+ "type": "string",
+ "const": "deny-show-window"
+ },
+ {
+ "description": "Default permissions for the plugin",
+ "type": "string",
+ "const": "default"
+ }
+ ]
+ }
+ }
}
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index c1f8b29..3e04157 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -1,51 +1,59 @@
{
- "$schema": "https://schema.tauri.app/config/2",
- "productName": "BongoCat",
- "version": "../package.json",
- "identifier": "com.ayangweb.BongoCat",
- "build": {
- "beforeDevCommand": "pnpm dev",
- "devUrl": "http://localhost:1420",
- "beforeBuildCommand": "pnpm build",
- "frontendDist": "../dist"
- },
- "app": {
- "macOSPrivateApi": true,
- "windows": [
- {
- "label": "main",
- "title": "BongoCat",
- "url": "index.html/#/",
- "width": 408,
- "height": 236,
- "alwaysOnTop": true,
- "transparent": true,
- "decorations": false,
- "acceptFirstMouse": true
- },
- {
- "label": "preference",
- "title": "偏好设置",
- "url": "index.html/#/preference",
- "visible": false
- }
- ],
- "security": {
- "csp": null
- }
- },
- "bundle": {
- "active": true,
- "createUpdaterArtifacts": true,
- "targets": ["nsis", "dmg", "app", "appimage", "deb", "rpm"],
- "shortDescription": "BongoCat",
- "icon": [
- "icons/32x32.png",
- "icons/128x128.png",
- "icons/128x128@2x.png",
- "icons/icon.icns",
- "icons/icon.ico"
- ],
- "resources": ["assets/tray.png"]
- }
+ "$schema": "https://schema.tauri.app/config/2",
+ "productName": "BongoCat",
+ "version": "../package.json",
+ "identifier": "com.ayangweb.BongoCat",
+ "build": {
+ "beforeDevCommand": "pnpm dev",
+ "devUrl": "http://localhost:1420",
+ "beforeBuildCommand": "pnpm build",
+ "frontendDist": "../dist"
+ },
+ "app": {
+ "macOSPrivateApi": true,
+ "windows": [
+ {
+ "label": "main",
+ "title": "BongoCat",
+ "url": "index.html/#/",
+ "width": 408,
+ "height": 236,
+ "alwaysOnTop": true,
+ "transparent": true,
+ "decorations": false,
+ "acceptFirstMouse": true
+ },
+ {
+ "label": "preference",
+ "title": "偏好设置",
+ "url": "index.html/#/preference",
+ "visible": false
+ }
+ ],
+ "security": {
+ "csp": null
+ }
+ },
+ "bundle": {
+ "active": true,
+ "createUpdaterArtifacts": true,
+ "targets": ["nsis", "dmg", "app", "appimage", "deb", "rpm"],
+ "shortDescription": "BongoCat",
+ "icon": [
+ "icons/32x32.png",
+ "icons/128x128.png",
+ "icons/128x128@2x.png",
+ "icons/icon.icns",
+ "icons/icon.ico"
+ ],
+ "resources": ["assets/tray.png"]
+ },
+ "plugins": {
+ "updater": {
+ "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEVBRjJFMzE3MjEwMUZEMTAKUldRUS9RRWhGK1B5NmdkemhKcUFrVjZBQXlzdExpakdWVEJDeU9XckVsbzV2cFIycVJOempWa2UK",
+ "endpoints": [
+ "https://github.com/ayangweb/BongoCat/releases/latest/download/latest.json"
+ ]
+ }
+ }
}
diff --git a/src-tauri/tauri.linux.conf.json b/src-tauri/tauri.linux.conf.json
index a2f643e..12375c1 100644
--- a/src-tauri/tauri.linux.conf.json
+++ b/src-tauri/tauri.linux.conf.json
@@ -1,15 +1,15 @@
{
- "identifier": "com.ayangweb.BongoCat",
- "bundle": {
- "linux": {
- "deb": {
- "depends": ["gstreamer1.0-plugins-good"],
- "desktopTemplate": "./BongoCat.desktop"
- },
- "rpm": {
- "depends": ["gstreamer1-plugins-good"],
- "desktopTemplate": "./BongoCat.desktop"
- }
- }
- }
+ "identifier": "com.ayangweb.BongoCat",
+ "bundle": {
+ "linux": {
+ "deb": {
+ "depends": ["gstreamer1.0-plugins-good"],
+ "desktopTemplate": "./BongoCat.desktop"
+ },
+ "rpm": {
+ "depends": ["gstreamer1-plugins-good"],
+ "desktopTemplate": "./BongoCat.desktop"
+ }
+ }
+ }
}
diff --git a/src-tauri/tauri.macos.conf.json b/src-tauri/tauri.macos.conf.json
index 0f264d0..1831f81 100644
--- a/src-tauri/tauri.macos.conf.json
+++ b/src-tauri/tauri.macos.conf.json
@@ -1,6 +1,6 @@
{
- "identifier": "com.ayangweb.BongoCat",
- "bundle": {
- "resources": ["assets/tray-mac.png"]
- }
+ "identifier": "com.ayangweb.BongoCat",
+ "bundle": {
+ "resources": ["assets/tray-mac.png"]
+ }
}
diff --git a/src-tauri/tauri.windows.conf.json b/src-tauri/tauri.windows.conf.json
index 2cdaef9..125dced 100644
--- a/src-tauri/tauri.windows.conf.json
+++ b/src-tauri/tauri.windows.conf.json
@@ -1,12 +1,12 @@
{
- "identifier": "com.ayangweb.BongoCat",
- "bundle": {
- "windows": {
- "digestAlgorithm": "sha256",
- "nsis": {
- "languages": ["SimpChinese"],
- "installMode": "both"
- }
- }
- }
+ "identifier": "com.ayangweb.BongoCat",
+ "bundle": {
+ "windows": {
+ "digestAlgorithm": "sha256",
+ "nsis": {
+ "languages": ["SimpChinese"],
+ "installMode": "both"
+ }
+ }
+ }
}
diff --git a/src/App.tsx b/src/App.tsx
deleted file mode 100644
index 909429b..0000000
--- a/src/App.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import { listen } from "@tauri-apps/api/event";
-import { getCurrentWebviewWindow } from "@tauri-apps/api/webviewWindow";
-import { useEffect } from "react";
-import { RouterProvider } from "react-router-dom";
-import { LISTEN_KEY } from "./constants";
-import { hideWindow, showWindow } from "./plugins/window";
-import { router } from "./router";
-
-const App = () => {
- useEffect(() => {
- const appWindow = getCurrentWebviewWindow();
-
- listen(LISTEN_KEY.SHOW_WINDOW, ({ payload }) => {
- if (appWindow.label !== payload) return;
-
- showWindow();
- });
-
- listen(LISTEN_KEY.HIDE_WINDOW, ({ payload }) => {
- if (appWindow.label !== payload) return;
-
- hideWindow();
- });
- }, []);
-
- return ;
-};
-
-export default App;
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..389265d
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/src/assets/css/global.css b/src/assets/css/global.css
index 05e4fd0..0b6eb99 100644
--- a/src/assets/css/global.css
+++ b/src/assets/css/global.css
@@ -1,6 +1,6 @@
@font-face {
- font-family: "cat";
- src: url("../fonts/cat.woff2") format("woff2");
+ font-family: 'cat';
+ src: url('../fonts/cat.woff2') format('woff2');
}
html {
diff --git a/src/composables/useDevice.ts b/src/composables/useDevice.ts
new file mode 100644
index 0000000..6af9ad8
--- /dev/null
+++ b/src/composables/useDevice.ts
@@ -0,0 +1,70 @@
+import { listen } from '@tauri-apps/api/event'
+import { onMounted, ref } from 'vue'
+
+type MouseButtonValue = 'Left' | 'Right' | 'Middle'
+
+interface MouseButtonEvent {
+ kind: 'MousePress' | 'MouseRelease'
+ value: MouseButtonValue
+}
+
+interface MouseMoveValue {
+ x: number
+ y: number
+}
+
+interface MouseMoveEvent {
+ kind: 'MouseMove'
+ value: MouseMoveValue
+}
+
+interface KeyboardEvent {
+ kind: 'KeyboardPress' | 'KeyboardRelease'
+ value: string
+}
+
+type DeviceEvent = MouseButtonEvent | MouseMoveEvent | KeyboardEvent
+
+export function useDevice() {
+ const pressedMouses = ref([])
+ const mousePosition = ref()
+ const pressedKeys = ref([])
+
+ const handlePress = (array: T[], value: T) => {
+ return [...new Set([...array, value])]
+ }
+
+ const handleRelease = (array: T[], value: T) => {
+ return array.filter(item => item !== value)
+ }
+
+ onMounted(() => {
+ listen('change', ({ payload }) => {
+ const { kind, value } = payload
+
+ switch (kind) {
+ case 'MousePress':
+ pressedMouses.value = handlePress(pressedMouses.value, value)
+ break
+ case 'MouseRelease':
+ pressedMouses.value = handleRelease(pressedMouses.value, value)
+ break
+ case 'MouseMove':
+ mousePosition.value = value
+ break
+ case 'KeyboardPress':
+ pressedKeys.value = handlePress(pressedKeys.value, value)
+ break
+ case 'KeyboardRelease':
+ pressedKeys.value = handleRelease(pressedKeys.value, value)
+ break
+ }
+ })
+ })
+
+ return {
+ pressedMouses,
+ pressedKeys,
+ mousePosition,
+ }
+}
diff --git a/src/composables/useModel.ts b/src/composables/useModel.ts
new file mode 100644
index 0000000..3f3ab3c
--- /dev/null
+++ b/src/composables/useModel.ts
@@ -0,0 +1,67 @@
+import type { IApplicationOptions } from 'pixi.js'
+import { Live2DModel } from 'pixi-live2d-display'
+import { Application } from 'pixi.js'
+import { ref } from 'vue'
+
+interface Options extends IApplicationOptions {
+ url: string
+}
+
+interface Motion {
+ Name: string
+ File: string
+ Sound?: string
+ FadeInTime: number
+ FadeOutTime: number
+}
+
+interface Expression {
+ Name: string
+ File: string
+}
+
+export function useModel() {
+ const model = ref()
+ const motions = ref>({})
+ const expressions = ref([])
+
+ const loadModel = async (options: Options) => {
+ const { url, ...rest } = options
+
+ destroyModel()
+
+ const app = new Application({
+ resizeTo: window,
+ backgroundAlpha: 0,
+ ...rest,
+ })
+
+ const loadedModel = await Live2DModel.from(url)
+
+ app.stage.addChild(loadedModel)
+
+ const { definitions, expressionManager }
+ = loadedModel.internalModel.motionManager
+
+ model.value = loadedModel
+ motions.value = definitions as Record
+ expressions.value = expressionManager?.definitions as Expression[]
+ }
+
+ const destroyModel = () => {
+ model.value?.destroy()
+ }
+
+ const setParameterValue = (id: string, value: number | boolean) => {
+ return model.value?.internalModel.coreModel.setParameterValueById(id, Number(value))
+ }
+
+ return {
+ model,
+ motions,
+ expressions,
+ loadModel,
+ destroyModel,
+ setParameterValue,
+ }
+}
diff --git a/src/composables/useTray.ts b/src/composables/useTray.ts
new file mode 100644
index 0000000..d511017
--- /dev/null
+++ b/src/composables/useTray.ts
@@ -0,0 +1,111 @@
+import type { TrayIconOptions } from '@tauri-apps/api/tray'
+import { getName, getVersion } from '@tauri-apps/api/app'
+import { Menu, MenuItem, PredefinedMenuItem } from '@tauri-apps/api/menu'
+import { resolveResource } from '@tauri-apps/api/path'
+import { TrayIcon } from '@tauri-apps/api/tray'
+import { openUrl } from '@tauri-apps/plugin-opener'
+import { exit, relaunch } from '@tauri-apps/plugin-process'
+import { onMounted, ref, watch } from 'vue'
+import { hideWindow, showWindow } from '../plugins/window'
+import { isMac } from '../utils/platform'
+
+const TRAY_ID = 'BONGO_CAT_TRAY'
+
+export function useTray() {
+ const visible = ref(true)
+
+ onMounted(() => {
+ createTray()
+ })
+
+ watch(visible, () => {
+ updateTrayMenu()
+ })
+
+ const createTray = async () => {
+ const tray = await getTrayById()
+
+ if (tray) return
+
+ const appName = await getName()
+ const appVersion = await getVersion()
+
+ const menu = await getTrayMenu()
+
+ const iconPath = isMac ? 'assets/tray-mac.png' : 'assets/tray.png'
+ const icon = await resolveResource(iconPath)
+
+ const options: TrayIconOptions = {
+ menu,
+ icon,
+ id: TRAY_ID,
+ tooltip: `${appName} v${appVersion}`,
+ iconAsTemplate: true,
+ menuOnLeftClick: true,
+ }
+
+ return TrayIcon.new(options)
+ }
+
+ const getTrayById = () => {
+ return TrayIcon.getById(TRAY_ID)
+ }
+
+ const getTrayMenu = async () => {
+ const appVersion = await getVersion()
+
+ const items = await Promise.all([
+ MenuItem.new({
+ text: '偏好设置...',
+ accelerator: 'Cmd+,',
+ action: () => showWindow(),
+ }),
+ MenuItem.new({
+ text: visible.value ? '隐藏猫咪' : '显示猫咪',
+ action: () => {
+ if (visible.value) {
+ hideWindow('main')
+ } else {
+ showWindow('main')
+ }
+
+ visible.value = !visible.value
+ },
+ }),
+ PredefinedMenuItem.new({ item: 'Separator' }),
+ MenuItem.new({
+ text: '检查更新',
+ }),
+ MenuItem.new({
+ text: '开源地址',
+ action: () => openUrl('https://github.com/ayangweb/BongoCat'),
+ }),
+ PredefinedMenuItem.new({ item: 'Separator' }),
+ MenuItem.new({
+ text: `版本 ${appVersion}`,
+ enabled: false,
+ }),
+ MenuItem.new({
+ text: '重启应用',
+ action: relaunch,
+ }),
+ MenuItem.new({
+ text: '退出应用',
+ accelerator: 'Cmd+Q',
+ action: () => exit(0),
+ }),
+ ])
+
+ return Menu.new({ items })
+ }
+
+ const updateTrayMenu = async () => {
+ const tray = await getTrayById()
+
+ if (!tray) return
+
+ const menu = await getTrayMenu()
+
+ tray.setMenu(menu)
+ }
+}
diff --git a/src/constants/index.ts b/src/constants/index.ts
index 7ab9a59..a1cce48 100644
--- a/src/constants/index.ts
+++ b/src/constants/index.ts
@@ -1,4 +1,4 @@
export const LISTEN_KEY = {
- SHOW_WINDOW: "show-window",
- HIDE_WINDOW: "hide-window",
-};
+ SHOW_WINDOW: 'show-window',
+ HIDE_WINDOW: 'hide-window',
+}
diff --git a/src/hooks/useDevice.ts b/src/hooks/useDevice.ts
deleted file mode 100644
index 6334871..0000000
--- a/src/hooks/useDevice.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { listen } from "@tauri-apps/api/event";
-import { type Dispatch, type SetStateAction, useEffect, useState } from "react";
-
-type MouseButtonValue = "Left" | "Right" | "Middle";
-
-type MouseButtonEvent = {
- kind: "MousePress" | "MouseRelease";
- value: MouseButtonValue;
-};
-
-type MouseMoveValue = {
- x: number;
- y: number;
-};
-
-type MouseMoveEvent = {
- kind: "MouseMove";
- value: MouseMoveValue;
-};
-
-type KeyboardEvent = {
- kind: "KeyboardPress" | "KeyboardRelease";
- value: string;
-};
-
-type DeviceEvent = MouseButtonEvent | MouseMoveEvent | KeyboardEvent;
-
-type Setter = Dispatch>;
-
-export const useDevice = () => {
- const [pressedMouses, setPressedMouses] = useState([]);
- const [mousePosition, setMousePosition] = useState();
- const [pressedKeys, setPressedKeys] = useState([]);
-
- useEffect(() => {
- listen("change", ({ payload }) => {
- const { kind, value } = payload;
-
- switch (kind) {
- case "MousePress":
- return handlePress(setPressedMouses, value);
- case "MouseRelease":
- return handleRelease(setPressedMouses, value);
- case "MouseMove":
- return setMousePosition(value);
- case "KeyboardPress":
- return handlePress(setPressedKeys, value);
- case "KeyboardRelease":
- return handleRelease(setPressedKeys, value);
- }
- });
- }, []);
-
- const handlePress = (setter: Setter, value: T) => {
- setter((prev) => [...new Set([...prev, value])]);
- };
-
- const handleRelease = (setter: Setter, value: T) => {
- setter((prev) => prev.filter((item) => item !== value));
- };
-
- return {
- pressedMouses,
- pressedKeys,
- mousePosition,
- };
-};
diff --git a/src/hooks/useModel.ts b/src/hooks/useModel.ts
deleted file mode 100644
index 1985179..0000000
--- a/src/hooks/useModel.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { Live2DModel } from "pixi-live2d-display";
-import { Application } from "pixi.js";
-import { type RefObject, useCallback, useState } from "react";
-
-interface Motion {
- Name: string;
- File: string;
- Sound?: string;
- FadeInTime: number;
- FadeOutTime: number;
-}
-
-interface Expression {
- Name: string;
- File: string;
-}
-
-export const useModel = (container: RefObject) => {
- const [model, setModel] = useState();
- const [motions, setMotions] = useState>({});
- const [expressions, setExpressions] = useState([]);
-
- const loadModel = async (url: string) => {
- if (!container.current) return;
-
- destroyModel();
-
- const app = new Application({
- view: container.current,
- resizeTo: window,
- backgroundAlpha: 0,
- });
-
- const model = await Live2DModel.from(url);
-
- app.stage.addChild(model);
-
- const { definitions, expressionManager } =
- model.internalModel.motionManager;
-
- setModel(model);
- setMotions(definitions as Record);
- setExpressions(expressionManager?.definitions as Expression[]);
- };
-
- const destroyModel = () => {
- model?.destroy();
- };
-
- const setParameterValue = useCallback(
- (id: string, value: number | boolean) => {
- return model?.internalModel.coreModel.setParameterValueById(
- id,
- Number(value),
- );
- },
- [model],
- );
-
- return {
- model,
- motions,
- expressions,
- loadModel,
- destroyModel,
- setParameterValue,
- };
-};
diff --git a/src/hooks/useTray.ts b/src/hooks/useTray.ts
deleted file mode 100644
index e5e6087..0000000
--- a/src/hooks/useTray.ts
+++ /dev/null
@@ -1,109 +0,0 @@
-import { getName, getVersion } from "@tauri-apps/api/app";
-import { Menu, MenuItem, PredefinedMenuItem } from "@tauri-apps/api/menu";
-import { resolveResource } from "@tauri-apps/api/path";
-import { TrayIcon, type TrayIconOptions } from "@tauri-apps/api/tray";
-import { exit, relaunch } from "@tauri-apps/plugin-process";
-import { useEffect, useState } from "react";
-import { hideWindow, showWindow } from "../plugins/window";
-import { isMac } from "../utils/platform";
-
-const TRAY_ID = "BONGO_CAT_TRAY";
-
-export const useTray = () => {
- const [visible, setVisible] = useState(true);
-
- useEffect(() => {
- updateTrayMenu();
- }, [visible]);
-
- const getTrayById = () => {
- return TrayIcon.getById(TRAY_ID);
- };
-
- const createTray = async () => {
- const tray = await getTrayById();
-
- if (tray) return;
-
- const appName = await getName();
- const appVersion = await getVersion();
-
- const menu = await getTrayMenu();
-
- const iconPath = isMac ? "assets/tray-mac.png" : "assets/tray.png";
- const icon = await resolveResource(iconPath);
-
- const options: TrayIconOptions = {
- menu,
- icon,
- id: TRAY_ID,
- tooltip: `${appName} v${appVersion}`,
- iconAsTemplate: true,
- menuOnLeftClick: true,
- };
-
- return TrayIcon.new(options);
- };
-
- const getTrayMenu = async () => {
- const appVersion = await getVersion();
-
- const items = await Promise.all([
- MenuItem.new({
- text: "偏好设置...",
- accelerator: "Cmd+,",
- action: () => showWindow(),
- }),
- MenuItem.new({
- text: visible ? "隐藏猫咪" : "显示猫咪",
- action: () => {
- if (visible) {
- hideWindow("main");
-
- setVisible(false);
- } else {
- showWindow("main");
-
- setVisible(true);
- }
- },
- }),
- PredefinedMenuItem.new({ item: "Separator" }),
- MenuItem.new({
- text: "检查更新",
- }),
- MenuItem.new({
- text: "开源地址",
- // action: () => open(GITHUB_LINK),
- }),
- PredefinedMenuItem.new({ item: "Separator" }),
- MenuItem.new({
- text: `版本 ${appVersion}`,
- enabled: false,
- }),
- MenuItem.new({
- text: "重启应用",
- action: relaunch,
- }),
- MenuItem.new({
- text: "退出应用",
- accelerator: "Cmd+Q",
- action: () => exit(0),
- }),
- ]);
-
- return Menu.new({ items });
- };
-
- const updateTrayMenu = async () => {
- const tray = await getTrayById();
-
- if (!tray) {
- return createTray();
- }
-
- const menu = await getTrayMenu();
-
- tray.setMenu(menu);
- };
-};
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..0eea1f0
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,8 @@
+import { createApp } from 'vue'
+import App from './App.vue'
+import router from './router'
+import 'virtual:uno.css'
+import '@unocss/reset/tailwind-compat.css'
+import './assets/css/global.css'
+
+createApp(App).use(router).mount('#app')
diff --git a/src/main.tsx b/src/main.tsx
deleted file mode 100644
index 71d232c..0000000
--- a/src/main.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import ReactDOM from "react-dom/client";
-import App from "./App";
-import "virtual:uno.css";
-import "@unocss/reset/tailwind-compat.css";
-import "./assets/css/global.css";
-
-ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
- ,
-);
diff --git a/src/pages/Main/index.tsx b/src/pages/Main/index.tsx
deleted file mode 100644
index 051fe19..0000000
--- a/src/pages/Main/index.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-import { LogicalSize } from "@tauri-apps/api/dpi";
-import { getCurrentWebviewWindow } from "@tauri-apps/api/webviewWindow";
-import { Live2DModel } from "pixi-live2d-display";
-import { Ticker } from "pixi.js";
-import { Fragment, useEffect, useRef, useState } from "react";
-import { useDevice } from "../../hooks/useDevice";
-import { useModel } from "../../hooks/useModel";
-
-Live2DModel.registerTicker(Ticker);
-
-const Main = () => {
- const canvasRef = useRef(null);
- const [mode] = useState("standard");
- const { pressedKeys, pressedMouses, mousePosition } = useDevice();
- const { model, loadModel, setParameterValue } = useModel(canvasRef);
-
- useEffect(() => {
- loadModel(`/models/${mode}/cat.model3.json`);
- }, [mode]);
-
- useEffect(() => {
- if (!model) return;
-
- handleResized();
-
- window.removeEventListener("resize", handleResized);
-
- window.addEventListener("resize", handleResized);
- }, [model]);
-
- useEffect(() => {
- const hasArrowKey = pressedKeys.some((key) => key.endsWith("Arrow"));
- const hasNonArrowKey = pressedKeys.some((key) => !key.endsWith("Arrow"));
-
- setParameterValue("CatParamRightHandDown", hasArrowKey);
- setParameterValue("CatParamLeftHandDown", hasNonArrowKey);
- }, [pressedKeys]);
-
- useEffect(() => {
- const isLeftDown = pressedMouses.includes("Left");
- const isRightDown = pressedMouses.includes("Right");
-
- setParameterValue("ParamMouseLeftDown", isLeftDown);
- setParameterValue("ParamMouseRightDown", isRightDown);
- }, [pressedMouses]);
-
- useEffect(() => {
- if (!mousePosition) return;
-
- const { innerWidth, innerHeight } = window;
-
- const x = -30 + (mousePosition.x / innerWidth) * 60;
- const y = -30 + (mousePosition.y / innerHeight) * 60;
-
- setParameterValue("ParamMouseX", -x);
- setParameterValue("ParamMouseY", -y);
- setParameterValue("ParamAngleX", x);
- setParameterValue("ParamAngleY", -y);
- }, [mousePosition]);
-
- const handleResized = async () => {
- if (!model) return;
-
- const { innerWidth } = window;
-
- await getCurrentWebviewWindow().setSize(
- new LogicalSize({
- width: innerWidth,
- height: innerWidth * (354 / 612),
- }),
- );
-
- model.scale.set(innerWidth / 612);
- };
-
- const handleMouseDown = () => {
- const appWindow = getCurrentWebviewWindow();
-
- appWindow.startDragging();
- };
-
- return (
-
-
-
-
-
- {pressedKeys.map((item) => (
-
-
-
-
- ))}
-
- );
-};
-
-export default Main;
diff --git a/src/pages/Preference/index.tsx b/src/pages/Preference/index.tsx
deleted file mode 100644
index a49f214..0000000
--- a/src/pages/Preference/index.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { useTray } from "../../hooks/useTray";
-
-const Preference = () => {
- useTray();
-
- return Preference
;
-};
-
-export default Preference;
diff --git a/src/pages/main.vue b/src/pages/main.vue
new file mode 100644
index 0000000..d2805c0
--- /dev/null
+++ b/src/pages/main.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
diff --git a/src/pages/preference.vue b/src/pages/preference.vue
new file mode 100644
index 0000000..b72401f
--- /dev/null
+++ b/src/pages/preference.vue
@@ -0,0 +1,11 @@
+
+
+
+
+ Preference
+
+ ../../composables/useTray
diff --git a/src/plugins/window.ts b/src/plugins/window.ts
index a1854e5..ebaa7ba 100644
--- a/src/plugins/window.ts
+++ b/src/plugins/window.ts
@@ -1,26 +1,26 @@
-import { invoke } from "@tauri-apps/api/core";
-import { emit } from "@tauri-apps/api/event";
-import { LISTEN_KEY } from "../constants";
+import { invoke } from '@tauri-apps/api/core'
+import { emit } from '@tauri-apps/api/event'
+import { LISTEN_KEY } from '../constants'
-type WindowLabel = "main" | "preference";
+type WindowLabel = 'main' | 'preference'
const COMMAND = {
- SHOW_WINDOW: "plugin:custom-window|show_window",
- HIDE_WINDOW: "plugin:custom-window|hide_window",
-};
+ SHOW_WINDOW: 'plugin:custom-window|show_window',
+ HIDE_WINDOW: 'plugin:custom-window|hide_window',
+}
-export const showWindow = (label?: WindowLabel) => {
- if (label) {
- emit(LISTEN_KEY.SHOW_WINDOW, label);
- } else {
- invoke(COMMAND.SHOW_WINDOW);
- }
-};
+export function showWindow(label?: WindowLabel) {
+ if (label) {
+ emit(LISTEN_KEY.SHOW_WINDOW, label)
+ } else {
+ invoke(COMMAND.SHOW_WINDOW)
+ }
+}
-export const hideWindow = (label?: WindowLabel) => {
- if (label) {
- emit(LISTEN_KEY.HIDE_WINDOW, label);
- } else {
- invoke(COMMAND.HIDE_WINDOW);
- }
-};
+export function hideWindow(label?: WindowLabel) {
+ if (label) {
+ emit(LISTEN_KEY.HIDE_WINDOW, label)
+ } else {
+ invoke(COMMAND.HIDE_WINDOW)
+ }
+}
diff --git a/src/router/index.ts b/src/router/index.ts
index 8b80aae..de74165 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -1,14 +1,21 @@
-import { createHashRouter } from "react-router-dom";
-import Main from "../pages/Main";
-import Preference from "../pages/Preference";
+import { createRouter, createWebHashHistory } from 'vue-router'
+import Main from '../pages/main.vue'
+import Preference from '../pages/preference.vue'
-export const router = createHashRouter([
- {
- path: "/",
- Component: Main,
- },
- {
- path: "/preference",
- Component: Preference,
- },
-]);
+const routes = [
+ {
+ path: '/',
+ component: Main,
+ },
+ {
+ path: '/preference',
+ component: Preference,
+ },
+]
+
+const router = createRouter({
+ history: createWebHashHistory(),
+ routes,
+})
+
+export default router
diff --git a/src/types/global.d.ts b/src/types/global.d.ts
index baa4fe1..5d006e2 100644
--- a/src/types/global.d.ts
+++ b/src/types/global.d.ts
@@ -1,3 +1,3 @@
declare interface Window {
- availableKeys: string[];
+ availableKeys: string[]
}
diff --git a/src/utils/platform.ts b/src/utils/platform.ts
index 190a09d..50b10b5 100644
--- a/src/utils/platform.ts
+++ b/src/utils/platform.ts
@@ -1,7 +1,7 @@
-import { platform } from "@tauri-apps/plugin-os";
+import { platform } from '@tauri-apps/plugin-os'
-export const isMac = platform() === "macos";
+export const isMac = platform() === 'macos'
-export const isWindows = platform() === "windows";
+export const isWindows = platform() === 'windows'
-export const isLinux = platform() === "linux";
+export const isLinux = platform() === 'linux'
diff --git a/tsconfig.json b/tsconfig.json
index aca4895..3e70af5 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,25 +1,25 @@
{
- "compilerOptions": {
- "target": "ES2020",
- "useDefineForClassFields": true,
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
- "module": "ESNext",
- "skipLibCheck": true,
+ "compilerOptions": {
+ "target": "ES2020",
+ "jsx": "react-jsx",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "useDefineForClassFields": true,
+ "module": "ESNext",
- /* Bundler mode */
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
- "jsx": "react-jsx",
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "allowImportingTsExtensions": true,
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true
- },
- "include": ["src"],
- "references": [{ "path": "./tsconfig.node.json" }]
+ /* Linting */
+ "strict": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noEmit": true,
+ "isolatedModules": true,
+ "skipLibCheck": true
+ },
+ "references": [{ "path": "./tsconfig.node.json" }],
+ "include": ["src"]
}
diff --git a/tsconfig.node.json b/tsconfig.node.json
index eca6668..dde0894 100644
--- a/tsconfig.node.json
+++ b/tsconfig.node.json
@@ -1,10 +1,10 @@
{
- "compilerOptions": {
- "composite": true,
- "skipLibCheck": true,
- "module": "ESNext",
- "moduleResolution": "bundler",
- "allowSyntheticDefaultImports": true
- },
- "include": ["vite.config.ts"]
+ "compilerOptions": {
+ "composite": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "allowSyntheticDefaultImports": true,
+ "skipLibCheck": true
+ },
+ "include": ["vite.config.ts"]
}
diff --git a/uno.config.ts b/uno.config.ts
index 4ff0b37..a13a88e 100644
--- a/uno.config.ts
+++ b/uno.config.ts
@@ -1,24 +1,24 @@
-import presetRemToPx from "@unocss/preset-rem-to-px";
+import presetRemToPx from '@unocss/preset-rem-to-px'
import {
- defineConfig,
- presetIcons,
- presetWind3,
- transformerDirectives,
- transformerVariantGroup,
-} from "unocss";
+ defineConfig,
+ presetIcons,
+ presetWind3,
+ transformerDirectives,
+ transformerVariantGroup,
+} from 'unocss'
export default defineConfig({
- presets: [
- presetWind3(),
- presetIcons(),
- presetRemToPx({
- baseFontSize: 4,
- }),
- ],
- transformers: [
- transformerVariantGroup(),
- transformerDirectives({
- applyVariable: ["--uno"],
- }),
- ],
-});
+ presets: [
+ presetWind3(),
+ presetIcons(),
+ presetRemToPx({
+ baseFontSize: 4,
+ }),
+ ],
+ transformers: [
+ transformerVariantGroup(),
+ transformerDirectives({
+ applyVariable: ['--uno'],
+ }),
+ ],
+})
diff --git a/vite.config.ts b/vite.config.ts
index 8156e38..705d3d8 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,45 +1,46 @@
-import { readdirSync } from "node:fs";
-import { parse, resolve } from "node:path";
-import react from "@vitejs/plugin-react";
-import UnoCSS from "unocss/vite";
-import { defineConfig } from "vite";
+import { readdirSync } from 'node:fs'
+import { parse, resolve } from 'node:path'
+import { env } from 'node:process'
+import vue from '@vitejs/plugin-vue'
+import UnoCSS from 'unocss/vite'
+import { defineConfig } from 'vite'
-const host = process.env.TAURI_DEV_HOST;
+const host = env.TAURI_DEV_HOST
-const availableKeys = readdirSync(resolve(__dirname, "public/images/keys"))
- .filter((file) => !file.startsWith("."))
- .map((file) => parse(file).name);
+const availableKeys = readdirSync(resolve(__dirname, 'public/images/keys'))
+ .filter(file => !file.startsWith('.'))
+ .map(file => parse(file).name)
// https://vitejs.dev/config/
export default defineConfig(async () => ({
- plugins: [react(), UnoCSS()],
- resolve: {
- alias: {
- "@": "/src",
- },
- },
- // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
- //
- // 1. prevent vite from obscuring rust errors
- clearScreen: false,
- // 2. tauri expects a fixed port, fail if that port is not available
- server: {
- port: 1420,
- strictPort: true,
- host: host || false,
- hmr: host
- ? {
- protocol: "ws",
- host,
- port: 1421,
- }
- : undefined,
- watch: {
- // 3. tell vite to ignore watching `src-tauri`
- ignored: ["**/src-tauri/**"],
- },
- },
- define: {
- "window.availableKeys": availableKeys,
- },
-}));
+ plugins: [vue(), UnoCSS()],
+ resolve: {
+ alias: {
+ '@': '/src',
+ },
+ },
+ // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
+ //
+ // 1. prevent vite from obscuring rust errors
+ clearScreen: false,
+ // 2. tauri expects a fixed port, fail if that port is not available
+ server: {
+ port: 1420,
+ strictPort: true,
+ host: host || false,
+ hmr: host
+ ? {
+ protocol: 'ws',
+ host,
+ port: 1421,
+ }
+ : undefined,
+ watch: {
+ // 3. tell vite to ignore watching `src-tauri`
+ ignored: ['**/src-tauri/**'],
+ },
+ },
+ define: {
+ 'window.availableKeys': availableKeys,
+ },
+}))