aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-08-28 21:57:35 +0200
committerLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-08-28 21:57:35 +0200
commitdb77f995f6d7cca5b471635a393954e2bd34b65a (patch)
tree5b8bb8f039d8f51691f8add54036f6dce39f7658
parentd09f12a4c3730d9992f14b89c64ba7b117c1946e (diff)
downloadevaltool-db77f995f6d7cca5b471635a393954e2bd34b65a.tar.gz
evaltool-db77f995f6d7cca5b471635a393954e2bd34b65a.tar.bz2
evaltool-db77f995f6d7cca5b471635a393954e2bd34b65a.tar.lz
evaltool-db77f995f6d7cca5b471635a393954e2bd34b65a.zip

feat: exttool

-rw-r--r--README.md12
-rw-r--r--examples/breeze-wiki.ts4
-rw-r--r--examples/i2p.ts4
-rw-r--r--examples/imgur-redirect.ts4
-rw-r--r--examples/open-loopback-as-new-window.ts29
-rw-r--r--manifest.json46
-rwxr-xr-xon-change4
-rw-r--r--package.json47
-rw-r--r--pnpm-lock.yaml2241
-rw-r--r--src/background.ts12
-rw-r--r--src/lib/.gitignore1
-rw-r--r--src/lib/gen-webext-polyfill.ts15
l---------src/lib/tsconfig.jsonc1
-rw-r--r--src/routes/+page.svelte11
-rw-r--r--src/routes/Monaco.svelte46
-rw-r--r--src/routes/userland.d.ts10
16 files changed, 1047 insertions, 1440 deletions
diff --git a/README.md b/README.md
index 5bff652..18305c6 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,12 @@
-# httptool
+# evaltool
-An extension that simply exposes the [browser.webRequest](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest) APIs.
+Extension Micro-Prototyping for simple creatures. Compatible with the more specific-purpose [httptool](https://git.estrogen.zone/httptool.git/about) (Use that if it's sufficient for your use-case instead, please).
+
+> **Note to non-technical users: This extension can be used for [Self-XSS](https://en.wikipedia.org/wiki/Self-XSS). It's meant only for developers. Do not use it if not a developer.**
## Editing the script
-Once installed, go to `about:extensions` -> httptool -> Preferences, then edit shit.
+Once installed, go to `about:extensions` -> evaltool -> Preferences, then edit shit.
## Opening a larger (full-screen) editor
@@ -19,3 +21,7 @@ Changes are autosaved on edit, however to apply them, you need to disable and re
## Icon Source
https://www.deviantart.com/transparentjiggly64/art/Blahaj-facing-sideways-989660804
+
+## Something not working?
+
+If something you're doing doesn't work, you probably need to enable one of the many optional permissions.
diff --git a/examples/breeze-wiki.ts b/examples/breeze-wiki.ts
index 7e0d5d6..af218a9 100644
--- a/examples/breeze-wiki.ts
+++ b/examples/breeze-wiki.ts
@@ -1,7 +1,7 @@
// This example redirects all fandom pages to breezewiki (or for minecraft.fandom.com, the minecraft wiki)
-import type Browser from 'webextension-polyfill';
-declare const browser: typeof Browser;
+import type { Browser } from 'webextension-polyfill';
+declare const browser: Browser;
// ^ above 2 lines are optional, and only useful to allow the examples directory to not complain. The extension's monaco already defines the type of the browser global.
browser.webRequest.onBeforeRequest.addListener(
diff --git a/examples/i2p.ts b/examples/i2p.ts
index b9b29c4..7a2cb14 100644
--- a/examples/i2p.ts
+++ b/examples/i2p.ts
@@ -1,7 +1,7 @@
// This example allows entering i2p eepsites into your URL bar - and assuming you're using duckduckgo, it will send you to the eepsite instead.
-import type Browser from 'webextension-polyfill';
-declare const browser: typeof Browser;
+import type { Browser } from 'webextension-polyfill';
+declare const browser: Browser;
// ^ above 2 lines are optional, and only useful to allow the examples directory to not complain. The extension's monaco already defines the type of the browser global.
browser.webRequest.onBeforeRequest.addListener(
diff --git a/examples/imgur-redirect.ts b/examples/imgur-redirect.ts
index 97d7c81..72ff7d9 100644
--- a/examples/imgur-redirect.ts
+++ b/examples/imgur-redirect.ts
@@ -1,5 +1,5 @@
-import type Browser from 'webextension-polyfill';
-declare const browser: typeof Browser;
+import type { Browser } from 'webextension-polyfill';
+declare const browser: Browser;
// ^ above 2 lines are optional, and only useful to allow the examples directory to not complain. The extension's monaco already defines the type of the browser global.
browser.webRequest.onBeforeRequest.addListener(
diff --git a/examples/open-loopback-as-new-window.ts b/examples/open-loopback-as-new-window.ts
new file mode 100644
index 0000000..5806d4c
--- /dev/null
+++ b/examples/open-loopback-as-new-window.ts
@@ -0,0 +1,29 @@
+import type { Browser } from 'webextension-polyfill';
+declare const browser: Browser;
+
+browser.webRequest.onBeforeRequest.addListener(
+ (requestDetails) => {
+ const url = new URL(requestDetails.url);
+ if (url.searchParams.has('open-tab')) {
+ url.searchParams.delete('open-tab');
+ (async () => {
+ const oldTab = await browser.tabs.get(requestDetails.tabId)
+ console.warn(url.href);
+
+ await browser.windows.create({
+ type: 'popup',
+ width: 768,
+ height: 512,
+ url: [url.href]
+ });
+
+ await browser.tabs.remove(oldTab.id!)
+ })()
+ return {
+ cancel: true
+ };
+ }
+ },
+ { urls: ['http://127.0.0.1/*', 'http://localhost/*'] },
+ ['blocking']
+);
diff --git a/manifest.json b/manifest.json
index 4eea4dc..880b4a6 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,17 +1,41 @@
{
- "description": "A minimal extension for manipulation of HTTP Requests and Responses; a fancy wrapper around browser.webRequest. Should be treated as a more restricted single-script userscript manager.",
+ "description": "**FOR DEVELOPERS ONLY!! IF YOU'VE BEEN TOLD TO INSTALL THIS, SOMEONE'S TRYING TO PHISH YOU! See https://en.wikipedia.org/wiki/Self-XSS**\n\nA general-purpose script evaluation tool. Should be treated as a more restricted single-script userscript manager.",
"manifest_version": 2,
- "name": "httptool",
+ "name": "evaltool",
"version": "0.0.2",
-
"permissions": [
- "webRequest",
- "webRequestBlocking",
- "storage",
+ "contextMenus",
"theme",
- "<all_urls>",
+ "storage",
"unlimitedStorage"
],
+ "optional_permissions": [
+ "activeTab",
+ "bookmarks",
+ "browsingData",
+ "clipboardRead",
+ "clipboardWrite",
+ "cookies",
+ "downloads",
+ "geolocation",
+ "history",
+ "idle",
+ "management",
+ "nativeMessaging",
+ "notifications",
+ "privacy",
+ "proxy",
+ "scripting",
+ "search",
+ "sessions",
+ "tabGroups",
+ "tabs",
+ "topSites",
+ "webRequest",
+ "webRequestBlocking",
+ "webNavigation",
+ "<all_urls>"
+ ],
"icons": {
"16": "favicon_16x.png",
"32": "favicon_32x.png",
@@ -20,10 +44,10 @@
"96": "favicon_96x.png",
"128": "favicon_128x.png"
},
- "optional_permissions": [],
-
"background": {
- "scripts": ["generated/background.js"],
+ "scripts": [
+ "generated/background.js"
+ ],
"type": "module"
},
"options_ui": {
@@ -31,7 +55,7 @@
},
"browser_specific_settings": {
"gecko": {
- "id": "httptool@git.estrogen.zone"
+ "id": "evaltool@git.estrogen.zone"
}
},
"content_security_policy": "script-src 'unsafe-eval' 'self'"
diff --git a/on-change b/on-change
index 19d47f0..8ed47de 100755
--- a/on-change
+++ b/on-change
@@ -3,7 +3,7 @@ sleep 5;
r() {
local V="{}"
while true; do
- local NV="$(cat build/uwu/version.json build/generated/background.iife.js)"
+ local NV="$(cat build/uwu/version.json build/generated/background.js)"
if [[ "$V" != "$NV" ]]; then
echo -ne "\x1b[2K\x1b[1GRequesting reload\x1b[1G" 1>&2;
echo "$1"
@@ -12,4 +12,4 @@ r() {
sleep 0.5;
done
}
-r "$@" \ No newline at end of file
+r "$@"
diff --git a/package.json b/package.json
index 2091ed7..cc9bdca 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,12 @@
{
- "name": "redirext",
+ "name": "windowtool",
"private": true,
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "concurrently -k --restart-tries -1 --restart-after 1000 \"vite build --mode development --watch\" \"vite build --mode development --watch --config vite.config.background.ts\" \"./do-webext-dev\"",
- "build": "concurrently --kill-others-on-fail \"vite build\" \"vite build --config vite.config.background.ts\"",
+ "build": "deno --allow-read=node_modules --allow-write=src/lib src/lib/gen-webext-polyfill.ts && concurrently --kill-others-on-fail \"vite build\" \"vite build --config vite.config.background.ts\"",
+ "build:watch": "deno --allow-read=node_modules --allow-write=src/lib src/lib/gen-webext-polyfill.ts && concurrently --kill-others-on-fail \"vite build --watch\" \"vite build --watch --config vite.config.background.ts\"",
"build-reproducible": "REPRODUCIBLE=1 pnpm build",
"preview": "web-ext run -p ff-ext --reload -f ./browser-launcher -s ./build",
"prepare": "svelte-kit sync || echo ''",
@@ -15,25 +16,25 @@
"postinstall": "cp ts.worker.js node_modules/monaco-editor/esm/vs/language/typescript/ts.worker.js"
},
"devDependencies": {
- "@sveltejs/adapter-static": "^3.0.8",
- "@sveltejs/kit": "^2.16.0",
- "@sveltejs/vite-plugin-svelte": "^5.0.0",
- "@tailwindcss/vite": "^4.0.0",
- "@types/webextension-polyfill": "0.12.1",
- "autoprefixer": "^10.4.20",
- "cheerio": "^1.0.0",
- "concurrently": "9.1.2",
- "esbuild": "^0.25.0",
- "monaco-editor": "^0.52.2",
- "svelte": "^5.0.0",
- "svelte-check": "^4.0.0",
- "svelte-preprocess": "^6.0.3",
- "tailwindcss": "^4.0.0",
- "tiny-glob": "^0.2.9",
- "typescript": "^5.0.0",
- "vite": "^6.0.0",
- "web-ext": "^8.4.0",
- "webextension-polyfill": "^0.12.0"
+ "@sveltejs/adapter-static": "3.0.9",
+ "@sveltejs/kit": "2.37.0",
+ "@sveltejs/vite-plugin-svelte": "6.1.3",
+ "@tailwindcss/vite": "4.1.12",
+ "@types/webextension-polyfill": "0.12.3",
+ "autoprefixer": "10.4.21",
+ "cheerio": "1.1.2",
+ "concurrently": "9.2.1",
+ "esbuild": "0.25.9",
+ "monaco-editor": "0.52.2",
+ "svelte": "5.38.6",
+ "svelte-check": "4.3.1",
+ "svelte-preprocess": "6.0.3",
+ "tailwindcss": "4.1.12",
+ "tiny-glob": "0.2.9",
+ "typescript": "5.9.2",
+ "vite": "7.1.3",
+ "web-ext": "8.9.0",
+ "webextension-polyfill": "0.12.0"
},
"pnpm": {
"onlyBuiltDependencies": [
@@ -42,7 +43,7 @@
},
"dependencies": {
"brotli-wasm": "3.0.1",
- "esbuild-wasm": "^0.25.0",
- "monaco-editor-core": "^0.52.2"
+ "esbuild-wasm": "0.25.0",
+ "monaco-editor-core": "0.52.2"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 740b022..892aa50 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,86 +12,82 @@ importers:
specifier: 3.0.1
version: 3.0.1
esbuild-wasm:
- specifier: ^0.25.0
+ specifier: 0.25.0
version: 0.25.0
monaco-editor-core:
- specifier: ^0.52.2
+ specifier: 0.52.2
version: 0.52.2
devDependencies:
'@sveltejs/adapter-static':
- specifier: ^3.0.8
- version: 3.0.8(@sveltejs/kit@2.17.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)))(svelte@5.20.2)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)))
+ specifier: 3.0.9
+ version: 3.0.9(@sveltejs/kit@2.37.0(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)))
'@sveltejs/kit':
- specifier: ^2.16.0
- version: 2.17.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)))(svelte@5.20.2)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1))
+ specifier: 2.37.0
+ version: 2.37.0(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)))(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1))
'@sveltejs/vite-plugin-svelte':
- specifier: ^5.0.0
- version: 5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1))
+ specifier: 6.1.3
+ version: 6.1.3(svelte@5.38.6)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1))
'@tailwindcss/vite':
- specifier: ^4.0.0
- version: 4.0.8(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1))
+ specifier: 4.1.12
+ version: 4.1.12(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1))
'@types/webextension-polyfill':
- specifier: 0.12.1
- version: 0.12.1
+ specifier: 0.12.3
+ version: 0.12.3
autoprefixer:
- specifier: ^10.4.20
- version: 10.4.20(postcss@8.5.3)
+ specifier: 10.4.21
+ version: 10.4.21(postcss@8.5.6)
cheerio:
- specifier: ^1.0.0
- version: 1.0.0
+ specifier: 1.1.2
+ version: 1.1.2
concurrently:
- specifier: 9.1.2
- version: 9.1.2
+ specifier: 9.2.1
+ version: 9.2.1
esbuild:
- specifier: ^0.25.0
- version: 0.25.0
+ specifier: 0.25.9
+ version: 0.25.9
monaco-editor:
- specifier: ^0.52.2
+ specifier: 0.52.2
version: 0.52.2
svelte:
- specifier: ^5.0.0
- version: 5.20.2
+ specifier: 5.38.6
+ version: 5.38.6
svelte-check:
- specifier: ^4.0.0
- version: 4.1.4(svelte@5.20.2)(typescript@5.7.3)
+ specifier: 4.3.1
+ version: 4.3.1(picomatch@4.0.3)(svelte@5.38.6)(typescript@5.9.2)
svelte-preprocess:
- specifier: ^6.0.3
- version: 6.0.3(postcss@8.5.3)(svelte@5.20.2)(typescript@5.7.3)
+ specifier: 6.0.3
+ version: 6.0.3(postcss@8.5.6)(svelte@5.38.6)(typescript@5.9.2)
tailwindcss:
- specifier: ^4.0.0
- version: 4.0.8
+ specifier: 4.1.12
+ version: 4.1.12
tiny-glob:
- specifier: ^0.2.9
+ specifier: 0.2.9
version: 0.2.9
typescript:
- specifier: ^5.0.0
- version: 5.7.3
+ specifier: 5.9.2
+ version: 5.9.2
vite:
- specifier: ^6.0.0
- version: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)
+ specifier: 7.1.3
+ version: 7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)
web-ext:
- specifier: ^8.4.0
- version: 8.4.0
+ specifier: 8.9.0
+ version: 8.9.0
webextension-polyfill:
- specifier: ^0.12.0
+ specifier: 0.12.0
version: 0.12.0
packages:
- '@ampproject/remapping@2.3.0':
- resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
- engines: {node: '>=6.0.0'}
-
- '@babel/code-frame@7.26.2':
- resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
+ '@babel/code-frame@7.27.1':
+ resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.25.9':
- resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'}
- '@babel/runtime@7.26.7':
- resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==}
+ '@babel/runtime@7.27.6':
+ resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==}
engines: {node: '>=6.9.0'}
'@devicefarmer/adbkit-logcat@2.1.3':
@@ -107,308 +103,164 @@ packages:
engines: {node: '>= 0.10.4'}
hasBin: true
- '@esbuild/aix-ppc64@0.24.2':
- resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/aix-ppc64@0.25.0':
- resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==}
+ '@esbuild/aix-ppc64@0.25.9':
+ resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.24.2':
- resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
+ '@esbuild/android-arm64@0.25.9':
+ resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm64@0.25.0':
- resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm@0.24.2':
- resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
+ '@esbuild/android-arm@0.25.9':
+ resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-arm@0.25.0':
- resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.24.2':
- resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/android-x64@0.25.0':
- resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==}
+ '@esbuild/android-x64@0.25.9':
+ resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.24.2':
- resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
+ '@esbuild/darwin-arm64@0.25.9':
+ resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-arm64@0.25.0':
- resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.24.2':
- resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.25.0':
- resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==}
+ '@esbuild/darwin-x64@0.25.9':
+ resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.24.2':
- resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
+ '@esbuild/freebsd-arm64@0.25.9':
+ resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-arm64@0.25.0':
- resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.24.2':
- resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
+ '@esbuild/freebsd-x64@0.25.9':
+ resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.25.0':
- resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/linux-arm64@0.24.2':
- resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
+ '@esbuild/linux-arm64@0.25.9':
+ resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm64@0.25.0':
- resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.24.2':
- resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-arm@0.25.0':
- resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==}
+ '@esbuild/linux-arm@0.25.9':
+ resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.24.2':
- resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-ia32@0.25.0':
- resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==}
+ '@esbuild/linux-ia32@0.25.9':
+ resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.24.2':
- resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
+ '@esbuild/linux-loong64@0.25.9':
+ resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-loong64@0.25.0':
- resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.24.2':
- resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
+ '@esbuild/linux-mips64el@0.25.9':
+ resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-mips64el@0.25.0':
- resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.24.2':
- resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
+ '@esbuild/linux-ppc64@0.25.9':
+ resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-ppc64@0.25.0':
- resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.24.2':
- resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.25.0':
- resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==}
+ '@esbuild/linux-riscv64@0.25.9':
+ resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.24.2':
- resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
+ '@esbuild/linux-s390x@0.25.9':
+ resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-s390x@0.25.0':
- resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.24.2':
- resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/linux-x64@0.25.0':
- resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==}
+ '@esbuild/linux-x64@0.25.9':
+ resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.24.2':
- resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [netbsd]
-
- '@esbuild/netbsd-arm64@0.25.0':
- resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==}
+ '@esbuild/netbsd-arm64@0.25.9':
+ resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.24.2':
- resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
+ '@esbuild/netbsd-x64@0.25.9':
+ resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.25.0':
- resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-arm64@0.24.2':
- resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
- '@esbuild/openbsd-arm64@0.25.0':
- resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==}
+ '@esbuild/openbsd-arm64@0.25.9':
+ resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.24.2':
- resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/openbsd-x64@0.25.0':
- resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==}
+ '@esbuild/openbsd-x64@0.25.9':
+ resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/sunos-x64@0.24.2':
- resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
+ '@esbuild/openharmony-arm64@0.25.9':
+ resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==}
engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
+ cpu: [arm64]
+ os: [openharmony]
- '@esbuild/sunos-x64@0.25.0':
- resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==}
+ '@esbuild/sunos-x64@0.25.9':
+ resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.24.2':
- resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-arm64@0.25.0':
- resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==}
+ '@esbuild/win32-arm64@0.25.9':
+ resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.24.2':
- resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-ia32@0.25.0':
- resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==}
+ '@esbuild/win32-ia32@0.25.9':
+ resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.24.2':
- resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [win32]
-
- '@esbuild/win32-x64@0.25.0':
- resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==}
+ '@esbuild/win32-x64@0.25.9':
+ resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
- '@eslint-community/eslint-utils@4.4.1':
- resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
+ '@eslint-community/eslint-utils@4.7.0':
+ resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
@@ -446,26 +298,28 @@ packages:
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
deprecated: Use @eslint/object-schema instead
- '@jridgewell/gen-mapping@0.3.8':
- resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
- engines: {node: '>=6.0.0'}
+ '@isaacs/fs-minipass@4.0.1':
+ resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
+ engines: {node: '>=18.0.0'}
+
+ '@jridgewell/gen-m