From e1cd71c83a20fea1e2da870b8f22e777cb992407 Mon Sep 17 00:00:00 2001 From: Renaud Rohlinger Date: Mon, 1 Jun 2026 02:42:37 +0900 Subject: [PATCH 1/2] Examples: Add `webgpu_skinning_instancing_individual` (#33644) --- examples/files.json | 1 + .../webgpu_skinning_instancing_individual.jpg | Bin 0 -> 47788 bytes ...webgpu_skinning_instancing_individual.html | 431 ++++++++++++++++++ 3 files changed, 432 insertions(+) create mode 100644 examples/screenshots/webgpu_skinning_instancing_individual.jpg create mode 100644 examples/webgpu_skinning_instancing_individual.html diff --git a/examples/files.json b/examples/files.json index 1de9f8cf94adf9..1687b84c9025ac 100644 --- a/examples/files.json +++ b/examples/files.json @@ -471,6 +471,7 @@ "webgpu_shadowmap_vsm", "webgpu_skinning", "webgpu_skinning_instancing", + "webgpu_skinning_instancing_individual", "webgpu_skinning_points", "webgpu_sky", "webgpu_sprites", diff --git a/examples/screenshots/webgpu_skinning_instancing_individual.jpg b/examples/screenshots/webgpu_skinning_instancing_individual.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ca8634a43a95181e8995a39bb2a83d8de1e5b439 GIT binary patch literal 47788 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 literal 0 HcmV?d00001 diff --git a/examples/webgpu_skinning_instancing_individual.html b/examples/webgpu_skinning_instancing_individual.html new file mode 100644 index 00000000000000..d6dbefadef0a98 --- /dev/null +++ b/examples/webgpu_skinning_instancing_individual.html @@ -0,0 +1,431 @@ + + + + three.js webgpu - skinning individual instancing + + + + + + + + + + +
+ + +
+ three.jsSkinning Individual Instancing +
+ + + Per-instance poses are computed once and reused by every render pass. + +
+ + + + + + From 6b3c4224839df6c803f77fb37d027cd9669ab848 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 31 May 2026 21:02:44 +0000 Subject: [PATCH 2/2] chore(deps): update dependency puppeteer to v25.1.0 (#33693) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 417 +++++----------------------------------------- 1 file changed, 45 insertions(+), 372 deletions(-) diff --git a/package-lock.json b/package-lock.json index ea78fd8bc1ad8c..8d990a5e9c4ffb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,21 +27,6 @@ "turndown": "^7.2.2" } }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", @@ -406,16 +391,13 @@ "license": "BSD-2-Clause" }, "node_modules/@puppeteer/browsers": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.3.tgz", - "integrity": "sha512-v3YaiGpzUTgOZkHBFR0iZg58Vto25SqBQxfLUXDiofJccwVl6Mlr7BdLCS1NZgxikdeIHf936cxYWL9IZp3tow==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.4.tgz", + "integrity": "sha512-HGM8iAmGTf+Y7t0373szVbTmt3d7vPkYL/1bpOkOFO0YUYLgSeuYBCzESklogNPvOBnZ/MRD5f07OkpqH1trtA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "debug": "^4.4.3", - "progress": "^2.0.3", - "semver": "^7.7.4", - "tar-fs": "^3.1.1", + "modern-tar": "^0.7.6", "yargs": "^17.7.2" }, "bin": { @@ -1027,21 +1009,6 @@ "dev": true, "license": "CC0-1.0" }, - "node_modules/b4a": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", - "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", - "dev": true, - "license": "Apache-2.0", - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1049,103 +1016,6 @@ "dev": true, "license": "MIT" }, - "node_modules/bare-events": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", - "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", - "dev": true, - "license": "Apache-2.0", - "peerDependencies": { - "bare-abort-controller": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - } - } - }, - "node_modules/bare-fs": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz", - "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.7.tgz", - "integrity": "sha512-G4Gr1UsGeEy2qtDTZwL7JFLo2wapUarz7iTMcYcMFdS89AIQuBoyjgXZz0Utv7uHs3xA9LckhVbeBi8lEQrC+w==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.0.tgz", - "integrity": "sha512-3zAJRZMDFGjdn+RVnNpF9kuELw+0Fl3lpndM4NcEOhb9zwtSo/deETfuIwMSE5BXanA0FrN1qVjffGwAg2Y7EA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "streamx": "^2.25.0", - "teex": "^1.0.1" - }, - "peerDependencies": { - "bare-abort-controller": "*", - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - }, - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/bare-url": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz", - "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bare-path": "^3.0.0" - } - }, "node_modules/baseline-browser-mapping": { "version": "2.10.19", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.19.tgz", @@ -1348,33 +1218,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -1426,9 +1269,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1608973", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1608973.tgz", - "integrity": "sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ==", + "version": "0.0.1624250", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1624250.tgz", + "integrity": "sha512-YFAat/lOiIk0ARmBweG+ygrEcbZrq5B9urRyUoeQKp53MlidHXE2TmTbxKcaXoQj7u/aX+jebDO4BW55rs0WwA==", "dev": true, "license": "BSD-3-Clause" }, @@ -1518,16 +1361,6 @@ "dev": true, "license": "MIT" }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/entities": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", @@ -1541,26 +1374,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", @@ -1870,16 +1683,6 @@ "node": ">=0.10.0" } }, - "node_modules/events-universal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", - "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.7.0" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1887,13 +1690,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2124,13 +1920,6 @@ "node": ">=0.8.19" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", @@ -2201,13 +1990,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, "node_modules/js-yaml": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", @@ -2288,13 +2070,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2343,12 +2118,18 @@ "node": ">= 0.8.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } }, "node_modules/linkify-it": { "version": "5.0.0", @@ -2502,6 +2283,16 @@ "node": ">=10" } }, + "node_modules/modern-tar": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.7.6.tgz", + "integrity": "sha512-sweCIVXzx1aIGTCdzcMlSZt1h8k5Tmk08VNAuRk3IU28XamGiOH5ypi11g6De2CH7PhYqSSnGy2A/EFhbWnVKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2530,16 +2321,6 @@ "dev": true, "license": "MIT" }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -2613,25 +2394,6 @@ "parse-statements": "1.0.11" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parse-statements": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz", @@ -2706,27 +2468,6 @@ "node": ">= 0.8.0" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/pump": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", - "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -2748,18 +2489,18 @@ } }, "node_modules/puppeteer": { - "version": "25.0.4", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.0.4.tgz", - "integrity": "sha512-QFdBAuNOqL0I+AdARTlRR1KcgPk0fo0dU127e1ZQFVxb9QPcpBDIiQp/dMgdbyLXHpF2GRjC/OezDmjKcLCKYw==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.1.0.tgz", + "integrity": "sha512-7L6/0JM7XStK99lIL4xQySyNEXNfII6pk0BxkI5kKBTOhR7AsoQiv067YTsE/rIXxQiq9ajlO4WcqBjS/FWK1A==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "3.0.3", + "@puppeteer/browsers": "3.0.4", "chromium-bidi": "16.0.1", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1608973", - "puppeteer-core": "25.0.4", + "devtools-protocol": "0.0.1624250", + "lilconfig": "^3.1.3", + "puppeteer-core": "25.1.0", "typed-query-selector": "^2.12.2" }, "bin": { @@ -2770,19 +2511,18 @@ } }, "node_modules/puppeteer-core": { - "version": "25.0.4", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.0.4.tgz", - "integrity": "sha512-K1LQKDP6w1rIr1jUyN9obH16TO/DCy86k3q+FBd2prGY+TStxhFySxmaZZuRF+0D3BJXjwCYFke7tMHCH4olTA==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.1.0.tgz", + "integrity": "sha512-jKzy5y4WG6uNuFbTWgW1D7mqoT9o0nllc/6a1DGF775T1mPmgw3scdFEtEq67yVFikavQmbYq6NLfbTfxHSlqQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "3.0.3", + "@puppeteer/browsers": "3.0.4", "chromium-bidi": "16.0.1", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1608973", + "devtools-protocol": "0.0.1624250", "typed-query-selector": "^2.12.2", - "webdriver-bidi-protocol": "0.4.1", - "ws": "^8.20.0" + "webdriver-bidi-protocol": "0.4.2", + "ws": "^8.21.0" }, "engines": { "node": ">=22.12.0" @@ -3000,18 +2740,6 @@ "dev": true, "license": "CC0-1.0" }, - "node_modules/streamx": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", - "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", - "dev": true, - "license": "MIT", - "dependencies": { - "events-universal": "^1.0.0", - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -3079,44 +2807,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tar-fs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", - "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz", - "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "bare-fs": "^4.5.5", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/teex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", - "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "streamx": "^2.12.5" - } - }, "node_modules/terser": { "version": "5.46.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", @@ -3143,16 +2833,6 @@ "dev": true, "license": "MIT" }, - "node_modules/text-decoder": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", - "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, "node_modules/to-valid-identifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-valid-identifier/-/to-valid-identifier-1.0.0.tgz", @@ -3260,9 +2940,9 @@ } }, "node_modules/webdriver-bidi-protocol": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", - "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.2.tgz", + "integrity": "sha512-VSV+fzfChirL3e7jay2yUC7B4HQCGtEWEg/MSSQbK+qWbqeGlRLlXTzPpYr3XGUvbpDHumWZBJxgesg4N7dbtA==", "dev": true, "license": "Apache-2.0" }, @@ -3310,13 +2990,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, "node_modules/ws": { "version": "8.21.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",