This is an automated email from the ASF dual-hosted git repository.
guanmingchiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new 353cc701cf [Web][Experimental] Add support for cross-origin storage
caching (#18893)
353cc701cf is described below
commit 353cc701cfacf7d066791997204c6d211eec0638
Author: Akaash Parthasarathy <[email protected]>
AuthorDate: Sun Mar 15 03:39:29 2026 -0400
[Web][Experimental] Add support for cross-origin storage caching (#18893)
1. Add support for cross-origin storage caching
2. Bump version to 0.24.0-dev2
---
web/package-lock.json | 1498 +++++++++++++++++++++------------------------
web/package.json | 2 +-
web/src/artifact_cache.ts | 407 +++++++++++-
web/src/index.ts | 6 +-
web/src/runtime.ts | 54 +-
5 files changed, 1124 insertions(+), 843 deletions(-)
diff --git a/web/package-lock.json b/web/package-lock.json
index 274d4ea9d8..72cf977cfc 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "tvmjs",
- "version": "0.24.0-dev1",
+ "version": "0.24.0-dev2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "tvmjs",
- "version": "0.24.0-dev1",
+ "version": "0.24.0-dev2",
"license": "Apache-2.0",
"dependencies": {
"audit": "^0.0.6",
@@ -62,6 +62,7 @@
"integrity":
"sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/code-frame": "^7.29.0",
"@babel/generator": "^7.29.0",
@@ -611,76 +612,37 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.23.1",
- "resolved":
"https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.1.tgz",
- "integrity":
"sha512-uVSdg/V4dfQmTjJzR0szNczjOH/J+FyUMMjYtr07xFRXR7EDf9i1qdxrD0VusZH9knj1/ecxzCQQxyic5NzAiA==",
+ "version": "0.23.3",
+ "resolved":
"https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz",
+ "integrity":
"sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/object-schema": "^3.0.1",
+ "@eslint/object-schema": "^3.0.3",
"debug": "^4.3.1",
- "minimatch": "^10.1.1"
+ "minimatch": "^10.2.4"
},
"engines": {
"node": "^20.19.0 || ^22.13.0 || >=24"
}
},
- "node_modules/@eslint/config-array/node_modules/balanced-match": {
- "version": "4.0.3",
- "resolved":
"https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz",
- "integrity":
"sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/@eslint/config-array/node_modules/brace-expansion": {
- "version": "5.0.2",
- "resolved":
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
- "integrity":
"sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^4.0.2"
- },
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/@eslint/config-array/node_modules/minimatch": {
- "version": "10.2.2",
- "resolved":
"https://registry.npmjs.org/minimatch/-/minimatch-10.2.2.tgz",
- "integrity":
"sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "brace-expansion": "^5.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@eslint/config-helpers": {
- "version": "0.5.2",
- "resolved":
"https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.2.tgz",
- "integrity":
"sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==",
+ "version": "0.5.3",
+ "resolved":
"https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz",
+ "integrity":
"sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^1.1.0"
+ "@eslint/core": "^1.1.1"
},
"engines": {
"node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/@eslint/core": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.0.tgz",
- "integrity":
"sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz",
+ "integrity":
"sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -691,9 +653,9 @@
}
},
"node_modules/@eslint/object-schema": {
- "version": "3.0.1",
- "resolved":
"https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.1.tgz",
- "integrity":
"sha512-P9cq2dpr+LU8j3qbLygLcSZrl2/ds/pUpfnHNNuk5HW7mnngHs+6WSq5C9mO3rqRX8A1poxqLTC9cu0KOyJlBg==",
+ "version": "3.0.3",
+ "resolved":
"https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz",
+ "integrity":
"sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -701,13 +663,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.6.0",
- "resolved":
"https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.0.tgz",
- "integrity":
"sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==",
+ "version": "0.6.1",
+ "resolved":
"https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz",
+ "integrity":
"sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^1.1.0",
+ "@eslint/core": "^1.1.1",
"levn": "^0.4.1"
},
"engines": {
@@ -715,16 +677,16 @@
}
},
"node_modules/@gerrit0/mini-shiki": {
- "version": "3.22.0",
- "resolved":
"https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.22.0.tgz",
- "integrity":
"sha512-jMpciqEVUBKE1QwU64S4saNMzpsSza6diNCk4MWAeCxO2+LFi2FIFmL2S0VDLzEJCxuvCbU783xi8Hp/gkM5CQ==",
+ "version": "3.23.0",
+ "resolved":
"https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.23.0.tgz",
+ "integrity":
"sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@shikijs/engine-oniguruma": "^3.22.0",
- "@shikijs/langs": "^3.22.0",
- "@shikijs/themes": "^3.22.0",
- "@shikijs/types": "^3.22.0",
+ "@shikijs/engine-oniguruma": "^3.23.0",
+ "@shikijs/langs": "^3.23.0",
+ "@shikijs/themes": "^3.23.0",
+ "@shikijs/types": "^3.23.0",
"@shikijs/vscode-textmate": "^10.0.2"
}
},
@@ -882,17 +844,17 @@
}
},
"node_modules/@jest/console": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz",
- "integrity":
"sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/console/-/console-30.3.0.tgz",
+ "integrity":
"sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "30.2.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
"chalk": "^4.1.2",
- "jest-message-util": "30.2.0",
- "jest-util": "30.2.0",
+ "jest-message-util": "30.3.0",
+ "jest-util": "30.3.0",
"slash": "^3.0.0"
},
"engines": {
@@ -900,39 +862,38 @@
}
},
"node_modules/@jest/core": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz",
- "integrity":
"sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==",
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.3.0.tgz",
+ "integrity":
"sha512-U5mVPsBxLSO6xYbf+tgkymLx+iAhvZX43/xI1+ej2ZOPnPdkdO1CzDmFKh2mZBn2s4XZixszHeQnzp1gm/DIxw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/console": "30.2.0",
+ "@jest/console": "30.3.0",
"@jest/pattern": "30.0.1",
- "@jest/reporters": "30.2.0",
- "@jest/test-result": "30.2.0",
- "@jest/transform": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/reporters": "30.3.0",
+ "@jest/test-result": "30.3.0",
+ "@jest/transform": "30.3.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
"ansi-escapes": "^4.3.2",
"chalk": "^4.1.2",
"ci-info": "^4.2.0",
"exit-x": "^0.2.2",
"graceful-fs": "^4.2.11",
- "jest-changed-files": "30.2.0",
- "jest-config": "30.2.0",
- "jest-haste-map": "30.2.0",
- "jest-message-util": "30.2.0",
+ "jest-changed-files": "30.3.0",
+ "jest-config": "30.3.0",
+ "jest-haste-map": "30.3.0",
+ "jest-message-util": "30.3.0",
"jest-regex-util": "30.0.1",
- "jest-resolve": "30.2.0",
- "jest-resolve-dependencies": "30.2.0",
- "jest-runner": "30.2.0",
- "jest-runtime": "30.2.0",
- "jest-snapshot": "30.2.0",
- "jest-util": "30.2.0",
- "jest-validate": "30.2.0",
- "jest-watcher": "30.2.0",
- "micromatch": "^4.0.8",
- "pretty-format": "30.2.0",
+ "jest-resolve": "30.3.0",
+ "jest-resolve-dependencies": "30.3.0",
+ "jest-runner": "30.3.0",
+ "jest-runtime": "30.3.0",
+ "jest-snapshot": "30.3.0",
+ "jest-util": "30.3.0",
+ "jest-validate": "30.3.0",
+ "jest-watcher": "30.3.0",
+ "pretty-format": "30.3.0",
"slash": "^3.0.0"
},
"engines": {
@@ -948,9 +909,9 @@
}
},
"node_modules/@jest/diff-sequences": {
- "version": "30.0.1",
- "resolved":
"https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
- "integrity":
"sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz",
+ "integrity":
"sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -958,39 +919,39 @@
}
},
"node_modules/@jest/environment": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz",
- "integrity":
"sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/environment/-/environment-30.3.0.tgz",
+ "integrity":
"sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/fake-timers": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/fake-timers": "30.3.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
- "jest-mock": "30.2.0"
+ "jest-mock": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/expect": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz",
- "integrity":
"sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/expect/-/expect-30.3.0.tgz",
+ "integrity":
"sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "expect": "30.2.0",
- "jest-snapshot": "30.2.0"
+ "expect": "30.3.0",
+ "jest-snapshot": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/expect-utils": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz",
- "integrity":
"sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz",
+ "integrity":
"sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1001,18 +962,18 @@
}
},
"node_modules/@jest/fake-timers": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz",
- "integrity":
"sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.3.0.tgz",
+ "integrity":
"sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "30.2.0",
- "@sinonjs/fake-timers": "^13.0.0",
+ "@jest/types": "30.3.0",
+ "@sinonjs/fake-timers": "^15.0.0",
"@types/node": "*",
- "jest-message-util": "30.2.0",
- "jest-mock": "30.2.0",
- "jest-util": "30.2.0"
+ "jest-message-util": "30.3.0",
+ "jest-mock": "30.3.0",
+ "jest-util": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -1029,16 +990,16 @@
}
},
"node_modules/@jest/globals": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz",
- "integrity":
"sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/globals/-/globals-30.3.0.tgz",
+ "integrity":
"sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/environment": "30.2.0",
- "@jest/expect": "30.2.0",
- "@jest/types": "30.2.0",
- "jest-mock": "30.2.0"
+ "@jest/environment": "30.3.0",
+ "@jest/expect": "30.3.0",
+ "@jest/types": "30.3.0",
+ "jest-mock": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -1059,32 +1020,32 @@
}
},
"node_modules/@jest/reporters": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz",
- "integrity":
"sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/reporters/-/reporters-30.3.0.tgz",
+ "integrity":
"sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "30.2.0",
- "@jest/test-result": "30.2.0",
- "@jest/transform": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/console": "30.3.0",
+ "@jest/test-result": "30.3.0",
+ "@jest/transform": "30.3.0",
+ "@jest/types": "30.3.0",
"@jridgewell/trace-mapping": "^0.3.25",
"@types/node": "*",
"chalk": "^4.1.2",
"collect-v8-coverage": "^1.0.2",
"exit-x": "^0.2.2",
- "glob": "^10.3.10",
+ "glob": "^10.5.0",
"graceful-fs": "^4.2.11",
"istanbul-lib-coverage": "^3.0.0",
"istanbul-lib-instrument": "^6.0.0",
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^5.0.0",
"istanbul-reports": "^3.1.3",
- "jest-message-util": "30.2.0",
- "jest-util": "30.2.0",
- "jest-worker": "30.2.0",
+ "jest-message-util": "30.3.0",
+ "jest-util": "30.3.0",
+ "jest-worker": "30.3.0",
"slash": "^3.0.0",
"string-length": "^4.0.2",
"v8-to-istanbul": "^9.0.1"
@@ -1115,13 +1076,13 @@
}
},
"node_modules/@jest/snapshot-utils": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz",
- "integrity":
"sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.3.0.tgz",
+ "integrity":
"sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "30.2.0",
+ "@jest/types": "30.3.0",
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
"natural-compare": "^1.4.0"
@@ -1146,14 +1107,14 @@
}
},
"node_modules/@jest/test-result": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz",
- "integrity":
"sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/test-result/-/test-result-30.3.0.tgz",
+ "integrity":
"sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/console": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/console": "30.3.0",
+ "@jest/types": "30.3.0",
"@types/istanbul-lib-coverage": "^2.0.6",
"collect-v8-coverage": "^1.0.2"
},
@@ -1162,15 +1123,15 @@
}
},
"node_modules/@jest/test-sequencer": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz",
- "integrity":
"sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.3.0.tgz",
+ "integrity":
"sha512-dgbWy9b8QDlQeRZcv7LNF+/jFiiYHTKho1xirauZ7kVwY7avjFF6uTT0RqlgudB5OuIPagFdVtfFMosjVbk1eA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/test-result": "30.2.0",
+ "@jest/test-result": "30.3.0",
"graceful-fs": "^4.2.11",
- "jest-haste-map": "30.2.0",
+ "jest-haste-map": "30.3.0",
"slash": "^3.0.0"
},
"engines": {
@@ -1178,24 +1139,23 @@
}
},
"node_modules/@jest/transform": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz",
- "integrity":
"sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/@jest/transform/-/transform-30.3.0.tgz",
+ "integrity":
"sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.27.4",
- "@jest/types": "30.2.0",
+ "@jest/types": "30.3.0",
"@jridgewell/trace-mapping": "^0.3.25",
"babel-plugin-istanbul": "^7.0.1",
"chalk": "^4.1.2",
"convert-source-map": "^2.0.0",
"fast-json-stable-stringify": "^2.1.0",
"graceful-fs": "^4.2.11",
- "jest-haste-map": "30.2.0",
+ "jest-haste-map": "30.3.0",
"jest-regex-util": "30.0.1",
- "jest-util": "30.2.0",
- "micromatch": "^4.0.8",
+ "jest-util": "30.3.0",
"pirates": "^4.0.7",
"slash": "^3.0.0",
"write-file-atomic": "^5.0.1"
@@ -1205,9 +1165,9 @@
}
},
"node_modules/@jest/types": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
- "integrity":
"sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz",
+ "integrity":
"sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1311,9 +1271,9 @@
}
},
"node_modules/@rollup/plugin-commonjs": {
- "version": "29.0.0",
- "resolved":
"https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.0.tgz",
- "integrity":
"sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==",
+ "version": "29.0.2",
+ "resolved":
"https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.2.tgz",
+ "integrity":
"sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1337,37 +1297,6 @@
}
}
},
- "node_modules/@rollup/plugin-commonjs/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity":
"sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-commonjs/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity":
"sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/@rollup/plugin-node-resolve": {
"version": "16.0.3",
"resolved":
"https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz",
@@ -1416,23 +1345,10 @@
}
}
},
- "node_modules/@rollup/pluginutils/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity":
"sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz",
- "integrity":
"sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
+ "integrity":
"sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
"cpu": [
"arm"
],
@@ -1444,9 +1360,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz",
- "integrity":
"sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
+ "integrity":
"sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
"cpu": [
"arm64"
],
@@ -1458,9 +1374,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz",
- "integrity":
"sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz",
+ "integrity":
"sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==",
"cpu": [
"arm64"
],
@@ -1472,9 +1388,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz",
- "integrity":
"sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz",
+ "integrity":
"sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==",
"cpu": [
"x64"
],
@@ -1486,9 +1402,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz",
- "integrity":
"sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz",
+ "integrity":
"sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==",
"cpu": [
"arm64"
],
@@ -1500,9 +1416,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz",
- "integrity":
"sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz",
+ "integrity":
"sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==",
"cpu": [
"x64"
],
@@ -1514,9 +1430,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz",
- "integrity":
"sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz",
+ "integrity":
"sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==",
"cpu": [
"arm"
],
@@ -1528,9 +1444,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz",
- "integrity":
"sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz",
+ "integrity":
"sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==",
"cpu": [
"arm"
],
@@ -1542,9 +1458,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz",
- "integrity":
"sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz",
+ "integrity":
"sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==",
"cpu": [
"arm64"
],
@@ -1556,9 +1472,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz",
- "integrity":
"sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz",
+ "integrity":
"sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==",
"cpu": [
"arm64"
],
@@ -1570,9 +1486,9 @@
]
},
"node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz",
- "integrity":
"sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz",
+ "integrity":
"sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==",
"cpu": [
"loong64"
],
@@ -1584,9 +1500,9 @@
]
},
"node_modules/@rollup/rollup-linux-loong64-musl": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz",
- "integrity":
"sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz",
+ "integrity":
"sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==",
"cpu": [
"loong64"
],
@@ -1598,9 +1514,9 @@
]
},
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz",
- "integrity":
"sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz",
+ "integrity":
"sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==",
"cpu": [
"ppc64"
],
@@ -1612,9 +1528,9 @@
]
},
"node_modules/@rollup/rollup-linux-ppc64-musl": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz",
- "integrity":
"sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz",
+ "integrity":
"sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==",
"cpu": [
"ppc64"
],
@@ -1626,9 +1542,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz",
- "integrity":
"sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz",
+ "integrity":
"sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==",
"cpu": [
"riscv64"
],
@@ -1640,9 +1556,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz",
- "integrity":
"sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz",
+ "integrity":
"sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==",
"cpu": [
"riscv64"
],
@@ -1654,9 +1570,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz",
- "integrity":
"sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz",
+ "integrity":
"sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==",
"cpu": [
"s390x"
],
@@ -1668,9 +1584,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz",
- "integrity":
"sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz",
+ "integrity":
"sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==",
"cpu": [
"x64"
],
@@ -1682,9 +1598,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz",
- "integrity":
"sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz",
+ "integrity":
"sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==",
"cpu": [
"x64"
],
@@ -1696,9 +1612,9 @@
]
},
"node_modules/@rollup/rollup-openbsd-x64": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz",
- "integrity":
"sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz",
+ "integrity":
"sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==",
"cpu": [
"x64"
],
@@ -1710,9 +1626,9 @@
]
},
"node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz",
- "integrity":
"sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz",
+ "integrity":
"sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==",
"cpu": [
"arm64"
],
@@ -1724,9 +1640,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz",
- "integrity":
"sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz",
+ "integrity":
"sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==",
"cpu": [
"arm64"
],
@@ -1738,9 +1654,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz",
- "integrity":
"sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz",
+ "integrity":
"sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==",
"cpu": [
"ia32"
],
@@ -1752,9 +1668,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz",
- "integrity":
"sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz",
+ "integrity":
"sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==",
"cpu": [
"x64"
],
@@ -1766,9 +1682,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.57.1",
- "resolved":
"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz",
- "integrity":
"sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==",
+ "version": "4.59.0",
+ "resolved":
"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz",
+ "integrity":
"sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==",
"cpu": [
"x64"
],
@@ -1780,40 +1696,40 @@
]
},
"node_modules/@shikijs/engine-oniguruma": {
- "version": "3.22.0",
- "resolved":
"https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.22.0.tgz",
- "integrity":
"sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==",
+ "version": "3.23.0",
+ "resolved":
"https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz",
+ "integrity":
"sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@shikijs/types": "3.22.0",
+ "@shikijs/types": "3.23.0",
"@shikijs/vscode-textmate": "^10.0.2"
}
},
"node_modules/@shikijs/langs": {
- "version": "3.22.0",
- "resolved":
"https://registry.npmjs.org/@shikijs/langs/-/langs-3.22.0.tgz",
- "integrity":
"sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==",
+ "version": "3.23.0",
+ "resolved":
"https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz",
+ "integrity":
"sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@shikijs/types": "3.22.0"
+ "@shikijs/types": "3.23.0"
}
},
"node_modules/@shikijs/themes": {
- "version": "3.22.0",
- "resolved":
"https://registry.npmjs.org/@shikijs/themes/-/themes-3.22.0.tgz",
- "integrity":
"sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==",
+ "version": "3.23.0",
+ "resolved":
"https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz",
+ "integrity":
"sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@shikijs/types": "3.22.0"
+ "@shikijs/types": "3.23.0"
}
},
"node_modules/@shikijs/types": {
- "version": "3.22.0",
- "resolved":
"https://registry.npmjs.org/@shikijs/types/-/types-3.22.0.tgz",
- "integrity":
"sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==",
+ "version": "3.23.0",
+ "resolved":
"https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz",
+ "integrity":
"sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1846,9 +1762,9 @@
}
},
"node_modules/@sinonjs/fake-timers": {
- "version": "13.0.5",
- "resolved":
"https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz",
- "integrity":
"sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==",
+ "version": "15.1.1",
+ "resolved":
"https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.1.1.tgz",
+ "integrity":
"sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -1970,9 +1886,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz",
- "integrity":
"sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==",
+ "version": "25.4.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.4.0.tgz",
+ "integrity":
"sha512-9wLpoeWuBlcbBpOY3XmzSTG3oscB6xjBEEtn+pYXTfhyXhIxC5FsBer2KTopBlvKEiW9l13po9fq+SJY/5lkhw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2018,17 +1934,17 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.0.tgz",
- "integrity":
"sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.0.tgz",
+ "integrity":
"sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.12.2",
- "@typescript-eslint/scope-manager": "8.56.0",
- "@typescript-eslint/type-utils": "8.56.0",
- "@typescript-eslint/utils": "8.56.0",
- "@typescript-eslint/visitor-keys": "8.56.0",
+ "@typescript-eslint/scope-manager": "8.57.0",
+ "@typescript-eslint/type-utils": "8.57.0",
+ "@typescript-eslint/utils": "8.57.0",
+ "@typescript-eslint/visitor-keys": "8.57.0",
"ignore": "^7.0.5",
"natural-compare": "^1.4.0",
"ts-api-utils": "^2.4.0"
@@ -2041,22 +1957,23 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.56.0",
+ "@typescript-eslint/parser": "^8.57.0",
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
"typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.0.tgz",
- "integrity":
"sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.0.tgz",
+ "integrity":
"sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.56.0",
- "@typescript-eslint/types": "8.56.0",
- "@typescript-eslint/typescript-estree": "8.56.0",
- "@typescript-eslint/visitor-keys": "8.56.0",
+ "@typescript-eslint/scope-manager": "8.57.0",
+ "@typescript-eslint/types": "8.57.0",
+ "@typescript-eslint/typescript-estree": "8.57.0",
+ "@typescript-eslint/visitor-keys": "8.57.0",
"debug": "^4.4.3"
},
"engines": {
@@ -2072,14 +1989,14 @@
}
},
"node_modules/@typescript-eslint/project-service": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.0.tgz",
- "integrity":
"sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.0.tgz",
+ "integrity":
"sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.56.0",
- "@typescript-eslint/types": "^8.56.0",
+ "@typescript-eslint/tsconfig-utils": "^8.57.0",
+ "@typescript-eslint/types": "^8.57.0",
"debug": "^4.4.3"
},
"engines": {
@@ -2094,14 +2011,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.0.tgz",
- "integrity":
"sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.0.tgz",
+ "integrity":
"sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.56.0",
- "@typescript-eslint/visitor-keys": "8.56.0"
+ "@typescript-eslint/types": "8.57.0",
+ "@typescript-eslint/visitor-keys": "8.57.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2112,9 +2029,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.0.tgz",
- "integrity":
"sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.0.tgz",
+ "integrity":
"sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2129,15 +2046,15 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.0.tgz",
- "integrity":
"sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.0.tgz",
+ "integrity":
"sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.56.0",
- "@typescript-eslint/typescript-estree": "8.56.0",
- "@typescript-eslint/utils": "8.56.0",
+ "@typescript-eslint/types": "8.57.0",
+ "@typescript-eslint/typescript-estree": "8.57.0",
+ "@typescript-eslint/utils": "8.57.0",
"debug": "^4.4.3",
"ts-api-utils": "^2.4.0"
},
@@ -2154,9 +2071,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.0.tgz",
- "integrity":
"sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.0.tgz",
+ "integrity":
"sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2168,18 +2085,18 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.0.tgz",
- "integrity":
"sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.0.tgz",
+ "integrity":
"sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.56.0",
- "@typescript-eslint/tsconfig-utils": "8.56.0",
- "@typescript-eslint/types": "8.56.0",
- "@typescript-eslint/visitor-keys": "8.56.0",
+ "@typescript-eslint/project-service": "8.57.0",
+ "@typescript-eslint/tsconfig-utils": "8.57.0",
+ "@typescript-eslint/types": "8.57.0",
+ "@typescript-eslint/visitor-keys": "8.57.0",
"debug": "^4.4.3",
- "minimatch": "^9.0.5",
+ "minimatch": "^10.2.2",
"semver": "^7.7.3",
"tinyglobby": "^0.2.15",
"ts-api-utils": "^2.4.0"
@@ -2196,16 +2113,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.0.tgz",
- "integrity":
"sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.0.tgz",
+ "integrity":
"sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.56.0",
- "@typescript-eslint/types": "8.56.0",
- "@typescript-eslint/typescript-estree": "8.56.0"
+ "@typescript-eslint/scope-manager": "8.57.0",
+ "@typescript-eslint/types": "8.57.0",
+ "@typescript-eslint/typescript-estree": "8.57.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2220,13 +2137,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.56.0",
- "resolved":
"https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.0.tgz",
- "integrity":
"sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==",
+ "version": "8.57.0",
+ "resolved":
"https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.0.tgz",
+ "integrity":
"sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.56.0",
+ "@typescript-eslint/types": "8.57.0",
"eslint-visitor-keys": "^5.0.0"
},
"engines": {
@@ -2238,9 +2155,9 @@
}
},
"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys":
{
- "version": "5.0.0",
- "resolved":
"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz",
- "integrity":
"sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==",
+ "version": "5.0.1",
+ "resolved":
"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity":
"sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -2539,6 +2456,7 @@
"integrity":
"sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -2557,9 +2475,9 @@
}
},
"node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity":
"sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity":
"sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2632,6 +2550,19 @@
"node": ">= 8"
}
},
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity":
"sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
@@ -2651,16 +2582,16 @@
}
},
"node_modules/babel-jest": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz",
- "integrity":
"sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/babel-jest/-/babel-jest-30.3.0.tgz",
+ "integrity":
"sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/transform": "30.2.0",
+ "@jest/transform": "30.3.0",
"@types/babel__core": "^7.20.5",
"babel-plugin-istanbul": "^7.0.1",
- "babel-preset-jest": "30.2.0",
+ "babel-preset-jest": "30.3.0",
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
"slash": "^3.0.0"
@@ -2693,9 +2624,9 @@
}
},
"node_modules/babel-plugin-jest-hoist": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz",
- "integrity":
"sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.3.0.tgz",
+ "integrity":
"sha512-+TRkByhsws6sfPjVaitzadk1I0F5sPvOVUH5tyTSzhePpsGIVrdeunHSw/C36QeocS95OOk8lunc4rlu5Anwsg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2733,13 +2664,13 @@
}
},
"node_modules/babel-preset-jest": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz",
- "integrity":
"sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.3.0.tgz",
+ "integrity":
"sha512-6ZcUbWHC+dMz2vfzdNwi87Z1gQsLNK2uLuK1Q89R11xdvejcivlYYwDlEv0FHX3VwEXpbBQ9uufB/MUNpZGfhQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "babel-plugin-jest-hoist": "30.2.0",
+ "babel-plugin-jest-hoist": "30.3.0",
"babel-preset-current-node-syntax": "^1.2.0"
},
"engines": {
@@ -2750,11 +2681,14 @@
}
},
"node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved":
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity":
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "version": "4.0.4",
+ "resolved":
"https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity":
"sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
},
"node_modules/baseline-browser-mapping": {
"version": "2.10.0",
@@ -2770,26 +2704,16 @@
}
},
"node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved":
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity":
"sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "version": "5.0.4",
+ "resolved":
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
+ "integrity":
"sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity":
"sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
+ "balanced-match": "^4.0.2"
},
"engines": {
- "node": ">=8"
+ "node": "18 || 20 || >=22"
}
},
"node_modules/browserslist": {
@@ -2812,6 +2736,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.9.0",
"caniuse-lite": "^1.0.30001759",
@@ -2864,9 +2789,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001770",
- "resolved":
"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001770.tgz",
- "integrity":
"sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==",
+ "version": "1.0.30001777",
+ "resolved":
"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001777.tgz",
+ "integrity":
"sha512-tmN+fJxroPndC74efCdp12j+0rk0RHwV5Jwa1zWaFVyw2ZxAuPeG8ZgWC3Wz7uSjT3qMRQ5XHZ4COgQmsCMJAQ==",
"dev": true,
"funding": [
{
@@ -3105,9 +3030,9 @@
}
},
"node_modules/dedent": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz",
- "integrity":
"sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==",
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz",
+ "integrity":
"sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -3154,9 +3079,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.286",
- "resolved":
"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz",
- "integrity":
"sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==",
+ "version": "1.5.307",
+ "resolved":
"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.307.tgz",
+ "integrity":
"sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==",
"dev": true,
"license": "ISC"
},
@@ -3227,29 +3152,30 @@
}
},
"node_modules/eslint": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.0.tgz",
- "integrity":
"sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg==",
+ "version": "10.0.3",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.3.tgz",
+ "integrity":
"sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.2",
- "@eslint/config-array": "^0.23.0",
+ "@eslint/config-array": "^0.23.3",
"@eslint/config-helpers": "^0.5.2",
- "@eslint/core": "^1.1.0",
- "@eslint/plugin-kit": "^0.6.0",
+ "@eslint/core": "^1.1.1",
+ "@eslint/plugin-kit": "^0.6.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2",
"@types/estree": "^1.0.6",
- "ajv": "^6.12.4",
+ "ajv": "^6.14.0",
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^9.1.0",
- "eslint-visitor-keys": "^5.0.0",
- "espree": "^11.1.0",
+ "eslint-scope": "^9.1.2",
+ "eslint-visitor-keys": "^5.0.1",
+ "espree": "^11.1.1",
"esquery": "^1.7.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -3260,7 +3186,7 @@
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
- "minimatch": "^10.1.1",
+ "minimatch": "^10.2.4",
"natural-compare": "^1.4.0",
"optionator": "^0.9.3"
},
@@ -3283,9 +3209,9 @@
}
},
"node_modules/eslint-scope": {
- "version": "9.1.0",
- "resolved":
"https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.0.tgz",
- "integrity":
"sha512-CkWE42hOJsNj9FJRaoMX9waUFYhqY4jmyLFdAdzZr6VaCg3ynLYx4WnOdkaIifGfH4gsUcBTn4OZbHXkpLD0FQ==",
+ "version": "9.1.2",
+ "resolved":
"https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz",
+ "integrity":
"sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -3314,33 +3240,10 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint/node_modules/balanced-match": {
- "version": "4.0.3",
- "resolved":
"https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz",
- "integrity":
"sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/eslint/node_modules/brace-expansion": {
- "version": "5.0.2",
- "resolved":
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
- "integrity":
"sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^4.0.2"
- },
- "engines": {
- "node": "20 || >=22"
- }
- },
"node_modules/eslint/node_modules/eslint-visitor-keys": {
- "version": "5.0.0",
- "resolved":
"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz",
- "integrity":
"sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==",
+ "version": "5.0.1",
+ "resolved":
"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity":
"sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -3360,32 +3263,16 @@
"node": ">= 4"
}
},
- "node_modules/eslint/node_modules/minimatch": {
- "version": "10.2.2",
- "resolved":
"https://registry.npmjs.org/minimatch/-/minimatch-10.2.2.tgz",
- "integrity":
"sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "brace-expansion": "^5.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/espree": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-11.1.0.tgz",
- "integrity":
"sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz",
+ "integrity":
"sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.15.0",
+ "acorn": "^8.16.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^5.0.0"
+ "eslint-visitor-keys": "^5.0.1"
},
"engines": {
"node": "^20.19.0 || ^22.13.0 || >=24"
@@ -3395,9 +3282,9 @@
}
},
"node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "5.0.0",
- "resolved":
"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz",
- "integrity":
"sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==",
+ "version": "5.0.1",
+ "resolved":
"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity":
"sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -3516,18 +3403,18 @@
}
},
"node_modules/expect": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz",
- "integrity":
"sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==",
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz",
+ "integrity":
"sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/expect-utils": "30.2.0",
+ "@jest/expect-utils": "30.3.0",
"@jest/get-type": "30.1.0",
- "jest-matcher-utils": "30.2.0",
- "jest-message-util": "30.2.0",
- "jest-mock": "30.2.0",
- "jest-util": "30.2.0"
+ "jest-matcher-utils": "30.3.0",
+ "jest-message-util": "30.3.0",
+ "jest-mock": "30.3.0",
+ "jest-util": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -3564,6 +3451,24 @@
"bser": "2.1.1"
}
},
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity":
"sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
"node_modules/file-entry-cache": {
"version": "8.0.0",
"resolved":
"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
@@ -3577,19 +3482,6 @@
"node": ">=16.0.0"
}
},
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved":
"https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity":
"sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/find-cache-dir": {
"version": "3.3.2",
"resolved":
"https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
@@ -3679,9 +3571,9 @@
}
},
"node_modules/flatted": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
- "integrity":
"sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz",
+ "integrity":
"sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==",
"dev": true,
"license": "ISC"
},
@@ -3827,6 +3719,39 @@
"node": ">=10.13.0"
}
},
+ "node_modules/glob/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved":
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity":
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/glob/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved":
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity":
"sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/glob/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity":
"sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved":
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
@@ -4006,16 +3931,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity":
"sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
"node_modules/is-reference": {
"version": "1.2.1",
"resolved":
"https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
@@ -4134,16 +4049,16 @@
}
},
"node_modules/jest": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz",
- "integrity":
"sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-30.3.0.tgz",
+ "integrity":
"sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/core": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/core": "30.3.0",
+ "@jest/types": "30.3.0",
"import-local": "^3.2.0",
- "jest-cli": "30.2.0"
+ "jest-cli": "30.3.0"
},
"bin": {
"jest": "bin/jest.js"
@@ -4161,14 +4076,14 @@
}
},
"node_modules/jest-changed-files": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz",
- "integrity":
"sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.3.0.tgz",
+ "integrity":
"sha512-B/7Cny6cV5At6M25EWDgf9S617lHivamL8vl6KEpJqkStauzcG4e+WPfDgMMF+H4FVH4A2PLRyvgDJan4441QA==",
"dev": true,
"license": "MIT",
"dependencies": {
"execa": "^5.1.1",
- "jest-util": "30.2.0",
+ "jest-util": "30.3.0",
"p-limit": "^3.1.0"
},
"engines": {
@@ -4176,29 +4091,29 @@
}
},
"node_modules/jest-circus": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz",
- "integrity":
"sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-circus/-/jest-circus-30.3.0.tgz",
+ "integrity":
"sha512-PyXq5szeSfR/4f1lYqCmmQjh0vqDkURUYi9N6whnHjlRz4IUQfMcXkGLeEoiJtxtyPqgUaUUfyQlApXWBSN1RA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/environment": "30.2.0",
- "@jest/expect": "30.2.0",
- "@jest/test-result": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/environment": "30.3.0",
+ "@jest/expect": "30.3.0",
+ "@jest/test-result": "30.3.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
"chalk": "^4.1.2",
"co": "^4.6.0",
"dedent": "^1.6.0",
"is-generator-fn": "^2.1.0",
- "jest-each": "30.2.0",
- "jest-matcher-utils": "30.2.0",
- "jest-message-util": "30.2.0",
- "jest-runtime": "30.2.0",
- "jest-snapshot": "30.2.0",
- "jest-util": "30.2.0",
+ "jest-each": "30.3.0",
+ "jest-matcher-utils": "30.3.0",
+ "jest-message-util": "30.3.0",
+ "jest-runtime": "30.3.0",
+ "jest-snapshot": "30.3.0",
+ "jest-util": "30.3.0",
"p-limit": "^3.1.0",
- "pretty-format": "30.2.0",
+ "pretty-format": "30.3.0",
"pure-rand": "^7.0.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.6"
@@ -4208,21 +4123,21 @@
}
},
"node_modules/jest-cli": {
- "version": "30.2.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz",
- "integrity":
"sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==",
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.3.0.tgz",
+ "integrity":
"sha512-l6Tqx+j1fDXJEW5bqYykDQQ7mQg+9mhWXtnj+tQZrTWYHyHoi6Be8HPumDSA+UiX2/2buEgjA58iJzdj146uCw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/core": "30.2.0",
- "@jest/test-result": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/core": "30.3.0",
+ "@jest/test-result": "30.3.0",
+ "@jest/types": "30.3.0",
"chalk": "^4.1.2",
"exit-x": "^0.2.2",
"import-local": "^3.2.0",
- "jest-config": "30.2.0",
- "jest-util": "30.2.0",
- "jest-validate": "30.2.0",
+ "jest-config": "30.3.0",
+ "jest-util": "30.3.0",
+ "jest-validate": "30.3.0",
"yargs": "^17.7.2"
},
"bin": {
@@ -4241,34 +4156,33 @@
}
},
"node_modules/jest-config": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz",
- "integrity":
"sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-config/-/jest-config-30.3.0.tgz",
+ "integrity":
"sha512-WPMAkMAtNDY9P/oKObtsRG/6KTrhtgPJoBTmk20uDn4Uy6/3EJnnaZJre/FMT1KVRx8cve1r7/FlMIOfRVWL4w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.27.4",
"@jest/get-type": "30.1.0",
"@jest/pattern": "30.0.1",
- "@jest/test-sequencer": "30.2.0",
- "@jest/types": "30.2.0",
- "babel-jest": "30.2.0",
+ "@jest/test-sequencer": "30.3.0",
+ "@jest/types": "30.3.0",
+ "babel-jest": "30.3.0",
"chalk": "^4.1.2",
"ci-info": "^4.2.0",
"deepmerge": "^4.3.1",
- "glob": "^10.3.10",
+ "glob": "^10.5.0",
"graceful-fs": "^4.2.11",
- "jest-circus": "30.2.0",
+ "jest-circus": "30.3.0",
"jest-docblock": "30.2.0",
- "jest-environment-node": "30.2.0",
+ "jest-environment-node": "30.3.0",
"jest-regex-util": "30.0.1",
- "jest-resolve": "30.2.0",
- "jest-runner": "30.2.0",
- "jest-util": "30.2.0",
- "jest-validate": "30.2.0",
- "micromatch": "^4.0.8",
+ "jest-resolve": "30.3.0",
+ "jest-runner": "30.3.0",
+ "jest-util": "30.3.0",
+ "jest-validate": "30.3.0",
"parse-json": "^5.2.0",
- "pretty-format": "30.2.0",
+ "pretty-format": "30.3.0",
"slash": "^3.0.0",
"strip-json-comments": "^3.1.1"
},
@@ -4293,16 +4207,16 @@
}
},
"node_modules/jest-diff": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz",
- "integrity":
"sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz",
+ "integrity":
"sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/diff-sequences": "30.0.1",
+ "@jest/diff-sequences": "30.3.0",
"@jest/get-type": "30.1.0",
"chalk": "^4.1.2",
- "pretty-format": "30.2.0"
+ "pretty-format": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -4322,57 +4236,57 @@
}
},
"node_modules/jest-each": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz",
- "integrity":
"sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-each/-/jest-each-30.3.0.tgz",
+ "integrity":
"sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/get-type": "30.1.0",
- "@jest/types": "30.2.0",
+ "@jest/types": "30.3.0",
"chalk": "^4.1.2",
- "jest-util": "30.2.0",
- "pretty-format": "30.2.0"
+ "jest-util": "30.3.0",
+ "pretty-format": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-environment-node": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz",
- "integrity":
"sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.3.0.tgz",
+ "integrity":
"sha512-4i6HItw/JSiJVsC5q0hnKIe/hbYfZLVG9YJ/0pU9Hz2n/9qZe3Rhn5s5CUZA5ORZlcdT/vmAXRMyONXJwPrmYQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/environment": "30.2.0",
- "@jest/fake-timers": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/environment": "30.3.0",
+ "@jest/fake-timers": "30.3.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
- "jest-mock": "30.2.0",
- "jest-util": "30.2.0",
- "jest-validate": "30.2.0"
+ "jest-mock": "30.3.0",
+ "jest-util": "30.3.0",
+ "jest-validate": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-haste-map": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz",
- "integrity":
"sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz",
+ "integrity":
"sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "30.2.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
"anymatch": "^3.1.3",
"fb-watchman": "^2.0.2",
"graceful-fs": "^4.2.11",
"jest-regex-util": "30.0.1",
- "jest-util": "30.2.0",
- "jest-worker": "30.2.0",
- "micromatch": "^4.0.8",
+ "jest-util": "30.3.0",
+ "jest-worker": "30.3.0",
+ "picomatch": "^4.0.3",
"walker": "^1.0.8"
},
"engines": {
@@ -4383,49 +4297,49 @@
}
},
"node_modules/jest-leak-detector": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz",
- "integrity":
"sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.3.0.tgz",
+ "integrity":
"sha512-cuKmUUGIjfXZAiGJ7TbEMx0bcqNdPPI6P1V+7aF+m/FUJqFDxkFR4JqkTu8ZOiU5AaX/x0hZ20KaaIPXQzbMGQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/get-type": "30.1.0",
- "pretty-format": "30.2.0"
+ "pretty-format": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-matcher-utils": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz",
- "integrity":
"sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz",
+ "integrity":
"sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/get-type": "30.1.0",
"chalk": "^4.1.2",
- "jest-diff": "30.2.0",
- "pretty-format": "30.2.0"
+ "jest-diff": "30.3.0",
+ "pretty-format": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-message-util": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz",
- "integrity":
"sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz",
+ "integrity":
"sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.27.1",
- "@jest/types": "30.2.0",
+ "@jest/types": "30.3.0",
"@types/stack-utils": "^2.0.3",
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
- "micromatch": "^4.0.8",
- "pretty-format": "30.2.0",
+ "picomatch": "^4.0.3",
+ "pretty-format": "30.3.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.6"
},
@@ -4434,15 +4348,15 @@
}
},
"node_modules/jest-mock": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz",
- "integrity":
"sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz",
+ "integrity":
"sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "30.2.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
- "jest-util": "30.2.0"
+ "jest-util": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -4477,18 +4391,18 @@
}
},
"node_modules/jest-resolve": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz",
- "integrity":
"sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.3.0.tgz",
+ "integrity":
"sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==",
"dev": true,
"license": "MIT",
"dependencies": {
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
- "jest-haste-map": "30.2.0",
+ "jest-haste-map": "30.3.0",
"jest-pnp-resolver": "^1.2.3",
- "jest-util": "30.2.0",
- "jest-validate": "30.2.0",
+ "jest-util": "30.3.0",
+ "jest-validate": "30.3.0",
"slash": "^3.0.0",
"unrs-resolver": "^1.7.11"
},
@@ -4497,46 +4411,46 @@
}
},
"node_modules/jest-resolve-dependencies": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz",
- "integrity":
"sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.3.0.tgz",
+ "integrity":
"sha512-9ev8s3YN6Hsyz9LV75XUwkCVFlwPbaFn6Wp75qnI0wzAINYWY8Fb3+6y59Rwd3QaS3kKXffHXsZMziMavfz/nw==",
"dev": true,
"license": "MIT",
"dependencies": {
"jest-regex-util": "30.0.1",
- "jest-snapshot": "30.2.0"
+ "jest-snapshot": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-runner": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz",
- "integrity":
"sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-runner/-/jest-runner-30.3.0.tgz",
+ "integrity":
"sha512-gDv6C9LGKWDPLia9TSzZwf4h3kMQCqyTpq+95PODnTRDO0g9os48XIYYkS6D236vjpBir2fF63YmJFtqkS5Duw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/console": "30.2.0",
- "@jest/environment": "30.2.0",
- "@jest/test-result": "30.2.0",
- "@jest/transform": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/console": "30.3.0",
+ "@jest/environment": "30.3.0",
+ "@jest/test-result": "30.3.0",
+ "@jest/transform": "30.3.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
"chalk": "^4.1.2",
"emittery": "^0.13.1",
"exit-x": "^0.2.2",
"graceful-fs": "^4.2.11",
"jest-docblock": "30.2.0",
- "jest-environment-node": "30.2.0",
- "jest-haste-map": "30.2.0",
- "jest-leak-detector": "30.2.0",
- "jest-message-util": "30.2.0",
- "jest-resolve": "30.2.0",
- "jest-runtime": "30.2.0",
- "jest-util": "30.2.0",
- "jest-watcher": "30.2.0",
- "jest-worker": "30.2.0",
+ "jest-environment-node": "30.3.0",
+ "jest-haste-map": "30.3.0",
+ "jest-leak-detector": "30.3.0",
+ "jest-message-util": "30.3.0",
+ "jest-resolve": "30.3.0",
+ "jest-runtime": "30.3.0",
+ "jest-util": "30.3.0",
+ "jest-watcher": "30.3.0",
+ "jest-worker": "30.3.0",
"p-limit": "^3.1.0",
"source-map-support": "0.5.13"
},
@@ -4545,32 +4459,32 @@
}
},
"node_modules/jest-runtime": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz",
- "integrity":
"sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.3.0.tgz",
+ "integrity":
"sha512-CgC+hIBJbuh78HEffkhNKcbXAytQViplcl8xupqeIWyKQF50kCQA8J7GeJCkjisC6hpnC9Muf8jV5RdtdFbGng==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/environment": "30.2.0",
- "@jest/fake-timers": "30.2.0",
- "@jest/globals": "30.2.0",
+ "@jest/environment": "30.3.0",
+ "@jest/fake-timers": "30.3.0",
+ "@jest/globals": "30.3.0",
"@jest/source-map": "30.0.1",
- "@jest/test-result": "30.2.0",
- "@jest/transform": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/test-result": "30.3.0",
+ "@jest/transform": "30.3.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
"chalk": "^4.1.2",
"cjs-module-lexer": "^2.1.0",
"collect-v8-coverage": "^1.0.2",
- "glob": "^10.3.10",
+ "glob": "^10.5.0",
"graceful-fs": "^4.2.11",
- "jest-haste-map": "30.2.0",
- "jest-message-util": "30.2.0",
- "jest-mock": "30.2.0",
+ "jest-haste-map": "30.3.0",
+ "jest-message-util": "30.3.0",
+ "jest-mock": "30.3.0",
"jest-regex-util": "30.0.1",
- "jest-resolve": "30.2.0",
- "jest-snapshot": "30.2.0",
- "jest-util": "30.2.0",
+ "jest-resolve": "30.3.0",
+ "jest-snapshot": "30.3.0",
+ "jest-util": "30.3.0",
"slash": "^3.0.0",
"strip-bom": "^4.0.0"
},
@@ -4579,9 +4493,9 @@
}
},
"node_modules/jest-snapshot": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz",
- "integrity":
"sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.3.0.tgz",
+ "integrity":
"sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4590,20 +4504,20 @@
"@babel/plugin-syntax-jsx": "^7.27.1",
"@babel/plugin-syntax-typescript": "^7.27.1",
"@babel/types": "^7.27.3",
- "@jest/expect-utils": "30.2.0",
+ "@jest/expect-utils": "30.3.0",
"@jest/get-type": "30.1.0",
- "@jest/snapshot-utils": "30.2.0",
- "@jest/transform": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/snapshot-utils": "30.3.0",
+ "@jest/transform": "30.3.0",
+ "@jest/types": "30.3.0",
"babel-preset-current-node-syntax": "^1.2.0",
"chalk": "^4.1.2",
- "expect": "30.2.0",
+ "expect": "30.3.0",
"graceful-fs": "^4.2.11",
- "jest-diff": "30.2.0",
- "jest-matcher-utils": "30.2.0",
- "jest-message-util": "30.2.0",
- "jest-util": "30.2.0",
- "pretty-format": "30.2.0",
+ "jest-diff": "30.3.0",
+ "jest-matcher-utils": "30.3.0",
+ "jest-message-util": "30.3.0",
+ "jest-util": "30.3.0",
+ "pretty-format": "30.3.0",
"semver": "^7.7.2",
"synckit": "^0.11.8"
},
@@ -4612,49 +4526,36 @@
}
},
"node_modules/jest-util": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz",
- "integrity":
"sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz",
+ "integrity":
"sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/types": "30.2.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
"chalk": "^4.1.2",
"ci-info": "^4.2.0",
"graceful-fs": "^4.2.11",
- "picomatch": "^4.0.2"
+ "picomatch": "^4.0.3"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/jest-util/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity":
"sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/jest-validate": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz",
- "integrity":
"sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-validate/-/jest-validate-30.3.0.tgz",
+ "integrity":
"sha512-I/xzC8h5G+SHCb2P2gWkJYrNiTbeL47KvKeW5EzplkyxzBRBw1ssSHlI/jXec0ukH2q7x2zAWQm7015iusg62Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/get-type": "30.1.0",
- "@jest/types": "30.2.0",
+ "@jest/types": "30.3.0",
"camelcase": "^6.3.0",
"chalk": "^4.1.2",
"leven": "^3.1.0",
- "pretty-format": "30.2.0"
+ "pretty-format": "30.3.0"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -4674,19 +4575,19 @@
}
},
"node_modules/jest-watcher": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz",
- "integrity":
"sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.3.0.tgz",
+ "integrity":
"sha512-PJ1d9ThtTR8aMiBWUdcownq9mDdLXsQzJayTk4kmaBRHKvwNQn+ANveuhEBUyNI2hR1TVhvQ8D5kHubbzBHR/w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jest/test-result": "30.2.0",
- "@jest/types": "30.2.0",
+ "@jest/test-result": "30.3.0",
+ "@jest/types": "30.3.0",
"@types/node": "*",
"ansi-escapes": "^4.3.2",
"chalk": "^4.1.2",
"emittery": "^0.13.1",
- "jest-util": "30.2.0",
+ "jest-util": "30.3.0",
"string-length": "^4.0.2"
},
"engines": {
@@ -4694,15 +4595,15 @@
}
},
"node_modules/jest-worker": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz",
- "integrity":
"sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/jest-worker/-/jest-worker-30.3.0.tgz",
+ "integrity":
"sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "*",
"@ungap/structured-clone": "^1.3.0",
- "jest-util": "30.2.0",
+ "jest-util": "30.3.0",
"merge-stream": "^2.0.0",
"supports-color": "^8.1.1"
},
@@ -4973,20 +4874,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved":
"https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity":
"sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
"node_modules/mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
@@ -4998,16 +4885,16 @@
}
},
"node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity":
"sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "10.2.4",
+ "resolved":
"https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
+ "integrity":
"sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^5.0.2"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -5061,9 +4948,9 @@
"license": "MIT"
},
"node_modules/node-releases": {
- "version": "2.0.27",
- "resolved":
"https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
- "integrity":
"sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "version": "2.0.36",
+ "resolved":
"https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
+ "integrity":
"sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
"dev": true,
"license": "MIT"
},
@@ -5271,13 +5158,13 @@
"license": "ISC"
},
"node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity":
"sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity":
"sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8.6"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
@@ -5381,9 +5268,9 @@
}
},
"node_modules/pretty-format": {
- "version": "30.2.0",
- "resolved":
"https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
- "integrity":
"sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
+ "version": "30.3.0",
+ "resolved":
"https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz",
+ "integrity":
"sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5507,11 +5394,12 @@
}
},
"node_modules/rollup": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz",
- "integrity":
"sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz",
+ "integrity":
"sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/estree": "1.0.8"
},
@@ -5523,31 +5411,31 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.57.1",
- "@rollup/rollup-android-arm64": "4.57.1",
- "@rollup/rollup-darwin-arm64": "4.57.1",
- "@rollup/rollup-darwin-x64": "4.57.1",
- "@rollup/rollup-freebsd-arm64": "4.57.1",
- "@rollup/rollup-freebsd-x64": "4.57.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.57.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.57.1",
- "@rollup/rollup-linux-arm64-gnu": "4.57.1",
- "@rollup/rollup-linux-arm64-musl": "4.57.1",
- "@rollup/rollup-linux-loong64-gnu": "4.57.1",
- "@rollup/rollup-linux-loong64-musl": "4.57.1",
- "@rollup/rollup-linux-ppc64-gnu": "4.57.1",
- "@rollup/rollup-linux-ppc64-musl": "4.57.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.57.1",
- "@rollup/rollup-linux-riscv64-musl": "4.57.1",
- "@rollup/rollup-linux-s390x-gnu": "4.57.1",
- "@rollup/rollup-linux-x64-gnu": "4.57.1",
- "@rollup/rollup-linux-x64-musl": "4.57.1",
- "@rollup/rollup-openbsd-x64": "4.57.1",
- "@rollup/rollup-openharmony-arm64": "4.57.1",
- "@rollup/rollup-win32-arm64-msvc": "4.57.1",
- "@rollup/rollup-win32-ia32-msvc": "4.57.1",
- "@rollup/rollup-win32-x64-gnu": "4.57.1",
- "@rollup/rollup-win32-x64-msvc": "4.57.1",
+ "@rollup/rollup-android-arm-eabi": "4.59.0",
+ "@rollup/rollup-android-arm64": "4.59.0",
+ "@rollup/rollup-darwin-arm64": "4.59.0",
+ "@rollup/rollup-darwin-x64": "4.59.0",
+ "@rollup/rollup-freebsd-arm64": "4.59.0",
+ "@rollup/rollup-freebsd-x64": "4.59.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.59.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.59.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.59.0",
+ "@rollup/rollup-linux-arm64-musl": "4.59.0",
+ "@rollup/rollup-linux-loong64-gnu": "4.59.0",
+ "@rollup/rollup-linux-loong64-musl": "4.59.0",
+ "@rollup/rollup-linux-ppc64-gnu": "4.59.0",
+ "@rollup/rollup-linux-ppc64-musl": "4.59.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.59.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.59.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.59.0",
+ "@rollup/rollup-linux-x64-gnu": "4.59.0",
+ "@rollup/rollup-linux-x64-musl": "4.59.0",
+ "@rollup/rollup-openbsd-x64": "4.59.0",
+ "@rollup/rollup-openharmony-arm64": "4.59.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.59.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.59.0",
+ "@rollup/rollup-win32-x64-gnu": "4.59.0",
+ "@rollup/rollup-win32-x64-msvc": "4.59.0",
"fsevents": "~2.3.2"
}
},
@@ -5590,10 +5478,23 @@
"node": ">= 8.0.0"
}
},
+ "node_modules/rollup-plugin-typescript2/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity":
"sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity":
"sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity":
"sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -5802,13 +5703,13 @@
}
},
"node_modules/strip-ansi": {
- "version": "7.1.2",
- "resolved":
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
- "integrity":
"sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "version": "7.2.0",
+ "resolved":
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity":
"sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-regex": "^6.0.1"
+ "ansi-regex": "^6.2.2"
},
"engines": {
"node": ">=12"
@@ -5931,6 +5832,13 @@
"node": ">=8"
}
},
+ "node_modules/test-exclude/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved":
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity":
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/test-exclude/node_modules/brace-expansion": {
"version": "1.1.12",
"resolved":
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
@@ -5965,9 +5873,9 @@
}
},
"node_modules/test-exclude/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity":
"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity":
"sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -5994,37 +5902,6 @@
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
- "node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity":
"sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity":
"sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -6032,19 +5909,6 @@
"dev": true,
"license": "BSD-3-Clause"
},
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved":
"https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity":
"sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
"node_modules/ts-api-utils": {
"version": "2.4.0",
"resolved":
"https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz",
@@ -6134,12 +5998,46 @@
"typedoc": "^0.28.1"
}
},
+ "node_modules/typedoc/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved":
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity":
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/typedoc/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved":
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity":
"sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/typedoc/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity":
"sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/typescript": {
"version": "5.9.3",
"resolved":
"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity":
"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
diff --git a/web/package.json b/web/package.json
index 3700377625..ad236b8c21 100644
--- a/web/package.json
+++ b/web/package.json
@@ -3,7 +3,7 @@
"description": "TVM WASM/WebGPU runtime for JS/TS",
"license": "Apache-2.0",
"homepage": "https://github.com/apache/tvm/tree/main/web",
- "version": "0.24.0-dev1",
+ "version": "0.24.0-dev2",
"files": [
"lib"
],
diff --git a/web/src/artifact_cache.ts b/web/src/artifact_cache.ts
index e43cb91e11..9b4494805b 100644
--- a/web/src/artifact_cache.ts
+++ b/web/src/artifact_cache.ts
@@ -83,6 +83,203 @@ export interface ArtifactCacheTemplate {
deleteInCache(url: string): Promise<void>;
}
+export type ArtifactCacheType = "cache" | "indexeddb" | "cross-origin";
+
+export interface TensorCacheAccessOptions {
+ cacheScope?: string;
+ cacheType?: ArtifactCacheType;
+ artifactCache?: ArtifactCacheTemplate;
+}
+
+type StoreType = string | undefined;
+type RequestLike = string | URL | Request | { url?: string };
+
+interface CrossOriginHashDescriptor {
+ algorithm: string;
+ value: string;
+}
+
+interface CrossOriginStorageHandle {
+ getFile(): Promise<Blob>;
+ createWritable(): Promise<CrossOriginStorageWritable>;
+}
+
+interface CrossOriginStorageRequestFileHandleOptions {
+ create?: boolean;
+}
+
+interface CrossOriginStorageWritable {
+ write(data: Blob): Promise<void>;
+ close(): Promise<void>;
+}
+
+interface CrossOriginStorageAPI {
+ requestFileHandles(
+ descriptors: CrossOriginHashDescriptor[],
+ options?: CrossOriginStorageRequestFileHandleOptions,
+ ): Promise<CrossOriginStorageHandle[]>;
+}
+
+declare global {
+ interface Navigator {
+ crossOriginStorage?: CrossOriginStorageAPI;
+ }
+ interface WorkerNavigator {
+ crossOriginStorage?: CrossOriginStorageAPI;
+ }
+}
+
+const HASH_ALGORITHM = "SHA-256";
+const DEFAULT_FETCH_OPTIONS: RequestInit = { method: "GET" };
+let crossOriginFallbackWarningLogged = false;
+
+const GLOBAL_HASH_CACHE = new Map<
+ string,
+ CrossOriginHashDescriptor
+>();
+
+class CrossOriginStorage {
+ private hashCache: Map<string, CrossOriginHashDescriptor>;
+
+ constructor() {
+ this.hashCache = GLOBAL_HASH_CACHE;
+ }
+
+ static isAvailable(): boolean {
+ if (typeof navigator === "undefined") {
+ return false;
+ }
+ return navigator.crossOriginStorage !== undefined;
+ }
+
+ async match(request: RequestLike): Promise<Response | undefined> {
+ const url = this.normalizeRequest(request);
+ const hash = await this.resolveHashDescriptor(url);
+ if (!hash) {
+ return undefined;
+ }
+ try {
+ const api = this.getApi();
+ if (!api) {
+ return undefined;
+ }
+ const handles = await api.requestFileHandles([hash]);
+ const handle = handles[0];
+ if (!handle) {
+ return undefined;
+ }
+ const blob = await handle.getFile();
+ return new Response(blob);
+ } catch {
+ return undefined;
+ }
+ }
+
+ async put(request: RequestLike, response: Response): Promise<void> {
+ const url = this.normalizeRequest(request);
+ const blob = await response.blob();
+ const hash = await this.getBlobHash(blob);
+ const api = this.getApi();
+ if (!api) {
+ throw new Error("Cross-origin storage API unavailable.");
+ }
+ const handles = await api.requestFileHandles([hash], { create: true });
+ const handle = handles[0];
+ if (!handle) {
+ throw new Error("Cross-origin storage API returned no handles.");
+ }
+ const writableStream = await handle.createWritable();
+ await writableStream.write(blob);
+ await writableStream.close();
+ this.hashCache.set(url, hash);
+ }
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ async delete(_request: RequestLike): Promise<void> {
+ // Cross-origin storage extension currently has no delete API.
+ return;
+ }
+
+ private getApi(): CrossOriginStorageAPI | undefined {
+ if (!CrossOriginStorage.isAvailable()) {
+ return undefined;
+ }
+ return navigator.crossOriginStorage;
+ }
+
+ private normalizeRequest(request: RequestLike): string {
+ if (typeof request === "string") {
+ return request;
+ }
+ if (request instanceof URL) {
+ return request.href;
+ }
+ if (request instanceof Request) {
+ return request.url;
+ }
+ if (request && typeof request.url === "string") {
+ return request.url;
+ }
+ throw new Error("CrossOriginStorage: Unsupported request type.");
+ }
+
+ private async resolveHashDescriptor(
+ url: string,
+ ): Promise<CrossOriginHashDescriptor | null> {
+ const cached = this.hashCache.get(url);
+ if (cached) {
+ return cached;
+ }
+ const hashValue = await this.getFileHash(url);
+ if (!hashValue) {
+ return null;
+ }
+ const descriptor: CrossOriginHashDescriptor = {
+ algorithm: HASH_ALGORITHM,
+ value: hashValue,
+ };
+ this.hashCache.set(url, descriptor);
+ return descriptor;
+ }
+
+ private async getFileHash(url: string): Promise<string | null> {
+ if (/\/resolve\//.test(url)) {
+ const pointerHash = await this.extractHashFromPointer(url);
+ if (pointerHash) {
+ return pointerHash;
+ }
+ }
+ return null;
+ }
+
+ private async extractHashFromPointer(url: string): Promise<string | null> {
+ const rawUrl = url.replace(/\/resolve\//, "/raw/");
+ try {
+ const text = await fetch(rawUrl).then((res) => res.text());
+ if (!text.includes("oid sha256:")) {
+ return null;
+ }
+ const match = text.match(/oid sha256:([A-Fa-f0-9]+)/);
+ return match ? match[1] : null;
+ } catch {
+ return null;
+ }
+ }
+
+ private async getBlobHash(blob: Blob): Promise<CrossOriginHashDescriptor> {
+ const arrayBuffer = await blob.arrayBuffer();
+ const hashBuffer = await crypto.subtle.digest(HASH_ALGORITHM, arrayBuffer);
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
+ const hashHex = hashArray
+ .map((byte) => byte.toString(16).padStart(2, "0"))
+ .join("");
+ return {
+ algorithm: HASH_ALGORITHM,
+ value: hashHex,
+ };
+ }
+}
+
/**
* Cache to store model related data, implemented with the Cache API.
@@ -352,36 +549,187 @@ export class ArtifactIndexedDBCache implements
ArtifactCacheTemplate {
}
}
+/**
+ * Cache by cross-origin storage extension.
+ */
+export class ArtifactCrossOriginStorageCache implements ArtifactCacheTemplate {
+ private storage: CrossOriginStorage;
+
+ constructor(
+ _scope: string,
+ storage: CrossOriginStorage = new CrossOriginStorage(),
+ ) {
+ this.storage = storage;
+ }
+
+ async fetchWithCache(
+ url: string,
+ storetype?: StoreType,
+ signal?: AbortSignal,
+ ): Promise<any> {
+ const cachedResponse = await this.storage.match(url);
+ if (cachedResponse !== undefined) {
+ return this.responseToStoreType(cachedResponse, storetype);
+ }
+ await this.addToCache(url, storetype, signal);
+ const hydrated = await this.storage.match(url);
+ if (hydrated === undefined) {
+ throw new Error(`ArtifactCrossOriginStorageCache: failed to hydrate
${url}`);
+ }
+ return this.responseToStoreType(hydrated, storetype);
+ }
+
+ async addToCache(
+ url: string,
+ _storetype?: StoreType,
+ signal?: AbortSignal,
+ ): Promise<void> {
+ const existing = await this.storage.match(url);
+ if (existing !== undefined) {
+ return;
+ }
+ const request = new Request(
+ url,
+ signal ? { ...DEFAULT_FETCH_OPTIONS, signal } : DEFAULT_FETCH_OPTIONS,
+ );
+ const response = await fetch(request);
+ if (!response.ok) {
+ throw new Error(
+ `ArtifactCrossOriginStorageCache: Unable to fetch ${url}, received
status ${response.status}`,
+ );
+ }
+ await this.storage.put(url, response.clone());
+ }
+
+ async hasAllKeys(keys: string[]): Promise<boolean> {
+ const results = await Promise.all(
+ keys.map(async (key) => {
+ const cached = await this.storage.match(key);
+ return cached !== undefined;
+ }),
+ );
+ return results.every((result) => result);
+ }
+
+ async deleteInCache(url: string): Promise<void> {
+ await this.storage.delete(url);
+ }
+
+ private async responseToStoreType(
+ response: Response,
+ storetype?: StoreType,
+ ): Promise<any> {
+ if (storetype === undefined) {
+ return response;
+ }
+ const format = storetype.toLowerCase();
+ if (format === "json") {
+ return response.json();
+ }
+ if (format === "arraybuffer") {
+ return response.arrayBuffer();
+ }
+ return response;
+ }
+}
+
+function normalizeCacheType(cacheType?: string): ArtifactCacheType {
+ if (cacheType === undefined) {
+ return "cache";
+ }
+ const normalized = cacheType.toLowerCase();
+ if (normalized === "cache") {
+ return "cache";
+ }
+ if (normalized === "indexeddb") {
+ return "indexeddb";
+ }
+ if (normalized === "cross-origin") {
+ return "cross-origin";
+ }
+ console.error("Unsupported cacheType: " + cacheType + ", using default
ArtifactCache.");
+ return "cache";
+}
+
+function isTensorCacheAccessOptions(
+ value: string | TensorCacheAccessOptions | undefined,
+): value is TensorCacheAccessOptions {
+ return typeof value === "object" && value !== null;
+}
+
+function normalizeCacheAccessOptions(
+ cacheScopeOrOptions: string | TensorCacheAccessOptions | undefined,
+ cacheType?: string,
+): TensorCacheAccessOptions {
+ if (isTensorCacheAccessOptions(cacheScopeOrOptions)) {
+ return cacheScopeOrOptions;
+ }
+ return {
+ cacheScope: cacheScopeOrOptions,
+ cacheType: normalizeCacheType(cacheType),
+ };
+}
+
+export function createArtifactCache(
+ scope: string,
+ options: TensorCacheAccessOptions = {},
+): ArtifactCacheTemplate {
+ if (options.artifactCache !== undefined) {
+ return options.artifactCache;
+ }
+ const cacheType = normalizeCacheType(options.cacheType);
+ if (cacheType === "indexeddb") {
+ return new ArtifactIndexedDBCache(scope);
+ }
+ if (cacheType === "cross-origin") {
+ if (CrossOriginStorage.isAvailable()) {
+ return new ArtifactCrossOriginStorageCache(scope);
+ }
+ if (!crossOriginFallbackWarningLogged) {
+ console.warn(
+ "Cross-origin storage backend is unavailable; falling back to
ArtifactCache.",
+ );
+ crossOriginFallbackWarningLogged = true;
+ }
+ }
+ return new ArtifactCache(scope);
+}
+
/**
* Function to check if NDarray is in Cache or not
*
* @param tensorCacheUrl The cache url which links to the Tensor
* @param cacheScope The scope identifier of the cache
- * @param cacheType The type of the cache: "cache" or "indexedDB"
+ * @param cacheType The type of the cache: "cache", "indexedDB", or
"cross-origin"
* @returns the result if the cache has Tensor
*/
export async function hasTensorInCache(
tensorCacheUrl: string,
- cacheScope = "tvmjs",
- cacheType = "cache"
+ options?: TensorCacheAccessOptions,
+): Promise<boolean>;
+export async function hasTensorInCache(
+ tensorCacheUrl: string,
+ cacheScope?: string,
+ cacheType?: string,
+): Promise<boolean>;
+export async function hasTensorInCache(
+ tensorCacheUrl: string,
+ cacheScopeOrOptions: string | TensorCacheAccessOptions = "tvmjs",
+ cacheType = "cache",
): Promise<boolean> {
- let artifactCache: ArtifactCacheTemplate;
- if (cacheType.toLowerCase() === "cache") {
- artifactCache = new ArtifactCache(cacheScope);
- } else if (cacheType.toLowerCase() == "indexeddb") {
- artifactCache = new ArtifactIndexedDBCache(cacheScope);
- } else {
- console.error("Unsupported cacheType: " + cacheType + ", using default
ArtifactCache.");
- artifactCache = new ArtifactCache(cacheScope);
- }
+ const options = normalizeCacheAccessOptions(cacheScopeOrOptions, cacheType);
+ const cacheScope = options.cacheScope ?? "tvmjs";
+ const artifactCache = createArtifactCache(cacheScope, options);
const jsonUrl = new URL("tensor-cache.json", tensorCacheUrl).href;
const hasJsonUrlInCache = await artifactCache.hasAllKeys([jsonUrl]);
if (!hasJsonUrlInCache) {
return false;
}
- let list = await artifactCache.fetchWithCache(jsonUrl, "json");
- list = list["records"] as Array<TensorShardEntry>;
+ const list = (await artifactCache.fetchWithCache(
+ jsonUrl,
+ "json",
+ ))["records"] as Array<TensorShardEntry>;
return await artifactCache.hasAllKeys(list.map(key => new URL(key.dataPath,
tensorCacheUrl).href));
}
@@ -391,21 +739,28 @@ export async function hasTensorInCache(
*
* @param cacheUrl The cacheUrl for the items
* @param cacheScope The scope identifier of the cache
- * @param cacheType The type of the cache: "cache" or "indexedDB"
+ * @param cacheType The type of the cache: "cache", "indexedDB", or
"cross-origin"
*/
export async function deleteTensorCache(
cacheUrl: string,
- cacheScope = "tvmjs",
- cacheType = "cache"
-) {
- let artifactCache: ArtifactCacheTemplate;
- if (cacheType.toLowerCase() === "cache") {
- artifactCache = new ArtifactCache(cacheScope);
- } else if (cacheType.toLowerCase() == "indexeddb") {
- artifactCache = new ArtifactIndexedDBCache(cacheScope);
- } else {
- console.error("Unsupported cacheType: " + cacheType + ", using default
ArtifactCache.");
- artifactCache = new ArtifactCache(cacheScope);
+ options?: TensorCacheAccessOptions,
+): Promise<void>;
+export async function deleteTensorCache(
+ cacheUrl: string,
+ cacheScope?: string,
+ cacheType?: string,
+): Promise<void>;
+export async function deleteTensorCache(
+ cacheUrl: string,
+ cacheScopeOrOptions: string | TensorCacheAccessOptions = "tvmjs",
+ cacheType = "cache",
+): Promise<void> {
+ const options = normalizeCacheAccessOptions(cacheScopeOrOptions, cacheType);
+ const cacheScope = options.cacheScope ?? "tvmjs";
+ const artifactCache = createArtifactCache(cacheScope, options);
+ if (artifactCache instanceof ArtifactCrossOriginStorageCache) {
+ // Cross-origin storage extension does not currently support programmatic
deletion.
+ return;
}
const jsonUrl = new URL("tensor-cache.json", cacheUrl).href;
const list = await artifactCache.fetchWithCache(jsonUrl, "json");
diff --git a/web/src/index.ts b/web/src/index.ts
index e26c84cc38..32450a7779 100644
--- a/web/src/index.ts
+++ b/web/src/index.ts
@@ -21,13 +21,17 @@ export {
Scalar, DLDevice, DLDataType,
PackedFunc, Module, Tensor,
TVMArray, TVMObject, VirtualMachine,
- InitProgressCallback, InitProgressReport,
+ InitProgressCallback, InitProgressReport, FetchTensorCacheOptions,
Instance, instantiate
} from "./runtime";
export {
+ ArtifactCacheType,
+ TensorCacheAccessOptions,
ArtifactCacheTemplate,
ArtifactCache,
ArtifactIndexedDBCache,
+ ArtifactCrossOriginStorageCache,
+ createArtifactCache,
hasTensorInCache,
deleteTensorCache
} from "./artifact_cache";
diff --git a/web/src/runtime.ts b/web/src/runtime.ts
index 076efdb5fd..a7b3a56f3e 100644
--- a/web/src/runtime.ts
+++ b/web/src/runtime.ts
@@ -29,10 +29,11 @@ import { AsyncifyHandler } from "./asyncify";
import { FunctionInfo, WebGPUContext } from "./webgpu";
import { CacheState } from "./cache_state";
import {
- ArtifactCache,
ArtifactCacheTemplate,
- ArtifactIndexedDBCache,
+ ArtifactCacheType,
+ TensorCacheAccessOptions,
TensorShardEntry,
+ createArtifactCache,
} from "./artifact_cache";
import * as compact from "./compact";
import * as ctypes from "./ctypes";
@@ -831,6 +832,10 @@ export interface InitProgressReport {
export type InitProgressCallback = (report: InitProgressReport) => void;
+export interface FetchTensorCacheOptions extends TensorCacheAccessOptions {
+ signal?: AbortSignal;
+}
+
/**
* TVM runtime instance.
*
@@ -1252,33 +1257,52 @@ export class Instance implements Disposable {
*
* @param tensorCacheUrl The cache url.
* @param device The device to be fetched to.
- * @param cacheScope The scope identifier of the cache
- * @param cacheType The type of the cache: "cache" or "indexedDB"
- * @param signal An optional AbortSignal to abort the fetch
+ * @param options Options object.
+ * @param cacheScope The scope identifier of the cache (legacy positional
overload).
+ * @param cacheType The type of the cache: "cache", "indexeddb", or
"cross-origin" (legacy positional overload).
+ * @param signal An optional AbortSignal to abort the fetch (legacy
positional overload).
* @returns The meta data
*/
async fetchTensorCache(
tensorCacheUrl: string,
device: DLDevice,
- cacheScope = "tvmjs",
+ options?: FetchTensorCacheOptions,
+ ): Promise<any>;
+ async fetchTensorCache(
+ tensorCacheUrl: string,
+ device: DLDevice,
+ cacheScope?: string,
+ cacheType?: string,
+ signal?: AbortSignal,
+ ): Promise<any>;
+ async fetchTensorCache(
+ tensorCacheUrl: string,
+ device: DLDevice,
+ cacheScopeOrOptions: string | FetchTensorCacheOptions = "tvmjs",
cacheType = "cache",
signal?: AbortSignal,
): Promise<any> {
- let artifactCache: ArtifactCacheTemplate;
- if (cacheType === undefined || cacheType.toLowerCase() === "cache") {
- artifactCache = new ArtifactCache(cacheScope);
- } else if (cacheType.toLowerCase() == "indexeddb") {
- artifactCache = new ArtifactIndexedDBCache(cacheScope);
+ let options: FetchTensorCacheOptions;
+ if (typeof cacheScopeOrOptions === "object" && cacheScopeOrOptions !==
null) {
+ options = cacheScopeOrOptions;
} else {
- console.error("Unsupported cacheType: " + cacheType + ", using default
ArtifactCache.");
- artifactCache = new ArtifactCache(cacheScope);
+ options = {
+ cacheScope: cacheScopeOrOptions as string,
+ signal: signal,
+ };
}
+ const cacheScope = options.cacheScope ?? "tvmjs";
+ const artifactCache = createArtifactCache(cacheScope, {
+ ...options,
+ cacheType: options.cacheType ?? (cacheType as ArtifactCacheType),
+ });
+ const effectiveSignal = options.signal ?? signal;
const jsonUrl = new URL("tensor-cache.json", tensorCacheUrl).href;
- const list = await artifactCache.fetchWithCache(jsonUrl, "json");
+ const list = await artifactCache.fetchWithCache(jsonUrl, "json",
effectiveSignal);
await this.fetchTensorCacheInternal(
tensorCacheUrl,
list["records"] as Array<TensorShardEntry>, device, artifactCache,
- signal);
+ effectiveSignal);
this.cacheMetadata = { ...this.cacheMetadata, ...(list["metadata"] as
Record<string, any>) };
}