diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml
index 63517b5d..0fe4e90f 100644
--- a/.github/workflows/check.yml
+++ b/.github/workflows/check.yml
@@ -41,7 +41,7 @@ jobs:
submodules: recursive
- uses: actions/setup-node@v4
with:
- node-version: 20
+ node-version: 26
# Doesn't work -- on Windows and Mac OS, binstalled programs don't run
# from the cache.
##- uses: Swatinem/rust-cache@v2
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c0f4b8ff..28ff3aec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-Copyright (C) 2026 Bryan A. Jones.
+Copyright (C) 2026 Bryan A. Jones.
This file is part of the CodeChat Editor.
@@ -24,6 +24,12 @@ Changelog
* No changes.
+Version 0.2.5 -- 2026-Sep-21
+----------------------------
+
+* Improve diagnostics when first loading the CodeChat Editor Server in the
+ VSCode extension.
+
Version 0.2.4 -- 2026-Sep-13
----------------------------
diff --git a/Cargo.lock b/Cargo.lock
index 3cdcf1f7..6f514aa9 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -44,9 +44,9 @@ dependencies = [
[[package]]
name = "actix-http"
-version = "3.13.5"
+version = "3.13.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86d62d1a48894ec9450bcde7ef1e3681205771ff6ea9c61cc5ae031145192787"
+checksum = "3c4f07a021937af76abef4c458a0d6b25f63f82eec5394354deeb7de0551f523"
dependencies = [
"actix-codec",
"actix-service",
@@ -71,7 +71,7 @@ dependencies = [
"mime",
"percent-encoding",
"pin-project-lite",
- "rand 0.10.2",
+ "rand 0.10.3",
"sha1",
"smallvec",
"tokio",
@@ -82,12 +82,13 @@ dependencies = [
[[package]]
name = "actix-macros"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
+checksum = "367f814ad4afbac74f07df5001214da65f65e185c90ef56c4dd8df23f8695b9b"
dependencies = [
+ "proc-macro2",
"quote",
- "syn 2.0.119",
+ "syn 3.0.6",
]
[[package]]
@@ -144,9 +145,9 @@ dependencies = [
[[package]]
name = "actix-utils"
-version = "3.0.1"
+version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8"
+checksum = "0128396dd7313f697ad05b21b1a7be7d4cbb81888704f55996e4a27db196bb4d"
dependencies = [
"local-waker",
"pin-project-lite",
@@ -197,25 +198,25 @@ dependencies = [
[[package]]
name = "actix-web-codegen"
-version = "4.3.0"
+version = "4.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8"
+checksum = "b96b09c4878563f8ab4a5fd0c59f9f0d6e0e9f60eb9b748526a0b9604fd89c50"
dependencies = [
"actix-router",
"proc-macro2",
"quote",
- "syn 2.0.119",
+ "syn 3.0.6",
]
[[package]]
name = "actix-web-httpauth"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456348ed9dcd72a13a1f4a660449fafdecee9ac8205552e286809eb5b0b29bd3"
+checksum = "7cc7d1a844a6e987662f0cb5a2a7571cde1def4581a8dd2b9ccb1fd326e84cac"
dependencies = [
"actix-utils",
"actix-web",
- "base64 0.22.1",
+ "base64 0.23.1",
"futures-core",
"futures-util",
"log",
@@ -289,12 +290,12 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
[[package]]
name = "ammonia"
-version = "4.1.4"
+version = "4.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc6d763210e2eb7670d1a5183a08bebefa3f97db2a738a684f2ce00bd49f681d"
+checksum = "3f7ed3ac4252be4d3e36fb589ed5659356842587b21a31596a9dc89d3b2f5e2a"
dependencies = [
- "cssparser",
- "html5ever",
+ "cssparser 0.38.0",
+ "html5ever 0.40.1",
"maplit",
"url",
]
@@ -420,7 +421,7 @@ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -565,9 +566,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.4.6"
+version = "1.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4"
+checksum = "54413ede23c2daf518f35156dfde027feb2374004d63bd497f983c8db9c0e313"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -583,9 +584,9 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
[[package]]
name = "cfg-if"
-version = "1.0.4"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
[[package]]
name = "cfg_aliases"
@@ -620,9 +621,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.6.6"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
+checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946"
dependencies = [
"clap_builder",
"clap_derive",
@@ -630,9 +631,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.6.6"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
+checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d"
dependencies = [
"anstream",
"anstyle",
@@ -642,21 +643,21 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.6.4"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061"
+checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0"
dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
name = "clap_lex"
-version = "1.1.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
+checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486"
[[package]]
name = "cmake"
@@ -678,7 +679,7 @@ dependencies = [
[[package]]
name = "codechat-editor-server"
-version = "0.2.4"
+version = "0.2.5"
dependencies = [
"actix-files",
"actix-rt",
@@ -696,7 +697,7 @@ dependencies = [
"futures",
"futures-util",
"htmd",
- "html5ever",
+ "html5ever 0.39.0",
"htmlize",
"imara-diff",
"indoc",
@@ -715,7 +716,7 @@ dependencies = [
"predicates",
"pretty_assertions",
"pulldown-cmark",
- "rand 0.10.2",
+ "rand 0.10.3",
"regex",
"serde",
"serde_json",
@@ -736,7 +737,7 @@ dependencies = [
[[package]]
name = "codechat-editor-standalone"
-version = "0.2.4"
+version = "0.2.5"
dependencies = [
"actix-http",
"actix-rt",
@@ -752,7 +753,7 @@ dependencies = [
"path-slash",
"predicates",
"pretty_assertions",
- "rand 0.10.2",
+ "rand 0.10.3",
"regex",
"test_utils",
"tokio",
@@ -764,7 +765,7 @@ dependencies = [
[[package]]
name = "codechat-editor-vscode-extension"
-version = "0.2.4"
+version = "0.2.5"
dependencies = [
"codechat-editor-server",
"log",
@@ -968,13 +969,24 @@ dependencies = [
"smallvec",
]
+[[package]]
+name = "cssparser"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11119743ad110e8c1bdccd930d7f5c30c99e5fc76a7b63ec9807e84eef0c5f59"
+dependencies = [
+ "dtoa-short",
+ "itoa",
+ "smallvec",
+]
+
[[package]]
name = "cssparser-color"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbaa233e1dcd9c13a5d3e3a8a2c0f5a727bac380398345dbcb31db4597edc86b"
dependencies = [
- "cssparser",
+ "cssparser 0.37.0",
]
[[package]]
@@ -984,7 +996,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d045de693cb712d0b22c6a64be5b953f67b3ce00ab5ad3dd5d8b441886ab8e1a"
dependencies = [
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -1096,7 +1108,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -1244,9 +1256,9 @@ dependencies = [
[[package]]
name = "find-msvc-tools"
-version = "0.1.12"
+version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d"
+checksum = "ef25905e51abafe4dcea6c15fec58c57b601cdbd0ee53d22ea1d3016c587d39b"
[[package]]
name = "flate2"
@@ -1377,7 +1389,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -1522,7 +1534,7 @@ name = "htmd"
version = "0.5.5"
source = "git+https://github.com/bjones1/htmd.git?branch=dom-interface#68e54497edf1be23dbf73fe1bd6bdf6170b729cc"
dependencies = [
- "html5ever",
+ "html5ever 0.39.0",
"markup5ever_rcdom",
"phf 0.14.0",
]
@@ -1534,7 +1546,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8"
dependencies = [
"log",
- "markup5ever",
+ "markup5ever 0.39.0",
+]
+
+[[package]]
+name = "html5ever"
+version = "0.40.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "456a1a377e608e555d22ddab27ac0114bc7a7b4199078108e34c2aeae6c9b130"
+dependencies = [
+ "log",
+ "markup5ever 0.40.0",
+ "memchr",
]
[[package]]
@@ -1646,9 +1669,9 @@ dependencies = [
[[package]]
name = "hyper-rustls"
-version = "0.27.9"
+version = "0.27.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f"
+checksum = "dfa8e654703247911e29c23fbeaa261834bd9bb74efba2f9acddc37bfb127f53"
dependencies = [
"http 1.5.0",
"hyper",
@@ -1883,9 +1906,9 @@ dependencies = [
[[package]]
name = "impl-more"
-version = "0.3.7"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edaff2ce006342d4d0e00fae676f7082dada44a203560629ba18ea50a19277bb"
+checksum = "30c0cddce6b7505483307994f60d97c4b156020e1504d0cf1f05a21b1b325e64"
[[package]]
name = "indexmap"
@@ -2133,9 +2156,9 @@ dependencies = [
[[package]]
name = "libredox"
-version = "0.1.24"
+version = "0.1.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6480ccc157a1389bb2e4891b24751b0f798ba640d22386f23143fbcc89da195a"
+checksum = "61ff90caf6077a803a240f62fdbe88645a890bbca49ef8174c3cb0404362171d"
dependencies = [
"libc",
]
@@ -2149,7 +2172,7 @@ dependencies = [
"ahash",
"bitflags",
"const-str",
- "cssparser",
+ "cssparser 0.37.0",
"cssparser-color",
"data-encoding",
"getrandom 0.3.4",
@@ -2259,9 +2282,9 @@ dependencies = [
[[package]]
name = "lru-slab"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
+checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f"
[[package]]
name = "maplit"
@@ -2277,7 +2300,18 @@ checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de"
dependencies = [
"log",
"tendril",
- "web_atoms",
+ "web_atoms 0.2.6",
+]
+
+[[package]]
+name = "markup5ever"
+version = "0.40.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ab3dc68ac4a0f5719e560136778c1ee716e296030d75dbd4484e37e39e3a842"
+dependencies = [
+ "log",
+ "tendril",
+ "web_atoms 0.3.0",
]
[[package]]
@@ -2286,8 +2320,8 @@ version = "0.39.0+unofficial"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ac010f19d6c4af81eeb4018a39d7a115de9d285af45c126a4ac02e6fc5716b7"
dependencies = [
- "html5ever",
- "markup5ever",
+ "html5ever 0.39.0",
+ "markup5ever 0.39.0",
"tendril",
"xml5ever",
]
@@ -2412,7 +2446,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -2423,9 +2457,9 @@ checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d"
[[package]]
name = "napi"
-version = "3.12.4"
+version = "3.12.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d2c1d080c842ec1347ebf3cfb9347c15f8c2262f143cc30eea41ddf1c7da720"
+checksum = "b7d3c1107f2fda46a7bd2676d65221b7b8160054494b38554b0e055c731714db"
dependencies = [
"bitflags",
"ctor",
@@ -2440,15 +2474,15 @@ dependencies = [
[[package]]
name = "napi-build"
-version = "2.4.2"
+version = "2.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "860e7c40864f95cfb83cde99f9ebadd88ef3d9bdccd7dd2cee0cc96a2dd4ffa7"
+checksum = "9befcb51d87271051c0c11aaf625d09340266b7f1ac3fef5975e62274dc2813f"
[[package]]
name = "napi-derive"
-version = "3.6.5"
+version = "3.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "350057056a30368aa76c11a0d406b0aa61321710be2c36656ab4f6efe0b785a2"
+checksum = "7e332e701386d8101b093203e296059ad8aeef58ddd4c75594f3c84ce637405e"
dependencies = [
"convert_case 0.12.0",
"ctor",
@@ -2460,9 +2494,9 @@ dependencies = [
[[package]]
name = "napi-derive-backend"
-version = "6.1.3"
+version = "6.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c1c87a71568f3fe5c736b10878ff55064b250bb4ea4b48c8055713e07b9e463"
+checksum = "fd6856fe1686867da90ed0dc292d7c0c87a695eb7c578b913360f33619ee01e3"
dependencies = [
"convert_case 0.12.0",
"proc-macro2",
@@ -2473,9 +2507,9 @@ dependencies = [
[[package]]
name = "napi-sys"
-version = "3.3.1"
+version = "3.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d29a242104e456960e6c6479847570be731c1a92b8f8c05ddfb5439e5c09915"
+checksum = "6801fc65ba4d7035636e93635e281113f00410401a237dcd4f55b1565ead2115"
dependencies = [
"libloading",
]
@@ -3054,7 +3088,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d05f71e01edca03d245ab0a9f7ce13a974ceb79baaae8faf2ba0b11de6b90913"
dependencies = [
"bitflags",
- "cssparser",
+ "cssparser 0.37.0",
"log",
"phf 0.11.3",
"phf_codegen 0.11.3",
@@ -3118,9 +3152,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]]
name = "pest"
-version = "2.9.1"
+version = "2.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d45aeb61b4bf818e12d4205f2466f8c4748f85f4fce0146d1c03d69d753f0ad"
+checksum = "45d3aca230fad2e6f6317ca0a72724338c4960cb97168a85cdee66df4a9a21a8"
dependencies = [
"memchr",
"ucd-trie",
@@ -3128,9 +3162,9 @@ dependencies = [
[[package]]
name = "pest_derive"
-version = "2.9.1"
+version = "2.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89cc5a242e25ed4e7704d0be240f2cfbe20a8c27e7e252d94835be93d92dc39f"
+checksum = "284b60557f2c4a2e72ad3f2d34d42685a2fa4a6a61d0d2a10c0ae2a5e916c2cf"
dependencies = [
"pest",
"pest_generator",
@@ -3138,9 +3172,9 @@ dependencies = [
[[package]]
name = "pest_generator"
-version = "2.9.1"
+version = "2.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7abf21475cc3820fe4b2ca2dc2142902f67a02189f3b5b3a229f4febc01a43e5"
+checksum = "1d9d1f08a115309ee99268cf85e5228e0e56aa9caf8841ec12866b6be07c3109"
dependencies = [
"pest",
"pest_meta",
@@ -3151,9 +3185,9 @@ dependencies = [
[[package]]
name = "pest_meta"
-version = "2.9.1"
+version = "2.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adba4db388f687393c18c51348d44a41d870ca9df71a2c98172ea3035dc6936e"
+checksum = "ed93ba1a9ffcca32130a5188701c81c0c49cf00d4b7c5007d5148951d743adcb"
dependencies = [
"pest",
]
@@ -3209,6 +3243,16 @@ dependencies = [
"phf_shared 0.13.1",
]
+[[package]]
+name = "phf_codegen"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41b585a510fb76fdebead6897982ef2a03a21d8e6cbcca904999742a4afc6ffe"
+dependencies = [
+ "phf_generator 0.14.0",
+ "phf_shared 0.14.0",
+]
+
[[package]]
name = "phf_generator"
version = "0.11.3"
@@ -3417,9 +3461,9 @@ checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae"
[[package]]
name = "quinn"
-version = "0.11.11"
+version = "0.11.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8"
+checksum = "4051e23e9185c255a7e33ef59cdbca87a22d359052eecd22fc6b901fb37d9d11"
dependencies = [
"bytes",
"cfg_aliases",
@@ -3437,15 +3481,15 @@ dependencies = [
[[package]]
name = "quinn-proto"
-version = "0.11.17"
+version = "0.11.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
+checksum = "a9746dbde176634f4f2f1faf2404e30a31b2bc1e9cafb5329c95d8177a18c9fc"
dependencies = [
"aws-lc-rs",
"bytes",
"getrandom 0.4.3",
"lru-slab",
- "rand 0.10.2",
+ "rand 0.10.3",
"rand_pcg",
"ring",
"rustc-hash",
@@ -3514,9 +3558,9 @@ dependencies = [
[[package]]
name = "rand"
-version = "0.10.2"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80"
+checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af"
dependencies = [
"chacha20",
"getrandom 0.4.3",
@@ -3574,11 +3618,10 @@ dependencies = [
[[package]]
name = "redox_users"
-version = "0.5.2"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
+checksum = "60dc65c0ff1a7ae1294b0c67b9f14baf70b644404010370171787bfac1038fc0"
dependencies = [
- "getrandom 0.2.17",
"libredox",
"thiserror 2.0.20",
]
@@ -3689,9 +3732,9 @@ dependencies = [
[[package]]
name = "rustix"
-version = "1.1.4"
+version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
+checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d"
dependencies = [
"bitflags",
"errno",
@@ -3702,9 +3745,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.23.44"
+version = "0.23.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6725596c3f2c3a0aef021139e145d4eafe314a6623e4680ca83852b2c67ab2ba"
+checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634"
dependencies = [
"aws-lc-rs",
"log",
@@ -3911,7 +3954,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -3936,7 +3979,7 @@ checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -4092,6 +4135,18 @@ dependencies = [
"serde",
]
+[[package]]
+name = "string_cache"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffa8a5dbe8b3f0bbe29d4c3225daafaeead63afdc1b65fc4c01a1384166038e6"
+dependencies = [
+ "new_debug_unreachable",
+ "parking_lot",
+ "phf_shared 0.14.0",
+ "precomputed-hash",
+]
+
[[package]]
name = "string_cache_codegen"
version = "0.6.1"
@@ -4104,6 +4159,18 @@ dependencies = [
"quote",
]
+[[package]]
+name = "string_cache_codegen"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928dcdf75e47626b3617a976ec205d9f057584c371c1f23b782129268d0e6edc"
+dependencies = [
+ "phf_generator 0.14.0",
+ "phf_shared 0.14.0",
+ "proc-macro2",
+ "quote",
+]
+
[[package]]
name = "stringmatch"
version = "0.4.0"
@@ -4149,9 +4216,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "3.0.5"
+version = "3.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9"
+checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"
dependencies = [
"proc-macro2",
"quote",
@@ -4169,13 +4236,13 @@ dependencies = [
[[package]]
name = "synstructure"
-version = "0.13.2"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
+checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.119",
+ "syn 3.0.6",
]
[[package]]
@@ -4236,9 +4303,9 @@ dependencies = [
[[package]]
name = "textwrap"
-version = "0.16.3"
+version = "0.16.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b81c0cb5fce14f53e49c1d4da0c508334ff12040221bb8ab01b2dabd91d04b6e"
+checksum = "6ecfad6c3abc80a577f2b91c1e412ee57e7a060d430b553c1b0c940974ebcd49"
dependencies = [
"icu_segmenter",
"smawk",
@@ -4327,7 +4394,7 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -4392,18 +4459,9 @@ dependencies = [
[[package]]
name = "tinyvec"
-version = "1.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cf0ded5c4e56918d8f8a339e1bb67d038d3bc6d144ac407904015ba2e4cde9b"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
+version = "1.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee"
[[package]]
name = "tokio"
@@ -4430,7 +4488,7 @@ checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -4628,7 +4686,7 @@ dependencies = [
"http 1.5.0",
"httparse",
"log",
- "rand 0.10.2",
+ "rand 0.10.3",
"sha1",
"thiserror 2.0.20",
]
@@ -4668,15 +4726,15 @@ checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
[[package]]
name = "unicode-id-start"
-version = "1.4.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81b79ad29b5e19de4260020f8919b443b2ef0277d242ce532ec7b7a2cc8b6007"
+checksum = "0825d2e09dcae814a4273c1e1435979d414ede25b2ee235b1545da6682483765"
[[package]]
name = "unicode-ident"
-version = "1.0.24"
+version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
+checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"
[[package]]
name = "unicode-segmentation"
@@ -4865,7 +4923,7 @@ dependencies = [
"bumpalo",
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
"wasm-bindgen-shared",
]
@@ -4919,8 +4977,20 @@ checksum = "ba8b815c1b593dc0baf78dd0f4fc8fdb2de53198fb1163738093e9a311c33fb3"
dependencies = [
"phf 0.13.1",
"phf_codegen 0.13.1",
- "string_cache",
- "string_cache_codegen",
+ "string_cache 0.9.0",
+ "string_cache_codegen 0.6.1",
+]
+
+[[package]]
+name = "web_atoms"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7572660c8890448ba236b7376f27e389c6a7e1c70195622faced601f855c0ada"
+dependencies = [
+ "phf 0.14.0",
+ "phf_codegen 0.14.0",
+ "string_cache 0.11.0",
+ "string_cache_codegen 0.11.2",
]
[[package]]
@@ -5340,7 +5410,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ab627f34ff61b80d756180d556f9c68801d836d271b3b8c094504ceca69d221"
dependencies = [
"log",
- "markup5ever",
+ "markup5ever 0.39.0",
]
[[package]]
@@ -5362,13 +5432,13 @@ dependencies = [
[[package]]
name = "yoke-derive"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
+checksum = "33811428bee40dbceb6d545e95754741d17a6aef9a4849f0fd62e2ba4f412a78"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.119",
+ "syn 3.0.6",
"synstructure",
]
@@ -5403,13 +5473,13 @@ dependencies = [
[[package]]
name = "zerofrom-derive"
-version = "0.1.7"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1"
+checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.119",
+ "syn 3.0.6",
"synstructure",
]
@@ -5451,7 +5521,7 @@ checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -5470,9 +5540,9 @@ dependencies = [
[[package]]
name = "zlib-rs"
-version = "0.6.7"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12"
+checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112"
[[package]]
name = "zmij"
diff --git a/Cargo.toml b/Cargo.toml
index 97e2e671..aeae9799 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -64,7 +64,7 @@ homepage = "https://codechat-editor.onrender.com/fw/fsb/opt/render/project/src/R
keywords = ["literate programming"]
license = "GPL-3.0-only"
repository = "https://github.com/bjones1/CodeChat_Editor"
-version = "0.2.4"
+version = "0.2.5"
# Shared dependencies
# -------------------
diff --git a/CodeChat Editor.code-workspace b/CodeChat Editor.code-workspace
new file mode 100644
index 00000000..cc7a3de9
--- /dev/null
+++ b/CodeChat Editor.code-workspace
@@ -0,0 +1,10 @@
+{
+ "folders": [
+ {
+ "path": "."
+ },
+ {
+ "path": "extensions/VSCode"
+ }
+]
+}
diff --git a/README.md b/README.md
index 4699e03b..047b884e 100644
--- a/README.md
+++ b/README.md
@@ -39,51 +39,6 @@ depending on context (code block or dock block). In a code block, press Esc then
press tab/shift-tab to navigate. In a doc block, tab alone navigates; to view
all doc block keyboard shortcuts press Alt+0 (Windows, Linux) or ⌥0 (MacOS).
-Research capture
-----------------
-
-The VS Code extension can record dissertation study capture events when a
-participant explicitly opts in. A participant first registers in the capture
-portal, which emails a capture token. In VS Code, run **Manage CodeChat Editor
-Capture** or **CodeChat Editor: Enter Capture Token** from the command palette,
-paste the token, then turn on consent and recording from the same capture
-manager.
-
-For detailed student/tester setup steps, see the
-[CodeChat Capture Token Setup Guide](docs/capture-token-setup-guide.html).
-
-The token is imported through the VS Code UI and persisted only in VS Code
-SecretStorage. It is never written to workspace settings, repository files, or a
-JSON configuration file. The extension asks CaptureWebService for token status;
-the status item and capture manager show whether the token is accepted,
-rejected, unavailable, or disabled by the portal. The participant ID used in
-events comes from that status response, not from the token text.
-
-CodeChat no longer connects directly to the remote capture database and no
-longer reads or stores database credentials. The old local JSON database-secret
-configuration path has been removed. Capture events now leave CodeChat only by
-calling CaptureWebService with the portal-issued bearer token; any database
-writer role remains inside the service deployment.
-
-Events are sanitized, written to a durable local FIFO spool in VS Code's global
-extension storage, then uploaded to CaptureWebService. Spooled events carry only
-a non-secret token hash/service identity so events from an old token are not
-uploaded under a new token. Offline recording is allowed only after the same
-token and service URL have previously been verified as capture-enabled; a token
-disabled by the portal remains disabled while the service is unavailable. If the
-network or service is unavailable after the token has been accepted at least
-once, queued events remain in the spool and upload as soon as the matching token
-and service are available again. The capture service endpoint can be changed in
-the user-level `CodeChatEditor.Capture.ServiceBaseUrl` setting; workspace values
-are ignored for this token-bearing endpoint. Token-bearing requests require
-HTTPS except for localhost development endpoints.
-
-Developer builds must keep the Rust `minreq` dependency compiled with
-`https-rustls-probe` and `proxy` support. Capture HTTPS requests validate with
-the host platform certificate store and honor standard proxy environment
-variables. Without HTTPS support, token validation and event upload to the AWS
-capture service report as unavailable even when the service itself is healthy.
-
Structure
---------
@@ -164,6 +119,9 @@ cross-reference. For example:
| `[Style guide](#cc-nNZ6Gs2uWD)` | [Style guide](#cc-nNZ6Gs2uWD) |
| `` | |
+Alpha feature: first view the [style guide](docs/style_guide.cpp) to make the
+link above work. Opening the link doesn't (yet) work.
+
In projects, each id must be unique throughout the entire project. To simplify
the creation of unique ids, items assigned an `id="*"` with be replaced with a
unique id, such as `id=cc-DscjSxRZHF`. This autogenerated id isn't automatically
@@ -197,6 +155,10 @@ To do so:
Starting websocket ID
+Alpha feature: first view [webserver.rs](server/src/webserver.rs) and
+[CodeChatEditorFramework.mts](client/src/CodeChatEditorFramework.mts). Opening
+the link doesn't (yet) work.
+
Images
------
@@ -326,37 +288,9 @@ Research capture
----------------
The VS Code extension can record dissertation study capture events when a
-participant explicitly opts in. A participant first registers in the capture
-portal, which emails a capture token. In VS Code, run **Manage CodeChat Editor
-Capture** or **CodeChat Editor: Enter Capture Token** from the command palette,
-paste the token, then turn on consent and recording from the same capture
-manager.
-
-The token is imported through the VS Code UI and persisted only in VS Code
-SecretStorage. It is never written to workspace settings, repository files, or a
-JSON configuration file. The extension asks CaptureWebService for token status;
-the status item and capture manager show whether the token is accepted,
-rejected, unavailable, or disabled by the portal. The participant ID used in
-events comes from that status response, not from the token text.
-
-CodeChat no longer connects directly to the remote capture database and no
-longer reads or stores database credentials. The old local JSON database-secret
-configuration path has been removed. Capture events now leave CodeChat only by
-calling CaptureWebService with the portal-issued bearer token; any database
-writer role remains inside the service deployment.
-
-Events are sanitized, written to a durable local FIFO spool in VS Code's global
-extension storage, then uploaded to CaptureWebService. Spooled events carry only
-a non-secret token hash/service identity so events from an old token are not
-uploaded under a new token. Offline recording is allowed only after the same
-token and service URL have previously been verified as capture-enabled; a token
-disabled by the portal remains disabled while the service is unavailable. If the
-network or service is unavailable after the token has been accepted at least
-once, queued events remain in the spool and upload as soon as the matching token
-and service are available again. The capture service endpoint can be changed in
-the user-level `CodeChatEditor.Capture.ServiceBaseUrl` setting; workspace values
-are ignored for this token-bearing endpoint. Token-bearing requests require
-HTTPS except for localhost development endpoints.
+participant explicitly opts in. See the
+[capture token setup guide](capture-token-setup-guide.html) for more
+information.
Supported languages
---------------------------------------------------
@@ -410,8 +344,8 @@ You should have received a [copy](LICENSE.html) of the GNU General Public
License along with the CodeChat Editor. If not, see
[https://www.gnu.org/licenses/](https://www.gnu.org/licenses/).
-Notes
------------------------------------------------
+Notes
+-----------------------
1. The image used comes from
[Monitor icons created by prettycons - Flaticon](https://www.flaticon.com/free-icons/monitor "monitor icons").
diff --git a/builder/Cargo.lock b/builder/Cargo.lock
index 9842dab9..73b3f890 100644
--- a/builder/Cargo.lock
+++ b/builder/Cargo.lock
@@ -93,15 +93,15 @@ dependencies = [
[[package]]
name = "cfg-if"
-version = "1.0.4"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
[[package]]
name = "clap"
-version = "4.6.6"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
+checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946"
dependencies = [
"clap_builder",
"clap_derive",
@@ -109,9 +109,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.6.6"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
+checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d"
dependencies = [
"anstream",
"anstyle",
@@ -121,27 +121,27 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.6.4"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061"
+checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0"
dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
name = "clap_lex"
-version = "1.1.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
+checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486"
[[package]]
name = "cmd_lib"
-version = "2.0.0"
+version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e1ac603509ec7e9696f35e836365c53f305040b1080dabcde26e00e58b264a7"
+checksum = "dc93f60133215cad2ef47e47db5a386c78874a2630c2c2be68f0f543b3ce0c2c"
dependencies = [
"cmd_lib_macros",
"env_logger",
@@ -152,11 +152,10 @@ dependencies = [
[[package]]
name = "cmd_lib_macros"
-version = "2.0.0"
+version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f213802401c6631f4ff5b3bfc40f07f01a431c53d736ab42a6d0d65be3e0266"
+checksum = "bd39b5c2657c1a0064aa5d73636dac4a217edeeb6c5f8a5f52c123a758462ece"
dependencies = [
- "proc-macro-error2",
"proc-macro2",
"quote",
"syn 2.0.119",
@@ -371,28 +370,6 @@ dependencies = [
"portable-atomic",
]
-[[package]]
-name = "proc-macro-error-attr2"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
-dependencies = [
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "proc-macro-error2"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
-dependencies = [
- "proc-macro-error-attr2",
- "proc-macro2",
- "quote",
- "syn 2.0.119",
-]
-
[[package]]
name = "proc-macro2"
version = "1.0.107"
@@ -463,7 +440,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -485,9 +462,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "3.0.5"
+version = "3.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9"
+checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"
dependencies = [
"proc-macro2",
"quote",
@@ -511,14 +488,14 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
name = "unicode-ident"
-version = "1.0.24"
+version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
+checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"
[[package]]
name = "unicode-width"
diff --git a/builder/src/main.rs b/builder/src/main.rs
index 98cc65c4..263be2d0 100644
--- a/builder/src/main.rs
+++ b/builder/src/main.rs
@@ -383,7 +383,7 @@ fn patch_client_libs() -> io::Result<()> {
fn run_install(dev: bool) -> io::Result<()> {
if dev {
- run_script("npm", &["install", "-g", "pnpm@latest-10"], ".", true)?;
+ run_script("npm", &["install", "-g", "pnpm@latest-11"], ".", true)?;
}
// See [the client manifest](../../client/package.json5) for an explanation
// of `--no-frozen-lockfile`.
@@ -724,8 +724,21 @@ fn run_extensions_build(
let esbuild = PathBuf::from_slash("node_modules/.bin/esbuild");
let distflag = if dist { "--minify" } else { "--sourcemap" };
- // The NAPI build.
- let mut napi_args = vec!["napi", "build", "--platform", "--output-dir", "src"];
+ // The NAPI build. `--js` aims the generated loader at
+ // `src/index-generated.js` instead of its default `src/index.js`, which
+ // is a tracked file carrying hand-written load tracing. The generated
+ // loader is therefore unused at run time; it's kept, and ignored by Git,
+ // as the reference to re-derive `src/index.js` from after a NAPI-RS
+ // upgrade changes what NAPI-RS emits.
+ let mut napi_args = vec![
+ "napi",
+ "build",
+ "--platform",
+ "--output-dir",
+ "src",
+ "--js",
+ "index-generated.js",
+ ];
if dist {
napi_args.push("--release");
}
diff --git a/client/package.json5 b/client/package.json5
index cfbd6baf..20676dfc 100644
--- a/client/package.json5
+++ b/client/package.json5
@@ -45,7 +45,7 @@
type: 'module',
version: '0.2.4',
dependencies: {
- '@codemirror/commands': '^6.11.0',
+ '@codemirror/commands': '^6.11.1',
'@codemirror/lang-cpp': '^6.0.3',
'@codemirror/lang-css': '^6.3.1',
'@codemirror/lang-go': '^6.0.1',
@@ -53,18 +53,16 @@
'@codemirror/lang-java': '^6.0.2',
'@codemirror/lang-javascript': '^6.2.5',
'@codemirror/lang-json': '^6.0.2',
- '@codemirror/lang-markdown': '^6.5.2',
- '@codemirror/lang-php': '^6.0.2',
'@codemirror/lang-python': '^6.2.1',
'@codemirror/lang-rust': '^6.0.2',
'@codemirror/lang-sql': '^6.10.0',
- '@codemirror/lang-xml': '^6.1.0',
'@codemirror/lang-yaml': '^6.1.3',
'@codemirror/language': '^6.12.4',
'@codemirror/legacy-modes': '^6.5.4',
- '@codemirror/state': '^6.7.4',
- '@codemirror/view': '^6.43.11',
- '@hpcc-js/wasm-graphviz': '^1.29.0',
+ '@codemirror/lint': '^6.9.7',
+ '@codemirror/state': '^6.7.5',
+ '@codemirror/view': '^6.43.12',
+ '@hpcc-js/wasm-graphviz': '^1.29.1',
'@mathjax/mathjax-newcm-font': '^4.1.3',
codemirror: '^6.0.2',
mathjax: '^4.1.3',
@@ -77,10 +75,8 @@
'@eslint/css': '^2.0.0',
'@eslint/js': '^10.0.1',
'@types/chai': '^5.2.3',
- '@types/dom-navigation': '^1.0.7',
- '@types/js-beautify': '^1.14.3',
'@types/mocha': '^10.0.10',
- '@types/node': '^26.5.1',
+ '@types/node': '^26.6.2',
'@types/toastify-js': '^1.12.4',
'@typescript-eslint/eslint-plugin': '^8.70.0',
'@typescript-eslint/parser': '^8.70.0',
@@ -90,14 +86,14 @@
'axe-core': '^4.13.0',
chai: '^6.2.2',
esbuild: '^0.28.2',
- eslint: '^10.10.0',
+ eslint: '^10.11.0',
'eslint-config-prettier': '^10.1.8',
'eslint-plugin-import': '^2.32.0',
'eslint-plugin-prettier': '^5.5.6',
globals: '^17.12.0',
- mocha: '^12.0.1',
+ mocha: '^12.0.2',
'npm-check-updates': '^23.1.0',
- prettier: '^3.9.6',
+ prettier: '^3.9.8',
/* Typescript 7 support for eslint is blocked per
[this issue](https://github.com/typescript-eslint/typescript-eslint/issues/10940).
Instead, see
diff --git a/client/pnpm-lock.yaml b/client/pnpm-lock.yaml
index a4c890b1..af2f30b5 100644
--- a/client/pnpm-lock.yaml
+++ b/client/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@codemirror/commands':
- specifier: ^6.11.0
- version: 6.11.0
+ specifier: ^6.11.1
+ version: 6.11.1
'@codemirror/lang-cpp':
specifier: ^6.0.3
version: 6.0.3
@@ -32,12 +32,6 @@ importers:
'@codemirror/lang-json':
specifier: ^6.0.2
version: 6.0.2
- '@codemirror/lang-markdown':
- specifier: ^6.5.2
- version: 6.5.2
- '@codemirror/lang-php':
- specifier: ^6.0.2
- version: 6.0.2
'@codemirror/lang-python':
specifier: ^6.2.1
version: 6.2.1
@@ -47,9 +41,6 @@ importers:
'@codemirror/lang-sql':
specifier: ^6.10.0
version: 6.10.0
- '@codemirror/lang-xml':
- specifier: ^6.1.0
- version: 6.1.0
'@codemirror/lang-yaml':
specifier: ^6.1.3
version: 6.1.3
@@ -59,15 +50,18 @@ importers:
'@codemirror/legacy-modes':
specifier: ^6.5.4
version: 6.5.4
+ '@codemirror/lint':
+ specifier: ^6.9.7
+ version: 6.9.7
'@codemirror/state':
- specifier: ^6.7.4
- version: 6.7.4
+ specifier: ^6.7.5
+ version: 6.7.5
'@codemirror/view':
- specifier: ^6.43.11
- version: 6.43.11
+ specifier: ^6.43.12
+ version: 6.43.12
'@hpcc-js/wasm-graphviz':
- specifier: ^1.29.0
- version: 1.29.0
+ specifier: ^1.29.1
+ version: 1.29.1
'@mathjax/mathjax-newcm-font':
specifier: ^4.1.3
version: 4.1.3
@@ -95,31 +89,25 @@ importers:
version: 2.0.0
'@eslint/js':
specifier: ^10.0.1
- version: 10.0.1(eslint@10.10.0(supports-color@8.1.1))
+ version: 10.0.1(eslint@10.11.0(supports-color@8.1.1))
'@types/chai':
specifier: ^5.2.3
version: 5.2.3
- '@types/dom-navigation':
- specifier: ^1.0.7
- version: 1.0.7
- '@types/js-beautify':
- specifier: ^1.14.3
- version: 1.14.3
'@types/mocha':
specifier: ^10.0.10
version: 10.0.10
'@types/node':
- specifier: ^26.5.1
- version: 26.5.1
+ specifier: ^26.6.2
+ version: 26.6.2
'@types/toastify-js':
specifier: ^1.12.4
version: 1.12.4
'@typescript-eslint/eslint-plugin':
specifier: ^8.70.0
- version: 8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1))(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ version: 8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1))(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
'@typescript-eslint/parser':
specifier: ^8.70.0
- version: 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ version: 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
'@typescript/native':
specifier: npm:typescript@^7.0.2
version: typescript@7.0.2
@@ -133,40 +121,40 @@ importers:
specifier: ^0.28.2
version: 0.28.2
eslint:
- specifier: ^10.10.0
- version: 10.10.0(supports-color@8.1.1)
+ specifier: ^10.11.0
+ version: 10.11.0(supports-color@8.1.1)
eslint-config-prettier:
specifier: ^10.1.8
- version: 10.1.8(eslint@10.10.0(supports-color@8.1.1))
+ version: 10.1.8(eslint@10.11.0(supports-color@8.1.1))
eslint-plugin-import:
specifier: ^2.32.0
- version: 2.32.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1))(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ version: 2.32.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1))(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
eslint-plugin-prettier:
specifier: ^5.5.6
- version: 5.5.6(eslint-config-prettier@10.1.8(eslint@10.10.0(supports-color@8.1.1)))(eslint@10.10.0(supports-color@8.1.1))(prettier@3.9.6)
+ version: 5.5.6(eslint-config-prettier@10.1.8(eslint@10.11.0(supports-color@8.1.1)))(eslint@10.11.0(supports-color@8.1.1))(prettier@3.9.8)
globals:
specifier: ^17.12.0
version: 17.12.0
mocha:
- specifier: ^12.0.1
- version: 12.0.1
+ specifier: ^12.0.2
+ version: 12.0.2
npm-check-updates:
specifier: ^23.1.0
version: 23.1.0
prettier:
- specifier: ^3.9.6
- version: 3.9.6
+ specifier: ^3.9.8
+ version: 3.9.8
typescript:
specifier: npm:@typescript/typescript6@^6.0.2
version: '@typescript/typescript6@6.0.2'
typescript-eslint:
specifier: ^8.70.0
- version: 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ version: 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
packages:
- '@antfu/install-pkg@2.0.1':
- resolution: {integrity: sha512-iCKVQcIC0e3oDxEfs3SHQGW+ovhBMZmS1TE+bTk50rVyMCBmCfClv7Qi3HQKlumYwvjb/iIMeWCW2i67q6kFfQ==}
+ '@antfu/install-pkg@2.1.0':
+ resolution: {integrity: sha512-sdg9NxU3zR4Mnawfbc/x6GB5Wf17WYud5qOuEuxXjaKpYpMkISSJEjItGebXJ2bQ4DIcly4NYH23mtkGJjvKUw==}
'@braintree/sanitize-url@7.1.2':
resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==}
@@ -183,8 +171,8 @@ packages:
'@codemirror/autocomplete@6.20.3':
resolution: {integrity: sha512-tlosUqb+3BbxCxZdu4tKeRghPFC+QM7q4X5YhKV2eCmPG+1r2F3f4AaSz5sCrFqUtX4Jh20VFTKecl16MgiV9g==}
- '@codemirror/commands@6.11.0':
- resolution: {integrity: sha512-/K4Rl5BN0OtTiPWmJCdqODu38XnDMsDxKY5rgrPnCkutPTJf2wVbkoixLfealF5Kwse/s8P8M5jAiURiwSwnFA==}
+ '@codemirror/commands@6.11.1':
+ resolution: {integrity: sha512-O/4hG3SC1YwcmQ0d2UVNDs+AsaNWd1iHVxbTeEBuqH+6bExAiPK3iS/BvpY6rZGURALv4ZD3sIgcCmRvw3ehBg==}
'@codemirror/lang-cpp@6.0.3':
resolution: {integrity: sha512-URM26M3vunFFn9/sm6rzqrBzDgfWuDixp85uTY49wKudToc2jTHUrKIGGKs+QWND+YLofNNZpxcNGRynFJfvgA==}
@@ -207,12 +195,6 @@ packages:
'@codemirror/lang-json@6.0.2':
resolution: {integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==}
- '@codemirror/lang-markdown@6.5.2':
- resolution: {integrity: sha512-AwBOdkWYuA//WcM0xO5PfHPUcmz/O2i5o0Nsg1U69SII/loCJlFI1Romd9xp2HYb1kYJRGZotyqRghuHH5n8Kw==}
-
- '@codemirror/lang-php@6.0.2':
- resolution: {integrity: sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA==}
-
'@codemirror/lang-python@6.2.1':
resolution: {integrity: sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw==}
@@ -222,9 +204,6 @@ packages:
'@codemirror/lang-sql@6.10.0':
resolution: {integrity: sha512-6ayPkEd/yRw0XKBx5uAiToSgGECo/GY2NoJIHXIIQh1EVwLuKoU8BP/qK0qH5NLXAbtJRLuT73hx7P9X34iO4w==}
- '@codemirror/lang-xml@6.1.0':
- resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==}
-
'@codemirror/lang-yaml@6.1.3':
resolution: {integrity: sha512-AZ8DJBuXGVHybpBQhmZtgew5//4hv3tdkXnr3vDmOUMJRuB6vn/uuwtmTOTlqEaQFg3hQSVeA90NmvIQyUV6FQ==}
@@ -240,11 +219,11 @@ packages:
'@codemirror/search@6.7.2':
resolution: {integrity: sha512-gUYkYhT2+n/+VGZ+8EzE5WFkYZUZYm1VOKDudIsNqh42uRVQJ0a6Yss9sdKT3MeOYfuL1N6AZA57oza0Oyr0LA==}
- '@codemirror/state@6.7.4':
- resolution: {integrity: sha512-QhQIVRY+xHZDxwOSFrJ1eUMapJBUID3IdeAjf7dHO7zBUzSkyooHiodnalz5MG3iHzwixKMlAAyn7244y537EA==}
+ '@codemirror/state@6.7.5':
+ resolution: {integrity: sha512-QjLbZmY1Au3JiRrDVYFLRD0BZ3SOKS9pR3yjIkd7u27YY8TFD9/Q9fhPnLV5l1mHFSo3hHU/N31vpwEJOx4owQ==}
- '@codemirror/view@6.43.11':
- resolution: {integrity: sha512-2+esucbQX6wB2JYi1eDvdCPFTA31BN8oSy6xCmk3G6CloV11yOvEjYk+gH7kLrP0MuHG94E8WDhjs5oMiu3+Wg==}
+ '@codemirror/view@6.43.12':
+ resolution: {integrity: sha512-Nv0vxQ19NAqvB/c2pFzjIzFlzzJl7jmdtNkwOwGbn0Ks9mFAzibvumz7cQem5cRsFA2cEw2fg+uHZGbcHupLQQ==}
'@esbuild/aix-ppc64@0.28.2':
resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==}
@@ -424,8 +403,8 @@ packages:
resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/css-tree@4.1.0':
- resolution: {integrity: sha512-cg0ohyrAG3swyGqt8t1K/OK97DqBw/ftDvlvyY1fmEst5B40UOmsimwLENq74z2dyw5CDM+3zJIW+CV2nFNDdA==}
+ '@eslint/css-tree@4.1.1':
+ resolution: {integrity: sha512-A+s89eP+yDAPkKjnIOfjlkGifg5J7GPn01nWx14UjBVWktfkxOU4975F9ZZ13xNxkGiblNcBaAqgKhnQrW6SWA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
'@eslint/css@2.0.0':
@@ -449,8 +428,8 @@ packages:
resolution: {integrity: sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@hpcc-js/wasm-graphviz@1.29.0':
- resolution: {integrity: sha512-irr5OCt1G5s5j75jlGZm3Y5fb6DboE2c/aWiM/Fv/b3NygbJY/Rp8335kS5Qeklsib0dWInjAYCj4UEClIYQmQ==}
+ '@hpcc-js/wasm-graphviz@1.29.1':
+ resolution: {integrity: sha512-koAQL0wlryEMeBs4/cQC3GB5ziITv66gR9DU/SWYjjup+iQ+Nbjcqxeaef+sffN4F4cBYZ3P31B5z7+cbSABbw==}
'@humanfs/core@0.19.2':
resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==}
@@ -508,8 +487,8 @@ packages:
'@lezer/java@1.1.4':
resolution: {integrity: sha512-gQylJ2xHV2xXsVqtnAcJrcROvLZJaQiC0tR//+q0k961BxqvyYttusPkJ8d9T1fPDJKHJW2etUH8XbIn9jhVUg==}
- '@lezer/javascript@1.5.4':
- resolution: {integrity: sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==}
+ '@lezer/javascript@1.5.5':
+ resolution: {integrity: sha512-sWg4yX1J6XW67AaAynVt0iwF0M5c+np36TEu+P2ifAJ8haRYvHnWDV28r1jdwnJehWCwXECutAUy56K4RBZIyg==}
'@lezer/json@1.0.3':
resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==}
@@ -517,20 +496,11 @@ packages:
'@lezer/lr@1.4.10':
resolution: {integrity: sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A==}
- '@lezer/markdown@1.7.2':
- resolution: {integrity: sha512-iTkYvoVcKt3WkeL7qUDyXHONZEwLio4wj8KTNi2dnjQEXBZKMV63BpQrPqfsM+OkvuRbiSTAcycYAsQzLhRNoQ==}
-
- '@lezer/php@1.0.6':
- resolution: {integrity: sha512-QJ2xNXPmsm/Z3IpThq8fnJrEIVpxhsIoj6GZBW0JYEd/l9zxpJZW216X4fzqQY4vgpdGIumypvI4uQjd4tnYtw==}
-
'@lezer/python@1.1.19':
resolution: {integrity: sha512-MhQIURHRytsNzP/YXnqpYKW6la6voAH3kyplTOOiCdjyFY6cWWGFVmYVdHIPrElqSDf4iCDktQCockB9FxuhzQ==}
- '@lezer/rust@1.0.2':
- resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==}
-
- '@lezer/xml@1.0.6':
- resolution: {integrity: sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==}
+ '@lezer/rust@1.0.3':
+ resolution: {integrity: sha512-XxErOjZzQ7yJt1agUT4fu9qQvESZ3acgoxpPaPTPOiUx+duCjaVAtZGFIgphkHxlN05djdVAIOy/wItShMEjqQ==}
'@lezer/yaml@1.0.4':
resolution: {integrity: sha512-2lrrHqxalACEbxIbsjhqGpSW8kWpUKuY6RHgnSAFZa6qK62wvnPxA8hGOwOoDbwHcOFs5M4o27mjGu+P7TvBmw==}
@@ -698,8 +668,8 @@ packages:
'@types/d3-scale@4.0.9':
resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==}
- '@types/d3-selection@3.0.11':
- resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==}
+ '@types/d3-selection@3.0.12':
+ resolution: {integrity: sha512-Qe/KWYhEiIIxGs7HrAAjMfShxKldx19SJtr5zu53f3afPsdZNz7HHtdTLXo/kqeiWNXVycI24kSnfzBYkTzpgw==}
'@types/d3-shape@3.2.0':
resolution: {integrity: sha512-kVd74ta9eof3eJOvbNd1vGKS/XERRyQbT26Og63hIsvDO84cjD5gEOhsXf26w3FSoNlPVz84DOFcKv/oou+fMw==}
@@ -725,9 +695,6 @@ packages:
'@types/deep-eql@4.0.2':
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
- '@types/dom-navigation@1.0.7':
- resolution: {integrity: sha512-Di4W+i2faYquHUnyWUg3bBQp5pTNvjDDA7mIYfD/1WlLgan6sKkeVjGbdL78K0CuNEk5Pfc/c0rfelwkz10mnQ==}
-
'@types/esrecurse@4.3.1':
resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==}
@@ -737,9 +704,6 @@ packages:
'@types/geojson@7946.0.16':
resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
- '@types/js-beautify@1.14.3':
- resolution: {integrity: sha512-FMbQHz+qd9DoGvgLHxeqqVPaNRffpIu5ZjozwV8hf9JAGpIOzuAf4wGbRSo8LNITHqGjmmVjaMggTT5P4v4IHg==}
-
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@@ -749,8 +713,8 @@ packages:
'@types/mocha@10.0.10':
resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==}
- '@types/node@26.5.1':
- resolution: {integrity: sha512-CzNm2FezW4VR/LjG6yUdiEgLE/rAQ9Slj5gCu/C2VrdcW7I0ahNZ8DRbHT7zOZ6r3ONgd/bsQIeSaoDGrd1C6g==}
+ '@types/node@26.6.2':
+ resolution: {integrity: sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==}
'@types/toastify-js@1.12.4':
resolution: {integrity: sha512-zfZHU4tKffPCnZRe7pjv/eFKzTVHozKewFCKaCjZ4gFinKgJRz/t0bkZiMCXJxPhv/ZoeDGNOeRD09R0kQZ/nw==}
@@ -1007,11 +971,11 @@ packages:
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22}
- brace-expansion@1.1.18:
- resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==}
+ brace-expansion@1.1.21:
+ resolution: {integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==}
- brace-expansion@5.0.9:
- resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==}
+ brace-expansion@5.0.12:
+ resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==}
engines: {node: 20 || >=22}
browser-stdout@1.3.1:
@@ -1394,8 +1358,8 @@ packages:
resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- eslint@10.10.0:
- resolution: {integrity: sha512-NPXn6r5zl4uET1DAVPaOwzX3rut4c0wcmw3dWJAfOsTM5+TogXo0DDjz8pwm/hL8cyVNpHqeK4JpN0NjnyFFNw==}
+ eslint@10.11.0:
+ resolution: {integrity: sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
hasBin: true
peerDependencies:
@@ -1451,14 +1415,14 @@ packages:
file-entry-cache@11.1.5:
resolution: {integrity: sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==}
+ find-up-simple@1.0.1:
+ resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
+ engines: {node: '>=18'}
+
find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
- find-up@8.0.0:
- resolution: {integrity: sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==}
- engines: {node: '>=20'}
-
flat-cache@6.1.23:
resolution: {integrity: sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==}
@@ -1605,8 +1569,8 @@ packages:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
- is-core-module@2.16.2:
- resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==}
+ is-core-module@2.17.0:
+ resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==}
engines: {node: '>= 0.4'}
is-data-view@1.0.2:
@@ -1699,8 +1663,8 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
- js-yaml@5.4.1:
- resolution: {integrity: sha512-28R/k+NAjeuf7+CKlTxWZVExJGwVVLwY06DgEnOMz2gEpfNkDcD7QvyiVPT0xy0XXhU8vHsd4Ot42OOPdJG7dQ==}
+ js-yaml@5.4.2:
+ resolution: {integrity: sha512-m+aqu+LwO1O6sIopafj8HUVl5aawITwZQe/yHpMCKjaWBaA/d07B/QdMb3529REftiU+RMMHL3Vlsw3hON7vWg==}
hasBin: true
json-schema-traverse@0.4.1:
@@ -1737,15 +1701,11 @@ packages:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
- locate-path@8.0.0:
- resolution: {integrity: sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==}
- engines: {node: '>=20'}
-
lodash-es@4.18.1:
resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==}
- lru-cache@11.5.2:
- resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==}
+ lru-cache@11.5.3:
+ resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==}
engines: {node: 20 || >=22}
marked@16.4.2:
@@ -1760,8 +1720,8 @@ packages:
mathjax@4.1.3:
resolution: {integrity: sha512-BN/8Pkgn7G1pIDYJqd9md+JHsE/jydSYbyOZnSdSA0WziuVO8mRxdYiWFumkVVly/8U+hm9DpIIoWuvySverzw==}
- mdn-data@2.34.0:
- resolution: {integrity: sha512-OgIlLv0NxJKVW4GTSAoEgpRGd4F2XCqGinK0MsMlBCCS/Zcm2/LsbercNWNA7PeMMcjl75NnI97eqyo7zkdxWA==}
+ mdn-data@2.35.0:
+ resolution: {integrity: sha512-k+1+dEIm2z/BEfdvYzT/fIyAGeDBo/1AJNJI4ilFXJRYoxP/3Ds+GP8shAOIq8jYXY9N5nGB3Ag104NsagmLAA==}
mermaid@11.17.2:
resolution: {integrity: sha512-V6K3C8EBdEsPFZXSKMJe6ppQOENxuHARr9GvHX4hh47lAbhMRD9qf4oEK7LoaRQxULMa80/qt5gHO73aCleBBg==}
@@ -1780,8 +1740,8 @@ packages:
resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
engines: {node: '>=16 || 14 >=14.17'}
- mocha@12.0.1:
- resolution: {integrity: sha512-/ILgtFHV+R7EJLwN0OkrPPOu6wbJyrtuRtTJ5szdFHv2A3mPmkbu3r1H2q6FhaAfywDJCulcQQ2S9qDGfZW6dw==}
+ mocha@12.0.2:
+ resolution: {integrity: sha512-SjAulGHxlMJLCD1bhvJBAiYwYxglydRzA9PDQ5MALq1oLRMMtIhxSQJ0olCFgA7c9YbTdxC0KOV0wl8JEDYVhA==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
@@ -1840,18 +1800,10 @@ packages:
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}
-
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}
-
package-manager-detector@1.8.0:
resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==}
@@ -1902,8 +1854,8 @@ packages:
resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==}
engines: {node: '>=6.0.0'}
- prettier@3.9.6:
- resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==}
+ prettier@3.9.8:
+ resolution: {integrity: sha512-WRFq3Wn3WId7LLROfMLdH7xaFr2jR62wU8nLO6rQUOLOxNZUviyJQs1M0iIhLexSFy+L+w0ch66wtoO2jRjG0A==}
engines: {node: '>=14'}
hasBin: true
@@ -2036,8 +1988,8 @@ packages:
resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==}
engines: {node: '>=14.16'}
- style-mod@4.1.3:
- resolution: {integrity: sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==}
+ style-mod@4.1.4:
+ resolution: {integrity: sha512-XXWIQt633/EpAFx8aZDOTjBzrCaGmhvEQlQo6MVPfa2OzO2cWo+4hV9h+6UkHYlXGfy+ODXKUdP7Pthmcu5ATw==}
stylis@4.4.0:
resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==}
@@ -2093,8 +2045,8 @@ packages:
resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
engines: {node: '>= 0.4'}
- typed-array-byte-offset@1.0.4:
- resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ typed-array-byte-offset@1.0.5:
+ resolution: {integrity: sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==}
engines: {node: '>= 0.4'}
typed-array-length@1.0.8:
@@ -2125,10 +2077,6 @@ packages:
undici-types@8.9.0:
resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==}
- unicorn-magic@0.3.0:
- resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
- engines: {node: '>=18'}
-
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@@ -2151,8 +2099,8 @@ packages:
resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
engines: {node: '>= 0.4'}
- which-typed-array@1.1.22:
- resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==}
+ which-typed-array@1.1.24:
+ resolution: {integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==}
engines: {node: '>= 0.4'}
which@2.0.2:
@@ -2171,13 +2119,9 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- yocto-queue@1.2.2:
- resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
- engines: {node: '>=12.20'}
-
snapshots:
- '@antfu/install-pkg@2.0.1':
+ '@antfu/install-pkg@2.1.0':
dependencies:
package-manager-detector: 1.8.0
tinyexec: 1.3.1
@@ -2201,15 +2145,15 @@ snapshots:
'@codemirror/autocomplete@6.20.3':
dependencies:
'@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
+ '@codemirror/state': 6.7.5
+ '@codemirror/view': 6.43.12
'@lezer/common': 1.5.2
- '@codemirror/commands@6.11.0':
+ '@codemirror/commands@6.11.1':
dependencies:
'@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
+ '@codemirror/state': 6.7.5
+ '@codemirror/view': 6.43.12
'@lezer/common': 1.5.2
'@codemirror/lang-cpp@6.0.3':
@@ -2221,7 +2165,7 @@ snapshots:
dependencies:
'@codemirror/autocomplete': 6.20.3
'@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
+ '@codemirror/state': 6.7.5
'@lezer/common': 1.5.2
'@lezer/css': 1.3.6
@@ -2229,7 +2173,7 @@ snapshots:
dependencies:
'@codemirror/autocomplete': 6.20.3
'@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
+ '@codemirror/state': 6.7.5
'@lezer/common': 1.5.2
'@lezer/go': 1.0.1
@@ -2239,8 +2183,8 @@ snapshots:
'@codemirror/lang-css': 6.3.1
'@codemirror/lang-javascript': 6.2.5
'@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
+ '@codemirror/state': 6.7.5
+ '@codemirror/view': 6.43.12
'@lezer/common': 1.5.2
'@lezer/css': 1.3.6
'@lezer/html': 1.3.13
@@ -2255,70 +2199,43 @@ snapshots:
'@codemirror/autocomplete': 6.20.3
'@codemirror/language': 6.12.4
'@codemirror/lint': 6.9.7
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
+ '@codemirror/state': 6.7.5
+ '@codemirror/view': 6.43.12
'@lezer/common': 1.5.2
- '@lezer/javascript': 1.5.4
+ '@lezer/javascript': 1.5.5
'@codemirror/lang-json@6.0.2':
dependencies:
'@codemirror/language': 6.12.4
'@lezer/json': 1.0.3
- '@codemirror/lang-markdown@6.5.2':
- dependencies:
- '@codemirror/autocomplete': 6.20.3
- '@codemirror/lang-html': 6.4.12
- '@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
- '@lezer/common': 1.5.2
- '@lezer/markdown': 1.7.2
-
- '@codemirror/lang-php@6.0.2':
- dependencies:
- '@codemirror/lang-html': 6.4.12
- '@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
- '@lezer/common': 1.5.2
- '@lezer/php': 1.0.6
-
'@codemirror/lang-python@6.2.1':
dependencies:
'@codemirror/autocomplete': 6.20.3
'@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
+ '@codemirror/state': 6.7.5
'@lezer/common': 1.5.2
'@lezer/python': 1.1.19
'@codemirror/lang-rust@6.0.2':
dependencies:
'@codemirror/language': 6.12.4
- '@lezer/rust': 1.0.2
+ '@lezer/rust': 1.0.3
'@codemirror/lang-sql@6.10.0':
dependencies:
'@codemirror/autocomplete': 6.20.3
'@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
+ '@codemirror/state': 6.7.5
'@lezer/common': 1.5.2
'@lezer/highlight': 1.2.3
'@lezer/lr': 1.4.10
- '@codemirror/lang-xml@6.1.0':
- dependencies:
- '@codemirror/autocomplete': 6.20.3
- '@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
- '@lezer/common': 1.5.2
- '@lezer/xml': 1.0.6
-
'@codemirror/lang-yaml@6.1.3':
dependencies:
'@codemirror/autocomplete': 6.20.3
'@codemirror/language': 6.12.4
- '@codemirror/state': 6.7.4
+ '@codemirror/state': 6.7.5
'@lezer/common': 1.5.2
'@lezer/highlight': 1.2.3
'@lezer/lr': 1.4.10
@@ -2326,12 +2243,12 @@ snapshots:
'@codemirror/language@6.12.4':
dependencies:
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
+ '@codemirror/state': 6.7.5
+ '@codemirror/view': 6.43.12
'@lezer/common': 1.5.2
'@lezer/highlight': 1.2.3
'@lezer/lr': 1.4.10
- style-mod: 4.1.3
+ style-mod: 4.1.4
'@codemirror/legacy-modes@6.5.4':
dependencies:
@@ -2339,25 +2256,25 @@ snapshots:
'@codemirror/lint@6.9.7':
dependencies:
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
+ '@codemirror/state': 6.7.5
+ '@codemirror/view': 6.43.12
crelt: 1.0.7
'@codemirror/search@6.7.2':
dependencies:
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
+ '@codemirror/state': 6.7.5
+ '@codemirror/view': 6.43.12
crelt: 1.0.7
- '@codemirror/state@6.7.4':
+ '@codemirror/state@6.7.5':
dependencies:
'@marijn/find-cluster-break': 1.0.4
- '@codemirror/view@6.43.11':
+ '@codemirror/view@6.43.12':
dependencies:
- '@codemirror/state': 6.7.4
+ '@codemirror/state': 6.7.5
crelt: 1.0.7
- style-mod: 4.1.3
+ style-mod: 4.1.4
w3c-keyname: 2.2.8
'@esbuild/aix-ppc64@0.28.2':
@@ -2438,9 +2355,9 @@ snapshots:
'@esbuild/win32-x64@0.28.2':
optional: true
- '@eslint-community/eslint-utils@4.10.1(eslint@10.10.0(supports-color@8.1.1))':
+ '@eslint-community/eslint-utils@4.10.1(eslint@10.11.0(supports-color@8.1.1))':
dependencies:
- eslint: 10.10.0(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {}
@@ -2461,20 +2378,20 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/css-tree@4.1.0':
+ '@eslint/css-tree@4.1.1':
dependencies:
- mdn-data: 2.34.0
+ mdn-data: 2.35.0
source-map-js: 1.2.1
'@eslint/css@2.0.0':
dependencies:
'@eslint/core': 1.2.1
- '@eslint/css-tree': 4.1.0
+ '@eslint/css-tree': 4.1.1
'@eslint/plugin-kit': 0.7.3
- '@eslint/js@10.0.1(eslint@10.10.0(supports-color@8.1.1))':
+ '@eslint/js@10.0.1(eslint@10.11.0(supports-color@8.1.1))':
optionalDependencies:
- eslint: 10.10.0(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
'@eslint/object-schema@3.0.5': {}
@@ -2483,7 +2400,7 @@ snapshots:
'@eslint/core': 1.2.1
levn: 0.4.1
- '@hpcc-js/wasm-graphviz@1.29.0': {}
+ '@hpcc-js/wasm-graphviz@1.29.1': {}
'@humanfs/core@0.19.2':
dependencies:
@@ -2505,7 +2422,7 @@ snapshots:
'@iconify/utils@3.1.7':
dependencies:
- '@antfu/install-pkg': 2.0.1
+ '@antfu/install-pkg': 2.1.0
'@iconify/types': 2.0.0
import-meta-resolve: 4.2.0
@@ -2553,7 +2470,7 @@ snapshots:
'@lezer/highlight': 1.2.3
'@lezer/lr': 1.4.10
- '@lezer/javascript@1.5.4':
+ '@lezer/javascript@1.5.5':
dependencies:
'@lezer/common': 1.5.2
'@lezer/highlight': 1.2.3
@@ -2569,30 +2486,13 @@ snapshots:
dependencies:
'@lezer/common': 1.5.2
- '@lezer/markdown@1.7.2':
- dependencies:
- '@lezer/common': 1.5.2
- '@lezer/highlight': 1.2.3
-
- '@lezer/php@1.0.6':
- dependencies:
- '@lezer/common': 1.5.2
- '@lezer/highlight': 1.2.3
- '@lezer/lr': 1.4.10
-
'@lezer/python@1.1.19':
dependencies:
'@lezer/common': 1.5.2
'@lezer/highlight': 1.2.3
'@lezer/lr': 1.4.10
- '@lezer/rust@1.0.2':
- dependencies:
- '@lezer/common': 1.5.2
- '@lezer/highlight': 1.2.3
- '@lezer/lr': 1.4.10
-
- '@lezer/xml@1.0.6':
+ '@lezer/rust@1.0.3':
dependencies:
'@lezer/common': 1.5.2
'@lezer/highlight': 1.2.3
@@ -2673,11 +2573,11 @@ snapshots:
'@types/d3-axis@3.0.6':
dependencies:
- '@types/d3-selection': 3.0.11
+ '@types/d3-selection': 3.0.12
'@types/d3-brush@3.0.6':
dependencies:
- '@types/d3-selection': 3.0.11
+ '@types/d3-selection': 3.0.12
'@types/d3-chord@3.0.6': {}
@@ -2694,7 +2594,7 @@ snapshots:
'@types/d3-drag@3.0.7':
dependencies:
- '@types/d3-selection': 3.0.11
+ '@types/d3-selection': 3.0.12
'@types/d3-dsv@3.0.7': {}
@@ -2732,7 +2632,7 @@ snapshots:
dependencies:
'@types/d3-time': 3.0.4
- '@types/d3-selection@3.0.11': {}
+ '@types/d3-selection@3.0.12': {}
'@types/d3-shape@3.2.0':
dependencies:
@@ -2746,12 +2646,12 @@ snapshots:
'@types/d3-transition@3.0.9':
dependencies:
- '@types/d3-selection': 3.0.11
+ '@types/d3-selection': 3.0.12
'@types/d3-zoom@3.0.8':
dependencies:
'@types/d3-interpolate': 3.0.4
- '@types/d3-selection': 3.0.11
+ '@types/d3-selection': 3.0.12
'@types/d3@7.4.3':
dependencies:
@@ -2778,7 +2678,7 @@ snapshots:
'@types/d3-random': 3.0.4
'@types/d3-scale': 4.0.9
'@types/d3-scale-chromatic': 3.1.0
- '@types/d3-selection': 3.0.11
+ '@types/d3-selection': 3.0.12
'@types/d3-shape': 3.2.0
'@types/d3-time': 3.0.4
'@types/d3-time-format': 4.0.3
@@ -2788,23 +2688,19 @@ snapshots:
'@types/deep-eql@4.0.2': {}
- '@types/dom-navigation@1.0.7': {}
-
'@types/esrecurse@4.3.1': {}
'@types/estree@1.0.9': {}
'@types/geojson@7946.0.16': {}
- '@types/js-beautify@1.14.3': {}
-
'@types/json-schema@7.0.15': {}
'@types/json5@0.0.29': {}
'@types/mocha@10.0.10': {}
- '@types/node@26.5.1':
+ '@types/node@26.6.2':
dependencies:
undici-types: 8.9.0
@@ -2813,15 +2709,15 @@ snapshots:
'@types/trusted-types@2.0.7':
optional: true
- '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1))(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)':
+ '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1))(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
'@typescript-eslint/scope-manager': 8.70.0
- '@typescript-eslint/type-utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
- '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@typescript-eslint/type-utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
'@typescript-eslint/visitor-keys': 8.70.0
- eslint: 10.10.0(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
ignore: 7.0.9
natural-compare: 1.4.0
ts-api-utils: 2.5.0(@typescript/typescript6@6.0.2)
@@ -2829,14 +2725,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)':
+ '@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
'@typescript-eslint/scope-manager': 8.70.0
'@typescript-eslint/types': 8.70.0
'@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
'@typescript-eslint/visitor-keys': 8.70.0
debug: 4.4.3(supports-color@8.1.1)
- eslint: 10.10.0(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
- supports-color
@@ -2859,13 +2755,13 @@ snapshots:
dependencies:
typescript: '@typescript/typescript6@6.0.2'
- '@typescript-eslint/type-utils@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)':
+ '@typescript-eslint/type-utils@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
'@typescript-eslint/types': 8.70.0
'@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
- '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
debug: 4.4.3(supports-color@8.1.1)
- eslint: 10.10.0(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
ts-api-utils: 2.5.0(@typescript/typescript6@6.0.2)
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
@@ -2888,13 +2784,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)':
+ '@typescript-eslint/utils@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(supports-color@8.1.1))
+ '@eslint-community/eslint-utils': 4.10.1(eslint@10.11.0(supports-color@8.1.1))
'@typescript-eslint/scope-manager': 8.70.0
'@typescript-eslint/types': 8.70.0
'@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
- eslint: 10.10.0(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
- supports-color
@@ -3052,12 +2948,12 @@ snapshots:
balanced-match@4.0.4: {}
- brace-expansion@1.1.18:
+ brace-expansion@1.1.21:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@5.0.9:
+ brace-expansion@5.0.12:
dependencies:
balanced-match: 4.0.4
@@ -3097,12 +2993,12 @@ snapshots:
codemirror@6.0.2:
dependencies:
'@codemirror/autocomplete': 6.20.3
- '@codemirror/commands': 6.11.0
+ '@codemirror/commands': 6.11.1
'@codemirror/language': 6.12.4
'@codemirror/lint': 6.9.7
'@codemirror/search': 6.7.2
- '@codemirror/state': 6.7.4
- '@codemirror/view': 6.43.11
+ '@codemirror/state': 6.7.5
+ '@codemirror/view': 6.43.12
commander@7.2.0: {}
@@ -3435,10 +3331,10 @@ snapshots:
string.prototype.trimstart: 1.0.8
typed-array-buffer: 1.0.3
typed-array-byte-length: 1.0.3
- typed-array-byte-offset: 1.0.4
+ typed-array-byte-offset: 1.0.5
typed-array-length: 1.0.8
unbox-primitive: 1.1.0
- which-typed-array: 1.1.22
+ which-typed-array: 1.1.24
es-define-property@1.0.1: {}
@@ -3501,29 +3397,29 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eslint-config-prettier@10.1.8(eslint@10.10.0(supports-color@8.1.1)):
+ eslint-config-prettier@10.1.8(eslint@10.11.0(supports-color@8.1.1)):
dependencies:
- eslint: 10.10.0(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
eslint-import-resolver-node@0.3.10(supports-color@8.1.1):
dependencies:
debug: 3.2.7(supports-color@8.1.1)
- is-core-module: 2.16.2
+ is-core-module: 2.17.0
resolve: 2.0.0-next.7
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.14.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1):
+ eslint-module-utils@2.14.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
debug: 3.2.7(supports-color@8.1.1)
optionalDependencies:
- '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
- eslint: 10.10.0(supports-color@8.1.1)
+ '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
eslint-import-resolver-node: 0.3.10(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1))(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1))(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.2.0
@@ -3532,11 +3428,11 @@ snapshots:
array.prototype.flatmap: 1.3.3
debug: 3.2.7(supports-color@8.1.1)
doctrine: 2.1.0
- eslint: 10.10.0(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
eslint-import-resolver-node: 0.3.10(supports-color@8.1.1)
- eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1))(eslint-import-resolver-node@0.3.10(supports-color@8.1.1))(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
hasown: 2.0.4
- is-core-module: 2.16.2
+ is-core-module: 2.17.0
is-glob: 4.0.3
minimatch: 3.1.5
object.fromentries: 2.0.8
@@ -3546,20 +3442,20 @@ snapshots:
string.prototype.trimend: 1.0.10
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-prettier@5.5.6(eslint-config-prettier@10.1.8(eslint@10.10.0(supports-color@8.1.1)))(eslint@10.10.0(supports-color@8.1.1))(prettier@3.9.6):
+ eslint-plugin-prettier@5.5.6(eslint-config-prettier@10.1.8(eslint@10.11.0(supports-color@8.1.1)))(eslint@10.11.0(supports-color@8.1.1))(prettier@3.9.8):
dependencies:
- eslint: 10.10.0(supports-color@8.1.1)
- prettier: 3.9.6
+ eslint: 10.11.0(supports-color@8.1.1)
+ prettier: 3.9.8
prettier-linter-helpers: 1.0.1
synckit: 0.11.13
optionalDependencies:
- eslint-config-prettier: 10.1.8(eslint@10.10.0(supports-color@8.1.1))
+ eslint-config-prettier: 10.1.8(eslint@10.11.0(supports-color@8.1.1))
eslint-scope@9.1.2:
dependencies:
@@ -3572,9 +3468,9 @@ snapshots:
eslint-visitor-keys@5.0.1: {}
- eslint@10.10.0(supports-color@8.1.1):
+ eslint@10.11.0(supports-color@8.1.1):
dependencies:
- '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(supports-color@8.1.1))
+ '@eslint-community/eslint-utils': 4.10.1(eslint@10.11.0(supports-color@8.1.1))
'@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.23.5(supports-color@8.1.1)
'@eslint/config-helpers': 0.7.0
@@ -3645,16 +3541,13 @@ snapshots:
dependencies:
flat-cache: 6.1.23
+ find-up-simple@1.0.1: {}
+
find-up@5.0.0:
dependencies:
locate-path: 6.0.0
path-exists: 4.0.0
- find-up@8.0.0:
- dependencies:
- locate-path: 8.0.0
- unicorn-magic: 0.3.0
-
flat-cache@6.1.23:
dependencies:
cacheable: 2.5.0
@@ -3807,7 +3700,7 @@ snapshots:
is-callable@1.2.7: {}
- is-core-module@2.16.2:
+ is-core-module@2.17.0:
dependencies:
hasown: 2.0.4
@@ -3881,7 +3774,7 @@ snapshots:
is-typed-array@1.1.15:
dependencies:
- which-typed-array: 1.1.22
+ which-typed-array: 1.1.24
is-unicode-supported@0.1.0: {}
@@ -3900,7 +3793,7 @@ snapshots:
isexe@2.0.0: {}
- js-yaml@5.4.1:
+ js-yaml@5.4.2:
dependencies:
argparse: 2.0.1
@@ -3935,13 +3828,9 @@ snapshots:
dependencies:
p-locate: 5.0.0
- locate-path@8.0.0:
- dependencies:
- p-locate: 6.0.0
-
lodash-es@4.18.1: {}
- lru-cache@11.5.2: {}
+ lru-cache@11.5.3: {}
marked@16.4.2: {}
@@ -3951,7 +3840,7 @@ snapshots:
dependencies:
'@mathjax/mathjax-newcm-font': 4.1.3
- mdn-data@2.34.0: {}
+ mdn-data@2.35.0: {}
mermaid@11.17.2:
dependencies:
@@ -3980,27 +3869,27 @@ snapshots:
minimatch@10.2.6:
dependencies:
- brace-expansion: 5.0.9
+ brace-expansion: 5.0.12
minimatch@3.1.5:
dependencies:
- brace-expansion: 1.1.18
+ brace-expansion: 1.1.21
minimist@1.2.8: {}
minipass@7.1.3: {}
- mocha@12.0.1:
+ mocha@12.0.2:
dependencies:
browser-stdout: 1.3.1
chokidar: 5.0.0
debug: 4.4.3(supports-color@8.1.1)
diff: 9.0.0
- find-up: 8.0.0
+ find-up-simple: 1.0.1
glob: 13.0.6
is-path-inside: 4.0.0
is-unicode-supported: 0.1.0
- js-yaml: 5.4.1
+ js-yaml: 5.4.2
minimatch: 10.2.6
ms: 2.1.3
picocolors: 1.1.1
@@ -4082,18 +3971,10 @@ snapshots:
dependencies:
yocto-queue: 0.1.0
- p-limit@4.0.0:
- dependencies:
- yocto-queue: 1.2.2
-
p-locate@5.0.0:
dependencies:
p-limit: 3.1.0
- p-locate@6.0.0:
- dependencies:
- p-limit: 4.0.0
-
package-manager-detector@1.8.0: {}
path-data-parser@0.1.0: {}
@@ -4106,7 +3987,7 @@ snapshots:
path-scurry@2.0.2:
dependencies:
- lru-cache: 11.5.2
+ lru-cache: 11.5.3
minipass: 7.1.3
pdfjs-dist@6.3.289:
@@ -4132,7 +4013,7 @@ snapshots:
dependencies:
fast-diff: 1.3.0
- prettier@3.9.6: {}
+ prettier@3.9.8: {}
punycode@2.3.1: {}
@@ -4165,7 +4046,7 @@ snapshots:
resolve@2.0.0-next.7:
dependencies:
es-errors: 1.3.0
- is-core-module: 2.16.2
+ is-core-module: 2.17.0
node-exports-info: 1.6.2
object-keys: 1.1.1
path-parse: 1.0.7
@@ -4302,7 +4183,7 @@ snapshots:
strip-json-comments@5.0.3: {}
- style-mod@4.1.3: {}
+ style-mod@4.1.4: {}
stylis@4.4.0: {}
@@ -4358,13 +4239,12 @@ snapshots:
has-proto: 1.2.0
is-typed-array: 1.1.15
- typed-array-byte-offset@1.0.4:
+ typed-array-byte-offset@1.0.5:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.9
for-each: 0.3.5
gopd: 1.2.0
- has-proto: 1.2.0
is-typed-array: 1.1.15
reflect.getprototypeof: 1.0.10
@@ -4377,13 +4257,13 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
- typescript-eslint@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1):
+ typescript-eslint@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1))(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
- '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1))(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
'@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
- '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@8.1.1))(supports-color@8.1.1)
- eslint: 10.10.0(supports-color@8.1.1)
+ '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint: 10.11.0(supports-color@8.1.1)
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
- supports-color
@@ -4422,8 +4302,6 @@ snapshots:
undici-types@8.9.0: {}
- unicorn-magic@0.3.0: {}
-
uri-js@4.4.1:
dependencies:
punycode: 2.3.1
@@ -4454,7 +4332,7 @@ snapshots:
isarray: 2.0.5
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
- which-typed-array: 1.1.22
+ which-typed-array: 1.1.24
which-collection@1.0.2:
dependencies:
@@ -4463,7 +4341,7 @@ snapshots:
is-weakmap: 2.0.2
is-weakset: 2.0.4
- which-typed-array@1.1.22:
+ which-typed-array@1.1.24:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.9
@@ -4482,5 +4360,3 @@ snapshots:
workerpool@10.0.3: {}
yocto-queue@0.1.0: {}
-
- yocto-queue@1.2.2: {}
diff --git a/client/src/CodeChatEditorFramework.mts b/client/src/CodeChatEditorFramework.mts
index ee0361ba..fb2b021c 100644
--- a/client/src/CodeChatEditorFramework.mts
+++ b/client/src/CodeChatEditorFramework.mts
@@ -62,9 +62,8 @@ const RESPONSE_TIMEOUT_MS = 15000;
let webSocketComm: WebSocketComm;
class WebSocketComm {
- // Use a unique ID for each websocket message sent. See the Implementation
- // section on Message IDs for more information.
- //
+ // The initial websocket ID for a Client. Use a unique ID for each websocket
+ // message sent.
wsId = 4;
// The websocket used by this class. Really a `ReconnectingWebSocket`, but
@@ -214,8 +213,8 @@ class WebSocketComm {
// to track this manually instead.
if (!this.isLoading) {
// Wait until after the DOM is ready, since we
- // rely on content set in
- // `onDomContentLoaded` in the Client.
+ // rely on content set in `onDomContentLoaded`
+ // in the Client.
await setContent(
contents,
currentUpdate.is_re_translation,
diff --git a/client/src/CodeMirror-integration.mts b/client/src/CodeMirror-integration.mts
index bdcfde4b..9050dae2 100644
--- a/client/src/CodeMirror-integration.mts
+++ b/client/src/CodeMirror-integration.mts
@@ -486,9 +486,8 @@ class DocBlockWidget extends WidgetType {
`
${this.indent}
` +
- // The contents of this doc block. Make it focusable by assigning a
- // tab stop, but not editable (until it's replaced by the TinyMCE
- // editor).
+ // The contents of this doc block. Make it focusable but not
+ // editable (until it's replaced by the TinyMCE editor).
`` +
this.contents +
"
";
@@ -704,29 +703,29 @@ const getContents = (element: Element): [HTMLDivElement, boolean] => {
};
// Allow only spaces and delete/backspaces when editing the indent of a doc
-// block. This is registered (see `DocBlockPlugin`'s `focusin` handler below)
-// as a `beforeinput` listener on a doc block's indent div. It's defined here,
-// as a single stable function reference, rather than as an inline arrow
-// function created inside the `focusin` handler: `addEventListener` only
-// skips re-adding a listener that's reference-equal to one already
-// registered on the same target, and `focusin` can fire repeatedly on the
-// same (unchanged, and therefore DOM-preserving -- see `DocBlockWidget.eq`)
-// indent div, e.g. by blurring then refocusing it. A fresh arrow function
-// per `focusin` call would defeat that dedup and accumulate listeners.
+// block. This is registered (see `DocBlockPlugin`'s `focusin` handler below) as
+// a `beforeinput` listener on a doc block's indent div. It's defined here, as a
+// single stable function reference, rather than as an inline arrow function
+// created inside the `focusin` handler: `addEventListener` only skips re-adding
+// a listener that's reference-equal to one already registered on the same
+// target, and `focusin` can fire repeatedly on the same (unchanged, and
+// therefore DOM-preserving -- see `DocBlockWidget.eq`) indent div, e.g. by
+// blurring then refocusing it. A fresh arrow function per `focusin` call would
+// defeat that dedup and accumulate listeners.
const onIndentBeforeinput = (event: InputEvent) => {
// Only modify the behavior of inserts.
if (event.data) {
- // Block any insert that's not an insert of spaces.
- // TODO: need to support tabs.
+ // Block any insert that's not an insert of spaces. TODO: need to
+ // support tabs.
if (event.data !== " ".repeat(event.data.length)) {
event.preventDefault();
}
}
};
-// Signal that a doc block's indent is dirty. See `onIndentBeforeinput`
-// above for why this must be a stable function reference rather than an
-// inline closure.
+// Signal that a doc block's indent is dirty. See `onIndentBeforeinput` above
+// for why this must be a stable function reference rather than an inline
+// closure.
const onIndentInput = (event: Event) => {
const target = event.target;
if (target instanceof HTMLElement) {
@@ -894,8 +893,8 @@ const docBlockStartingAt = (
return found;
};
-// Same as `docBlockStartingAt`, but looks for a doc block that ends exactly
-// at `pos`.
+// Same as `docBlockStartingAt`, but looks for a doc block that ends exactly at
+// `pos`.
const docBlockEndingAt = (
view: EditorView,
pos: number,
@@ -1133,8 +1132,8 @@ export const DocBlockPlugin = ViewPlugin.fromClass(
// empty `selectionPath`, silently dropping this
// edge placement and leaving the caret wherever
// TinyMCE's own init happens to put it (its start).
- // Anchoring on a text node instead keeps the walk
- // -- and thus the edge placement -- intact.
+ // Anchoring on a text node instead keeps the
+ // walk -- and thus the edge placement -- intact.
let edgeNode: Node = contents;
while (
atEnd ? edgeNode.lastChild : edgeNode.firstChild
@@ -1357,7 +1356,8 @@ export const DocBlockPlugin = ViewPlugin.fromClass(
resolve(),
);
// Untypeset math in the old doc block and the current
- // doc block before moving its contents around. TODO: `tinymceDiv === null` in production at least once.
+ // doc block before moving its contents around. TODO:
+ // `tinymceDiv === null` in production at least once.
const tinymceDiv =
document.getElementById(TINYMCE_INST)!;
mathJaxUnTypeset(tinymceDiv);
@@ -1560,11 +1560,12 @@ export const codeMirrorLoad = async (
// For reloads, we need to remove previous instances; otherwise, Bad
// Things happen.
tinymce?.remove();
- // Per the [docs](https://codemirror.net/docs/ref/#view.EditorView.destroy),
- // this must be called to clean up the view (DOM-external state
- // such as global event listeners) before discarding it; simply
- // replacing `codechatBody`'s contents below doesn't do this and
- // would otherwise leak the old view on every reload.
+ // Per the
+ // [docs](https://codemirror.net/docs/ref/#view.EditorView.destroy),
+ // this must be called to clean up the view (DOM-external state such
+ // as global event listeners) before discarding it; simply replacing
+ // `codechatBody`'s contents below doesn't do this and would
+ // otherwise leak the old view on every reload.
currentView.destroy();
}
@@ -1683,13 +1684,13 @@ export const codeMirrorLoad = async (
parser,
basicSetup,
EditorView.lineWrapping,
- // CodeMirror marks its editing surface `role="textbox"`
- // but supplies no accessible name, so a screen reader
- // announces the element holding the user's source code as
- // an unlabeled text field. Point it at the filename the
- // Server renders into the page header, which names the
- // file and its directory: the label then follows whatever
- // file is open without this code having to learn the path.
+ // CodeMirror marks its editing surface `role="textbox"` but
+ // supplies no accessible name, so a screen reader announces
+ // the element holding the user's source code as an
+ // unlabeled text field. Point it at the filename the Server
+ // renders into the page header, which names the file and
+ // its directory: the label then follows whatever file is
+ // open without this code having to learn the path.
EditorView.contentAttributes.of({
"aria-labelledby": "CodeChat-filename",
}),
@@ -1913,8 +1914,8 @@ export const setCodeMirrorPositions = (
}
updateMessageContents.cursor_position = cursorPosition;
- // `currentView.viewport.from` isn't accurate, since it's not really the
- // top line, but a margin before it; see the
+ // `currentView.viewport.from` isn't accurate, since it's not really the top
+ // line, but a margin before it; see the
// [docs](https://codemirror.net/docs/ref/#view.EditorView.viewport).
// Instead, use
// [this approach](https://discuss.codemirror.net/t/how-can-i-get-the-top-line-number-in-real-time/9404).
diff --git a/client/src/tinymce-config.mts b/client/src/tinymce-config.mts
index bafcca44..ca65e97b 100644
--- a/client/src/tinymce-config.mts
+++ b/client/src/tinymce-config.mts
@@ -150,7 +150,7 @@ export const init = async (
// Needed to allow custom elements.
extended_valid_elements:
- "graphviz-graph[scale],wc-mermaid,xref[contenteditable|ref],fragment[contenteditable|id]",
+ "graphviz-graph[scale],wc-mermaid,xref[contenteditable|ref],fragment[contenteditable|following|id]",
// Per the [docs](https://www.tiny.cloud/docs/tinymce/latest/content-filtering/#custom_elements), `~` marks tags as an inline element, not a block element.
custom_elements: "graphviz-graph,wc-mermaid,~xref,~fragment",
},
diff --git a/extensions/VSCode/.gitignore b/extensions/VSCode/.gitignore
index 8dc0c274..ce72840b 100644
--- a/extensions/VSCode/.gitignore
+++ b/extensions/VSCode/.gitignore
@@ -29,9 +29,11 @@ log4rs.yml
hashLocations.json
static/
-# NAPI-RS
+# NAPI-RS. `src/index.js` is tracked rather than generated -- see the
+# comment at the top of that file, and the `--js` flag in the builder's
+# NAPI build.
src/index.d.ts
-src/index.js
+src/index-generated.js
src/codechat-editor-client.win32-x64-msvc.node
.windows/
*.log
diff --git a/extensions/VSCode/package.json b/extensions/VSCode/package.json
index cea8e7bf..bf78da4c 100644
--- a/extensions/VSCode/package.json
+++ b/extensions/VSCode/package.json
@@ -41,7 +41,7 @@
"type": "git",
"url": "https://github.com/bjones1/CodeChat_Editor"
},
- "version": "0.2.4",
+ "version": "0.2.5",
"activationEvents": [
"onCommand:extension.codeChatEditorActivate",
"onCommand:extension.codeChatEditorDeactivate",
@@ -118,24 +118,24 @@
"@emnapi/core": "^1.11.3",
"@emnapi/runtime": "^1.11.3",
"@eslint/js": "^10.0.1",
- "@napi-rs/cli": "^3.9.1",
- "@tybys/wasm-util": "^0.10.3",
+ "@napi-rs/cli": "^3.10.4",
+ "@tybys/wasm-util": "^0.10.4",
"@types/escape-html": "^1.0.4",
- "@types/node": "^26.5.1",
+ "@types/node": "^26.6.2",
"@types/vscode": "1.61.0",
"@typescript-eslint/eslint-plugin": "^8.70.0",
"@typescript-eslint/parser": "^8.70.0",
"@typescript/native": "npm:typescript@^7.0.2",
- "@vscode/vsce": "^3.9.2",
+ "@vscode/vsce": "^4.0.0",
"chalk": "^6.0.0",
"esbuild": "^0.28.2",
- "eslint": "^10.10.0",
+ "eslint": "^10.11.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^5.5.6",
"npm-run-all2": "^9.0.3",
- "prettier": "^3.9.6",
+ "prettier": "^3.9.8",
"typescript": "npm:@typescript/typescript6@^6.0.2",
"typescript-eslint": "^8.70.0"
},
diff --git a/extensions/VSCode/pnpm-lock.yaml b/extensions/VSCode/pnpm-lock.yaml
index 55c966b6..bbe9cf17 100644
--- a/extensions/VSCode/pnpm-lock.yaml
+++ b/extensions/VSCode/pnpm-lock.yaml
@@ -20,34 +20,34 @@ importers:
version: 1.11.3
'@eslint/js':
specifier: ^10.0.1
- version: 10.0.1(eslint@10.10.0(supports-color@7.2.0))
+ version: 10.0.1(eslint@10.11.0)
'@napi-rs/cli':
- specifier: ^3.9.1
- version: 3.9.1(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.5.1)(emnapi@1.11.3)(supports-color@7.2.0)
+ specifier: ^3.10.4
+ version: 3.10.4(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.6.2)
'@tybys/wasm-util':
- specifier: ^0.10.3
- version: 0.10.3
+ specifier: ^0.10.4
+ version: 0.10.4
'@types/escape-html':
specifier: ^1.0.4
version: 1.0.4
'@types/node':
- specifier: ^26.5.1
- version: 26.5.1
+ specifier: ^26.6.2
+ version: 26.6.2
'@types/vscode':
specifier: 1.61.0
version: 1.61.0
'@typescript-eslint/eslint-plugin':
specifier: ^8.70.0
- version: 8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0))(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
+ version: 8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0))(@typescript/typescript6@6.0.2)(eslint@10.11.0)
'@typescript-eslint/parser':
specifier: ^8.70.0
- version: 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
+ version: 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
'@typescript/native':
specifier: npm:typescript@^7.0.2
version: typescript@7.0.2
'@vscode/vsce':
- specifier: ^3.9.2
- version: 3.9.2(supports-color@7.2.0)
+ specifier: ^4.0.0
+ version: 4.0.0
chalk:
specifier: ^6.0.0
version: 6.0.0
@@ -55,32 +55,32 @@ importers:
specifier: ^0.28.2
version: 0.28.2
eslint:
- specifier: ^10.10.0
- version: 10.10.0(supports-color@7.2.0)
+ specifier: ^10.11.0
+ version: 10.11.0
eslint-config-prettier:
specifier: ^10.1.8
- version: 10.1.8(eslint@10.10.0(supports-color@7.2.0))
+ version: 10.1.8(eslint@10.11.0)
eslint-plugin-import:
specifier: ^2.32.0
- version: 2.32.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0))(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
+ version: 2.32.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0))(eslint@10.11.0)
eslint-plugin-node:
specifier: ^11.1.0
- version: 11.1.0(eslint@10.10.0(supports-color@7.2.0))
+ version: 11.1.0(eslint@10.11.0)
eslint-plugin-prettier:
specifier: ^5.5.6
- version: 5.5.6(eslint-config-prettier@10.1.8(eslint@10.10.0(supports-color@7.2.0)))(eslint@10.10.0(supports-color@7.2.0))(prettier@3.9.6)
+ version: 5.5.6(eslint-config-prettier@10.1.8(eslint@10.11.0))(eslint@10.11.0)(prettier@3.9.8)
npm-run-all2:
specifier: ^9.0.3
version: 9.0.3
prettier:
- specifier: ^3.9.6
- version: 3.9.6
+ specifier: ^3.9.8
+ version: 3.9.8
typescript:
specifier: npm:@typescript/typescript6@^6.0.2
version: '@typescript/typescript6@6.0.2'
typescript-eslint:
specifier: ^8.70.0
- version: 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
+ version: 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
optionalDependencies:
bufferutil:
specifier: ^4.1.0
@@ -88,12 +88,6 @@ importers:
packages:
- '@azu/format-text@1.0.2':
- resolution: {integrity: sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==}
-
- '@azu/style-format@1.0.1':
- resolution: {integrity: sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==}
-
'@azure/abort-controller@2.2.0':
resolution: {integrity: sha512-fNAjWnA/nZ2jz31kxR/AqRaUT8ewHBw/WuBIosK0moMy1C9e5ValbDfFdIxJzVOOYaYkV/b2F1S4H/aHiqfVQg==}
engines: {node: '>=22.0.0'}
@@ -122,38 +116,26 @@ packages:
resolution: {integrity: sha512-9n2pWK61veAuN0V20t9lOuoV4CFMdyAZ1ygZzvBGk/pBBJRib/PjL9PLXa/aI2CcPpyHfqVsxxqLCYl6uZlfDw==}
engines: {node: '>=22.0.0'}
- '@azure/identity@4.13.2':
- resolution: {integrity: sha512-NXL2/pCJctLxgw8bvrwwgge743kEq8LBT+O1pmV0vyUwetzFPH9auP6jhkU/cgZCPPtWoewAe3ncaGCgPo07fA==}
+ '@azure/identity@4.13.3':
+ resolution: {integrity: sha512-zGQPtqvXPgSA8yfV2CkIQ1qirqk0p9AIVpC5uEkdXQYcKl07QHvyaGYRnZOk0AsQUmxNb4wfkcwY5di8Z5xa9A==}
engines: {node: '>=22.0.0'}
'@azure/logger@1.4.0':
resolution: {integrity: sha512-rbAE25KUfjU/s3XHUdJgceoCP5dEOpMx85J04kF+QMdta73XkuG9JGHHinch+XIoKpBdqljin+KqURpJriSzLA==}
engines: {node: '>=22.0.0'}
- '@azure/msal-browser@5.21.0':
- resolution: {integrity: sha512-80OcuXDErmcEDAIH9pBtSqBsed2sPT/IWmbG3xHLoPMl5zc8TINd6SlJAbVSmN5huGa3xGAg5qR7VnpaIEK0Zw==}
- engines: {node: '>=0.8.0'}
-
- '@azure/msal-common@16.13.0':
- resolution: {integrity: sha512-rOAy0KUcyBbdwVJ+f3uPpthXatFLLZN+/KWAsTLzk1aB23Xl9DRmmXYwSvBFOZyXj4jUQQ5FKxxRkhAFW1fOow==}
+ '@azure/msal-browser@5.22.0':
+ resolution: {integrity: sha512-5kgu9xeEKgGc2JeidxAtU15NJTqiH/CMCRRQAJ4Rac56kB7KVg91vbNmn+z3RO1vNomPN69UvjKG9h1Pghx6dQ==}
engines: {node: '>=0.8.0'}
- '@azure/msal-common@16.14.0':
- resolution: {integrity: sha512-A4rb55hI86Q9tBl/+jBj7TMz7iX2RFgQs/nExFzcAtoI/BFRVdaH5SL/MivrYD7qvweMpN8AgVvVMHV8UBYxew==}
+ '@azure/msal-common@16.14.1':
+ resolution: {integrity: sha512-Or6xhPNyi4zHW25158yxBoyxuCqNSPa5YBVqfF1J5Ks4MJWBo/USXdp05DQIPu1Zli00YZu6t0+h6KvHJealxQ==}
engines: {node: '>=0.8.0'}
- '@azure/msal-node@5.6.0':
- resolution: {integrity: sha512-uFY9NxrWHw8PwZx7gAX6PDn+9vdfS05+levc/kwkx77IkjfaldnQbbcQzzDIZ5Hq5Zdr6/z92oAIoRWKp6MnOA==}
+ '@azure/msal-node@6.0.1':
+ resolution: {integrity: sha512-ixSO1Y/kCVRthRs+hSx/5qkwaunX1/RAePhlMN0wIpIQ4WEZ6AREGGnGd1AP0qspHVsAwzWQKGubpjh50JyJIQ==}
engines: {node: '>=20'}
- '@babel/code-frame@7.29.7':
- resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-identifier@7.29.7':
- resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
- engines: {node: '>=6.9.0'}
-
'@cacheable/memory@2.2.0':
resolution: {integrity: sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==}
@@ -545,8 +527,8 @@ packages:
'@keyv/serialize@1.1.1':
resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==}
- '@napi-rs/cli@3.9.1':
- resolution: {integrity: sha512-2DYBrM2j4n00L+O7fKAS38q19rVQK2HXz5RxSuJgFyZrd9TrdVQFmHOfqvqqsRIRBTZmqiMqBd/yzn4X1a23DQ==}
+ '@napi-rs/cli@3.10.4':
+ resolution: {integrity: sha512-7yvXpu/m4p1Re1/DViAooSYAyivYEhqDrjuq66a6haXLEAKrZSzndG7B850g1irngI1pAdZS5xL4tsu0xQ8P9Q==}
engines: {node: ^20.17.0 || ^22.13.0 || >= 23.5.0}
hasBin: true
peerDependencies:
@@ -596,6 +578,87 @@ packages:
'@napi-rs/cross-toolchain-x64-target-x86_64':
optional: true
+ '@napi-rs/keyring-darwin-arm64@1.3.0':
+ resolution: {integrity: sha512-pl76hJvdYUBn6I24bXiOBMA9nbDapo3I5B+f3OorjDU4dUMSypXeKbOVehJe8fhgTiH24flMyTS3aAIy43xegQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@napi-rs/keyring-darwin-x64@1.3.0':
+ resolution: {integrity: sha512-YcJtEV5LA3cvA4z3BurgxH5IhTsW1JfIvcAAcqcecwk06Si9F9NqkxbZVIfDwQ8oRHgaBmT3zZJnLAotCrVahw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@napi-rs/keyring-freebsd-x64@1.3.0':
+ resolution: {integrity: sha512-vlLf31TGhfRAaxLDBhg8b89ss0HHD/lyNmL5F3UjSaz5CUXElsJmKYq9fqA/B+cZKUEUcLHHGhF0I/CqcFdaVw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@napi-rs/keyring-linux-arm-gnueabihf@1.3.0':
+ resolution: {integrity: sha512-KiWdMMu/Inz/bHHIAGrnF7r54FZDYXuHO6UFF/rhIrshUsxbMG1Rl9lEymNtqqsVo927G0VYcb02FzWQ3iBQRQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@napi-rs/keyring-linux-arm64-gnu@1.3.0':
+ resolution: {integrity: sha512-eyKGpY40lm9Jvs1aD294XRH4y7+TlJM0YVAryZeXA6TX0mb4gMkxVXwSQv7MCwgah7raeUd0dKUb4BPAYIgcMg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/keyring-linux-arm64-musl@1.3.0':
+ resolution: {integrity: sha512-iIK6JWHXAJqDrEyLY3TmswwloVyt2vj+04TZnew+uSJ9gnDO8EwRbp3/iw3LpWaXiDO7VomGO6y8I0Id8uBZSw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@napi-rs/keyring-linux-riscv64-gnu@1.3.0':
+ resolution: {integrity: sha512-/PGqrwn6EwgtK6vccASSXJRfOSP4vN1F4ASsIQ+7MdrK6hNvAJ1FZPrIuD5gGGdxezo3F++To2Wq7DbuGIeuNQ==}
+ engines: {node: '>= 10'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/keyring-linux-x64-gnu@1.3.0':
+ resolution: {integrity: sha512-2PDK1WKWTu9lBGq9VvNEkSlQD3O7YwVpmnyN2M3cy4v7NJ/8gDMd9GXv3G+FVXN13uhp4gnnPBS+ScefmEeD2A==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/keyring-linux-x64-musl@1.3.0':
+ resolution: {integrity: sha512-oJ2HkX8YUo46QBkn0pG+HuIKQNqr523q6vBobCn+P95s4C4K6/kLBqHY/1bg5J4ap31DzsznhnFKcfBNBsjCnw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@napi-rs/keyring-win32-arm64-msvc@1.3.0':
+ resolution: {integrity: sha512-tOd3c/uAaeoE4ycVlmAdSvygz0Zt3zdca6Y7gokBeIbaRDWpjDIUOpU3MvML59XAaqyuKGsVVu0F/DZb1lHPmw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@napi-rs/keyring-win32-ia32-msvc@1.3.0':
+ resolution: {integrity: sha512-sPSqeAFZMGqP1R++M2JTza7GQJJ/TpCo6JU6Vcd4jnebvOaEDs9b7eipakU1PJdSvhpC2yXMCNRk9gXfrhuwHQ==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@napi-rs/keyring-win32-x64-msvc@1.3.0':
+ resolution: {integrity: sha512-4DnCWXwDc0HRKwyRlG5y0VhKZW2tNRQfKKfyj6IX/KWfDNyq9hn4n+GL1auyDcOO/v8PwnhmYo2+rOOqCkvvOg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@napi-rs/keyring@1.3.0':
+ resolution: {integrity: sha512-WrOw/bcXm0f9qHkumlT1QlArXSTWqaY9sunsDpOk+yCCorCKMxvWT/a3xko4EYHVdeZoh00yI2TydXn6eyICDA==}
+ engines: {node: '>= 10'}
+
'@napi-rs/lzma-android-arm-eabi@1.5.1':
resolution: {integrity: sha512-sahBe4ko2Z69NPTddaX6ZgbQZu9SDoITxw1S3dWl1gAGynZG34qHHCT8UaUMFxf3h3zMhCJjEzz4basaBxiTuQ==}
engines: {node: ^22.20 || ^24.12 || >=25}
@@ -905,18 +968,6 @@ packages:
resolution: {integrity: sha512-VjHyKEqXAwYZK+HY7iJctYvRm3TFEbaQxeZwvAG1QRkoo1a39phMY8J6x9tUEqJI03W6MysB8F2jacI6wvcx+w==}
engines: {node: '>= 12.22.0'}
- '@nodelib/fs.scandir@2.1.5':
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.stat@2.0.5':
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.walk@1.2.8':
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
- engines: {node: '>= 8'}
-
'@octokit/auth-token@6.0.0':
resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==}
engines: {node: '>= 20'}
@@ -982,35 +1033,13 @@ packages:
'@rtsao/scc@1.1.0':
resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
- '@secretlint/config-creator@10.2.2':
- resolution: {integrity: sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/config-loader@10.2.2':
- resolution: {integrity: sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==}
- engines: {node: '>=20.0.0'}
-
'@secretlint/core@10.2.2':
resolution: {integrity: sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==}
engines: {node: '>=20.0.0'}
- '@secretlint/formatter@10.2.2':
- resolution: {integrity: sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/node@10.2.2':
- resolution: {integrity: sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==}
- engines: {node: '>=20.0.0'}
-
'@secretlint/profiler@10.2.2':
resolution: {integrity: sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==}
- '@secretlint/resolver@10.2.2':
- resolution: {integrity: sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==}
-
- '@secretlint/secretlint-formatter-sarif@10.2.2':
- resolution: {integrity: sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==}
-
'@secretlint/secretlint-rule-no-dotenv@10.2.2':
resolution: {integrity: sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==}
engines: {node: '>=20.0.0'}
@@ -1027,28 +1056,8 @@ packages:
resolution: {integrity: sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==}
engines: {node: '>=20.0.0'}
- '@sindresorhus/merge-streams@2.3.0':
- resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
- engines: {node: '>=18'}
-
- '@textlint/ast-node-types@15.8.0':
- resolution: {integrity: sha512-5CiH9COYmovWmExQgs7763DzX6Gy9zjkjJ7JxCC95wyTcjwQn/8poNF6fv3qzRlmx8CRRde8DHr9FcgAAiPzgw==}
-
- '@textlint/linter-formatter@15.8.0':
- resolution: {integrity: sha512-+oU3A235NATv6Lzi4xa4kJ65PuNJlIxesaO4AvDhDWA9FWm7y4XKWaoQCW1esgaQQ6dwnUiFKArQ8TcJ86mC4w==}
- engines: {node: '>=20.18.0'}
-
- '@textlint/module-interop@15.8.0':
- resolution: {integrity: sha512-rt+OR1WYGoLOY8HkA/aBPrqufF6yUUEsKEAh7XohTsT3lp9IyZFT6zOIbjul9P4FAzsmSPkcrYjVx3Bz/IUfkg==}
-
- '@textlint/resolver@15.8.0':
- resolution: {integrity: sha512-E88tzfX3K8Jykk+38aJ9cy8RquD8ABVOPTO2rFEESq0wcg8x6/ypdAS8ZgR7OKiGqlRF0hkO/m5PbQwVfKM3VA==}
-
- '@textlint/types@15.8.0':
- resolution: {integrity: sha512-Anhc6y5736YIsvqae0U6k0YmB2M/QVHkEeOv2aydAn/WIkdI69dCOiDbe3/+RagS3qstFTSFWJzNRA2lUjv19w==}
-
- '@tybys/wasm-util@0.10.3':
- resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==}
+ '@tybys/wasm-util@0.10.4':
+ resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==}
'@types/escape-html@1.0.4':
resolution: {integrity: sha512-qZ72SFTgUAZ5a7Tj6kf2SHLetiH5S6f8G5frB2SPQ3EyF02kxdyBFf4Tz4banE3xCgGnKgWLt//a6VuYHKYJTg==}
@@ -1065,14 +1074,8 @@ packages:
'@types/json5@0.0.29':
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
- '@types/node@26.5.1':
- resolution: {integrity: sha512-CzNm2FezW4VR/LjG6yUdiEgLE/rAQ9Slj5gCu/C2VrdcW7I0ahNZ8DRbHT7zOZ6r3ONgd/bsQIeSaoDGrd1C6g==}
-
- '@types/normalize-package-data@2.4.4':
- resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
-
- '@types/sarif@2.1.7':
- resolution: {integrity: sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==}
+ '@types/node@26.6.2':
+ resolution: {integrity: sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==}
'@types/vscode@1.61.0':
resolution: {integrity: sha512-9k5Nwq45hkRwdfCFY+eKXeQQSbPoA114mF7U/4uJXRBJeGIO7MuJdhF1PnaDN+lllL9iKGQtd6FFXShBXMNaFg==}
@@ -1312,9 +1315,9 @@ packages:
'@vscode/vsce-sign@2.1.0':
resolution: {integrity: sha512-9AQrqazrBgTgRSuwleLVXUrIUphY02/SFCh2TKYoLV/xifJAdblhdmEmw5gUrYSPQ3sRwNs9iyCMD14sATEE6g==}
- '@vscode/vsce@3.9.2':
- resolution: {integrity: sha512-XSxMosEEDO6vLxELAHVkwmhC0qe0ijZni2jB9Rcs8kQsW4lhTDQ/wMzmwFs/buotAWSnpmUp/dRWD2ufG3UYKA==}
- engines: {node: '>= 20'}
+ '@vscode/vsce@4.0.0':
+ resolution: {integrity: sha512-NImwuLaenMmb5D5Jer9/lzi/F9ZQUBOp8Azhj/BVYcTFgixv8KehFXqEUDjQlD2tAiw2E6dDGyjTuAB//di60A==}
+ engines: {node: '>= 22'}
hasBin: true
acorn-jsx@5.3.2:
@@ -1334,25 +1337,6 @@ packages:
ajv@6.15.0:
resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==}
- ajv@8.20.0:
- resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==}
-
- ansi-escapes@7.3.0:
- resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==}
- engines: {node: '>=18'}
-
- ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
- ansi-regex@6.3.0:
- resolution: {integrity: sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==}
- engines: {node: '>=12'}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
ansi-styles@7.0.0:
resolution: {integrity: sha512-kKvt3m4uwzqL0wlkPd09CmljPJGOZZ4D0fP65sqFSvPkMRKhNi+74MgIJ5QxE6SxqB4t4KyUFGg8+n5zjo6hew==}
engines: {node: '>=22'}
@@ -1384,17 +1368,10 @@ packages:
resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
engines: {node: '>= 0.4'}
- astral-regex@2.0.0:
- resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
- engines: {node: '>=8'}
-
async-function@1.0.0:
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
engines: {node: '>= 0.4'}
- asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
-
available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
@@ -1409,9 +1386,6 @@ packages:
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22}
- base64-js@1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
-
before-after-hook@4.0.0:
resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==}
@@ -1419,35 +1393,22 @@ packages:
resolution: {integrity: sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==}
engines: {node: '>=4'}
- bl@4.1.0:
- resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
-
- boolbase@1.0.0:
- resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
-
boundary@2.0.0:
resolution: {integrity: sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==}
- brace-expansion@1.1.18:
- resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==}
+ brace-expansion@1.1.21:
+ resolution: {integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==}
- brace-expansion@5.0.9:
- resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==}
+ brace-expansion@5.0.12:
+ resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==}
engines: {node: 20 || >=22}
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
-
buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
buffer-equal-constant-time@1.0.1:
resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
- buffer@5.7.1:
- resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
-
bufferutil@4.1.0:
resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==}
engines: {node: '>=6.14.2'}
@@ -1471,14 +1432,6 @@ packages:
resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
engines: {node: '>= 0.4'}
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
- chalk@5.6.2:
- resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
- engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
-
chalk@6.0.0:
resolution: {integrity: sha512-2uNTXIuTTxk7ciZgAU1BQcgnchcG0xXnrs6jzkQfj9SsRa9M2s5zE8WT96hS6KmG4MzWHSrvH43DF1m4XRkrFg==}
engines: {node: '>=22'}
@@ -1486,16 +1439,6 @@ packages:
chardet@2.2.0:
resolution: {integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==}
- cheerio-select@2.1.0:
- resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
-
- cheerio@1.2.0:
- resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==}
- engines: {node: '>=20.18.1'}
-
- chownr@1.1.4:
- resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
-
cli-width@4.1.0:
resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
engines: {node: '>= 12'}
@@ -1509,20 +1452,9 @@ packages:
resolution: {integrity: sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==}
engines: {node: '>=16'}
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
- combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
-
commander@12.1.0:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
@@ -1530,21 +1462,14 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
- content-type@3.1.0:
- resolution: {integrity: sha512-z26wZR7iXahgpSK7XgnB4IbRVmUNSODvsX9qC9TAru7AcWGiqn5YKy+OH3PLRrwyAnewykKhCqnD+VV3a8uT8Q==}
+ content-type@3.1.1:
+ resolution: {integrity: sha512-GW4qUsfFo59d0HbUibDlWv5wPz+vAAcaTWbKIuKCf0JkC7wWkSyf8f13IpXn5JkeMlB2P8iTSSIjwXljorg2vA==}
engines: {node: '>=22'}
cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
- css-select@5.2.2:
- resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==}
-
- css-what@6.2.2:
- resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==}
- engines: {node: '>= 6'}
-
data-view-buffer@1.0.2:
resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
engines: {node: '>= 0.4'}
@@ -1574,14 +1499,6 @@ packages:
supports-color:
optional: true
- decompress-response@6.0.0:
- resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
- engines: {node: '>=10'}
-
- 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==}
@@ -1605,31 +1522,10 @@ packages:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
- delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
-
- detect-libc@2.1.2:
- resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
- engines: {node: '>=8'}
-
doctrine@2.1.0:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'}
- dom-serializer@2.0.0:
- resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
-
- domelementtype@2.3.0:
- resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
-
- domhandler@5.0.3:
- resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
- engines: {node: '>= 4'}
-
- domutils@3.2.2:
- resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
-
dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
@@ -1641,38 +1537,9 @@ packages:
resolution: {integrity: sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==}
engines: {ecmascript: '>= es5', node: '>=4'}
- emnapi@1.11.3:
- resolution: {integrity: sha512-+/ZS90YK/rYfVOHtGLHkGffVsnmD/MAKaBHio+Y4XAtg75RLr4cveV/w0jTkUdLM1CcAlaRgG76mpIemWAlk0A==}
- peerDependencies:
- node-addon-api: '>= 6.1.0'
- peerDependenciesMeta:
- node-addon-api:
- optional: true
-
- emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-
- encoding-sniffer@0.2.1:
- resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==}
-
- end-of-stream@1.4.5:
- resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
-
- entities@4.5.0:
- resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
- engines: {node: '>=0.12'}
-
- entities@6.0.1:
- resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
- engines: {node: '>=0.12'}
-
- entities@7.0.1:
- resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
- engines: {node: '>=0.12'}
-
- environment@1.1.0:
- resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
- engines: {node: '>=18'}
+ entities@8.1.0:
+ resolution: {integrity: sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==}
+ engines: {node: '>=20.19.0'}
es-abstract-get@1.0.0:
resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==}
@@ -1807,8 +1674,8 @@ packages:
resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- eslint@10.10.0:
- resolution: {integrity: sha512-NPXn6r5zl4uET1DAVPaOwzX3rut4c0wcmw3dWJAfOsTM5+TogXo0DDjz8pwm/hL8cyVNpHqeK4JpN0NjnyFFNw==}
+ eslint@10.11.0:
+ resolution: {integrity: sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
hasBin: true
peerDependencies:
@@ -1837,20 +1704,12 @@ packages:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
- expand-template@2.0.3:
- resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
- engines: {node: '>=6'}
-
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==}
@@ -1863,15 +1722,9 @@ packages:
fast-string-width@3.0.2:
resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==}
- fast-uri@3.1.7:
- resolution: {integrity: sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==}
-
fast-wrap-ansi@0.2.2:
resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==}
- fastq@1.20.3:
- resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==}
-
fdir@6.5.0:
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
engines: {node: '>=12.0.0'}
@@ -1884,10 +1737,6 @@ packages:
file-entry-cache@11.1.5:
resolution: {integrity: sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==}
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
-
find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
@@ -1902,17 +1751,6 @@ packages:
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
engines: {node: '>= 0.4'}
- form-data@4.0.6:
- resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==}
- engines: {node: '>= 6'}
-
- fs-constants@1.0.0:
- resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
-
- fs-extra@11.4.0:
- resolution: {integrity: sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==}
- engines: {node: '>=14.14'}
-
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
@@ -1939,29 +1777,14 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
- github-from-package@0.0.0:
- resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
-
- glob-parent@5.1.2:
- 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@13.0.6:
- resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
- engines: {node: 18 || 20 || >=22}
-
globalthis@1.0.4:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
engines: {node: '>= 0.4'}
- globby@14.1.0:
- resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==}
- engines: {node: '>=18'}
-
gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'}
@@ -1973,10 +1796,6 @@ packages:
resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
engines: {node: '>= 0.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==}
@@ -2010,13 +1829,6 @@ packages:
resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
engines: {node: '>=10'}
- hosted-git-info@7.0.2:
- resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
- engines: {node: ^16.14.0 || >=18.0.0}
-
- htmlparser2@10.1.0:
- resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==}
-
http-proxy-agent@7.0.2:
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
engines: {node: '>= 14'}
@@ -2025,17 +1837,10 @@ packages:
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
engines: {node: '>= 14'}
- iconv-lite@0.6.3:
- resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
- engines: {node: '>=0.10.0'}
-
iconv-lite@0.7.3:
resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==}
engines: {node: '>=0.10.0'}
- ieee754@1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
-
ignore@5.3.2:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
@@ -2048,16 +1853,6 @@ packages:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
- index-to-position@1.2.0:
- resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==}
- engines: {node: '>=18'}
-
- inherits@2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-
- ini@1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
-
internal-slot@1.1.0:
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: '>= 0.4'}
@@ -2082,8 +1877,8 @@ packages:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
- is-core-module@2.16.2:
- resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==}
+ is-core-module@2.17.0:
+ resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==}
engines: {node: '>= 0.4'}
is-data-view@1.0.2:
@@ -2111,10 +1906,6 @@ packages:
resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
engines: {node: '>= 0.4'}
- is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
-
is-generator-function@1.1.2:
resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
engines: {node: '>= 0.4'}
@@ -2140,10 +1931,6 @@ packages:
resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
engines: {node: '>= 0.4'}
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
is-regex@1.2.1:
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: '>= 0.4'}
@@ -2198,15 +1985,8 @@ packages:
resolution: {integrity: sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==}
engines: {node: '>=4'}
- js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-
- js-yaml@4.3.2:
- resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==}
- hasBin: true
-
- js-yaml@5.4.1:
- resolution: {integrity: sha512-28R/k+NAjeuf7+CKlTxWZVExJGwVVLwY06DgEnOMz2gEpfNkDcD7QvyiVPT0xy0XXhU8vHsd4Ot42OOPdJG7dQ==}
+ js-yaml@5.4.2:
+ resolution: {integrity: sha512-m+aqu+LwO1O6sIopafj8HUVl5aawITwZQe/yHpMCKjaWBaA/d07B/QdMb3529REftiU+RMMHL3Vlsw3hON7vWg==}
hasBin: true
json-parse-even-better-errors@6.0.0:
@@ -2216,9 +1996,6 @@ packages:
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==}
-
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -2229,17 +2006,9 @@ packages:
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
- json5@2.2.3:
- resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
- engines: {node: '>=6'}
- hasBin: true
-
jsonc-parser@3.3.1:
resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
- jsonfile@6.2.1:
- resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==}
-
jsonwebtoken@9.0.3:
resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==}
engines: {node: '>=12', npm: '>=6'}
@@ -2250,23 +2019,13 @@ packages:
jws@4.0.1:
resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==}
- keytar@7.9.0:
- resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==}
-
keyv@5.6.0:
resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==}
- leven@3.1.0:
- resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
- engines: {node: '>=6'}
-
levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
- linkify-it@5.0.2:
- resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==}
-
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -2292,63 +2051,28 @@ packages:
lodash.once@4.1.1:
resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
- lodash.truncate@4.4.2:
- resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
-
- lodash@4.18.1:
- resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
-
- lru-cache@10.4.3:
- resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
-
- lru-cache@11.5.2:
- resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==}
- engines: {node: 20 || >=22}
-
lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
- markdown-it@14.3.2:
- resolution: {integrity: sha512-sHHjZ5fJKlgrG4qns2YwVcdNep35h5fERrfkD2YNsb9UFk0UIHarbiTaHKVMlPuWAoiilyK8Fv/jAm11slsY7Q==}
+ marked@18.0.13:
+ resolution: {integrity: sha512-xTxVzZsBFwunP6HDmtBkabUQEYArnP7/rMDGmPj9SlrKlQ4i8MdYVow+nJL0eOqwpUqhzBoTBRADGN6uYwPyOw==}
+ engines: {node: '>= 20'}
hasBin: true
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
- mdurl@2.1.0:
- resolution: {integrity: sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==}
-
memorystream@0.3.1:
resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
engines: {node: '>= 0.10.0'}
- merge2@1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- engines: {node: '>= 8'}
-
- micromatch@4.0.8:
- resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
- engines: {node: '>=8.6'}
-
- mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
-
- mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
-
mime@1.6.0:
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
engines: {node: '>=4'}
hasBin: true
- mimic-response@3.1.0:
- resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
- engines: {node: '>=10'}
-
minimatch@10.2.6:
resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==}
engines: {node: 18 || 20 || >=22}
@@ -2359,13 +2083,6 @@ packages:
minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- minipass@7.1.3:
- resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- mkdirp-classic@0.5.3:
- resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
-
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
@@ -2376,19 +2093,9 @@ packages:
resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==}
engines: {node: ^20.17.0 || >=22.9.0}
- napi-build-utils@2.0.0:
- resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==}
-
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
- node-abi@3.96.0:
- resolution: {integrity: sha512-rebQ/lz7i0EkoLzUVSrKRzA69zMkwLp95kKMWoMDkkM00Suxz0D7zEQPwRml5fQum24mj7bPvmlgLAmu2JCiYg==}
- engines: {node: '>=10'}
-
- node-addon-api@4.3.0:
- resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==}
-
node-exports-info@1.6.2:
resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==}
engines: {node: '>= 0.4'}
@@ -2397,14 +2104,6 @@ packages:
resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
hasBin: true
- node-sarif-builder@3.4.0:
- resolution: {integrity: sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg==}
- engines: {node: '>=20'}
-
- normalize-package-data@6.0.2:
- resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==}
- engines: {node: ^16.14.0 || >=18.0.0}
-
npm-normalize-package-bin@6.0.0:
resolution: {integrity: sha512-tdt4aFn9QamlhdN3HV2D2ccpBwO5/fyjjbXUxYA6uBjyekMZcZvDq0aSj9t5Jo+tih6AYFnt/cuIRn9013e0Uw==}
engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
@@ -2414,9 +2113,6 @@ packages:
engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0, npm: '>= 10'}
hasBin: true
- nth-check@2.1.1:
- resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
-
object-inspect@1.13.4:
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
@@ -2445,13 +2141,10 @@ packages:
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines: {node: '>= 0.4'}
- obug@2.2.1:
- resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==}
+ obug@3.0.0:
+ resolution: {integrity: sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==}
engines: {node: '>=12.20.0'}
- once@1.4.0:
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
-
open@10.2.0:
resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
engines: {node: '>=18'}
@@ -2472,25 +2165,8 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
- p-map@7.0.7:
- resolution: {integrity: sha512-VaWRu2i4FJNRtiRWCuuQRgfQ1B7a6+gMSrO+3j0EQi/k0ULfS9kosRxGoiqwzIjZTDI02tGfk5mXXltLg6QtfQ==}
- engines: {node: '>=18'}
-
- parse-json@8.3.0:
- resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==}
- engines: {node: '>=18'}
-
- parse-semver@1.1.1:
- resolution: {integrity: sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==}
-
- parse5-htmlparser2-tree-adapter@7.1.0:
- resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==}
-
- parse5-parser-stream@7.1.2:
- resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==}
-
- parse5@7.3.0:
- resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+ parse5@8.0.1:
+ resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==}
path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
@@ -2503,24 +2179,9 @@ packages:
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- path-scurry@2.0.2:
- resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==}
- engines: {node: 18 || 20 || >=22}
-
- path-type@6.0.0:
- resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==}
- engines: {node: '>=18'}
-
pend@1.2.0:
resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
- picocolors@1.1.1:
- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
-
- picomatch@2.3.2:
- resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
- engines: {node: '>=8.6'}
-
picomatch@4.0.7:
resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
engines: {node: '>=12'}
@@ -2530,23 +2191,10 @@ packages:
engines: {node: '>=18'}
hasBin: true
- pluralize@2.0.0:
- resolution: {integrity: sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==}
-
- pluralize@8.0.0:
- resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
- engines: {node: '>=4'}
-
possible-typed-array-names@1.1.0:
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: '>= 0.4'}
- prebuild-install@7.1.3:
- resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==}
- engines: {node: '>=10'}
- deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available.
- hasBin: true
-
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -2555,17 +2203,13 @@ packages:
resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==}
engines: {node: '>=6.0.0'}
- prettier@3.9.6:
- resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==}
+ prettier@3.9.8:
+ resolution: {integrity: sha512-WRFq3Wn3WId7LLROfMLdH7xaFr2jR62wU8nLO6rQUOLOxNZUviyJQs1M0iIhLexSFy+L+w0ch66wtoO2jRjG0A==}
engines: {node: '>=14'}
hasBin: true
- pump@3.0.4:
- resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==}
-
- punycode.js@2.3.1:
- resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
- engines: {node: '>=6'}
+ proper-lockfile@4.1.2:
+ resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
@@ -2579,32 +2223,14 @@ packages:
resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==}
engines: {node: '>=0.6'}
- queue-microtask@1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-
- rc-config-loader@4.1.4:
- resolution: {integrity: sha512-3GiwEzklkbXTDp52UR5nT8iXgYAx1V9ZG/kDZT7p60u2GCv2XTwQq4NzinMoMpNtXhmt3WkhYXcj6HH8HdwCEQ==}
-
- rc@1.2.8:
- resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
- hasBin: true
-
read-package-json-fast@6.0.0:
resolution: {integrity: sha512-PNaGjoCnw9DBA2Kl8D+8po957z778q/HOPuY2u3Bkw/JO3eC8MDx7jn/PgMtSgpcBbs+6UOjDbwReGpXmRvs0g==}
engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
- read-pkg@9.0.1:
- resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==}
- engines: {node: '>=18'}
-
read@1.0.7:
resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==}
engines: {node: '>=0.8'}
- readable-stream@3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
-
reflect.getprototypeof@1.0.10:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
@@ -2617,10 +2243,6 @@ packages:
resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
engines: {node: '>=8'}
- require-from-string@2.0.2:
- resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
- engines: {node: '>=0.10.0'}
-
resolve@1.22.12:
resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==}
engines: {node: '>= 0.4'}
@@ -2631,17 +2253,14 @@ packages:
engines: {node: '>= 0.4'}
hasBin: true
- reusify@1.1.0:
- resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ retry@0.12.0:
+ resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+ engines: {node: '>= 4'}
run-applescript@7.1.0:
resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==}
engines: {node: '>=18'}
- run-parallel@1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
-
safe-array-concat@1.1.4:
resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==}
engines: {node: '>=0.4'}
@@ -2664,15 +2283,6 @@ packages:
resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==}
engines: {node: '>=11.0.0'}
- secretlint@10.2.2:
- resolution: {integrity: sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==}
- engines: {node: '>=20.0.0'}
- hasBin: true
-
- semver@5.7.2:
- resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
- hasBin: true
-
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
@@ -2722,44 +2332,17 @@ packages:
resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==}
engines: {node: '>= 0.4'}
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- simple-concat@1.0.1:
- resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
-
- simple-get@4.0.1:
- resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
-
- slash@5.1.0:
- resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
- engines: {node: '>=14.16'}
-
- slice-ansi@4.0.0:
- resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
- engines: {node: '>=10'}
-
- spdx-correct@3.2.0:
- resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
-
- spdx-exceptions@2.5.0:
- resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
-
- spdx-expression-parse@3.0.1:
- resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
-
- spdx-license-ids@3.0.23:
- resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==}
-
stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
engines: {node: '>= 0.4'}
- string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
-
string.prototype.trim@1.2.11:
resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==}
engines: {node: '>= 0.4'}
@@ -2772,36 +2355,13 @@ packages:
resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
engines: {node: '>= 0.4'}
- string_decoder@1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
-
- strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
-
- strip-ansi@7.2.0:
- resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
- engines: {node: '>=12'}
-
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
- strip-json-comments@2.0.1:
- resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
- engines: {node: '>=0.10.0'}
-
structured-source@4.0.0:
resolution: {integrity: sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==}
- supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
-
- supports-hyperlinks@3.2.0:
- resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==}
- engines: {node: '>=14.18'}
-
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
@@ -2810,24 +2370,6 @@ packages:
resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==}
engines: {node: ^14.18.0 || >=16.0.0}
- table@6.9.0:
- resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==}
- engines: {node: '>=10.0.0'}
-
- tar-fs@2.1.5:
- resolution: {integrity: sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==}
-
- tar-stream@2.2.0:
- resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
- engines: {node: '>=6'}
-
- terminal-link@4.0.0:
- resolution: {integrity: sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==}
- engines: {node: '>=18'}
-
- text-table@0.2.0:
- resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
-
textextensions@6.11.0:
resolution: {integrity: sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==}
engines: {node: '>=4'}
@@ -2836,14 +2378,6 @@ packages:
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
engines: {node: '>=12.0.0'}
- tmp@0.2.7:
- resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==}
- engines: {node: '>=14.14'}
-
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
ts-api-utils@2.5.0:
resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==}
engines: {node: '>=18.12'}
@@ -2856,9 +2390,6 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
- tunnel-agent@0.6.0:
- resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
-
tunnel@0.0.6:
resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==}
engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
@@ -2870,10 +2401,6 @@ packages:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
- type-fest@4.41.0:
- resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
- engines: {node: '>=16'}
-
typed-array-buffer@1.0.3:
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
engines: {node: '>= 0.4'}
@@ -2882,8 +2409,8 @@ packages:
resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
engines: {node: '>= 0.4'}
- typed-array-byte-offset@1.0.4:
- resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ typed-array-byte-offset@1.0.5:
+ resolution: {integrity: sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==}
engines: {node: '>= 0.4'}
typed-array-length@1.0.8:
@@ -2910,9 +2437,6 @@ packages:
engines: {node: '>=16.20.0'}
hasBin: true
- uc.micro@2.1.0:
- resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
-
unbox-primitive@1.1.0:
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines: {node: '>= 0.4'}
@@ -2923,50 +2447,19 @@ packages:
undici-types@8.9.0:
resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==}
- undici@7.29.1:
- resolution: {integrity: sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==}
- engines: {node: '>=20.18.1'}
-
- unicorn-magic@0.1.0:
- resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
- engines: {node: '>=18'}
-
- unicorn-magic@0.3.0:
- resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
- engines: {node: '>=18'}
-
universal-user-agent@7.0.3:
resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==}
- universalify@2.0.1:
- resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
- engines: {node: '>= 10.0.0'}
-
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
url-join@4.0.1:
resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
- util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-
- validate-npm-package-license@3.0.4:
- resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
-
version-range@4.15.0:
resolution: {integrity: sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==}
engines: {node: '>=4'}
- whatwg-encoding@3.1.1:
- resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
- engines: {node: '>=18'}
- deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation
-
- whatwg-mimetype@4.0.0:
- resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
- engines: {node: '>=18'}
-
which-boxed-primitive@1.1.1:
resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
engines: {node: '>= 0.4'}
@@ -2979,8 +2472,8 @@ packages:
resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
engines: {node: '>= 0.4'}
- which-typed-array@1.1.22:
- resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==}
+ which-typed-array@1.1.24:
+ resolution: {integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==}
engines: {node: '>= 0.4'}
which@2.0.2:
@@ -2997,9 +2490,6 @@ packages:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
- wrappy@1.0.2:
- resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-
wsl-utils@0.1.0:
resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==}
engines: {node: '>=18'}
@@ -3028,46 +2518,40 @@ packages:
snapshots:
- '@azu/format-text@1.0.2': {}
-
- '@azu/style-format@1.0.1':
- dependencies:
- '@azu/format-text': 1.0.2
-
'@azure/abort-controller@2.2.0':
dependencies:
tslib: 2.8.1
- '@azure/core-auth@1.11.0(supports-color@7.2.0)':
+ '@azure/core-auth@1.11.0':
dependencies:
'@azure/abort-controller': 2.2.0
- '@azure/core-util': 1.14.0(supports-color@7.2.0)
+ '@azure/core-util': 1.14.0
tslib: 2.8.1
transitivePeerDependencies:
- supports-color
- '@azure/core-client@1.11.1(supports-color@7.2.0)':
+ '@azure/core-client@1.11.1':
dependencies:
'@azure/abort-controller': 2.2.0
- '@azure/core-auth': 1.11.0(supports-color@7.2.0)
- '@azure/core-rest-pipeline': 1.25.0(supports-color@7.2.0)
+ '@azure/core-auth': 1.11.0
+ '@azure/core-rest-pipeline': 1.25.0
'@azure/core-tracing': 1.4.0
- '@azure/core-util': 1.14.0(supports-color@7.2.0)
- '@azure/logger': 1.4.0(supports-color@7.2.0)
+ '@azure/core-util': 1.14.0
+ '@azure/logger': 1.4.0
tslib: 2.8.1
transitivePeerDependencies:
- supports-color
'@azure/core-process@1.0.0': {}
- '@azure/core-rest-pipeline@1.25.0(supports-color@7.2.0)':
+ '@azure/core-rest-pipeline@1.25.0':
dependencies:
'@azure/abort-controller': 2.2.0
- '@azure/core-auth': 1.11.0(supports-color@7.2.0)
+ '@azure/core-auth': 1.11.0
'@azure/core-tracing': 1.4.0
- '@azure/core-util': 1.14.0(supports-color@7.2.0)
- '@azure/logger': 1.4.0(supports-color@7.2.0)
- '@typespec/ts-http-runtime': 0.3.9(supports-color@7.2.0)
+ '@azure/core-util': 1.14.0
+ '@azure/logger': 1.4.0
+ '@typespec/ts-http-runtime': 0.3.9
tslib: 2.8.1
transitivePeerDependencies:
- supports-color
@@ -3076,59 +2560,49 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@azure/core-util@1.14.0(supports-color@7.2.0)':
+ '@azure/core-util@1.14.0':
dependencies:
'@azure/abort-controller': 2.2.0
- '@typespec/ts-http-runtime': 0.3.9(supports-color@7.2.0)
+ '@typespec/ts-http-runtime': 0.3.9
tslib: 2.8.1
transitivePeerDependencies:
- supports-color
- '@azure/identity@4.13.2(supports-color@7.2.0)':
+ '@azure/identity@4.13.3':
dependencies:
'@azure/abort-controller': 2.2.0
- '@azure/core-auth': 1.11.0(supports-color@7.2.0)
- '@azure/core-client': 1.11.1(supports-color@7.2.0)
+ '@azure/core-auth': 1.11.0
+ '@azure/core-client': 1.11.1
'@azure/core-process': 1.0.0
- '@azure/core-rest-pipeline': 1.25.0(supports-color@7.2.0)
+ '@azure/core-rest-pipeline': 1.25.0
'@azure/core-tracing': 1.4.0
- '@azure/core-util': 1.14.0(supports-color@7.2.0)
- '@azure/logger': 1.4.0(supports-color@7.2.0)
- '@azure/msal-browser': 5.21.0
- '@azure/msal-node': 5.6.0
+ '@azure/core-util': 1.14.0
+ '@azure/logger': 1.4.0
+ '@azure/msal-browser': 5.22.0
+ '@azure/msal-node': 6.0.1
open: 10.2.0
tslib: 2.8.1
transitivePeerDependencies:
- supports-color
- '@azure/logger@1.4.0(supports-color@7.2.0)':
+ '@azure/logger@1.4.0':
dependencies:
- '@typespec/ts-http-runtime': 0.3.9(supports-color@7.2.0)
+ '@typespec/ts-http-runtime': 0.3.9
tslib: 2.8.1
transitivePeerDependencies:
- supports-color
- '@azure/msal-browser@5.21.0':
+ '@azure/msal-browser@5.22.0':
dependencies:
- '@azure/msal-common': 16.14.0
-
- '@azure/msal-common@16.13.0': {}
+ '@azure/msal-common': 16.14.1
- '@azure/msal-common@16.14.0': {}
+ '@azure/msal-common@16.14.1': {}
- '@azure/msal-node@5.6.0':
+ '@azure/msal-node@6.0.1':
dependencies:
- '@azure/msal-common': 16.13.0
+ '@azure/msal-common': 16.14.1
jsonwebtoken: 9.0.3
- '@babel/code-frame@7.29.7':
- dependencies:
- '@babel/helper-validator-identifier': 7.29.7
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/helper-validator-identifier@7.29.7': {}
-
'@cacheable/memory@2.2.0':
dependencies:
'@cacheable/utils': 2.5.0
@@ -3264,17 +2738,17 @@ snapshots:
'@esbuild/win32-x64@0.28.2':
optional: true
- '@eslint-community/eslint-utils@4.10.1(eslint@10.10.0(supports-color@7.2.0))':
+ '@eslint-community/eslint-utils@4.10.1(eslint@10.11.0)':
dependencies:
- eslint: 10.10.0(supports-color@7.2.0)
+ eslint: 10.11.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {}
- '@eslint/config-array@0.23.5(supports-color@7.2.0)':
+ '@eslint/config-array@0.23.5':
dependencies:
'@eslint/object-schema': 3.0.5
- debug: 4.4.3(supports-color@7.2.0)
+ debug: 4.4.3
minimatch: 10.2.6
transitivePeerDependencies:
- supports-color
@@ -3287,9 +2761,9 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/js@10.0.1(eslint@10.10.0(supports-color@7.2.0))':
+ '@eslint/js@10.0.1(eslint@10.11.0)':
optionalDependencies:
- eslint: 10.10.0(supports-color@7.2.0)
+ eslint: 10.11.0
'@eslint/object-schema@3.0.5': {}
@@ -3316,122 +2790,122 @@ snapshots:
'@inquirer/ansi@2.0.8': {}
- '@inquirer/checkbox@5.2.5(@types/node@26.5.1)':
+ '@inquirer/checkbox@5.2.5(@types/node@26.6.2)':
dependencies:
'@inquirer/ansi': 2.0.8
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
'@inquirer/figures': 2.0.9
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/confirm@6.3.2(@types/node@26.5.1)':
+ '@inquirer/confirm@6.3.2(@types/node@26.6.2)':
dependencies:
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/core@12.0.3(@types/node@26.5.1)':
+ '@inquirer/core@12.0.3(@types/node@26.6.2)':
dependencies:
'@inquirer/ansi': 2.0.8
'@inquirer/figures': 2.0.9
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
cli-width: 4.1.0
fast-wrap-ansi: 0.2.2
mute-stream: 3.0.0
signal-exit: 4.1.0
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/editor@5.3.3(@types/node@26.5.1)':
+ '@inquirer/editor@5.3.3(@types/node@26.6.2)':
dependencies:
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
- '@inquirer/external-editor': 3.0.5(@types/node@26.5.1)
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
+ '@inquirer/external-editor': 3.0.5(@types/node@26.6.2)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/expand@5.1.5(@types/node@26.5.1)':
+ '@inquirer/expand@5.1.5(@types/node@26.6.2)':
dependencies:
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/external-editor@3.0.5(@types/node@26.5.1)':
+ '@inquirer/external-editor@3.0.5(@types/node@26.6.2)':
dependencies:
chardet: 2.2.0
iconv-lite: 0.7.3
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
'@inquirer/figures@2.0.9': {}
- '@inquirer/input@5.1.6(@types/node@26.5.1)':
+ '@inquirer/input@5.1.6(@types/node@26.6.2)':
dependencies:
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/number@4.2.3(@types/node@26.5.1)':
+ '@inquirer/number@4.2.3(@types/node@26.6.2)':
dependencies:
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/password@5.2.2(@types/node@26.5.1)':
+ '@inquirer/password@5.2.2(@types/node@26.6.2)':
dependencies:
'@inquirer/ansi': 2.0.8
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
-
- '@inquirer/prompts@8.7.2(@types/node@26.5.1)':
- dependencies:
- '@inquirer/checkbox': 5.2.5(@types/node@26.5.1)
- '@inquirer/confirm': 6.3.2(@types/node@26.5.1)
- '@inquirer/editor': 5.3.3(@types/node@26.5.1)
- '@inquirer/expand': 5.1.5(@types/node@26.5.1)
- '@inquirer/input': 5.1.6(@types/node@26.5.1)
- '@inquirer/number': 4.2.3(@types/node@26.5.1)
- '@inquirer/password': 5.2.2(@types/node@26.5.1)
- '@inquirer/rawlist': 5.3.5(@types/node@26.5.1)
- '@inquirer/search': 4.3.3(@types/node@26.5.1)
- '@inquirer/select': 5.2.5(@types/node@26.5.1)
+ '@types/node': 26.6.2
+
+ '@inquirer/prompts@8.7.2(@types/node@26.6.2)':
+ dependencies:
+ '@inquirer/checkbox': 5.2.5(@types/node@26.6.2)
+ '@inquirer/confirm': 6.3.2(@types/node@26.6.2)
+ '@inquirer/editor': 5.3.3(@types/node@26.6.2)
+ '@inquirer/expand': 5.1.5(@types/node@26.6.2)
+ '@inquirer/input': 5.1.6(@types/node@26.6.2)
+ '@inquirer/number': 4.2.3(@types/node@26.6.2)
+ '@inquirer/password': 5.2.2(@types/node@26.6.2)
+ '@inquirer/rawlist': 5.3.5(@types/node@26.6.2)
+ '@inquirer/search': 4.3.3(@types/node@26.6.2)
+ '@inquirer/select': 5.2.5(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/rawlist@5.3.5(@types/node@26.5.1)':
+ '@inquirer/rawlist@5.3.5(@types/node@26.6.2)':
dependencies:
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/search@4.3.3(@types/node@26.5.1)':
+ '@inquirer/search@4.3.3(@types/node@26.6.2)':
dependencies:
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
'@inquirer/figures': 2.0.9
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/select@5.2.5(@types/node@26.5.1)':
+ '@inquirer/select@5.2.5(@types/node@26.6.2)':
dependencies:
'@inquirer/ansi': 2.0.8
- '@inquirer/core': 12.0.3(@types/node@26.5.1)
+ '@inquirer/core': 12.0.3(@types/node@26.6.2)
'@inquirer/figures': 2.0.9
- '@inquirer/type': 4.1.1(@types/node@26.5.1)
+ '@inquirer/type': 4.1.1(@types/node@26.6.2)
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
- '@inquirer/type@4.1.1(@types/node@26.5.1)':
+ '@inquirer/type@4.1.1(@types/node@26.6.2)':
optionalDependencies:
- '@types/node': 26.5.1
+ '@types/node': 26.6.2
'@keyv/bigmap@1.3.1(keyv@5.6.0)':
dependencies:
@@ -3441,24 +2915,23 @@ snapshots:
'@keyv/serialize@1.1.1': {}
- '@napi-rs/cli@3.9.1(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.5.1)(emnapi@1.11.3)(supports-color@7.2.0)':
+ '@napi-rs/cli@3.10.4(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.6.2)':
dependencies:
- '@inquirer/prompts': 8.7.2(@types/node@26.5.1)
- '@napi-rs/cross-toolchain': 1.0.3(supports-color@7.2.0)
+ '@inquirer/prompts': 8.7.2(@types/node@26.6.2)
+ '@napi-rs/cross-toolchain': 1.0.3
'@napi-rs/wasm-tools': 1.1.0
'@octokit/rest': 22.0.1
clipanion: 4.0.0-rc.4(typanion@3.14.0)
colorette: 2.0.20
es-toolkit: 1.52.0
- js-yaml: 5.4.1
- obug: 2.2.1
+ js-yaml: 5.4.2
+ obug: 3.0.0
semver: 7.8.5
typanion: 3.14.0
typescript: 6.0.3
optionalDependencies:
'@emnapi/core': 1.11.3
'@emnapi/runtime': 1.11.3
- emnapi: 1.11.3
transitivePeerDependencies:
- '@napi-rs/cross-toolchain-arm64-target-aarch64'
- '@napi-rs/cross-toolchain-arm64-target-armv7'
@@ -3473,14 +2946,65 @@ snapshots:
- '@types/node'
- supports-color
- '@napi-rs/cross-toolchain@1.0.3(supports-color@7.2.0)':
+ '@napi-rs/cross-toolchain@1.0.3':
dependencies:
'@napi-rs/lzma': 1.5.1
'@napi-rs/tar': 1.1.1
- debug: 4.4.3(supports-color@7.2.0)
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
+ '@napi-rs/keyring-darwin-arm64@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-darwin-x64@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-freebsd-x64@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-linux-arm-gnueabihf@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-linux-arm64-gnu@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-linux-arm64-musl@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-linux-riscv64-gnu@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-linux-x64-gnu@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-linux-x64-musl@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-win32-arm64-msvc@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-win32-ia32-msvc@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring-win32-x64-msvc@1.3.0':
+ optional: true
+
+ '@napi-rs/keyring@1.3.0':
+ optionalDependencies:
+ '@napi-rs/keyring-darwin-arm64': 1.3.0
+ '@napi-rs/keyring-darwin-x64': 1.3.0
+ '@napi-rs/keyring-freebsd-x64': 1.3.0
+ '@napi-rs/keyring-linux-arm-gnueabihf': 1.3.0
+ '@napi-rs/keyring-linux-arm64-gnu': 1.3.0
+ '@napi-rs/keyring-linux-arm64-musl': 1.3.0
+ '@napi-rs/keyring-linux-riscv64-gnu': 1.3.0
+ '@napi-rs/keyring-linux-x64-gnu': 1.3.0
+ '@napi-rs/keyring-linux-x64-musl': 1.3.0
+ '@napi-rs/keyring-win32-arm64-msvc': 1.3.0
+ '@napi-rs/keyring-win32-ia32-msvc': 1.3.0
+ '@napi-rs/keyring-win32-x64-msvc': 1.3.0
+
'@napi-rs/lzma-android-arm-eabi@1.5.1':
optional: true
@@ -3631,14 +3155,14 @@ snapshots:
dependencies:
'@emnapi/core': 1.11.2
'@emnapi/runtime': 1.11.2
- '@tybys/wasm-util': 0.10.3
+ '@tybys/wasm-util': 0.10.4
optional: true
'@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)':
dependencies:
'@emnapi/core': 1.9.2
'@emnapi/runtime': 1.9.2
- '@tybys/wasm-util': 0.10.3
+ '@tybys/wasm-util': 0.10.4
optional: true
'@napi-rs/wasm-tools-android-arm-eabi@1.1.0':
@@ -3700,18 +3224,6 @@ snapshots:
'@napi-rs/wasm-tools-win32-ia32-msvc': 1.1.0
'@napi-rs/wasm-tools-win32-x64-msvc': 1.1.0
- '@nodelib/fs.scandir@2.1.5':
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
-
- '@nodelib/fs.stat@2.0.5': {}
-
- '@nodelib/fs.walk@1.2.8':
- dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.20.3
-
'@octokit/auth-token@6.0.0': {}
'@octokit/core@7.0.8':
@@ -3762,7 +3274,7 @@ snapshots:
'@octokit/endpoint': 11.0.5
'@octokit/request-error': 7.1.2
'@octokit/types': 18.0.0
- content-type: 3.1.0
+ content-type: 3.1.1
json-with-bigint: 3.5.12
universal-user-agent: 7.0.3
@@ -3785,67 +3297,17 @@ snapshots:
'@rtsao/scc@1.1.0': {}
- '@secretlint/config-creator@10.2.2':
- dependencies:
- '@secretlint/types': 10.2.2
-
- '@secretlint/config-loader@10.2.2(supports-color@7.2.0)':
- dependencies:
- '@secretlint/profiler': 10.2.2
- '@secretlint/resolver': 10.2.2
- '@secretlint/types': 10.2.2
- ajv: 8.20.0
- debug: 4.4.3(supports-color@7.2.0)
- rc-config-loader: 4.1.4(supports-color@7.2.0)
- transitivePeerDependencies:
- - supports-color
-
- '@secretlint/core@10.2.2(supports-color@7.2.0)':
+ '@secretlint/core@10.2.2':
dependencies:
'@secretlint/profiler': 10.2.2
'@secretlint/types': 10.2.2
- debug: 4.4.3(supports-color@7.2.0)
+ debug: 4.4.3
structured-source: 4.0.0
transitivePeerDependencies:
- supports-color
- '@secretlint/formatter@10.2.2(supports-color@7.2.0)':
- dependencies:
- '@secretlint/resolver': 10.2.2
- '@secretlint/types': 10.2.2
- '@textlint/linter-formatter': 15.8.0(supports-color@7.2.0)
- '@textlint/module-interop': 15.8.0
- '@textlint/types': 15.8.0
- chalk: 5.6.2
- debug: 4.4.3(supports-color@7.2.0)
- pluralize: 8.0.0
- strip-ansi: 7.2.0
- table: 6.9.0
- terminal-link: 4.0.0
- transitivePeerDependencies:
- - supports-color
-
- '@secretlint/node@10.2.2(supports-color@7.2.0)':
- dependencies:
- '@secretlint/config-loader': 10.2.2(supports-color@7.2.0)
- '@secretlint/core': 10.2.2(supports-color@7.2.0)
- '@secretlint/formatter': 10.2.2(supports-color@7.2.0)
- '@secretlint/profiler': 10.2.2
- '@secretlint/source-creator': 10.2.2
- '@secretlint/types': 10.2.2
- debug: 4.4.3(supports-color@7.2.0)
- p-map: 7.0.7
- transitivePeerDependencies:
- - supports-color
-
'@secretlint/profiler@10.2.2': {}
- '@secretlint/resolver@10.2.2': {}
-
- '@secretlint/secretlint-formatter-sarif@10.2.2':
- dependencies:
- node-sarif-builder: 3.4.0
-
'@secretlint/secretlint-rule-no-dotenv@10.2.2':
dependencies:
'@secretlint/types': 10.2.2
@@ -3859,37 +3321,7 @@ snapshots:
'@secretlint/types@10.2.2': {}
- '@sindresorhus/merge-streams@2.3.0': {}
-
- '@textlint/ast-node-types@15.8.0': {}
-
- '@textlint/linter-formatter@15.8.0(supports-color@7.2.0)':
- dependencies:
- '@azu/format-text': 1.0.2
- '@azu/style-format': 1.0.1
- '@textlint/module-interop': 15.8.0
- '@textlint/resolver': 15.8.0
- '@textlint/types': 15.8.0
- debug: 4.4.3(supports-color@7.2.0)
- js-yaml: 4.3.2
- lodash: 4.18.1
- pluralize: 2.0.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
- table: 6.9.0
- text-table: 0.2.0
- transitivePeerDependencies:
- - supports-color
-
- '@textlint/module-interop@15.8.0': {}
-
- '@textlint/resolver@15.8.0': {}
-
- '@textlint/types@15.8.0':
- dependencies:
- '@textlint/ast-node-types': 15.8.0
-
- '@tybys/wasm-util@0.10.3':
+ '@tybys/wasm-util@0.10.4':
dependencies:
tslib: 2.8.1
@@ -3903,25 +3335,21 @@ snapshots:
'@types/json5@0.0.29': {}
- '@types/node@26.5.1':
+ '@types/node@26.6.2':
dependencies:
undici-types: 8.9.0
- '@types/normalize-package-data@2.4.4': {}
-
- '@types/sarif@2.1.7': {}
-
'@types/vscode@1.61.0': {}
- '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0))(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)':
+ '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0))(@typescript/typescript6@6.0.2)(eslint@10.11.0)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
+ '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
'@typescript-eslint/scope-manager': 8.70.0
- '@typescript-eslint/type-utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
- '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
+ '@typescript-eslint/type-utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
+ '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
'@typescript-eslint/visitor-keys': 8.70.0
- eslint: 10.10.0(supports-color@7.2.0)
+ eslint: 10.11.0
ignore: 7.0.9
natural-compare: 1.4.0
ts-api-utils: 2.5.0(@typescript/typescript6@6.0.2)
@@ -3929,23 +3357,23 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)':
+ '@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)':
dependencies:
'@typescript-eslint/scope-manager': 8.70.0
'@typescript-eslint/types': 8.70.0
- '@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)(supports-color@7.2.0)
+ '@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)
'@typescript-eslint/visitor-keys': 8.70.0
- debug: 4.4.3(supports-color@7.2.0)
- eslint: 10.10.0(supports-color@7.2.0)
+ debug: 4.4.3
+ eslint: 10.11.0
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.70.0(@typescript/typescript6@6.0.2)(supports-color@7.2.0)':
+ '@typescript-eslint/project-service@8.70.0(@typescript/typescript6@6.0.2)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.70.0(@typescript/typescript6@6.0.2)
'@typescript-eslint/types': 8.70.0
- debug: 4.4.3(supports-color@7.2.0)
+ debug: 4.4.3
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
- supports-color
@@ -3959,13 +3387,13 @@ snapshots:
dependencies:
typescript: '@typescript/typescript6@6.0.2'
- '@typescript-eslint/type-utils@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)':
+ '@typescript-eslint/type-utils@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)':
dependencies:
'@typescript-eslint/types': 8.70.0
- '@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)(supports-color@7.2.0)
- '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
- debug: 4.4.3(supports-color@7.2.0)
- eslint: 10.10.0(supports-color@7.2.0)
+ '@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)
+ '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
+ debug: 4.4.3
+ eslint: 10.11.0
ts-api-utils: 2.5.0(@typescript/typescript6@6.0.2)
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
@@ -3973,13 +3401,13 @@ snapshots:
'@typescript-eslint/types@8.70.0': {}
- '@typescript-eslint/typescript-estree@8.70.0(@typescript/typescript6@6.0.2)(supports-color@7.2.0)':
+ '@typescript-eslint/typescript-estree@8.70.0(@typescript/typescript6@6.0.2)':
dependencies:
- '@typescript-eslint/project-service': 8.70.0(@typescript/typescript6@6.0.2)(supports-color@7.2.0)
+ '@typescript-eslint/project-service': 8.70.0(@typescript/typescript6@6.0.2)
'@typescript-eslint/tsconfig-utils': 8.70.0(@typescript/typescript6@6.0.2)
'@typescript-eslint/types': 8.70.0
'@typescript-eslint/visitor-keys': 8.70.0
- debug: 4.4.3(supports-color@7.2.0)
+ debug: 4.4.3
minimatch: 10.2.6
semver: 7.8.5
tinyglobby: 0.2.17
@@ -3988,13 +3416,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)':
+ '@typescript-eslint/utils@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)':
dependencies:
- '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(supports-color@7.2.0))
+ '@eslint-community/eslint-utils': 4.10.1(eslint@10.11.0)
'@typescript-eslint/scope-manager': 8.70.0
'@typescript-eslint/types': 8.70.0
- '@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)(supports-color@7.2.0)
- eslint: 10.10.0(supports-color@7.2.0)
+ '@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)
+ eslint: 10.11.0
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
- supports-color
@@ -4068,10 +3496,10 @@ snapshots:
dependencies:
'@typescript/old': typescript@6.0.3
- '@typespec/ts-http-runtime@0.3.9(supports-color@7.2.0)':
+ '@typespec/ts-http-runtime@0.3.9':
dependencies:
- http-proxy-agent: 7.0.2(supports-color@7.2.0)
- https-proxy-agent: 7.0.6(supports-color@7.2.0)
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
tslib: 2.8.1
transitivePeerDependencies:
- supports-color
@@ -4115,39 +3543,34 @@ snapshots:
'@vscode/vsce-sign-win32-arm64': 2.0.6
'@vscode/vsce-sign-win32-x64': 2.0.6
- '@vscode/vsce@3.9.2(supports-color@7.2.0)':
+ '@vscode/vsce@4.0.0':
dependencies:
- '@azure/identity': 4.13.2(supports-color@7.2.0)
- '@secretlint/node': 10.2.2(supports-color@7.2.0)
- '@secretlint/secretlint-formatter-sarif': 10.2.2
+ '@azure/identity': 4.13.3
+ '@napi-rs/keyring': 1.3.0
+ '@secretlint/core': 10.2.2
'@secretlint/secretlint-rule-no-dotenv': 10.2.2
'@secretlint/secretlint-rule-preset-recommend': 10.2.2
+ '@secretlint/source-creator': 10.2.2
+ '@secretlint/types': 10.2.2
'@vscode/vsce-sign': 2.1.0
azure-devops-node-api: 12.5.0
- chalk: 4.1.2
- cheerio: 1.2.0
cockatiel: 3.2.1
commander: 12.1.0
- form-data: 4.0.6
- glob: 13.0.6
hosted-git-info: 4.1.0
jsonc-parser: 3.3.1
- leven: 3.1.0
- markdown-it: 14.3.2
+ marked: 18.0.13
mime: 1.6.0
minimatch: 10.2.6
- parse-semver: 1.1.1
+ parse5: 8.0.1
+ proper-lockfile: 4.1.2
read: 1.0.7
- secretlint: 10.2.2(supports-color@7.2.0)
semver: 7.8.5
- tmp: 0.2.7
+ tinyglobby: 0.2.17
typed-rest-client: 1.8.11
url-join: 4.0.1
xml2js: 0.5.0
yauzl: 3.4.0
yazl: 2.5.1
- optionalDependencies:
- keytar: 7.9.0
transitivePeerDependencies:
- supports-color
@@ -4166,25 +3589,6 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- ajv@8.20.0:
- dependencies:
- fast-deep-equal: 3.1.3
- fast-uri: 3.1.7
- json-schema-traverse: 1.0.0
- require-from-string: 2.0.2
-
- ansi-escapes@7.3.0:
- dependencies:
- environment: 1.1.0
-
- ansi-regex@5.0.1: {}
-
- ansi-regex@6.3.0: {}
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
ansi-styles@7.0.0: {}
argparse@2.0.1: {}
@@ -4239,12 +3643,8 @@ snapshots:
get-intrinsic: 1.3.0
is-array-buffer: 3.0.5
- astral-regex@2.0.0: {}
-
async-function@1.0.0: {}
- asynckit@0.4.0: {}
-
available-typed-arrays@1.0.7:
dependencies:
possible-typed-array-names: 1.1.0
@@ -4258,49 +3658,27 @@ snapshots:
balanced-match@4.0.4: {}
- base64-js@1.5.1:
- optional: true
-
before-after-hook@4.0.0: {}
binaryextensions@6.11.0:
dependencies:
editions: 6.22.0
- bl@4.1.0:
- dependencies:
- buffer: 5.7.1
- inherits: 2.0.4
- readable-stream: 3.6.2
- optional: true
-
- boolbase@1.0.0: {}
-
boundary@2.0.0: {}
- brace-expansion@1.1.18:
+ brace-expansion@1.1.21:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@5.0.9:
+ brace-expansion@5.0.12:
dependencies:
balanced-match: 4.0.4
- braces@3.0.3:
- dependencies:
- fill-range: 7.1.1
-
buffer-crc32@0.2.13: {}
buffer-equal-constant-time@1.0.1: {}
- buffer@5.7.1:
- dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
- optional: true
-
bufferutil@4.1.0:
dependencies:
node-gyp-build: 4.8.4
@@ -4335,43 +3713,10 @@ snapshots:
call-bind-apply-helpers: 1.0.2
get-intrinsic: 1.3.0
- chalk@4.1.2:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
- chalk@5.6.2: {}
-
chalk@6.0.0: {}
chardet@2.2.0: {}
- cheerio-select@2.1.0:
- dependencies:
- boolbase: 1.0.0
- css-select: 5.2.2
- css-what: 6.2.2
- domelementtype: 2.3.0
- domhandler: 5.0.3
- domutils: 3.2.2
-
- cheerio@1.2.0:
- dependencies:
- cheerio-select: 2.1.0
- dom-serializer: 2.0.0
- domhandler: 5.0.3
- domutils: 3.2.2
- encoding-sniffer: 0.2.1
- htmlparser2: 10.1.0
- parse5: 7.3.0
- parse5-htmlparser2-tree-adapter: 7.1.0
- parse5-parser-stream: 7.1.2
- undici: 7.29.1
- whatwg-mimetype: 4.0.0
-
- chownr@1.1.4:
- optional: true
-
cli-width@4.1.0: {}
clipanion@4.0.0-rc.4(typanion@3.14.0):
@@ -4380,23 +3725,13 @@ snapshots:
cockatiel@3.2.1: {}
- color-convert@2.0.1:
- dependencies:
- color-name: 1.1.4
-
- color-name@1.1.4: {}
-
colorette@2.0.20: {}
- combined-stream@1.0.8:
- dependencies:
- delayed-stream: 1.0.0
-
commander@12.1.0: {}
concat-map@0.0.1: {}
- content-type@3.1.0: {}
+ content-type@3.1.1: {}
cross-spawn@7.0.6:
dependencies:
@@ -4404,16 +3739,6 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
- css-select@5.2.2:
- dependencies:
- boolbase: 1.0.0
- css-what: 6.2.2
- domhandler: 5.0.3
- domutils: 3.2.2
- nth-check: 2.1.1
-
- css-what@6.2.2: {}
-
data-view-buffer@1.0.2:
dependencies:
call-bound: 1.0.4
@@ -4432,25 +3757,13 @@ snapshots:
es-errors: 1.3.0
is-data-view: 1.0.2
- debug@3.2.7(supports-color@7.2.0):
+ debug@3.2.7:
dependencies:
ms: 2.1.3
- optionalDependencies:
- supports-color: 7.2.0
- debug@4.4.3(supports-color@7.2.0):
+ debug@4.4.3:
dependencies:
ms: 2.1.3
- optionalDependencies:
- supports-color: 7.2.0
-
- decompress-response@6.0.0:
- dependencies:
- mimic-response: 3.1.0
- optional: true
-
- deep-extend@0.6.0:
- optional: true
deep-is@0.1.4: {}
@@ -4475,33 +3788,10 @@ snapshots:
has-property-descriptors: 1.0.2
object-keys: 1.1.1
- delayed-stream@1.0.0: {}
-
- detect-libc@2.1.2:
- optional: true
-
doctrine@2.1.0:
dependencies:
esutils: 2.0.3
- dom-serializer@2.0.0:
- dependencies:
- domelementtype: 2.3.0
- domhandler: 5.0.3
- entities: 4.5.0
-
- domelementtype@2.3.0: {}
-
- domhandler@5.0.3:
- dependencies:
- domelementtype: 2.3.0
-
- domutils@3.2.2:
- dependencies:
- dom-serializer: 2.0.0
- domelementtype: 2.3.0
- domhandler: 5.0.3
-
dunder-proto@1.0.1:
dependencies:
call-bind-apply-helpers: 1.0.2
@@ -4516,28 +3806,7 @@ snapshots:
dependencies:
version-range: 4.15.0
- emnapi@1.11.3:
- optional: true
-
- emoji-regex@8.0.0: {}
-
- encoding-sniffer@0.2.1:
- dependencies:
- iconv-lite: 0.6.3
- whatwg-encoding: 3.1.1
-
- end-of-stream@1.4.5:
- dependencies:
- once: 1.4.0
- optional: true
-
- entities@4.5.0: {}
-
- entities@6.0.1: {}
-
- entities@7.0.1: {}
-
- environment@1.1.0: {}
+ entities@8.1.0: {}
es-abstract-get@1.0.0:
dependencies:
@@ -4598,10 +3867,10 @@ snapshots:
string.prototype.trimstart: 1.0.8
typed-array-buffer: 1.0.3
typed-array-byte-length: 1.0.3
- typed-array-byte-offset: 1.0.4
+ typed-array-byte-offset: 1.0.5
typed-array-length: 1.0.8
unbox-primitive: 1.1.0
- which-typed-array: 1.1.22
+ which-typed-array: 1.1.24
es-define-property@1.0.1: {}
@@ -4666,48 +3935,48 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eslint-config-prettier@10.1.8(eslint@10.10.0(supports-color@7.2.0)):
+ eslint-config-prettier@10.1.8(eslint@10.11.0):
dependencies:
- eslint: 10.10.0(supports-color@7.2.0)
+ eslint: 10.11.0
- eslint-import-resolver-node@0.3.10(supports-color@7.2.0):
+ eslint-import-resolver-node@0.3.10:
dependencies:
- debug: 3.2.7(supports-color@7.2.0)
- is-core-module: 2.16.2
+ debug: 3.2.7
+ is-core-module: 2.17.0
resolve: 2.0.0-next.7
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.14.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0):
+ eslint-module-utils@2.14.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0))(eslint-import-resolver-node@0.3.10)(eslint@10.11.0):
dependencies:
- debug: 3.2.7(supports-color@7.2.0)
+ debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
- eslint: 10.10.0(supports-color@7.2.0)
- eslint-import-resolver-node: 0.3.10(supports-color@7.2.0)
+ '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
+ eslint: 10.11.0
+ eslint-import-resolver-node: 0.3.10
transitivePeerDependencies:
- supports-color
- eslint-plugin-es@3.0.1(eslint@10.10.0(supports-color@7.2.0)):
+ eslint-plugin-es@3.0.1(eslint@10.11.0):
dependencies:
- eslint: 10.10.0(supports-color@7.2.0)
+ eslint: 10.11.0
eslint-utils: 2.1.0
regexpp: 3.2.0
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0))(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0))(eslint@10.11.0):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.2.0
array.prototype.findlastindex: 1.2.6
array.prototype.flat: 1.3.3
array.prototype.flatmap: 1.3.3
- debug: 3.2.7(supports-color@7.2.0)
+ debug: 3.2.7
doctrine: 2.1.0
- eslint: 10.10.0(supports-color@7.2.0)
- eslint-import-resolver-node: 0.3.10(supports-color@7.2.0)
- eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
+ eslint: 10.11.0
+ eslint-import-resolver-node: 0.3.10
+ eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0))(eslint-import-resolver-node@0.3.10)(eslint@10.11.0)
hasown: 2.0.4
- is-core-module: 2.16.2
+ is-core-module: 2.17.0
is-glob: 4.0.3
minimatch: 3.1.5
object.fromentries: 2.0.8
@@ -4717,30 +3986,30 @@ snapshots:
string.prototype.trimend: 1.0.10
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
+ '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-node@11.1.0(eslint@10.10.0(supports-color@7.2.0)):
+ eslint-plugin-node@11.1.0(eslint@10.11.0):
dependencies:
- eslint: 10.10.0(supports-color@7.2.0)
- eslint-plugin-es: 3.0.1(eslint@10.10.0(supports-color@7.2.0))
+ eslint: 10.11.0
+ eslint-plugin-es: 3.0.1(eslint@10.11.0)
eslint-utils: 2.1.0
ignore: 5.3.2
minimatch: 3.1.5
resolve: 1.22.12
semver: 6.3.1
- eslint-plugin-prettier@5.5.6(eslint-config-prettier@10.1.8(eslint@10.10.0(supports-color@7.2.0)))(eslint@10.10.0(supports-color@7.2.0))(prettier@3.9.6):
+ eslint-plugin-prettier@5.5.6(eslint-config-prettier@10.1.8(eslint@10.11.0))(eslint@10.11.0)(prettier@3.9.8):
dependencies:
- eslint: 10.10.0(supports-color@7.2.0)
- prettier: 3.9.6
+ eslint: 10.11.0
+ prettier: 3.9.8
prettier-linter-helpers: 1.0.1
synckit: 0.11.13
optionalDependencies:
- eslint-config-prettier: 10.1.8(eslint@10.10.0(supports-color@7.2.0))
+ eslint-config-prettier: 10.1.8(eslint@10.11.0)
eslint-scope@9.1.2:
dependencies:
@@ -4759,11 +4028,11 @@ snapshots:
eslint-visitor-keys@5.0.1: {}
- eslint@10.10.0(supports-color@7.2.0):
+ eslint@10.11.0:
dependencies:
- '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(supports-color@7.2.0))
+ '@eslint-community/eslint-utils': 4.10.1(eslint@10.11.0)
'@eslint-community/regexpp': 4.12.2
- '@eslint/config-array': 0.23.5(supports-color@7.2.0)
+ '@eslint/config-array': 0.23.5
'@eslint/config-helpers': 0.7.0
'@eslint/core': 1.2.1
'@eslint/plugin-kit': 0.7.3
@@ -4773,7 +4042,7 @@ snapshots:
'@types/estree': 1.0.9
ajv: 6.15.0
cross-spawn: 7.0.6
- debug: 4.4.3(supports-color@7.2.0)
+ debug: 4.4.3
escape-string-regexp: 4.0.0
eslint-scope: 9.1.2
eslint-visitor-keys: 5.0.1
@@ -4812,21 +4081,10 @@ snapshots:
esutils@2.0.3: {}
- expand-template@2.0.3:
- optional: true
-
fast-deep-equal@3.1.3: {}
fast-diff@1.3.0: {}
- fast-glob@3.3.3:
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.8
-
fast-json-stable-stringify@2.1.0: {}
fast-levenshtein@2.0.6: {}
@@ -4837,16 +4095,10 @@ snapshots:
dependencies:
fast-string-truncated-width: 3.0.3
- fast-uri@3.1.7: {}
-
fast-wrap-ansi@0.2.2:
dependencies:
fast-string-width: 3.0.2
- fastq@1.20.3:
- dependencies:
- reusify: 1.1.0
-
fdir@6.5.0(picomatch@4.0.7):
optionalDependencies:
picomatch: 4.0.7
@@ -4855,10 +4107,6 @@ snapshots:
dependencies:
flat-cache: 6.1.23
- fill-range@7.1.1:
- dependencies:
- to-regex-range: 5.0.1
-
find-up@5.0.0:
dependencies:
locate-path: 6.0.0
@@ -4876,23 +4124,6 @@ snapshots:
dependencies:
is-callable: 1.2.7
- form-data@4.0.6:
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- es-set-tostringtag: 2.1.0
- hasown: 2.0.4
- mime-types: 2.1.35
-
- fs-constants@1.0.0:
- optional: true
-
- fs-extra@11.4.0:
- dependencies:
- graceful-fs: 4.2.11
- jsonfile: 6.2.1
- universalify: 2.0.1
-
function-bind@1.1.2: {}
function.prototype.name@1.2.0:
@@ -4935,45 +4166,21 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
- github-from-package@0.0.0:
- optional: true
-
- glob-parent@5.1.2:
- dependencies:
- is-glob: 4.0.3
-
glob-parent@6.0.2:
dependencies:
is-glob: 4.0.3
- glob@13.0.6:
- dependencies:
- minimatch: 10.2.6
- minipass: 7.1.3
- path-scurry: 2.0.2
-
globalthis@1.0.4:
dependencies:
define-properties: 1.2.1
gopd: 1.2.0
- globby@14.1.0:
- dependencies:
- '@sindresorhus/merge-streams': 2.3.0
- fast-glob: 3.3.3
- ignore: 7.0.9
- path-type: 6.0.0
- slash: 5.1.0
- unicorn-magic: 0.3.0
-
gopd@1.2.0: {}
graceful-fs@4.2.11: {}
has-bigints@1.1.0: {}
- has-flag@4.0.0: {}
-
has-property-descriptors@1.0.2:
dependencies:
es-define-property: 1.0.1
@@ -5004,56 +4211,30 @@ snapshots:
dependencies:
lru-cache: 6.0.0
- hosted-git-info@7.0.2:
- dependencies:
- lru-cache: 10.4.3
-
- htmlparser2@10.1.0:
- dependencies:
- domelementtype: 2.3.0
- domhandler: 5.0.3
- domutils: 3.2.2
- entities: 7.0.1
-
- http-proxy-agent@7.0.2(supports-color@7.2.0):
+ http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.4
- debug: 4.4.3(supports-color@7.2.0)
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
- https-proxy-agent@7.0.6(supports-color@7.2.0):
+ https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.4
- debug: 4.4.3(supports-color@7.2.0)
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
- iconv-lite@0.6.3:
- dependencies:
- safer-buffer: 2.1.2
-
iconv-lite@0.7.3:
dependencies:
safer-buffer: 2.1.2
- ieee754@1.2.1:
- optional: true
-
ignore@5.3.2: {}
ignore@7.0.9: {}
imurmurhash@0.1.4: {}
- index-to-position@1.2.0: {}
-
- inherits@2.0.4:
- optional: true
-
- ini@1.3.8:
- optional: true
-
internal-slot@1.1.0:
dependencies:
es-errors: 1.3.0
@@ -5085,7 +4266,7 @@ snapshots:
is-callable@1.2.7: {}
- is-core-module@2.16.2:
+ is-core-module@2.17.0:
dependencies:
hasown: 2.0.4
@@ -5112,8 +4293,6 @@ snapshots:
dependencies:
call-bound: 1.0.4
- is-fullwidth-code-point@3.0.0: {}
-
is-generator-function@1.1.2:
dependencies:
call-bound: 1.0.4
@@ -5139,8 +4318,6 @@ snapshots:
call-bound: 1.0.4
has-tostringtag: 1.0.2
- is-number@7.0.0: {}
-
is-regex@1.2.1:
dependencies:
call-bound: 1.0.4
@@ -5167,7 +4344,7 @@ snapshots:
is-typed-array@1.1.15:
dependencies:
- which-typed-array: 1.1.22
+ which-typed-array: 1.1.24
is-weakmap@2.0.2: {}
@@ -5196,13 +4373,7 @@ snapshots:
editions: 6.22.0
textextensions: 6.11.0
- js-tokens@4.0.0: {}
-
- js-yaml@4.3.2:
- dependencies:
- argparse: 2.0.1
-
- js-yaml@5.4.1:
+ js-yaml@5.4.2:
dependencies:
argparse: 2.0.1
@@ -5210,8 +4381,6 @@ snapshots:
json-schema-traverse@0.4.1: {}
- json-schema-traverse@1.0.0: {}
-
json-stable-stringify-without-jsonify@1.0.1: {}
json-with-bigint@3.5.12: {}
@@ -5220,16 +4389,8 @@ snapshots:
dependencies:
minimist: 1.2.8
- json5@2.2.3: {}
-
jsonc-parser@3.3.1: {}
- jsonfile@6.2.1:
- dependencies:
- universalify: 2.0.1
- optionalDependencies:
- graceful-fs: 4.2.11
-
jsonwebtoken@9.0.3:
dependencies:
jws: 4.0.1
@@ -5254,27 +4415,15 @@ snapshots:
jwa: 2.0.1
safe-buffer: 5.2.1
- keytar@7.9.0:
- dependencies:
- node-addon-api: 4.3.0
- prebuild-install: 7.1.3
- optional: true
-
keyv@5.6.0:
dependencies:
'@keyv/serialize': 1.1.1
- leven@3.1.0: {}
-
levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
type-check: 0.4.0
- linkify-it@5.0.2:
- dependencies:
- uc.micro: 2.1.0
-
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -5293,85 +4442,36 @@ snapshots:
lodash.once@4.1.1: {}
- lodash.truncate@4.4.2: {}
-
- lodash@4.18.1: {}
-
- lru-cache@10.4.3: {}
-
- lru-cache@11.5.2: {}
-
lru-cache@6.0.0:
dependencies:
yallist: 4.0.0
- markdown-it@14.3.2:
- dependencies:
- argparse: 2.0.1
- entities: 4.5.0
- linkify-it: 5.0.2
- mdurl: 2.1.0
- punycode.js: 2.3.1
- uc.micro: 2.1.0
+ marked@18.0.13: {}
math-intrinsics@1.1.0: {}
- mdurl@2.1.0: {}
-
memorystream@0.3.1: {}
- merge2@1.4.1: {}
-
- micromatch@4.0.8:
- dependencies:
- braces: 3.0.3
- picomatch: 2.3.2
-
- mime-db@1.52.0: {}
-
- mime-types@2.1.35:
- dependencies:
- mime-db: 1.52.0
-
mime@1.6.0: {}
- mimic-response@3.1.0:
- optional: true
-
minimatch@10.2.6:
dependencies:
- brace-expansion: 5.0.9
+ brace-expansion: 5.0.12
minimatch@3.1.5:
dependencies:
- brace-expansion: 1.1.18
+ brace-expansion: 1.1.21
minimist@1.2.8: {}
- minipass@7.1.3: {}
-
- mkdirp-classic@0.5.3:
- optional: true
-
ms@2.1.3: {}
mute-stream@0.0.8: {}
mute-stream@3.0.0: {}
- napi-build-utils@2.0.0:
- optional: true
-
natural-compare@1.4.0: {}
- node-abi@3.96.0:
- dependencies:
- semver: 7.8.5
- optional: true
-
- node-addon-api@4.3.0:
- optional: true
-
node-exports-info@1.6.2:
dependencies:
array.prototype.flatmap: 1.3.3
@@ -5382,17 +4482,6 @@ snapshots:
node-gyp-build@4.8.4:
optional: true
- node-sarif-builder@3.4.0:
- dependencies:
- '@types/sarif': 2.1.7
- fs-extra: 11.4.0
-
- normalize-package-data@6.0.2:
- dependencies:
- hosted-git-info: 7.0.2
- semver: 7.8.5
- validate-npm-package-license: 3.0.4
-
npm-normalize-package-bin@6.0.0: {}
npm-run-all2@9.0.3:
@@ -5406,10 +4495,6 @@ snapshots:
shell-quote: 1.10.0
which: 7.0.0
- nth-check@2.1.1:
- dependencies:
- boolbase: 1.0.0
-
object-inspect@1.13.4: {}
object-keys@1.1.1: {}
@@ -5450,12 +4535,7 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.1.2
- obug@2.2.1: {}
-
- once@1.4.0:
- dependencies:
- wrappy: 1.0.2
- optional: true
+ obug@3.0.0: {}
open@10.2.0:
dependencies:
@@ -5488,30 +4568,9 @@ snapshots:
dependencies:
p-limit: 3.1.0
- p-map@7.0.7: {}
-
- parse-json@8.3.0:
- dependencies:
- '@babel/code-frame': 7.29.7
- index-to-position: 1.2.0
- type-fest: 4.41.0
-
- parse-semver@1.1.1:
- dependencies:
- semver: 5.7.2
-
- parse5-htmlparser2-tree-adapter@7.1.0:
- dependencies:
- domhandler: 5.0.3
- parse5: 7.3.0
-
- parse5-parser-stream@7.1.2:
- dependencies:
- parse5: 7.3.0
-
- parse5@7.3.0:
+ parse5@8.0.1:
dependencies:
- entities: 6.0.1
+ entities: 8.1.0
path-exists@4.0.0: {}
@@ -5519,60 +4578,27 @@ snapshots:
path-parse@1.0.7: {}
- path-scurry@2.0.2:
- dependencies:
- lru-cache: 11.5.2
- minipass: 7.1.3
-
- path-type@6.0.0: {}
-
pend@1.2.0: {}
- picocolors@1.1.1: {}
-
- picomatch@2.3.2: {}
-
picomatch@4.0.7: {}
pidtree@1.0.0: {}
- pluralize@2.0.0: {}
-
- pluralize@8.0.0: {}
-
possible-typed-array-names@1.1.0: {}
- prebuild-install@7.1.3:
- dependencies:
- detect-libc: 2.1.2
- expand-template: 2.0.3
- github-from-package: 0.0.0
- minimist: 1.2.8
- mkdirp-classic: 0.5.3
- napi-build-utils: 2.0.0
- node-abi: 3.96.0
- pump: 3.0.4
- rc: 1.2.8
- simple-get: 4.0.1
- tar-fs: 2.1.5
- tunnel-agent: 0.6.0
- optional: true
-
prelude-ls@1.2.1: {}
prettier-linter-helpers@1.0.1:
dependencies:
fast-diff: 1.3.0
- prettier@3.9.6: {}
+ prettier@3.9.8: {}
- pump@3.0.4:
+ proper-lockfile@4.1.2:
dependencies:
- end-of-stream: 1.4.5
- once: 1.4.0
- optional: true
-
- punycode.js@2.3.1: {}
+ graceful-fs: 4.2.11
+ retry: 0.12.0
+ signal-exit: 3.0.7
punycode@2.3.1: {}
@@ -5585,49 +4611,15 @@ snapshots:
es-define-property: 1.0.1
side-channel: 1.1.1
- queue-microtask@1.2.3: {}
-
- rc-config-loader@4.1.4(supports-color@7.2.0):
- dependencies:
- debug: 4.4.3(supports-color@7.2.0)
- js-yaml: 4.3.2
- json5: 2.2.3
- require-from-string: 2.0.2
- transitivePeerDependencies:
- - supports-color
-
- rc@1.2.8:
- dependencies:
- deep-extend: 0.6.0
- ini: 1.3.8
- minimist: 1.2.8
- strip-json-comments: 2.0.1
- optional: true
-
read-package-json-fast@6.0.0:
dependencies:
json-parse-even-better-errors: 6.0.0
npm-normalize-package-bin: 6.0.0
- read-pkg@9.0.1:
- dependencies:
- '@types/normalize-package-data': 2.4.4
- normalize-package-data: 6.0.2
- parse-json: 8.3.0
- type-fest: 4.41.0
- unicorn-magic: 0.1.0
-
read@1.0.7:
dependencies:
mute-stream: 0.0.8
- readable-stream@3.6.2:
- dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
- optional: true
-
reflect.getprototypeof@1.0.10:
dependencies:
call-bind: 1.0.9
@@ -5650,32 +4642,26 @@ snapshots:
regexpp@3.2.0: {}
- require-from-string@2.0.2: {}
-
resolve@1.22.12:
dependencies:
es-errors: 1.3.0
- is-core-module: 2.16.2
+ is-core-module: 2.17.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
resolve@2.0.0-next.7:
dependencies:
es-errors: 1.3.0
- is-core-module: 2.16.2
+ is-core-module: 2.17.0
node-exports-info: 1.6.2
object-keys: 1.1.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
- reusify@1.1.0: {}
+ retry@0.12.0: {}
run-applescript@7.1.0: {}
- run-parallel@1.2.0:
- dependencies:
- queue-microtask: 1.2.3
-
safe-array-concat@1.1.4:
dependencies:
call-bind: 1.0.9
@@ -5701,20 +4687,6 @@ snapshots:
sax@1.6.1: {}
- secretlint@10.2.2(supports-color@7.2.0):
- dependencies:
- '@secretlint/config-creator': 10.2.2
- '@secretlint/formatter': 10.2.2(supports-color@7.2.0)
- '@secretlint/node': 10.2.2(supports-color@7.2.0)
- '@secretlint/profiler': 10.2.2
- debug: 4.4.3(supports-color@7.2.0)
- globby: 14.1.0
- read-pkg: 9.0.1
- transitivePeerDependencies:
- - supports-color
-
- semver@5.7.2: {}
-
semver@6.3.1: {}
semver@7.8.5: {}
@@ -5777,51 +4749,15 @@ snapshots:
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
- signal-exit@4.1.0: {}
-
- simple-concat@1.0.1:
- optional: true
+ signal-exit@3.0.7: {}
- simple-get@4.0.1:
- dependencies:
- decompress-response: 6.0.0
- once: 1.4.0
- simple-concat: 1.0.1
- optional: true
-
- slash@5.1.0: {}
-
- slice-ansi@4.0.0:
- dependencies:
- ansi-styles: 4.3.0
- astral-regex: 2.0.0
- is-fullwidth-code-point: 3.0.0
-
- spdx-correct@3.2.0:
- dependencies:
- spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.23
-
- spdx-exceptions@2.5.0: {}
-
- spdx-expression-parse@3.0.1:
- dependencies:
- spdx-exceptions: 2.5.0
- spdx-license-ids: 3.0.23
-
- spdx-license-ids@3.0.23: {}
+ signal-exit@4.1.0: {}
stop-iteration-iterator@1.1.0:
dependencies:
es-errors: 1.3.0
internal-slot: 1.1.0
- string-width@4.2.3:
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
-
string.prototype.trim@1.2.11:
dependencies:
call-bind: 1.0.9
@@ -5846,75 +4782,18 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.1.2
- string_decoder@1.3.0:
- dependencies:
- safe-buffer: 5.2.1
- optional: true
-
- strip-ansi@6.0.1:
- dependencies:
- ansi-regex: 5.0.1
-
- strip-ansi@7.2.0:
- dependencies:
- ansi-regex: 6.3.0
-
strip-bom@3.0.0: {}
- strip-json-comments@2.0.1:
- optional: true
-
structured-source@4.0.0:
dependencies:
boundary: 2.0.0
- supports-color@7.2.0:
- dependencies:
- has-flag: 4.0.0
-
- supports-hyperlinks@3.2.0:
- dependencies:
- has-flag: 4.0.0
- supports-color: 7.2.0
-
supports-preserve-symlinks-flag@1.0.0: {}
synckit@0.11.13:
dependencies:
'@pkgr/core': 0.3.6
- table@6.9.0:
- dependencies:
- ajv: 8.20.0
- lodash.truncate: 4.4.2
- slice-ansi: 4.0.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- tar-fs@2.1.5:
- dependencies:
- chownr: 1.1.4
- mkdirp-classic: 0.5.3
- pump: 3.0.4
- tar-stream: 2.2.0
- optional: true
-
- tar-stream@2.2.0:
- dependencies:
- bl: 4.1.0
- end-of-stream: 1.4.5
- fs-constants: 1.0.0
- inherits: 2.0.4
- readable-stream: 3.6.2
- optional: true
-
- terminal-link@4.0.0:
- dependencies:
- ansi-escapes: 7.3.0
- supports-hyperlinks: 3.2.0
-
- text-table@0.2.0: {}
-
textextensions@6.11.0:
dependencies:
editions: 6.22.0
@@ -5924,12 +4803,6 @@ snapshots:
fdir: 6.5.0(picomatch@4.0.7)
picomatch: 4.0.7
- tmp@0.2.7: {}
-
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
ts-api-utils@2.5.0(@typescript/typescript6@6.0.2):
dependencies:
typescript: '@typescript/typescript6@6.0.2'
@@ -5943,11 +4816,6 @@ snapshots:
tslib@2.8.1: {}
- tunnel-agent@0.6.0:
- dependencies:
- safe-buffer: 5.2.1
- optional: true
-
tunnel@0.0.6: {}
typanion@3.14.0: {}
@@ -5956,8 +4824,6 @@ snapshots:
dependencies:
prelude-ls: 1.2.1
- type-fest@4.41.0: {}
-
typed-array-buffer@1.0.3:
dependencies:
call-bound: 1.0.4
@@ -5972,13 +4838,12 @@ snapshots:
has-proto: 1.2.0
is-typed-array: 1.1.15
- typed-array-byte-offset@1.0.4:
+ typed-array-byte-offset@1.0.5:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.9
for-each: 0.3.5
gopd: 1.2.0
- has-proto: 1.2.0
is-typed-array: 1.1.15
reflect.getprototypeof: 1.0.10
@@ -5997,13 +4862,13 @@ snapshots:
tunnel: 0.0.6
underscore: 1.13.8
- typescript-eslint@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0):
+ typescript-eslint@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0))(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
- '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
- '@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)(supports-color@7.2.0)
- '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(supports-color@7.2.0))(supports-color@7.2.0)
- eslint: 10.10.0(supports-color@7.2.0)
+ '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0))(@typescript/typescript6@6.0.2)(eslint@10.11.0)
+ '@typescript-eslint/parser': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
+ '@typescript-eslint/typescript-estree': 8.70.0(@typescript/typescript6@6.0.2)
+ '@typescript-eslint/utils': 8.70.0(@typescript/typescript6@6.0.2)(eslint@10.11.0)
+ eslint: 10.11.0
typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
- supports-color
@@ -6033,8 +4898,6 @@ snapshots:
'@typescript/typescript-win32-arm64': 7.0.2
'@typescript/typescript-win32-x64': 7.0.2
- uc.micro@2.1.0: {}
-
unbox-primitive@1.1.0:
dependencies:
call-bound: 1.0.4
@@ -6046,38 +4909,16 @@ snapshots:
undici-types@8.9.0: {}
- undici@7.29.1: {}
-
- unicorn-magic@0.1.0: {}
-
- unicorn-magic@0.3.0: {}
-
universal-user-agent@7.0.3: {}
- universalify@2.0.1: {}
-
uri-js@4.4.1:
dependencies:
punycode: 2.3.1
url-join@4.0.1: {}
- util-deprecate@1.0.2:
- optional: true
-
- validate-npm-package-license@3.0.4:
- dependencies:
- spdx-correct: 3.2.0
- spdx-expression-parse: 3.0.1
-
version-range@4.15.0: {}
- whatwg-encoding@3.1.1:
- dependencies:
- iconv-lite: 0.6.3
-
- whatwg-mimetype@4.0.0: {}
-
which-boxed-primitive@1.1.1:
dependencies:
is-bigint: 1.1.0
@@ -6100,7 +4941,7 @@ snapshots:
isarray: 2.0.5
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
- which-typed-array: 1.1.22
+ which-typed-array: 1.1.24
which-collection@1.0.2:
dependencies:
@@ -6109,7 +4950,7 @@ snapshots:
is-weakmap: 2.0.2
is-weakset: 2.0.4
- which-typed-array@1.1.22:
+ which-typed-array@1.1.24:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.9
@@ -6129,9 +4970,6 @@ snapshots:
word-wrap@1.2.5: {}
- wrappy@1.0.2:
- optional: true
-
wsl-utils@0.1.0:
dependencies:
is-wsl: 3.1.1
diff --git a/extensions/VSCode/src/extension.ts b/extensions/VSCode/src/extension.ts
index 4fe8e14c..d0b38f29 100644
--- a/extensions/VSCode/src/extension.ts
+++ b/extensions/VSCode/src/extension.ts
@@ -36,7 +36,7 @@ import vscode, {
TextEditor,
TextEditorRevealType,
} from "vscode";
-import { CodeChatEditorServer, initServer } from "./index.js";
+import type { CodeChatEditorServer } from "./index.js";
// ### Local packages
import {
@@ -125,14 +125,11 @@ let version = 0.0;
// An object to start/stop the CodeChat Editor Server.
let codeChatEditorServer: CodeChatEditorServer | undefined;
-// Before using `CodeChatEditorServer`, we must initialize it.
-{
- const ext = vscode.extensions.getExtension(
- "CodeChat.codechat-editor-client",
- );
- assert(ext !== undefined);
- initServer(ext.extensionPath);
-}
+
+// The in-flight or completed load of the native module holding the CodeChat
+// Editor Server, started on demand by `load_native_module`.
+type NativeModule = typeof import("./index.js");
+let native_module: Promise | undefined;
// ---
//
@@ -2015,6 +2012,56 @@ function queueCaptureEvent(
// Activation/deactivation
// -----------------------
//
+// Import the native module, initializing the Server it contains on the first
+// successful import. Diagnostics which instrument the startup sequence belong
+// here: this is the earliest point at which a failure of the native module can
+// be reported, since the extension is by now fully loaded and running.
+const load_native_module = (
+ // This extension's context. Its `extensionPath` gives the extension's
+ // install directory, from which the Server locates the Client's files.
+ context: vscode.ExtensionContext,
+ // The imported, initialized module.
+): Promise => {
+ if (native_module === undefined) {
+ // Store the promise before the `await` below hands control back to
+ // the event loop, so that a caller arriving while the load is in
+ // flight joins it rather than starting a second one.
+ native_module = (async () => {
+ let loaded: NativeModule;
+ try {
+ // The NAPI-RS-generated loader (`index.js`) throws while
+ // being imported when it finds no binding for this
+ // platform, so a static `import` of it would abort this
+ // module's load -- taking the extension down before
+ // `activate` runs, and before any diagnostic placed here
+ // could report why. A dynamic `import` instead defers that
+ // failure into a `try` block which can report it.
+ loaded = await import("./index.js");
+ } catch (e) {
+ // Discard a failed import, so that it's retried when this
+ // command runs again instead of leaving a permanently
+ // rejected promise in place. Repeating it costs nothing:
+ // the bundler memoizes a successful import and resets a
+ // failed one -- see the `try`/`catch` in the `__commonJS`
+ // helper of the bundle in `out/extension.js`.
+ native_module = undefined;
+ throw e;
+ }
+ // `initServer` performs the Server's global setup, which
+ // `webserver::init_server` documents as callable only once.
+ // Deliberately leave `native_module` in place when it throws:
+ // the rejected promise then replays that first failure to every
+ // later caller, whereas retrying would run the setup a second
+ // time and report a complaint about the already-installed
+ // logger in place of the problem which actually stopped the
+ // Server. Recovering from this requires reloading the window.
+ loaded.initServer(context.extensionPath);
+ return loaded;
+ })();
+ }
+ return native_module;
+};
+
// This is invoked when the extension is activated. It either creates a new
// CodeChat Editor Server instance or reveals the currently running one.
export const activate = (context: vscode.ExtensionContext) => {
@@ -2111,6 +2158,21 @@ export const activate = (context: vscode.ExtensionContext) => {
async () => {
consoleLog("CodeChat Editor extension: starting.");
+ // Load the native module first, so that failing to load it
+ // leaves behind neither a webview panel nor subscriptions to
+ // editor events.
+ let native: NativeModule;
+ try {
+ native = await load_native_module(context);
+ } catch (e) {
+ // Report this even when `quiet_next_error` is set.
+ quiet_next_error = false;
+ show_error(
+ `Unable to load the CodeChat Editor Server: ${format_error_chain(e)}`,
+ );
+ return;
+ }
+
if (!subscribed) {
subscribed = true;
@@ -2375,7 +2437,7 @@ export const activate = (context: vscode.ExtensionContext) => {
// Start the server.
consoleLog("CodeChat Editor extension: starting server.");
- codeChatEditorServer = new CodeChatEditorServer(
+ codeChatEditorServer = new native.CodeChatEditorServer(
vscode.Uri.joinPath(
context.globalStorageUri,
"capture-spool",
@@ -2773,6 +2835,44 @@ const format_struct = (complex_data_structure: any): string =>
).substring(0, MAX_MESSAGE_LENGTH)
: "";
+// Format an error together with its chain of causes. The NAPI-RS loader places
+// only a generic summary in the error it throws, recording the load failure of
+// each candidate binding in a nested `cause`; without walking the chain, the
+// message naming the actual problem is lost.
+const format_error_chain = (
+ // The error to format, of whatever type a `catch` block received.
+ error: unknown,
+ // The chain of messages, outermost first.
+): string => {
+ const messages: string[] = [];
+ // A `cause` chain which loops back on itself would spin here forever.
+ // This runs only once something has already gone wrong, so it must not
+ // be what takes the extension host down.
+ const seen = new Set();
+ let current = error;
+ while (current !== undefined && current !== null && !seen.has(current)) {
+ seen.add(current);
+ // A `catch` block receives whatever was thrown, and `String` throws
+ // in turn when that is a symbol.
+ messages.push(
+ current instanceof Error
+ ? current.message
+ : typeof current === "symbol"
+ ? current.toString()
+ : String(current),
+ );
+ // Test for `cause` rather than reading it directly: it is absent
+ // both on errors which record no cause and on the runtimes which
+ // predate it, and the test supplies the property's type, which the
+ // TypeScript library this file compiles against lacks.
+ current =
+ current instanceof Error && "cause" in current
+ ? current.cause
+ : undefined;
+ }
+ return messages.join("\n caused by: ");
+};
+
// Send a result (a response to a message from the server) back to the server.
const sendResult = async (id: number, result?: ResultErrTypes) => {
assert(codeChatEditorServer);
diff --git a/extensions/VSCode/src/index.js b/extensions/VSCode/src/index.js
new file mode 100644
index 00000000..27231902
--- /dev/null
+++ b/extensions/VSCode/src/index.js
@@ -0,0 +1,982 @@
+/* eslint-disable */
+// @ts-nocheck
+/* originally generated by NAPI-RS, now tracked and edited by hand */
+
+const { readFileSync, readdirSync } = require('fs')
+
+// Verbose load tracing
+// --------------------
+//
+// Everything below, up to the end of this section, is hand-written; the
+// rest of this file is the loader NAPI-RS generates. The builder passes
+// `--js index-generated.js` so that a NAPI build writes its loader beside
+// this one rather than over it, leaving `index-generated.js` as the
+// reference to re-derive this file from when a NAPI-RS upgrade changes
+// what it emits.
+//
+// A binding which fails to load reaches the user as a single
+// "Cannot find native binding" thrown during extension activation, naming
+// neither the artifact which was tried nor the reason each attempt failed.
+// Every decision and every `require` attempt below is therefore logged, so
+// that an Extension Host log copied from the user's machine identifies the
+// failing step. Set `CODECHAT_NAPI_DEBUG=0` to silence the output.
+const __dbgEnabled = process.env.CODECHAT_NAPI_DEBUG !== '0'
+const __dbg = (...args) => {
+ if (!__dbgEnabled) return
+ try {
+ console.log('[codechat-napi]', ...args)
+ } catch {
+ // A console which throws must not turn a working load into a failure.
+ }
+}
+// Render an error as a single line. What arrives here is whatever a failed
+// `require` produced, which includes non-Errors thrown by an addon's own
+// initialization code.
+const __dbgErrText = (e) => {
+ try {
+ if (e && typeof e === 'object') {
+ return `${e.name || 'Error'}${e.code ? ' [' + e.code + ']' : ''}: ${e.message}`
+ }
+ return String(e)
+ } catch {
+ return ''
+ }
+}
+const __dbgStack = (e) => {
+ try {
+ return e && typeof e === 'object' && typeof e.stack === 'string' ? e.stack : ''
+ } catch {
+ return ''
+ }
+}
+// An array whose `push` announces what it collects. The loader funnels every
+// failed attempt into one of two such arrays, so tracing `push` reports each
+// failure without touching the `require` call sites -- which must keep their
+// literal string arguments for esbuild's `.node` copy loader to find them.
+const __dbgTracedArray = (label) => {
+ const array = []
+ if (!__dbgEnabled) return array
+ const push = Array.prototype.push.bind(array)
+ array.push = (...items) => {
+ for (const item of items) {
+ __dbg(`${label} <- ${__dbgErrText(item)}`)
+ const stack = __dbgStack(item)
+ if (stack) __dbg(`${label} <- stack: ${stack}`)
+ }
+ return push(...items)
+ }
+ return array
+}
+const __dbgAttempt = (kind, specifier) => {
+ __dbg(`attempting ${kind}: ${specifier}`)
+}
+// Report a successful load, then hand the binding back, so that this wraps an
+// existing expression instead of restructuring the block it sits in.
+const __dbgOk = (specifier, binding) => {
+ let keys
+ try {
+ keys = binding ? Object.keys(binding).join(', ') : String(binding)
+ } catch (e) {
+ keys = ``
+ }
+ __dbg(`LOADED ${specifier} -- exports: ${keys}`)
+ return binding
+}
+const LF = String.fromCharCode(10)
+const CR = String.fromCharCode(13)
+const SPACE = ''
+const NL_INDENT = LF + ' '
+const __dbgChain = (label, errors) => {
+ __dbg(`${label}: ${errors.length} error(s) recorded`)
+ errors.forEach((e, i) => {
+ __dbg(` [${i}] ${__dbgErrText(e)}`)
+ const stack = __dbgStack(e)
+ // Indent a multi-line stack so that it reads as one entry in the log.
+ if (stack) __dbg(NL_INDENT.slice(1) + stack.split(CR).join(SPACE).split(LF).join(NL_INDENT))
+ })
+}
+
+__dbg('==== binding load starting ====')
+__dbg(`platform=${process.platform} arch=${process.arch} node=${process.version} modules=${process.versions.modules} electron=${process.versions.electron || 'none'}`)
+__dbg(`execPath=${process.execPath}`)
+__dbg(`cwd=${process.cwd()}`)
+__dbg(`__dirname=${typeof __dirname === 'string' ? __dirname : ''}`)
+__dbg(`config.variables: shlib_suffix=${process.config && process.config.variables ? process.config.variables.shlib_suffix : ''} node_target_type=${process.config && process.config.variables ? process.config.variables.node_target_type : ''}`)
+for (const __dbgEnvName of [
+ 'NAPI_RS_NATIVE_LIBRARY_PATH',
+ 'NAPI_RS_FORCE_WASI',
+ 'NAPI_RS_WASI_FLAVOR',
+ 'NAPI_RS_ENFORCE_VERSION_CHECK',
+]) {
+ __dbg(`env ${__dbgEnvName}=${process.env[__dbgEnvName] === undefined ? '' : JSON.stringify(process.env[__dbgEnvName])}`)
+}
+// The artifact is looked for beside this file, so a listing of that directory
+// shows directly whether the expected `.node` was packaged and installed.
+try {
+ const __dbgDir = typeof __dirname === 'string' ? __dirname : '.'
+ const __dbgEntries = readdirSync(__dbgDir)
+ __dbg(`contents of ${__dbgDir} (${__dbgEntries.length} entries): ${__dbgEntries.join(', ')}`)
+} catch (e) {
+ __dbg(`directory listing failed: ${__dbgErrText(e)}`)
+}
+let nativeBinding = null
+// Which artifact actually loaded. The WASI fallback chain overwrites it with
+// the flavor it resolved; the late native retry below leaves it alone because
+// it only runs while no WASI candidate has been loaded.
+let __napiLoadedBindingTarget = 'native'
+const loadErrors = __dbgTracedArray('loadErrors')
+
+const isMusl = () => {
+ let musl = false
+ if (process.platform === 'linux') {
+ musl = isMuslFromFilesystem()
+ if (musl === null) {
+ musl = isMuslFromReport()
+ }
+ if (musl === null) {
+ musl = isMuslFromChildProcess()
+ }
+ }
+ __dbg(`isMusl() = ${musl}`)
+ return musl
+}
+
+const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
+
+const isMuslFromFilesystem = () => {
+ try {
+ return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
+ } catch {
+ return null
+ }
+}
+
+const isMuslFromReport = () => {
+ let report = null
+ if (process.report && typeof process.report.getReport === 'function') {
+ process.report.excludeNetwork = true
+ report = process.report.getReport()
+ }
+ if (!report) {
+ return null
+ }
+ if (report.header && report.header.glibcVersionRuntime) {
+ return false
+ }
+ if (Array.isArray(report.sharedObjects)) {
+ if (report.sharedObjects.some(isFileMusl)) {
+ return true
+ }
+ }
+ return false
+}
+
+const isMuslFromChildProcess = () => {
+ try {
+ return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
+ } catch (e) {
+ // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
+ return false
+ }
+}
+
+function requireNative() {
+ __dbg('requireNative(): walking the platform/arch chain')
+ if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
+ try {
+ __dbgAttempt('NAPI_RS_NATIVE_LIBRARY_PATH override', process.env.NAPI_RS_NATIVE_LIBRARY_PATH)
+ const overrideBinding = __dbgOk(process.env.NAPI_RS_NATIVE_LIBRARY_PATH, require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH))
+ // The override may be a generated WASI loader, which already reports its
+ // own flavor. Adopt it: `module.exports` aliases this object, so claiming
+ // 'native' would both misreport the artifact and overwrite the loader's
+ // marker through the alias.
+ __napiLoadedBindingTarget =
+ overrideBinding && typeof overrideBinding.__napiBindingTarget === 'string'
+ ? overrideBinding.__napiBindingTarget
+ : 'native'
+ return overrideBinding
+ } catch (err) {
+ loadErrors.push(err)
+ }
+ } else if (process.platform === 'android') {
+ if (process.arch === 'arm64') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.android-arm64.node')
+ return __dbgOk('./codechat-editor-client.android-arm64.node', require('./codechat-editor-client.android-arm64.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-android-arm64')
+ const binding = require('codechat-editor-client-android-arm64')
+ const bindingPackageVersion = require('codechat-editor-client-android-arm64/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-android-arm64', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.android-arm-eabi.node')
+ return __dbgOk('./codechat-editor-client.android-arm-eabi.node', require('./codechat-editor-client.android-arm-eabi.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-android-arm-eabi')
+ const binding = require('codechat-editor-client-android-arm-eabi')
+ const bindingPackageVersion = require('codechat-editor-client-android-arm-eabi/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-android-arm-eabi', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
+ }
+ } else if (process.platform === 'win32') {
+ if (process.arch === 'x64') {
+ if ((process.config && process.config.variables && process.config.variables.shlib_suffix === 'dll.a') || (process.config && process.config.variables && process.config.variables.node_target_type === 'shared_library')) {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.win32-x64-gnu.node')
+ return __dbgOk('./codechat-editor-client.win32-x64-gnu.node', require('./codechat-editor-client.win32-x64-gnu.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-win32-x64-gnu')
+ const binding = require('codechat-editor-client-win32-x64-gnu')
+ const bindingPackageVersion = require('codechat-editor-client-win32-x64-gnu/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-win32-x64-gnu', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.win32-x64-msvc.node')
+ return __dbgOk('./codechat-editor-client.win32-x64-msvc.node', require('./codechat-editor-client.win32-x64-msvc.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-win32-x64-msvc')
+ const binding = require('codechat-editor-client-win32-x64-msvc')
+ const bindingPackageVersion = require('codechat-editor-client-win32-x64-msvc/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-win32-x64-msvc', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'ia32') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.win32-ia32-msvc.node')
+ return __dbgOk('./codechat-editor-client.win32-ia32-msvc.node', require('./codechat-editor-client.win32-ia32-msvc.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-win32-ia32-msvc')
+ const binding = require('codechat-editor-client-win32-ia32-msvc')
+ const bindingPackageVersion = require('codechat-editor-client-win32-ia32-msvc/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-win32-ia32-msvc', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm64') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.win32-arm64-msvc.node')
+ return __dbgOk('./codechat-editor-client.win32-arm64-msvc.node', require('./codechat-editor-client.win32-arm64-msvc.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-win32-arm64-msvc')
+ const binding = require('codechat-editor-client-win32-arm64-msvc')
+ const bindingPackageVersion = require('codechat-editor-client-win32-arm64-msvc/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-win32-arm64-msvc', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
+ }
+ } else if (process.platform === 'darwin') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.darwin-universal.node')
+ return __dbgOk('./codechat-editor-client.darwin-universal.node', require('./codechat-editor-client.darwin-universal.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-darwin-universal')
+ const binding = require('codechat-editor-client-darwin-universal')
+ const bindingPackageVersion = require('codechat-editor-client-darwin-universal/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-darwin-universal', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ if (process.arch === 'x64') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.darwin-x64.node')
+ return __dbgOk('./codechat-editor-client.darwin-x64.node', require('./codechat-editor-client.darwin-x64.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-darwin-x64')
+ const binding = require('codechat-editor-client-darwin-x64')
+ const bindingPackageVersion = require('codechat-editor-client-darwin-x64/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-darwin-x64', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm64') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.darwin-arm64.node')
+ return __dbgOk('./codechat-editor-client.darwin-arm64.node', require('./codechat-editor-client.darwin-arm64.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-darwin-arm64')
+ const binding = require('codechat-editor-client-darwin-arm64')
+ const bindingPackageVersion = require('codechat-editor-client-darwin-arm64/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-darwin-arm64', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
+ }
+ } else if (process.platform === 'freebsd') {
+ if (process.arch === 'x64') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.freebsd-x64.node')
+ return __dbgOk('./codechat-editor-client.freebsd-x64.node', require('./codechat-editor-client.freebsd-x64.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-freebsd-x64')
+ const binding = require('codechat-editor-client-freebsd-x64')
+ const bindingPackageVersion = require('codechat-editor-client-freebsd-x64/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-freebsd-x64', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm64') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.freebsd-arm64.node')
+ return __dbgOk('./codechat-editor-client.freebsd-arm64.node', require('./codechat-editor-client.freebsd-arm64.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-freebsd-arm64')
+ const binding = require('codechat-editor-client-freebsd-arm64')
+ const bindingPackageVersion = require('codechat-editor-client-freebsd-arm64/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-freebsd-arm64', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
+ }
+ } else if (process.platform === 'linux') {
+ if (process.arch === 'x64') {
+ if (isMusl()) {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-x64-musl.node')
+ return __dbgOk('./codechat-editor-client.linux-x64-musl.node', require('./codechat-editor-client.linux-x64-musl.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-x64-musl')
+ const binding = require('codechat-editor-client-linux-x64-musl')
+ const bindingPackageVersion = require('codechat-editor-client-linux-x64-musl/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-x64-musl', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-x64-gnu.node')
+ return __dbgOk('./codechat-editor-client.linux-x64-gnu.node', require('./codechat-editor-client.linux-x64-gnu.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-x64-gnu')
+ const binding = require('codechat-editor-client-linux-x64-gnu')
+ const bindingPackageVersion = require('codechat-editor-client-linux-x64-gnu/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-x64-gnu', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'arm64') {
+ if (isMusl()) {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-arm64-musl.node')
+ return __dbgOk('./codechat-editor-client.linux-arm64-musl.node', require('./codechat-editor-client.linux-arm64-musl.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-arm64-musl')
+ const binding = require('codechat-editor-client-linux-arm64-musl')
+ const bindingPackageVersion = require('codechat-editor-client-linux-arm64-musl/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-arm64-musl', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-arm64-gnu.node')
+ return __dbgOk('./codechat-editor-client.linux-arm64-gnu.node', require('./codechat-editor-client.linux-arm64-gnu.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-arm64-gnu')
+ const binding = require('codechat-editor-client-linux-arm64-gnu')
+ const bindingPackageVersion = require('codechat-editor-client-linux-arm64-gnu/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-arm64-gnu', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'arm') {
+ if (isMusl()) {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-arm-musleabihf.node')
+ return __dbgOk('./codechat-editor-client.linux-arm-musleabihf.node', require('./codechat-editor-client.linux-arm-musleabihf.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-arm-musleabihf')
+ const binding = require('codechat-editor-client-linux-arm-musleabihf')
+ const bindingPackageVersion = require('codechat-editor-client-linux-arm-musleabihf/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-arm-musleabihf', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-arm-gnueabihf.node')
+ return __dbgOk('./codechat-editor-client.linux-arm-gnueabihf.node', require('./codechat-editor-client.linux-arm-gnueabihf.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-arm-gnueabihf')
+ const binding = require('codechat-editor-client-linux-arm-gnueabihf')
+ const bindingPackageVersion = require('codechat-editor-client-linux-arm-gnueabihf/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-arm-gnueabihf', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'loong64') {
+ if (isMusl()) {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-loong64-musl.node')
+ return __dbgOk('./codechat-editor-client.linux-loong64-musl.node', require('./codechat-editor-client.linux-loong64-musl.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-loong64-musl')
+ const binding = require('codechat-editor-client-linux-loong64-musl')
+ const bindingPackageVersion = require('codechat-editor-client-linux-loong64-musl/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-loong64-musl', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-loong64-gnu.node')
+ return __dbgOk('./codechat-editor-client.linux-loong64-gnu.node', require('./codechat-editor-client.linux-loong64-gnu.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-loong64-gnu')
+ const binding = require('codechat-editor-client-linux-loong64-gnu')
+ const bindingPackageVersion = require('codechat-editor-client-linux-loong64-gnu/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-loong64-gnu', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'riscv64') {
+ if (isMusl()) {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-riscv64-musl.node')
+ return __dbgOk('./codechat-editor-client.linux-riscv64-musl.node', require('./codechat-editor-client.linux-riscv64-musl.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-riscv64-musl')
+ const binding = require('codechat-editor-client-linux-riscv64-musl')
+ const bindingPackageVersion = require('codechat-editor-client-linux-riscv64-musl/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-riscv64-musl', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-riscv64-gnu.node')
+ return __dbgOk('./codechat-editor-client.linux-riscv64-gnu.node', require('./codechat-editor-client.linux-riscv64-gnu.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-riscv64-gnu')
+ const binding = require('codechat-editor-client-linux-riscv64-gnu')
+ const bindingPackageVersion = require('codechat-editor-client-linux-riscv64-gnu/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-riscv64-gnu', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'ppc64') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-ppc64-gnu.node')
+ return __dbgOk('./codechat-editor-client.linux-ppc64-gnu.node', require('./codechat-editor-client.linux-ppc64-gnu.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-ppc64-gnu')
+ const binding = require('codechat-editor-client-linux-ppc64-gnu')
+ const bindingPackageVersion = require('codechat-editor-client-linux-ppc64-gnu/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-ppc64-gnu', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 's390x') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.linux-s390x-gnu.node')
+ return __dbgOk('./codechat-editor-client.linux-s390x-gnu.node', require('./codechat-editor-client.linux-s390x-gnu.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-linux-s390x-gnu')
+ const binding = require('codechat-editor-client-linux-s390x-gnu')
+ const bindingPackageVersion = require('codechat-editor-client-linux-s390x-gnu/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-linux-s390x-gnu', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
+ }
+ } else if (process.platform === 'openharmony') {
+ if (process.arch === 'arm64') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.openharmony-arm64.node')
+ return __dbgOk('./codechat-editor-client.openharmony-arm64.node', require('./codechat-editor-client.openharmony-arm64.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-openharmony-arm64')
+ const binding = require('codechat-editor-client-openharmony-arm64')
+ const bindingPackageVersion = require('codechat-editor-client-openharmony-arm64/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-openharmony-arm64', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'x64') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.openharmony-x64.node')
+ return __dbgOk('./codechat-editor-client.openharmony-x64.node', require('./codechat-editor-client.openharmony-x64.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-openharmony-x64')
+ const binding = require('codechat-editor-client-openharmony-x64')
+ const bindingPackageVersion = require('codechat-editor-client-openharmony-x64/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-openharmony-x64', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm') {
+ try {
+ __dbgAttempt('local artifact', './codechat-editor-client.openharmony-arm.node')
+ return __dbgOk('./codechat-editor-client.openharmony-arm.node', require('./codechat-editor-client.openharmony-arm.node'))
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ __dbgAttempt('optional dependency package', 'codechat-editor-client-openharmony-arm')
+ const binding = require('codechat-editor-client-openharmony-arm')
+ const bindingPackageVersion = require('codechat-editor-client-openharmony-arm/package.json').version
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ return __dbgOk('codechat-editor-client-openharmony-arm', binding)
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
+ }
+}
+
+function createLoadErrorChain(errors) {
+ return errors.reduce((previous, current) => {
+ let message
+ try {
+ message =
+ current && typeof current.message === 'string'
+ ? current.message
+ : String(current)
+ } catch {
+ message = 'Unknown error'
+ }
+ const error = new Error(message)
+ error.cause = previous
+ return error
+ }, null)
+}
+
+// NAPI_RS_FORCE_WASI is a tri-state flag:
+// unset / any other value → native binding preferred, WASI is only a fallback
+// 'true' → prefer WASI, but retain native as a lazy fallback
+// 'error' → require WASI without initializing a native fallback
+// Treating any non-empty string as truthy (the historical behavior) meant
+// NAPI_RS_FORCE_WASI=false, NAPI_RS_FORCE_WASI=0, etc. inadvertently triggered
+// the WASI path, causing ENOENT for packages shipped without a .wasi.cjs file.
+//
+// NAPI_RS_WASI_FLAVOR selects one exact generated flavor and implies strict
+// WASI loading. It never crosses into another flavor or falls back to native.
+const __napiWasiFlavors = ['wasm32-wasi']
+const __napiWasiFlavor = process.env.NAPI_RS_WASI_FLAVOR
+const __napiWasiFlavorRequested =
+ typeof __napiWasiFlavor === 'string' && __napiWasiFlavor.length > 0
+if (
+ __napiWasiFlavorRequested &&
+ __napiWasiFlavors.indexOf(__napiWasiFlavor) === -1
+) {
+ throw new Error(
+ 'Unsupported WASI flavor "' +
+ __napiWasiFlavor +
+ '". Available flavors: ' +
+ __napiWasiFlavors.join(', '),
+ )
+}
+const forceWasiError = process.env.NAPI_RS_FORCE_WASI === 'error'
+const forceWasi =
+ process.env.NAPI_RS_FORCE_WASI === 'true' ||
+ forceWasiError ||
+ __napiWasiFlavorRequested
+
+__dbg(
+ `WASI selection: forceWasi=${forceWasi} forceWasiError=${forceWasiError} flavorRequested=${__napiWasiFlavorRequested} flavor=${__napiWasiFlavor || ''}`,
+)
+if (!forceWasi) {
+ nativeBinding = requireNative()
+ __dbg(`requireNative() returned ${nativeBinding ? 'a binding' : 'nothing'}`)
+} else {
+ __dbg('skipping the native chain: WASI was forced')
+}
+
+if (!nativeBinding || forceWasi) {
+ __dbg('entering the WASI fallback chain')
+ let wasiBinding = null
+ let wasiBindingLoaded = false
+ const wasiBindingErrors = __dbgTracedArray('wasiBindingErrors')
+ const __napiWasiResolveCandidate = (specifier, isPackage, localArtifacts) => {
+ try {
+ require.resolve(specifier)
+ } catch (resolveError) {
+ if (!resolveError || resolveError.code !== 'MODULE_NOT_FOUND') {
+ throw resolveError
+ }
+ if (isPackage) {
+ try {
+ require.resolve(specifier + '/package.json')
+ } catch (packageError) {
+ if (packageError && packageError.code === 'MODULE_NOT_FOUND') {
+ return resolveError
+ }
+ // An exports restriction proves the package exists even when its
+ // package.json is not public. Preserve the root resolution failure.
+ throw resolveError
+ }
+ // The package exists but its main/export target is broken.
+ throw resolveError
+ }
+ return resolveError
+ }
+ if (localArtifacts) {
+ let artifactError = null
+ for (let i = 0; i < localArtifacts.length; i++) {
+ try {
+ require.resolve(localArtifacts[i])
+ return null
+ } catch (resolveError) {
+ if (!resolveError || resolveError.code !== 'MODULE_NOT_FOUND') {
+ throw resolveError
+ }
+ artifactError = resolveError
+ }
+ }
+ return artifactError
+ }
+ return null
+ }
+ if (!wasiBindingLoaded && (!__napiWasiFlavorRequested || __napiWasiFlavor === 'wasm32-wasi')) {
+ let candidateError = null
+ let candidateFailed = false
+ try {
+ candidateError = __napiWasiResolveCandidate('./codechat-editor-client.wasi.cjs', false, ['./codechat-editor-client.wasm32-wasi.debug.wasm', './codechat-editor-client.wasm32-wasi.wasm'])
+ candidateFailed = candidateError !== null
+ if (!candidateFailed) {
+ __dbgAttempt('WASI local artifact', './codechat-editor-client.wasi.cjs')
+ wasiBinding = __dbgOk(
+ './codechat-editor-client.wasi.cjs',
+ require('./codechat-editor-client.wasi.cjs'),
+ )
+ nativeBinding = wasiBinding
+ __napiLoadedBindingTarget = 'wasm32-wasi'
+ wasiBindingLoaded = true
+ }
+ } catch (err) {
+ candidateError = err
+ candidateFailed = true
+ }
+ if (candidateFailed) {
+ wasiBindingErrors.push(candidateError)
+ loadErrors.push(candidateError)
+ }
+ }
+ if (!wasiBindingLoaded && (!__napiWasiFlavorRequested || __napiWasiFlavor === 'wasm32-wasi')) {
+ let candidateError = null
+ let candidateFailed = false
+ try {
+ candidateError = __napiWasiResolveCandidate('codechat-editor-client-wasm32-wasi', true, undefined)
+ candidateFailed = candidateError !== null
+ if (!candidateFailed) {
+ if (process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
+ const bindingPackageVersion = require('codechat-editor-client-wasm32-wasi/package.json').version
+ if (bindingPackageVersion !== '0.2.5') {
+ throw new Error(`WASI binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
+ }
+ }
+ __dbgAttempt('WASI package', 'codechat-editor-client-wasm32-wasi')
+ wasiBinding = __dbgOk(
+ 'codechat-editor-client-wasm32-wasi',
+ require('codechat-editor-client-wasm32-wasi'),
+ )
+ nativeBinding = wasiBinding
+ __napiLoadedBindingTarget = 'wasm32-wasi'
+ wasiBindingLoaded = true
+ }
+ } catch (err) {
+ candidateError = err
+ candidateFailed = true
+ }
+ if (candidateFailed) {
+ wasiBindingErrors.push(candidateError)
+ loadErrors.push(candidateError)
+ }
+ }
+ if (
+ !wasiBindingLoaded &&
+ forceWasi &&
+ !forceWasiError &&
+ !__napiWasiFlavorRequested
+ ) {
+ __dbg('WASI was preferred but not found; retrying the native chain')
+ nativeBinding = requireNative()
+ }
+ if ((forceWasiError || __napiWasiFlavorRequested) && !wasiBindingLoaded) {
+ const error = new Error(
+ __napiWasiFlavorRequested
+ ? 'WASI binding for flavor "' + __napiWasiFlavor + '" not found'
+ : 'WASI binding not found and NAPI_RS_FORCE_WASI is set to error',
+ )
+ __dbgChain('WASI load failed', wasiBindingErrors)
+ __dbg(`THROWING: ${error.message}`)
+ error.cause = createLoadErrorChain(wasiBindingErrors)
+ throw error
+ }
+}
+
+__dbg(
+ `binding resolution finished: ${nativeBinding ? 'SUCCESS' : 'FAILURE'}, target=${__napiLoadedBindingTarget}`,
+)
+if (!nativeBinding) {
+ if (loadErrors.length > 0) {
+ const error = new Error(
+ `Cannot find native binding. ` +
+ `npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
+ 'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
+ )
+ // assign instead of the `new Error(message, { cause })` options form,
+ // which Node < 16.9 silently ignores
+ __dbgChain('every load attempt failed', loadErrors)
+ __dbg(`THROWING: ${error.message}`)
+ error.cause = createLoadErrorChain(loadErrors)
+ throw error
+ }
+ __dbg('THROWING: Failed to load native binding, with no attempt recorded')
+ throw new Error(`Failed to load native binding`)
+}
+
+function __napiStampBindingTarget(exportsObject, target) {
+ if (
+ Object.prototype.hasOwnProperty.call(exportsObject, '__napiBindingTarget')
+ ) {
+ if (exportsObject.__napiBindingTarget === target) {
+ // Already ours: the root entry aliases the object it loaded, so a WASI
+ // fallback candidate — or a `NAPI_RS_NATIVE_LIBRARY_PATH` override that
+ // is a generated loader — arrives already stamped with this same value.
+ return target
+ }
+ const error = new Error(
+ '`__napiBindingTarget` is reserved by the generated binding loader, but the loaded binding already exports it. Rename the export, e.g. #[napi(js_name = "...")].',
+ )
+ error.code = 'ERR_NAPI_BINDING_TARGET_CONFLICT'
+ throw error
+ }
+ if (!Object.isExtensible(exportsObject)) {
+ // A `#[napi(module_exports)]` hook may seal or freeze this object
+ // (`Object::seal` / `Object::freeze`). Reporting the artifact is metadata,
+ // never a reason to fail an otherwise successful load, so the stamp is
+ // skipped. What a consumer still sees then follows the entry point: the
+ // browser and deferred loaders declare `__napiBindingTarget` at module
+ // level and go on reporting it, while the CommonJS entries hand back this
+ // very object as `module.exports`, so there the value is absent.
+ return target
+ }
+ try {
+ // [[Define]], not [[Set]]: an ordinary assignment walks the prototype
+ // chain, so an inherited accessor could swallow the value or throw and
+ // fail an otherwise successful load. The descriptor is what a successful
+ // assignment would have produced.
+ Object.defineProperty(exportsObject, '__napiBindingTarget', {
+ configurable: true,
+ enumerable: true,
+ value: target,
+ writable: true,
+ })
+ } catch {
+ // Same rule as the non-extensible skip above: reporting the artifact is
+ // metadata, never a reason to fail an otherwise successful load. An exotic
+ // object (a Proxy whose defineProperty trap refuses) is skipped, not
+ // thrown over.
+ }
+ // The CommonJS loaders assign this return value so `cjs-module-lexer` — and
+ // therefore Node's CJS -> ESM named export detection — can see
+ // `__napiBindingTarget` statically.
+ return target
+}
+// Stamp before the alias, not after. The guard only reads `nativeBinding`
+// (`hasOwnProperty` plus a comparison), which is safe against any addon
+// accessor; an assignment is not, because a `#[napi(module_exports)]` hook can
+// expose a getter reporting this very value and a setter that throws. So the
+// assignment lands on the loader's own `module.exports`, still the original
+// object here, and the alias below replaces it.
+//
+// The assignment is what keeps the marker a statically visible CommonJS export:
+// `cjs-module-lexer` is Node's CJS -> ESM named export detection, it cannot see
+// a bare call, and the later `module.exports = nativeBinding` does not undo the
+// detection. The assignment itself always succeeds — its target is this
+// loader's own, still extensible `module.exports` — and the alias below then
+// discards the value it wrote. What a consumer reads is whatever the guard put
+// on `nativeBinding`, so on a frozen binding, where the guard skips, the
+// linked import resolves to `undefined`.
+module.exports.__napiBindingTarget = __napiStampBindingTarget(nativeBinding, __napiLoadedBindingTarget)
+module.exports = nativeBinding
+module.exports.CodeChatEditorServer = nativeBinding.CodeChatEditorServer
+module.exports.initServer = nativeBinding.initServer
+
+__dbg(
+ `exports check: CodeChatEditorServer=${typeof nativeBinding.CodeChatEditorServer} initServer=${typeof nativeBinding.initServer}`,
+)
+__dbg('==== binding load finished ====')
diff --git a/server/src/processing.rs b/server/src/processing.rs
index 4b4f3b33..be899c5e 100644
--- a/server/src/processing.rs
+++ b/server/src/processing.rs
@@ -2340,7 +2340,9 @@ fn hydrating_walk_node(node: &Rc, mut walk_context: WalkContext) -> io::Re
id: id.clone(),
line: 0,
doc_block_start_index: walk_context.doc_block_index,
- code_doc_block_end_index: walk_context.doc_block_index + following,
+ code_doc_block_end_index: walk_context
+ .doc_block_index
+ .saturating_add(following),
});
}
walk_context.fragments.push(FragmentHydration {
diff --git a/server/src/processing/cache-spec.md b/server/src/processing/cache-spec.md
new file mode 100644
index 00000000..0906ea59
--- /dev/null
+++ b/server/src/processing/cache-spec.md
@@ -0,0 +1,285 @@
+Cache spec
+==========
+
+The cache stores the location (file name and ID) and contents (inner HTML or
+code/doc blocks for fragments) of a target. Targets are HTML elements (excluding
+``s) with an ID.
+
+The goal of the cache is to support cross-references and gather elements, and to
+ensure that all IDs are unique within a project. This means that
+cross-references and gather elements persist across moving or renaming files,
+since the IDs will be found in the cache.
+
+Non-project files support a subset of this functionality: the "project" consists
+only of the current file. Only targets, gather elements, cross-references, and
+fragments to items within the file work as expected; references to other files
+do not.
+
+The cache reflects data read directly from disk/IDE; content edited in the
+Client does not update the cache until it's written to disk/IDE, at which point
+the cache much re-process this unknown file. Since the Client is designed around
+an autosave principle which updates disk/IDE regularly, there's little gap
+between the two.
+
+The cache hydrates data to the Client; the dehydration routes are responsible
+for removing all cache hydration artifacts.
+
+Cross references
+----------------
+
+A `` is a cross reference to a `Target` or a gather
+element. The `id` specifies the destination; the cache then hydrates the
+contents based on the location and contents of the target of the provided `id`
+to e.g. `Inner HTML from target`; this hydrated form
+is only present in the Client.
+
+Details:
+
+* This element does not allow an `id` attribute.
+
+* The inner HTML is always taken before cache hydration, to prevent circular
+ dependencies:
+
+ ```html
+ See
+
+ See
+
+ ```
+
+ Including cache hydration would cause the inner HTML to be updated each time
+ the file is processed, outdating the other file.
+
+* If the `id` referred to isn't found or refers to a duplicate id, the inner
+ text is instead an appropriate error message.
+
+* If the cross reference is to a gather element, the text is the gather
+ element's inner HTML, not the gathered code/doc blocks.
+
+Fragments and gather elements
+-----------------------------
+
+A gather element such as `Bazzy
+things
` is a `Target` with the `data-gather` attribute. It becomes a list
+of the contents of fragments it refers to after hydration by the cache. An
+example fragment tag, after cache hydration: `See Bazzy things, Zappy things`. A fragment's
+content by default includes the contents of the current doc block and the
+contents of the following code/doc block; fragments are not allowed in Markdown
+documents (in the case, the fragment contents consist of an error message).
+Fragments may include the `following` attribute to enclose a specific number of
+the following code/doc blocks; for example, `` includes the current doc block along with the next 3
+code/doc blocks; `following` must be a whole number.
+
+Details:
+
+* Fragment contents may not include a gather element; in this case, the gather
+ element list of contents will simply include an error message.
+* Fragments do support indirection: gather element A includes contents from
+ fragment B, which contains a cross reference to target C. Changes to target C
+ makes B and A outdated.
+* If a gather element refers to an `id` that is a `Target` or a `GatherElement`,
+ not a `Fragment`, the resulting output for this in the list of fragments is an
+ error message.
+* If a gather element refers to an `id` that wasn't found or is a duplicate, its
+ contents will be replaced by an error message.
+* Fragments store an HTML rendering of the code and doc blocks they contain,
+ excluding the content produced by hydrating the `` tags, to avoid
+ duplication and circular dependencies. See layer 4 under `Design`: this
+ exclusion is what keeps a gather element and the fragments it lists from
+ outdating each other forever. The HTML rendering of a fragment reproduces the
+ layout of the source it came from: each doc block includes its indent, each
+ line of a code block is preceded by that line's number, and the two are
+ aligned -- a doc block and a line of code indented equally in the source begin
+ in the same column, with the line numbers in a gutter of their own to the left
+ of both.
+* The backlinks a `` hydrates to are derived from the gather elements
+ which list it: for each such element, its containing file, its `id`, and its
+ inner HTML (the link text). A fragment's rendered output therefore depends on
+ the gather elements which reference it -- the reverse of the direction in
+ which references are written; see `Design`.
+* A `` is valid; it contains only the current doc block.
+* The `following` attribute is clamped if it would exceed the number of code/doc
+ blocks in the document.
+* If the `following` value cannot be parsed to a whole number, an error message
+ replaces the fragment content.
+* A gather element, as a type of `Target`, requires an `id`. A `data-gather`
+ attribute on an element without an `id` produces an error message which
+ requests the missing `id`.
+* All ids must be valid
+ [CSS identifiers](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/es/ident)
+ per
+ [MDN recommendations](https://developer.mozilla.org/en-US/docs/Web/HTML/rence/Global_attributes/id).
+ Invalid ids produce error messages in the hydrated tag content.
+
+Example hydration of the gather tag `Bazzy
+things
`:
+
+```html
+Bazzy things
+
+```
+
+Search
+------
+
+The cache supports searching the (cleaned) inner HTML of all `Target`s and
+gather elements; search does not include `Fragment` contents.
+
+### Auto-assignment of ids
+
+If `id="*"` on either a fragment, target, or gather element, the cache replaces
+this with an random autogenerated `id` placed in the resulting HTML contents,
+but this new `id` is not yet recorded in the cache. The file is then marked as
+`Unknown` when it is saved; when re-read, this `id` is then incorporated into
+the cache. This helps avoid cases where the cache and file contents become
+unsynchronized: if the `id` is placed in the cache before the write and the
+write fails, or if the file is never written (it was being scanned, but not
+actively edited, so the file contents wasn't written back).
+
+The autogenerated id must be a valid
+[CSS identifier](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/es/ident).
+Autogenerated ids must be checked to make sure they don't collide with an
+existing id.
+
+Design
+------
+
+The cache is a single plain-data structure, shared as an `Arc>`;
+all consistency comes from that one lock, so no per-item locking (and therefore
+no lock ordering) is needed. Items refer to each other by key -- files by path,
+targets and fragments by id -- rather than by `Arc`/`Weak` pointers. This keeps
+the structure acyclic, `Send`, and (in the future) serializable, and avoids
+garbage-collecting stale weak references.
+
+Cached state always converges by design. Each layer depends only on
+lower-numbered layers:
+
+1. `Target::inner_html` (including a gather element's) and `Target::gather_ids`
+ are pure functions of the source (pre-hydration) -- they depend on nothing.
+2. `` hydration depends on layer 1 only.
+3. `Fragment::content` depends on the source plus layer 2.
+4. `` backlink hydration depends on layer 1 only: it renders, for each
+ gather element which lists this fragment, that element's containing file,
+ `id`, and inner HTML. Critically, this output is *excluded* from
+ `Fragment::content` (layer 3); were it included, a gather element and each
+ fragment it lists would outdate one another forever.
+5. Gather-list hydration depends on layers 1 and 3.
+
+Nothing reads layers 2, 4, or 5, so propagation terminates.
+
+Updating the cache is a two-phase process:
+
+1. Collect: while walking a file's DOM, record all cacheable facts
+ (`FileFacts`) -- targets, cross-references, fragments, and gather elements --
+ without touching the cache. This keeps the non-`Send` DOM types out of the
+ cache and off its critical section. Fact collection ignores content expanded
+ by the cache (the contents of `xref` and `fragment` tags; the content
+ following a gather tag).
+2. Commit: `Cache::commit_file` applies the facts in one transaction, diffing
+ them against the file's previous state to compute the set of files outdated
+ by these changes.
+
+Item 2 requires the cache to track dependencies of an item, so that files
+containing these dependencies can be Outdated. Dependencies are tracked at file
+granularity, on the id rather than on the item defining it:
+`IdEntry::dependents` is the set of files whose rendered output depends on this
+id, by any means -- an `` or a `data-gather` list naming it. One
+uniform set suffices in all three `IdState`s because the typical action taken on
+a dependent is marking its containing file outdated (fragments also used their
+dependents to generate "See x" links).
+
+Item 2 also requires the cache to define what constitutes a difference which
+would trigger outdating dependencies. The state which is checked for differences
+is:
+
+* Target/gather element: type (a target/gather element), path of the containing
+ file, id, IdState, inner HTML, and gather\_ids.
+* Fragment: type (a fragment), path of the containing file, id, IdState, and
+ contents.
+
+This also makes indirection (gather A includes fragment B, whose content
+cross-references target C) work without extra machinery: a change to C outdates
+B's file; reprocessing B's file changes B's content, which outdates A's file.
+
+### Gather elements: the reverse edge
+
+`dependents` alone is not enough for gather elements, because the reference runs
+in both directions: a gather element renders the *contents* of each fragment it
+lists, and each of those fragments renders a *backlink* to the gather element
+(see layer 4 above). The set of gather elements referencing a fragment is
+therefore not merely bookkeeping -- it is observable output in the fragment's
+own file.
+
+This is why the outgoing references of gather elements cannot be maintained by
+the unlink-all/relink-all round trip used for cross-references (see
+`commit_file`): that round trip destroys the very information a diff would need.
+`commit_file` instead diffs `Target::gather_ids` explicitly, and applies this
+rule:
+
+> When a gather element `G` is committed, outdate the file defining each id in
+> the symmetric difference of `G`'s old and new `gather_ids`; if `G`'s inner
+> HTML also changed, outdate the file defining each id in the union instead,
+> since the backlink text those fragments render comes from it.
+
+A gather element moving to a different file needs no special case: the old
+file's commit sees the element deleted (new `gather_ids` empty) and the new
+file's commit sees it added, so both ends of the move outdate the fragments.
+
+Propagation terminates here for the reason given under layer 4: rebuilding a
+fragment's file updates its backlinks, but backlinks are excluded from
+`Fragment::content`, so nothing further is outdated.
+
+An id referenced before (or without) being defined has an `IdEntry` whose state
+is `IdState::Missing`; `dependents` holds the files waiting on it. When the id
+later appears, the state transition marks those files outdated, and they simply
+remain dependents; when a defined id disappears, the state returns to `Missing`
+and the dependents are again waiters. An `IdEntry` which is `Missing` with no
+dependents carries no information and is removed.
+
+Duplicate ids are never renamed (file timestamps can't reliably identify the
+original, and renaming would silently modify user content). Instead, duplicates
+are reported as errors to the user.
+
+### Misc
+
+All file names (stored as `PathBuf`) must be canonicalized absolute paths.
+
+HTML stored as `Target` inner HTML or in `Fragment` contents requires cleaning:
+
+* To avoid duplicate IDs, all `id` attributes should be stripped.
+* Note that images, URLs, etc. may not work if the referring path in their new
+ location isn't valid; these simply aren't supported.
+* Inner HTML must allow only the
+ [permitted content for an `` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a#technical_summary).
+
+Watcher and walker
+------------------
+
+Need a watcher/walker (WW). Each time a project is found, the code must ask for
+the cache for this project path. The WW maintains a connection id -> project
+path mapping. If the current request doesn't change the mapping, simply return
+the existing cache. If the mapping changes, then update the WW thingy. The map
+must also be updated when a connection is closed (to remove an existing
+mapping).
+
+The WW thingy is another map from project path -> (cache, vec of project paths
+that are contained with this path, including the same path \[when multiple
+connections edit the same project\]). Operations:
+
+* Insert: to insert a new project path, walk all existing top-level project
+ paths. If the new project path is contained within any of these, add it to the
+ appropriate list. Otherwise, add a new entry.
+* Delete: find the path my looking fir
diff --git a/server/src/processing/cache.rs b/server/src/processing/cache.rs
index ddfc917d..d2847df2 100644
--- a/server/src/processing/cache.rs
+++ b/server/src/processing/cache.rs
@@ -21,275 +21,7 @@
//! `cache.rs` -- Keep a cache used to store all targets in a project
//! =================================================================
//!
-//! The cache stores the location (file name and ID) and contents (inner HTML or
-//! code/doc blocks for fragments) of a target. Targets are HTML elements
-//! (excluding ``s) with an ID.
-//!
-//! The goal of the cache is to support cross-references and gather elements,
-//! and to ensure that all IDs are unique within a project. This means that
-//! cross-references and gather elements persist across moving or renaming
-//! files, since the IDs will be found in the cache.
-//!
-//! Non-project files support a subset of this functionality: the "project"
-//! consists only of the current file. Only targets, gather elements,
-//! cross-references, and fragments to items within the file work as expected;
-//! references to other files do not.
-//!
-//! The cache reflects data read directly from disk/IDE; content edited in the
-//! Client does not update the cache until it's written to disk/IDE, at which
-//! point the cache much re-process this unknown file. Since the Client is
-//! designed around an autosave principle which updates disk/IDE regularly,
-//! there's little gap between the two.
-//!
-//! The cache hydrates data to the Client; the dehydration routes are
-//! responsible for removing all cache hydration artifacts.
-//!
-//! Cross references
-//! ----------------
-//!
-//! A `` is a cross reference to a `Target` or a gather
-//! element. The `id` specifies the destination; the cache then hydrates the
-//! contents based on the location and contents of the target of the provided
-//! `id` to e.g. `Inner HTML from target`; this hydrated
-//! form is only present in the Client.
-//!
-//! Details:
-//!
-//! * This element does not allow an `id` attribute.
-//!
-//! * The inner HTML is always taken before cache hydration, to prevent circular
-//! dependencies:
-//!
-//! ```html
-//! See
-//! See
-//! ```
-//!
-//! Including cache hydration would cause the inner HTML to be updated each
-//! time the file is processed, outdating the other file.
-//!
-//! * If the `id` referred to isn't found or refers to a duplicate id, the inner
-//! text is instead an appropriate error message.
-//!
-//! * If the cross reference is to a gather element, the text is the gather
-//! element's inner HTML, not the gathered code/doc blocks.
-//!
-//! Fragments and gather elements
-//! -----------------------------
-//!
-//! A gather element such as `Bazzy
-//! things
` is a `Target` with the `data-gather` attribute. It becomes a
-//! list of the contents of fragments it refers to after hydration by the cache.
-//! An example fragment tag, after cache hydration: `See Bazzy things,
-//! Zappy things`. A
-//! fragment's content by default includes the contents of the current doc block
-//! and the contents of the following code/doc block; fragments are not allowed
-//! in Markdown documents (in the case, the fragment contents consist of an
-//! error message). Fragments may include the `following` attribute to enclose a
-//! specific number of the following code/doc blocks; for example, `` includes the current doc block along
-//! with the next 3 code/doc blocks; `following` must be a whole number.
-//!
-//! Details:
-//!
-//! * Fragment contents may not include a gather element; in this case, the
-//! gather element list of contents will simply include an error message.
-//! * Fragments do support indirection: gather element A includes contents from
-//! fragment B, which contains a cross reference to target C. Changes to
-//! target C makes B and A outdated.
-//! * If a gather element refers to an `id` that is a `Target` or a
-//! `GatherElement`, not a `Fragment`, the resulting output for this in the
-//! list of fragments is an error message.
-//! * If a gather element refers to an `id` that wasn't found or is a duplicate,
-//! its contents will be replaced by an error message.
-//! * Fragments store an HTML rendering of the code and doc blocks they contain,
-//! excluding the content produced by hydrating the `` tags, to
-//! avoid duplication and circular dependencies. See layer 4 under `Design`:
-//! this exclusion is what keeps a gather element and the fragments it lists
-//! from outdating each other forever. The HTML rendering of a fragment
-//! reproduces the layout of the source it came from: each doc block includes
-//! its indent, each line of a code block is preceded by that line's number,
-//! and the two are aligned -- a doc block and a line of code indented
-//! equally in the source begin in the same column, with the line numbers in
-//! a gutter of their own to the left of both.
-//! * The backlinks a `` hydrates to are derived from the gather
-//! elements which list it: for each such element, its containing file, its
-//! `id`, and its inner HTML (the link text). A fragment's rendered output
-//! therefore depends on the gather elements which reference it -- the reverse
-//! of the direction in which references are written; see `Design`.
-//! * A `` is valid; it contains only the current doc
-//! block.
-//! * The `following` attribute is clamped if it would exceed the number of
-//! code/doc blocks in the document.
-//! * If the `following` value cannot be parsed to a whole number, an error
-//! message replaces the fragment content.
-//! * A gather element, as a type of `Target`, requires an `id`. A `data-gather`
-//! attribute on an element without an `id` produces an error message which
-//! requests the missing `id`.
-//! * All ids must be valid
-//! [CSS identifiers](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/ident)
-//! per
-//! [MDN recommendations](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/id).
-//! Invalid ids produce error messages in the hydrated tag content.
-//!
-//! Example hydration of the gather tag `Bazzy things
`:
-//!
-//! ```html
-//!
-//! Bazzy things
-//!
-//!
-//!
-//! From Path to file:
-//!
-//! (first item content)
-//! ...
-//!
-//! From Path to file:
-//!
-//! (last item content)
-//!
-//! ```
-//!
-//! Search
-//! ------
-//!
-//! The cache supports searching the (cleaned) inner HTML of all `Target`s and
-//! gather elements; search does not include `Fragment` contents.
-//!
-//! ### Auto-assignment of ids
-//!
-//! If `id="*"` on either a fragment, target, or gather element, the cache
-//! replaces this with an random autogenerated `id` placed in the resulting HTML
-//! contents, but this new `id` is not yet recorded in the cache. The file is
-//! then marked as `Unknown` when it is saved; when re-read, this `id` is then
-//! incorporated into the cache. This helps avoid cases where the cache and file
-//! contents become unsynchronized: if the `id` is placed in the cache before
-//! the write and the write fails, or if the file is never written (it was being
-//! scanned, but not actively edited, so the file contents wasn't written back).
-//!
-//! The autogenerated id must be a valid
-//! [CSS identifier](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/ident).
-//! Autogenerated ids must be checked to make sure they don't collide with an
-//! existing id.
-//!
-//! Design
-//! ------
-//!
-//! The cache is a single plain-data structure, shared as an
-//! `Arc>`; all consistency comes from that one lock, so no
-//! per-item locking (and therefore no lock ordering) is needed. Items refer to
-//! each other by key -- files by path, targets and fragments by id -- rather
-//! than by `Arc`/`Weak` pointers. This keeps the structure acyclic, `Send`, and
-//! (in the future) serializable, and avoids garbage-collecting stale weak
-//! references.
-//!
-//! Cached state always converges by design. Each layer depends only on
-//! lower-numbered layers:
-//!
-//! 1. `Target::inner_html` (including a gather element's) and
-//! `Target::gather_ids` are pure functions of the source (pre-hydration) --
-//! they depend on nothing.
-//! 2. `` hydration depends on layer 1 only.
-//! 3. `Fragment::content` depends on the source plus layer 2.
-//! 4. `` backlink hydration depends on layer 1 only: it renders, for
-//! each gather element which lists this fragment, that element's containing
-//! file, `id`, and inner HTML. Critically, this output is *excluded* from
-//! `Fragment::content` (layer 3); were it included, a gather element and
-//! each fragment it lists would outdate one another forever.
-//! 5. Gather-list hydration depends on layers 1 and 3.
-//!
-//! Nothing reads layers 2, 4, or 5, so propagation terminates.
-//!
-//! Updating the cache is a two-phase process:
-//!
-//! 1. Collect: while walking a file's DOM, record all cacheable facts
-//! (`FileFacts`) -- targets, cross-references, fragments, and gather
-//! elements -- without touching the cache. This keeps the non-`Send` DOM
-//! types out of the cache and off its critical section. Fact collection
-//! ignores content expanded by the cache (the contents of `xref` and
-//! `fragment` tags; the content following a gather tag).
-//! 2. Commit: `Cache::commit_file` applies the facts in one transaction,
-//! diffing them against the file's previous state to compute the set of
-//! files outdated by these changes.
-//!
-//! Item 2 requires the cache to track dependencies of an item, so that files
-//! containing these dependencies can be Outdated. Dependencies are tracked at
-//! file granularity, on the id rather than on the item defining it:
-//! `IdEntry::dependents` is the set of files whose rendered output depends on
-//! this id, by any means -- an `` or a `data-gather` list naming
-//! it. One uniform set suffices in all three `IdState`s because the typical
-//! action taken on a dependent is marking its containing file outdated
-//! (fragments also used their dependents to generate "See x" links).
-//!
-//! Item 2 also requires the cache to define what constitutes a difference which
-//! would trigger outdating dependencies. The state which is checked for
-//! differences is:
-//!
-//! * Target/gather element: type (a target/gather element), path of the
-//! containing file, id, IdState, inner HTML, and gather\_ids.
-//! * Fragment: type (a fragment), path of the containing file, id, IdState, and
-//! contents.
-//!
-//! This also makes indirection (gather A includes fragment B, whose content
-//! cross-references target C) work without extra machinery: a change to C
-//! outdates B's file; reprocessing B's file changes B's content, which outdates
-//! A's file.
-//!
-//! ### Gather elements: the reverse edge
-//!
-//! `dependents` alone is not enough for gather elements, because the reference
-//! runs in both directions: a gather element renders the *contents* of each
-//! fragment it lists, and each of those fragments renders a *backlink* to the
-//! gather element (see layer 4 above). The set of gather elements referencing a
-//! fragment is therefore not merely bookkeeping -- it is observable output in
-//! the fragment's own file.
-//!
-//! This is why the outgoing references of gather elements cannot be maintained
-//! by the unlink-all/relink-all round trip used for cross-references (see
-//! `commit_file`): that round trip destroys the very information a diff would
-//! need. `commit_file` instead diffs `Target::gather_ids` explicitly, and
-//! applies this rule:
-//!
-//! > When a gather element `G` is committed, outdate the file defining each id
-//! > in the symmetric difference of `G`'s old and new `gather_ids`; if `G`'s
-//! > inner HTML also changed, outdate the file defining each id in the union
-//! > instead, since the backlink text those fragments render comes from it.
-//!
-//! A gather element moving to a different file needs no special case: the old
-//! file's commit sees the element deleted (new `gather_ids` empty) and the new
-//! file's commit sees it added, so both ends of the move outdate the fragments.
-//!
-//! Propagation terminates here for the reason given under layer 4: rebuilding a
-//! fragment's file updates its backlinks, but backlinks are excluded from
-//! `Fragment::content`, so nothing further is outdated.
-//!
-//! An id referenced before (or without) being defined has an `IdEntry` whose
-//! state is `IdState::Missing`; `dependents` holds the files waiting on it.
-//! When the id later appears, the state transition marks those files outdated,
-//! and they simply remain dependents; when a defined id disappears, the state
-//! returns to `Missing` and the dependents are again waiters. An `IdEntry`
-//! which is `Missing` with no dependents carries no information and is removed.
-//!
-//! Duplicate ids are never renamed (file timestamps can't reliably identify the
-//! original, and renaming would silently modify user content). Instead,
-//! duplicates are reported as errors to the user.
-//!
-//! ### Misc
-//!
-//! All file names (stored as `PathBuf`) must be canonicalized absolute paths.
-//!
-//! HTML stored as `Target` inner HTML or in `Fragment` contents requires
-//! cleaning:
-//!
-//! * To avoid duplicate IDs, all `id` attributes should be stripped.
-//! * Note that images, URLs, etc. may not work if the referring path in their
-//! new location isn't valid; these simply aren't supported.
-//! * Inner HTML must allow only the
-//! [permitted content for an `` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a#technical_summary).
+//! See the [cache spec](cache-spec.md).
// Imports
// -------
//
@@ -827,9 +559,9 @@ impl Cache {
outcome
}
- /// Record that a file's cached content no longer reflects the file itself
- /// -- it's been written or modified since it was last processed -- which
- /// queues it in `pending_files` for reprocessing. This is how an id
+ /// Record that a file's cached content no longer reflects the file
+ /// itself -- it's been written or modified since it was last processed --
+ /// which queues it in `pending_files` for reprocessing. This is how an id
/// auto-assigned during hydration reaches the cache: the assignment is only
/// in the file until the file is saved, re-read, and committed.
pub(super) fn mark_unknown(
diff --git a/server/src/processing/tests.rs b/server/src/processing/tests.rs
index 5020b846..f5097e0d 100644
--- a/server/src/processing/tests.rs
+++ b/server/src/processing/tests.rs
@@ -1320,20 +1320,6 @@ fn test_doc_block_html_to_markdown_1() {
// newly-created, still-empty block, converted to Markdown, then that Markdown
// converted back to HTML the way the Server's re-translation does.
//
-// TinyMCE marks an otherwise-empty block by placing a `
` inside it, since a block with no content at all can't
-// hold the caret. Markdown has no such placeholder, so each empty block must be
-// expressible in Markdown some other way -- or the block the user just created
-// vanishes on the round trip, before they can type anything into it. The blocks
-// whose Markdown syntax can't stand alone when empty are rewritten during
-// dehydration, replacing the `
` with a non-breaking space -- inside a
-// paragraph, for the blocks which can't hold that character directly; see
-// `empty_block_needs_placeholder` and
-// `empty_block_needs_placeholder_paragraph` in
-// [processing.rs](../processing.rs). The cases below cover the blocks a user can
-// empty out in the editor, both those which need that rewrite and those which
-// survive without it.
-//
// This test deliberately doesn't pin down the exact Markdown produced, since
// more than one encoding of an empty block is reasonable. It checks only that
// the round trip preserves the document's structure and its text.
@@ -2252,7 +2238,7 @@ fn test_dehydrate_html_1() {
);
// A trailing empty paragraph (`
`) is converted to
- // `
` by `dehydrating_walk_node`, preserving it as a
+ // `
` by `dehydrating_walk_node`, preserving it as a
// non-breaking space.
assert_eq!(
converter
diff --git a/server/src/webserver.rs b/server/src/webserver.rs
index f0b793d3..459fb96f 100644
--- a/server/src/webserver.rs
+++ b/server/src/webserver.rs
@@ -483,8 +483,8 @@ const WEBSOCKET_PING_DELAY: Duration = Duration::from_secs(2);
pub const RESERVED_MESSAGE_ID: f64 = 0.0;
/// The initial value for the server's message ID.
pub const INITIAL_MESSAGE_ID: f64 = RESERVED_MESSAGE_ID + 3.0;
-// The initial value for a Client. This value **must** be the same on the
-// Client. This is a manual process, since
+// The initial websocket message ID for a Client. This value **must** be the
+// same on the Client. This is a manual process, since
// [ts-rs](https://docs.rs/ts-rs/latest/ts_rs/) only generates types, not
// constants.
pub const INITIAL_CLIENT_MESSAGE_ID: f64 = INITIAL_MESSAGE_ID + 1.0;
@@ -752,7 +752,6 @@ pub fn get_client_framework(
}
// ### Serve file
-//
/// A filesystem route hands its handler the file's path percent-decoded, with
/// the separator which `path_to_url` dropped still missing. Restore it, so that
/// the result names the same file the URL was built from. Every route which
@@ -766,9 +765,9 @@ pub fn request_path_to_file_path(
// Output: the path, ready to canonicalize.
) -> String {
if cfg!(target_os = "windows") {
- // HTTP doesn't treat a backslash as a path separator, but Windows
- // does. Re-encode any backslash, so that both agree on where this
- // path's components divide.
+ // HTTP doesn't treat a backslash as a path separator, but Windows does.
+ // Re-encode any backslash, so that both agree on where this path's
+ // components divide.
let backslashes_encoded = request_file_path.replace('\\', "%5C");
// A Windows path begins with a drive letter, unless it names a network
// share: `path_to_url` spells a UNC path as `//server/share/...`, and
@@ -782,8 +781,8 @@ pub fn request_path_to_file_path(
} else {
// Restore the leading slash which the route's match absorbed. An
// unsaved file has no location on disk, so `try_canonicalize` leaves
- // its path relative; `url_to_path` prepends the slash to that path
- // too, so both conversions name such a file the same way.
+ // its path relative; `url_to_path` prepends the slash to that path too,
+ // so both conversions name such a file the same way.
format!("/{request_file_path}")
}
}
diff --git a/toc.md b/toc.md
index 2ad73b9d..364ff3d2 100644
--- a/toc.md
+++ b/toc.md
@@ -37,6 +37,7 @@ Implementation
* [vscode.rs](server/src/ide/vscode.rs)
* [translation.rs](server/src/translation.rs)
* [processing.rs](server/src/processing.rs)
+ * [Cache spec](server/src/processing/cache-spec.md)
* [cache.rs](server/src/processing/cache.rs)
* Tests
* [Test utilities](test_utils/readme.md)