From 75f660fed0d123f8d5b010e0231e7a139f708d38 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:11:48 +0100 Subject: [PATCH 01/27] chore(deps): realign @types/node, align eslint 9, patch electron, fix audit vulns MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - @types/node ^25 → ^20 to match node>=20 engine and Electron's bundled Node (ends types/runtime skew) - eslint ^8 → ^9 (9.39.2 already installed; flat config is already v9); add @eslint/js + globals as explicit devDeps since eslint.config.mjs imports them - electron ^39.2.7 → ^39.8.10 (Chromium security patches within the same major) - @playwright/test + playwright 1.57.0 → 1.60.0 - add overrides.ws ^8.18.1: fixes the ws advisory pulled via osc (the only shipped-runtime vuln) without downgrading osc - npm update on within-range build/lint tooling: @babel/preset-env ≥7.29.4 fixes GHSA-fv7c-fp4j-7gwp; webpack, postcss, ts-eslint, etc. - npm audit fix (non-breaking): 38 → 12 vulns; remaining are the electron-builder 25.x cluster and dev-only webpack-dev-server transitives, handled/deferred separately Note: legacy-peer-deps kept intentionally (load-bearing for CI npm ci / lockfile compatibility per release.yml). React @types already realigned to 18.x on develop. Verified green: typecheck:all, 170/170 unit tests, lint (no new warnings). Co-Authored-By: Claude Opus 4.8 (1M context) --- package-lock.json | 2658 +++++++++++++++++++++++++-------------------- package.json | 15 +- 2 files changed, 1505 insertions(+), 1168 deletions(-) diff --git a/package-lock.json b/package-lock.json index a967c11..5bba573 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nw-wrld", - "version": "0.3.0-beta", + "version": "0.5.0-beta", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "nw-wrld", - "version": "0.3.0-beta", + "version": "0.5.0-beta", "license": "GPL-3.0", "dependencies": { "@dnd-kit/core": "^6.1.0", @@ -30,8 +30,9 @@ "@babel/preset-env": "^7.23.5", "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.28.5", - "@playwright/test": "1.57.0", - "@types/node": "^25.0.3", + "@eslint/js": "^9.0.0", + "@playwright/test": "1.60.0", + "@types/node": "^20.0.0", "@types/react": "^18.3.27", "@types/react-dom": "^18.3.7", "@typescript-eslint/eslint-plugin": "^8.0.0", @@ -41,14 +42,15 @@ "concurrently": "^8.2.2", "css-loader": "^6.10.0", "dmg-builder": "25.1.8", - "electron": "^39.2.7", + "electron": "^39.8.10", "electron-builder": "^25.1.8", "electron-builder-squirrel-windows": "25.1.8", - "eslint": "^8.0.0", + "eslint": "^9.0.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-react": "^7.0.0", "eslint-plugin-react-hooks": "^5.0.0", - "playwright": "1.57.0", + "globals": "^14.0.0", + "playwright": "1.60.0", "postcss": "^8.4.38", "postcss-loader": "^8.1.1", "prettier": "^3.0.0", @@ -78,13 +80,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -93,9 +95,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", - "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", "dev": true, "license": "MIT", "engines": { @@ -103,21 +105,21 @@ } }, "node_modules/@babel/core": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", - "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -134,14 +136,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -151,27 +153,27 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -181,18 +183,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", - "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.28.5", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.5", + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", "semver": "^6.3.1" }, "engines": { @@ -203,13 +205,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", - "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-annotate-as-pure": "^7.29.7", "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, @@ -221,26 +223,26 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" + "resolve": "^1.22.11" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", "dev": true, "license": "MIT", "engines": { @@ -248,43 +250,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", - "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -294,22 +296,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", - "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", "dev": true, "license": "MIT", "engines": { @@ -317,15 +319,15 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", - "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-wrap-function": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -335,15 +337,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", - "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -353,23 +355,23 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", - "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "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", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, "license": "MIT", "engines": { @@ -377,9 +379,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true, "license": "MIT", "engines": { @@ -387,9 +389,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", "dev": true, "license": "MIT", "engines": { @@ -397,42 +399,42 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", - "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2" + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", - "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.28.5" + "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -442,14 +444,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", - "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -459,13 +461,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", - "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -475,13 +477,30 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", - "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz", + "integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -491,15 +510,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", - "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -509,14 +528,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", - "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -539,13 +558,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", - "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -555,13 +574,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -571,13 +590,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -587,13 +606,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -620,13 +639,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", - "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -636,15 +655,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", - "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz", + "integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -654,15 +673,15 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -672,13 +691,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", - "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -688,13 +707,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", - "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -704,14 +723,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", - "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -721,14 +740,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", - "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -738,18 +757,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", - "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-globals": "^7.28.0", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.28.4" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -759,14 +778,14 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", - "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/template": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -776,14 +795,14 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", - "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -793,14 +812,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", - "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -810,13 +829,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", - "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -826,14 +845,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -843,13 +862,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", - "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -859,14 +878,14 @@ } }, "node_modules/@babel/plugin-transform-explicit-resource-management": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", - "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -876,13 +895,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", - "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -892,13 +911,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", - "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -908,14 +927,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", - "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -925,15 +944,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", - "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -943,13 +962,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", - "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -959,13 +978,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", - "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -975,13 +994,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", - "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -991,13 +1010,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", - "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1007,14 +1026,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", - "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1024,14 +1043,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", - "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1041,16 +1060,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", - "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz", + "integrity": "sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.5" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1060,14 +1079,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", - "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1077,14 +1096,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1094,13 +1113,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", - "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1110,13 +1129,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", - "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1126,13 +1145,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", - "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1142,17 +1161,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", - "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/traverse": "^7.28.4" + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1162,14 +1181,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", - "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1179,13 +1198,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", - "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1195,14 +1214,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", - "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1212,13 +1231,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", - "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1228,14 +1247,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1245,15 +1264,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", - "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1263,13 +1282,13 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", - "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1279,13 +1298,13 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", - "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", + "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1295,17 +1314,17 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", - "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", + "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1315,13 +1334,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", - "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", + "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.27.1" + "@babel/plugin-transform-react-jsx": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1331,14 +1350,14 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", - "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", + "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1348,13 +1367,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", - "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz", + "integrity": "sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1364,14 +1383,14 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", - "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1381,13 +1400,13 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", - "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1397,13 +1416,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", - "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1413,14 +1432,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", - "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz", + "integrity": "sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1430,13 +1449,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", - "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1446,13 +1465,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", - "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1462,13 +1481,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", - "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1478,17 +1497,17 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", - "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz", + "integrity": "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-syntax-typescript": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1498,13 +1517,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", - "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1514,14 +1533,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", - "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1531,14 +1550,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", - "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1548,14 +1567,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", - "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1565,81 +1584,82 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", - "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz", + "integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.29.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.29.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.29.7", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.29.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.29.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-import-assertions": "^7.29.7", + "@babel/plugin-syntax-import-attributes": "^7.29.7", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.0", - "@babel/plugin-transform-async-to-generator": "^7.27.1", - "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.5", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.4", - "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-dotall-regex": "^7.27.1", - "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.28.5", - "@babel/plugin-transform-export-namespace-from": "^7.27.1", - "@babel/plugin-transform-for-of": "^7.27.1", - "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", - "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", - "@babel/plugin-transform-member-expression-literals": "^7.27.1", - "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.28.5", - "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.4", - "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.28.5", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", - "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.4", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", - "@babel/plugin-transform-reserved-words": "^7.27.1", - "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", - "@babel/plugin-transform-sticky-regex": "^7.27.1", - "@babel/plugin-transform-template-literals": "^7.27.1", - "@babel/plugin-transform-typeof-symbol": "^7.27.1", - "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", - "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/plugin-transform-arrow-functions": "^7.29.7", + "@babel/plugin-transform-async-generator-functions": "^7.29.7", + "@babel/plugin-transform-async-to-generator": "^7.29.7", + "@babel/plugin-transform-block-scoped-functions": "^7.29.7", + "@babel/plugin-transform-block-scoping": "^7.29.7", + "@babel/plugin-transform-class-properties": "^7.29.7", + "@babel/plugin-transform-class-static-block": "^7.29.7", + "@babel/plugin-transform-classes": "^7.29.7", + "@babel/plugin-transform-computed-properties": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-dotall-regex": "^7.29.7", + "@babel/plugin-transform-duplicate-keys": "^7.29.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-dynamic-import": "^7.29.7", + "@babel/plugin-transform-explicit-resource-management": "^7.29.7", + "@babel/plugin-transform-exponentiation-operator": "^7.29.7", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-for-of": "^7.29.7", + "@babel/plugin-transform-function-name": "^7.29.7", + "@babel/plugin-transform-json-strings": "^7.29.7", + "@babel/plugin-transform-literals": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-member-expression-literals": "^7.29.7", + "@babel/plugin-transform-modules-amd": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-modules-systemjs": "^7.29.7", + "@babel/plugin-transform-modules-umd": "^7.29.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-new-target": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-numeric-separator": "^7.29.7", + "@babel/plugin-transform-object-rest-spread": "^7.29.7", + "@babel/plugin-transform-object-super": "^7.29.7", + "@babel/plugin-transform-optional-catch-binding": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/plugin-transform-private-methods": "^7.29.7", + "@babel/plugin-transform-private-property-in-object": "^7.29.7", + "@babel/plugin-transform-property-literals": "^7.29.7", + "@babel/plugin-transform-regenerator": "^7.29.7", + "@babel/plugin-transform-regexp-modifiers": "^7.29.7", + "@babel/plugin-transform-reserved-words": "^7.29.7", + "@babel/plugin-transform-shorthand-properties": "^7.29.7", + "@babel/plugin-transform-spread": "^7.29.7", + "@babel/plugin-transform-sticky-regex": "^7.29.7", + "@babel/plugin-transform-template-literals": "^7.29.7", + "@babel/plugin-transform-typeof-symbol": "^7.29.7", + "@babel/plugin-transform-unicode-escapes": "^7.29.7", + "@babel/plugin-transform-unicode-property-regex": "^7.29.7", + "@babel/plugin-transform-unicode-regex": "^7.29.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.29.7", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "core-js-compat": "^3.43.0", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "engines": { @@ -1665,18 +1685,18 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", - "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", + "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-transform-react-display-name": "^7.28.0", - "@babel/plugin-transform-react-jsx": "^7.27.1", - "@babel/plugin-transform-react-jsx-development": "^7.27.1", - "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-transform-react-display-name": "^7.29.7", + "@babel/plugin-transform-react-jsx": "^7.29.7", + "@babel/plugin-transform-react-jsx-development": "^7.29.7", + "@babel/plugin-transform-react-pure-annotations": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1686,17 +1706,17 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", - "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz", + "integrity": "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.28.5" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-typescript": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1715,33 +1735,33 @@ } }, "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", "debug": "^4.3.1" }, "engines": { @@ -1749,14 +1769,14 @@ } }, "node_modules/@babel/types": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", - "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1872,9 +1892,9 @@ } }, "node_modules/@electron/asar/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": { @@ -2069,9 +2089,9 @@ } }, "node_modules/@electron/universal/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": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "dev": true, "license": "MIT", "dependencies": { @@ -2094,13 +2114,13 @@ } }, "node_modules/@electron/universal/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "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.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -2138,25 +2158,79 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "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": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.4", + "ajv": "^6.14.0", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2173,9 +2247,9 @@ } }, "node_modules/@eslint/eslintrc/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": { @@ -2186,13 +2260,40 @@ } }, "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@gar/promisify": { @@ -2219,33 +2320,42 @@ "@hapi/hoek": "^9.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanfs/types": "^0.15.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "brace-expansion": "^1.1.7" + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { - "node": "*" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -2262,35 +2372,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" + "node": ">=18.18" }, - "engines": { - "node": "20 || >=22" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@isaacs/cliui": { @@ -2639,6 +2732,19 @@ "node": ">=10" } }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2719,6 +2825,175 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.7.0.tgz", + "integrity": "sha512-hew63shtzzvBcSHbhm+cyAmKe6AIfinT9hzEqSPjDC6opTTMKmTkQ0gHuN2KsWlvqiKw1S/fS94fhag/FJkioQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "@peculiar/asn1-x509-attr": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.7.0.tgz", + "integrity": "sha512-VVsAyGqErT9D1SY4aEqozThXMVI+ssVRiv2DDeYuvpBKLIgZ3hYs3Ay3u/VSoKq6ESFi9cf6rf3IOOzfwh7oMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.7.0.tgz", + "integrity": "sha512-n7KEs/Q/wrB415cxy4fHOBhegp4NdJ15fkJPwcB/3/8iNBQC2L/N7SChJPKDJPZGYH0jD4Tg4/0vnHmwghnbKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.7.0.tgz", + "integrity": "sha512-V/nrlQVmhg7lYAsM7E13UDL5erAwFv6kCIVFqNaMIHSVi7dngcT839JkRTkQBqznMG98l2XjxYk74ZztAohZzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.7.0", + "@peculiar/asn1-pkcs8": "^2.7.0", + "@peculiar/asn1-rsa": "^2.7.0", + "@peculiar/asn1-schema": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.7.0.tgz", + "integrity": "sha512-9GTl1nE8Mx1kTZ+7QyYatDyKsm34QcWRBFkY1iPvWC3X4Dona5s/tlLiQsx5WzVdZqiMBZNYT0buyw4/vbhnjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.7.0.tgz", + "integrity": "sha512-Bh7m+OuIaSEllPQcSd9OSp93F4ROWH7sbITWV8MI+8dwsjE5111/87VxiWVvYFKyww3vp39geLv9ENqhwWHcew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.7.0", + "@peculiar/asn1-pfx": "^2.7.0", + "@peculiar/asn1-pkcs8": "^2.7.0", + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "@peculiar/asn1-x509-attr": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.7.0.tgz", + "integrity": "sha512-/qvENQrXyTZURjMqSeofHul0JJt2sNSzSwk36pl2olkHbaioMQgrASDZAlHXl0xUlnVbHj0uGgOrBMTb5x2aJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz", + "integrity": "sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz", + "integrity": "sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.7.0.tgz", + "integrity": "sha512-NS8e7SOgXipkzUPLF/sce7ukpMpWjhxYsH0n6Y+bHYo4TTxOb95Zv7hqwSuL212mj5YxovjdOKQOgH1As3E94w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.7.0", + "@peculiar/asn1-x509": "^2.7.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2731,13 +3006,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.57.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.57.0.tgz", - "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", + "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.57.0" + "playwright": "1.60.0" }, "bin": { "playwright": "cli.js" @@ -3075,9 +3350,9 @@ } }, "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.1.tgz", + "integrity": "sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==", "dev": true, "license": "MIT", "engines": { @@ -3155,28 +3430,6 @@ "@types/ms": "*" } }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -3276,23 +3529,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", - "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~7.16.0" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", - "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", + "version": "20.19.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.41.tgz", + "integrity": "sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "undici-types": "~6.21.0" } }, "node_modules/@types/plist": { @@ -3449,20 +3692,20 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", - "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.60.1.tgz", + "integrity": "sha512-JQ4S5GB0tfjO8BuJ4fcX+HodkzJjYBV+7OJ+wLygaX7OGQ7FudyHL4NSCA6ob+w3Yn+5MkKIozOwQhXeM7opVg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/type-utils": "8.53.0", - "@typescript-eslint/utils": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", + "@typescript-eslint/scope-manager": "8.60.1", + "@typescript-eslint/type-utils": "8.60.1", + "@typescript-eslint/utils": "8.60.1", + "@typescript-eslint/visitor-keys": "8.60.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3472,22 +3715,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.53.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "@typescript-eslint/parser": "^8.60.1", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.0.tgz", - "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.60.1.tgz", + "integrity": "sha512-A0M6ua6H252bVjPvvtSgl2QA4+ET9S5Mtkb2GDyTxIhH/C4qDItT7RQNO5PhMC6NXGYXOR9dIalcDDgBKT7oFA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", + "@typescript-eslint/scope-manager": "8.60.1", + "@typescript-eslint/types": "8.60.1", + "@typescript-eslint/typescript-estree": "8.60.1", + "@typescript-eslint/visitor-keys": "8.60.1", "debug": "^4.4.3" }, "engines": { @@ -3498,19 +3741,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz", - "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.60.1.tgz", + "integrity": "sha512-eXkTH2bxmXlqD1RnOPmLZ9ZM9D3VwSx04JOwBnP9RQ+yUA5a2Mu7SfW8uaV2Aon53NJzZlZYuX7tn91Izf+xaw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.53.0", - "@typescript-eslint/types": "^8.53.0", + "@typescript-eslint/tsconfig-utils": "^8.60.1", + "@typescript-eslint/types": "^8.60.1", "debug": "^4.4.3" }, "engines": { @@ -3521,18 +3764,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", - "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.60.1.tgz", + "integrity": "sha512-gvI5OQoptnxQnchOirukCuQ55svJSTuD/4k5+pC267xyBtYry748R9/c3tYUzb/iE6RZfllRz2lVulLCHkTm4w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0" + "@typescript-eslint/types": "8.60.1", + "@typescript-eslint/visitor-keys": "8.60.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3543,9 +3786,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz", - "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.60.1.tgz", + "integrity": "sha512-nh8w4qAteiKuZu3pSSzG/yGKpw0OlkrKnzFmbVRenKaD4qc+7i1GrmZaLVkr8rk4uipiPGMOW4YsM6WmKZ5CvA==", "dev": true, "license": "MIT", "engines": { @@ -3556,21 +3799,21 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz", - "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.60.1.tgz", + "integrity": "sha512-sdwTrpjosW7ANQYJ39ZBF1ZyEMEGVB2UsikrserVM/30a/F1dTLnu9bGxEdosugyu5caigjLrR2qiD11asjI1A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/utils": "8.53.0", + "@typescript-eslint/types": "8.60.1", + "@typescript-eslint/typescript-estree": "8.60.1", + "@typescript-eslint/utils": "8.60.1", "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3580,14 +3823,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", - "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.60.1.tgz", + "integrity": "sha512-4h0tY8ppCkdCzcrl2YM5M3my0xsE1Tf8om3owEu5oPWmXwkKRmk0j0LGDzYBGUcAlesEbxBhazqu/K4cu3Ug7w==", "dev": true, "license": "MIT", "engines": { @@ -3599,21 +3842,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", - "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.60.1.tgz", + "integrity": "sha512-alpRkfG8hlVE5kdJW2GkfgDgXxold3e8e4l6EnmhRmRLbekgAPCCGDVD++sABy9FcgPFroq+uFcCSM1vR57Cew==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.53.0", - "@typescript-eslint/tsconfig-utils": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", + "@typescript-eslint/project-service": "8.60.1", + "@typescript-eslint/tsconfig-utils": "8.60.1", + "@typescript-eslint/types": "8.60.1", + "@typescript-eslint/visitor-keys": "8.60.1", "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" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3623,39 +3866,13 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/typescript-estree/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.8.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", + "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", "dev": true, "license": "ISC", "bin": { @@ -3666,16 +3883,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", - "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.60.1.tgz", + "integrity": "sha512-h2MPBLoNtjc3qZWfY3Tl51yPorQ2McHn8pJfcMNTcIvrrZrr90Ykffit0yjrPFWQcRcUxzH20+6OcVdW4yHtUg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0" + "@typescript-eslint/scope-manager": "8.60.1", + "@typescript-eslint/types": "8.60.1", + "@typescript-eslint/typescript-estree": "8.60.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3685,19 +3902,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", - "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", + "version": "8.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.60.1.tgz", + "integrity": "sha512-EbGRQg4FhrmwLodl+t3JNAnXHWVr9Vp+Zl1QBZVPY4ByfkzIT8cX3K6QWODHtkIZqqJVEWvhHSx3v5PDHsaQag==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.0", - "eslint-visitor-keys": "^4.2.1" + "@typescript-eslint/types": "8.60.1", + "eslint-visitor-keys": "^5.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3708,25 +3925,18 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "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": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true, - "license": "ISC" - }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -3936,9 +4146,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", - "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz", + "integrity": "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==", "dev": true, "license": "MIT", "engines": { @@ -3998,9 +4208,9 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", "bin": { @@ -4071,9 +4281,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.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -4106,9 +4316,9 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", "dependencies": { @@ -4515,6 +4725,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asn1js": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -4595,9 +4820,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.23", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", - "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", "dev": true, "funding": [ { @@ -4615,8 +4840,8 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "caniuse-lite": "^1.0.30001760", + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" @@ -4648,15 +4873,43 @@ } }, "node_modules/axios": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", - "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.17.0.tgz", + "integrity": "sha512-J8SwNxprqqpbfenehxWYXE7CW+wM1BB4w3+N+g+/Wx40xM4rsLrfPmHHxSWIxJLYDgSY/HqlFPIYb2/S3rxafw==", "dev": true, "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/axios/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/axios/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, "node_modules/babel-loader": { @@ -4678,14 +4931,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", "semver": "^6.3.1" }, "peerDependencies": { @@ -4693,27 +4946,27 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" + "@babel/helper-define-polyfill-provider": "^0.6.8" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -4748,13 +5001,16 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.12", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.12.tgz", - "integrity": "sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==", + "version": "2.10.34", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.34.tgz", + "integrity": "sha512-IMDedajPifLnHNY0X9n8hKxRTQ6/eTHwr5bDo04WnuqxyKw6LYtQywCuuqPZwhl3aBXMvQpJov42GLCwRRdQzw==", "dev": true, "license": "Apache-2.0", "bin": { - "baseline-browser-mapping": "dist/cli.js" + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/batch": { @@ -4807,9 +5063,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", - "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", + "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", "dev": true, "license": "MIT", "dependencies": { @@ -4821,7 +5077,7 @@ "http-errors": "~2.0.1", "iconv-lite": "~0.4.24", "on-finished": "~2.4.1", - "qs": "~6.14.0", + "qs": "~6.15.1", "raw-body": "~2.5.3", "type-is": "~1.6.18", "unpipe": "~1.0.0" @@ -4882,9 +5138,9 @@ "optional": true }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -4906,9 +5162,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "dev": true, "funding": [ { @@ -4926,11 +5182,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -5046,6 +5302,16 @@ "node": ">= 0.8" } }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/cacache": { "version": "16.1.3", "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", @@ -5077,9 +5343,9 @@ } }, "node_modules/cacache/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": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "dev": true, "license": "MIT", "dependencies": { @@ -5118,9 +5384,9 @@ } }, "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "license": "ISC", "dependencies": { @@ -5230,9 +5496,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001763", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001763.tgz", - "integrity": "sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==", + "version": "1.0.30001793", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", + "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==", "dev": true, "funding": [ { @@ -5656,9 +5922,9 @@ } }, "node_modules/config-file-ts/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": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "dev": true, "license": "MIT", "dependencies": { @@ -5687,13 +5953,13 @@ } }, "node_modules/config-file-ts/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "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.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -5777,13 +6043,13 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", - "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.0" + "browserslist": "^4.28.1" }, "funding": { "type": "opencollective", @@ -6657,9 +6923,9 @@ } }, "node_modules/dir-compare/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": { @@ -6743,19 +7009,6 @@ "node": ">=6" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dotenv": { "version": "16.6.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", @@ -6831,9 +7084,9 @@ } }, "node_modules/electron": { - "version": "39.2.7", - "resolved": "https://registry.npmjs.org/electron/-/electron-39.2.7.tgz", - "integrity": "sha512-KU0uFS6LSTh4aOIC3miolcbizOFP7N1M46VTYVfqIgFiuA2ilfNaOHLDS9tCMvwwHRowAsvqBrh9NgMXcTOHCQ==", + "version": "39.8.10", + "resolved": "https://registry.npmjs.org/electron/-/electron-39.8.10.tgz", + "integrity": "sha512-zbYtGPYUI7PzqLAzkk21Rk6j67WN0hxn0Mq/njErZo1d0HSf33is4f8ICI5fMLy5vYe0JtCtM5sYunNOaochSQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6905,9 +7158,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.267", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", - "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "version": "1.5.368", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.368.tgz", + "integrity": "sha512-7RckJJK4uESJF9PxvfMWd3TGqIiieUTG4HxnKaKuIpGbcr+r2ZEB3g2gAhCP3Fqm42vJSzLfgab9eva/C4/XVw==", "dev": true, "license": "ISC" }, @@ -6921,13 +7174,6 @@ "undici-types": "~6.21.0" } }, - "node_modules/electron/node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -6967,14 +7213,14 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.4", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", - "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.23.0.tgz", + "integrity": "sha512-yJN/BOOLxcOW2aQgeif9mSnaUB8KtvmMMp56oA1kx1CRfBKbhZm2pJ+NBY+3eOboHxix8lfjWpHE0Ei5U8RbSA==", "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=10.13.0" @@ -7138,9 +7384,9 @@ } }, "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", "dev": true, "license": "MIT" }, @@ -7243,60 +7489,63 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.1.5", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-prettier": { @@ -7382,9 +7631,9 @@ } }, "node_modules/eslint-plugin-react/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": { @@ -7440,9 +7689,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7450,7 +7699,20 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -7510,9 +7772,9 @@ } }, "node_modules/eslint/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": { @@ -7549,18 +7811,31 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -7667,15 +7942,15 @@ "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", - "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", + "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "~1.20.3", + "body-parser": "~1.20.5", "content-disposition": "~0.5.4", "content-type": "~1.0.4", "cookie": "~0.7.1", @@ -7694,7 +7969,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "~6.14.0", + "qs": "~6.15.1", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "~0.19.0", @@ -7821,9 +8096,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", "dev": true, "funding": [ { @@ -7899,16 +8174,16 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/filelist": { @@ -7922,9 +8197,9 @@ } }, "node_modules/filelist/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": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "dev": true, "license": "MIT", "dependencies": { @@ -7932,9 +8207,9 @@ } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "license": "ISC", "dependencies": { @@ -8038,31 +8313,30 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "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.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "dev": true, "funding": [ { @@ -8459,9 +8733,9 @@ "license": "BSD-2-Clause" }, "node_modules/glob/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": { @@ -8505,29 +8779,13 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8596,13 +8854,6 @@ "dev": true, "license": "ISC" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -9215,9 +9466,9 @@ } }, "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", + "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", "dev": true, "license": "MIT", "engines": { @@ -9589,16 +9840,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -9938,9 +10179,9 @@ } }, "node_modules/jotai": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/jotai/-/jotai-2.16.1.tgz", - "integrity": "sha512-vrHcAbo3P7Br37C8Bv6JshMtlKMPqqmx0DDREtTjT4nf3QChDrYdbH+4ik/9V0cXA57dK28RkJ5dctYvavcIlg==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/jotai/-/jotai-2.20.0.tgz", + "integrity": "sha512-b5GAqgmXmXzB4WPaTH26ppk9Sl7AA9WSQX7yfdM+gJ1rFROiWcVbi97gFuN/yVCojOcbcvop2sfLL+fjxW0JVg==", "license": "MIT", "engines": { "node": ">=12.20.0" @@ -10205,9 +10446,9 @@ "license": "MIT" }, "node_modules/loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", "dev": true, "license": "MIT", "engines": { @@ -10235,9 +10476,9 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "dev": true, "license": "MIT" }, @@ -10593,21 +10834,44 @@ "license": "ISC" }, "node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/minimatch/node_modules/balanced-match": { + "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", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -10776,9 +11040,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", "dev": true, "funding": [ { @@ -10875,16 +11139,6 @@ "node": ">=10" } }, - "node_modules/node-forge": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", - "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", - "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, "node_modules/node-gyp": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", @@ -10937,11 +11191,14 @@ } }, "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.47", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz", + "integrity": "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/noisejs": { "version": "2.1.0", @@ -11524,9 +11781,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", "dev": true, "license": "MIT" }, @@ -11560,9 +11817,9 @@ "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": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -11608,14 +11865,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/playwright": { - "version": "1.57.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz", - "integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", + "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.57.0" + "playwright-core": "1.60.0" }, "bin": { "playwright": "cli.js" @@ -11628,9 +11903,9 @@ } }, "node_modules/playwright-core": { - "version": "1.57.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz", - "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -11681,9 +11956,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", "dev": true, "funding": [ { @@ -11701,7 +11976,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -11797,9 +12072,9 @@ } }, "node_modules/postcss-loader": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.2.0.tgz", - "integrity": "sha512-tHX+RkpsXVcc7st4dSdDGliI+r4aAQDuv+v3vFYHixb6YgjreG5AG4SEB0kDK8u2s6htqEEpKlkhSBUTvWKYnA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.2.1.tgz", + "integrity": "sha512-k98jtRzthjj3f76MYTs9JTpRqV1RaaMhEU0Lpw9OTmQZQdppg4B30VZ74BojuBHt3F4KyubHJoXCMUeM8Bqeow==", "dev": true, "license": "MIT", "dependencies": { @@ -11815,7 +12090,7 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", + "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" }, @@ -11976,9 +12251,9 @@ } }, "node_modules/prettier": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", - "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", + "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", "dev": true, "license": "MIT", "bin": { @@ -12066,11 +12341,14 @@ } }, "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=10" + } }, "node_modules/pump": { "version": "3.0.3", @@ -12093,10 +12371,30 @@ "node": ">=6" } }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/qs": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", - "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "version": "6.15.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz", + "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -12143,16 +12441,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -12218,9 +12506,9 @@ } }, "node_modules/react-icons": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", - "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.6.0.tgz", + "integrity": "sha512-RH93p5ki6LfOiIt0UtDyNg/cee+HLVR6cHHtW3wALfo+eOHTp8RnU2kRkI6E+H19zMIs03DyxUG/GfZMOGvmiA==", "license": "MIT", "peerDependencies": { "react": "*" @@ -12282,9 +12570,9 @@ } }, "node_modules/readdir-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==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "dev": true, "license": "MIT", "dependencies": { @@ -12292,9 +12580,9 @@ } }, "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "license": "ISC", "dependencies": { @@ -12330,6 +12618,13 @@ "node": ">= 10.13.0" } }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -12824,9 +13119,9 @@ } }, "node_modules/schema-utils/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", "dependencies": { @@ -12868,17 +13163,17 @@ "license": "MIT" }, "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", "dev": true, "license": "MIT", "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/semver": { @@ -12971,16 +13266,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/serialport": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/serialport/-/serialport-12.0.0.tgz", @@ -13915,9 +14200,9 @@ } }, "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true, "license": "MIT", "engines": { @@ -13992,9 +14277,9 @@ } }, "node_modules/terser": { - "version": "5.44.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", - "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", + "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -14011,16 +14296,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -14034,12 +14318,39 @@ "webpack": "^5.1.0" }, "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, "@swc/core": { "optional": true }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, "esbuild": { "optional": true }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, "uglify-js": { "optional": true } @@ -14052,13 +14363,6 @@ "dev": true, "license": "MIT" }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -14130,9 +14434,9 @@ } }, "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==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -14143,9 +14447,9 @@ } }, "node_modules/tmp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", "dev": true, "license": "MIT", "engines": { @@ -14233,9 +14537,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, "license": "MIT", "engines": { @@ -14258,6 +14562,26 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -14411,9 +14735,9 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "dev": true, "license": "MIT" }, @@ -14629,9 +14953,9 @@ } }, "node_modules/watchpack": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.0.tgz", - "integrity": "sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "dev": true, "license": "MIT", "dependencies": { @@ -14663,9 +14987,9 @@ } }, "node_modules/webmidi": { - "version": "3.1.14", - "resolved": "https://registry.npmjs.org/webmidi/-/webmidi-3.1.14.tgz", - "integrity": "sha512-K9GzNm0J3R/61NJWAW7ipAJGWU5D/8bEjOir3PymFjLDpbQJ+ygjvm5jx/WQ8atQ1hu23St3lvnc5g1NKbOsrw==", + "version": "3.1.16", + "resolved": "https://registry.npmjs.org/webmidi/-/webmidi-3.1.16.tgz", + "integrity": "sha512-I6NnCfBUXNbV8q6EU+DPtr1u1EgjzDrFKHQQS2OgaHzcuQRFhRHgogfKpKSpxD0IgXhZHz8+k/OpGfZoWbvWAQ==", "license": "Apache-2.0", "dependencies": { "djipevents": "^2.0.7" @@ -14678,37 +15002,35 @@ } }, "node_modules/webpack": { - "version": "5.104.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.1.tgz", - "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", + "version": "5.107.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.2.tgz", + "integrity": "sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.15.0", + "acorn": "^8.16.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.4", - "es-module-lexer": "^2.0.0", + "enhanced-resolve": "^5.22.0", + "es-module-lexer": "^2.1.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.3.1", - "mime-types": "^2.1.27", + "loader-runner": "^4.3.2", + "mime-db": "^1.54.0", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.16", - "watchpack": "^2.4.4", - "webpack-sources": "^3.3.3" + "terser-webpack-plugin": "^5.5.0", + "watchpack": "^2.5.1", + "webpack-sources": "^3.5.0" }, "bin": { "webpack": "bin/webpack.js" @@ -14840,15 +15162,15 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", - "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.4.tgz", + "integrity": "sha512-GqDPGZN9bRqKBTkp4aWkobDDHMsrXKoGSdOH56smIri8qR0JG8gfL8/v/f/OZR3/OKXjG8uwJbFVhKm/FNU/UA==", "dev": true, "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.21", + "@types/express": "^4.17.25", "@types/express-serve-static-core": "^4.17.21", "@types/serve-index": "^1.9.4", "@types/serve-static": "^1.15.5", @@ -14858,9 +15180,9 @@ "bonjour-service": "^1.2.1", "chokidar": "^3.6.0", "colorette": "^2.0.10", - "compression": "^1.7.4", + "compression": "^1.8.1", "connect-history-api-fallback": "^2.0.0", - "express": "^4.21.2", + "express": "^4.22.1", "graceful-fs": "^4.2.6", "http-proxy-middleware": "^2.0.9", "ipaddr.js": "^2.1.0", @@ -14868,7 +15190,7 @@ "open": "^10.0.3", "p-retry": "^6.2.0", "schema-utils": "^4.2.0", - "selfsigned": "^2.4.1", + "selfsigned": "^5.5.0", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", @@ -14913,15 +15235,25 @@ } }, "node_modules/webpack-sources": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", - "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", + "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", "dev": true, "license": "MIT", "engines": { "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -15137,9 +15469,9 @@ "license": "ISC" }, "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", "license": "MIT", "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index 3465cf7..a1612d6 100644 --- a/package.json +++ b/package.json @@ -83,8 +83,9 @@ "@babel/preset-env": "^7.23.5", "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.28.5", - "@playwright/test": "1.57.0", - "@types/node": "^25.0.3", + "@eslint/js": "^9.0.0", + "@playwright/test": "1.60.0", + "@types/node": "^20.0.0", "@types/react": "^18.3.27", "@types/react-dom": "^18.3.7", "@typescript-eslint/eslint-plugin": "^8.0.0", @@ -94,14 +95,15 @@ "concurrently": "^8.2.2", "css-loader": "^6.10.0", "dmg-builder": "25.1.8", - "electron": "^39.2.7", + "electron": "^39.8.10", "electron-builder": "^25.1.8", "electron-builder-squirrel-windows": "25.1.8", - "eslint": "^8.0.0", + "eslint": "^9.0.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-react": "^7.0.0", "eslint-plugin-react-hooks": "^5.0.0", - "playwright": "1.57.0", + "globals": "^14.0.0", + "playwright": "1.60.0", "postcss": "^8.4.38", "postcss-loader": "^8.1.1", "prettier": "^3.0.0", @@ -113,6 +115,9 @@ "webpack-cli": "^5.1.4", "webpack-dev-server": "^5.2.2" }, + "overrides": { + "ws": "^8.18.1" + }, "build": { "appId": "tech.aagentah.nw_wrld", "productName": "nw_wrld", From 9f34ca30683d2a9a0cafa98992786d2dca4ddd01 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:17:02 +0100 Subject: [PATCH 02/27] fix(persistence): make atomic writes crash-durable (fsync) with a rolling backup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit atomicWrite did writeFile→rename with no fsync, so a power loss within the OS writeback window could leave a truncated JSON primary. The .backup the reader (readJsonWithBackup) relies on was only created inside the Windows EEXIST/EPERM rename fallback, which POSIX rename never triggers, so on macOS/Linux no backup was ever written and corrupt-primary recovery had nothing to restore from. Now both async and sync paths: - write the temp file and fsync it before touching the primary - copy the current good primary to .backup before the atomic rename - fsync the containing directory after the rename Directory fsync and the backup copy are best-effort (never abort the write); the Windows rename fallback is preserved. TDD: added 4 tests (rolling backup + fsync, async and sync). Full suite 174/174, typecheck:all + lint green. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/shared/json/atomicWrite.ts | 162 ++++++++++++++++++++------------- test/atomicWrite.test.js | 93 ++++++++++++++++++- 2 files changed, 190 insertions(+), 65 deletions(-) diff --git a/src/shared/json/atomicWrite.ts b/src/shared/json/atomicWrite.ts index 5965265..cb25f8a 100644 --- a/src/shared/json/atomicWrite.ts +++ b/src/shared/json/atomicWrite.ts @@ -6,6 +6,8 @@ const writeQueue = new Map>(); const writeEpoch = new Map(); let tmpCounter = 0; +type AsyncFileHandle = Awaited>; + function makeTempPath(filePath: string) { tmpCounter = (tmpCounter + 1) >>> 0; const uuid = @@ -15,12 +17,79 @@ function makeTempPath(filePath: string) { return `${filePath}.tmp.${process.pid}.${Date.now()}.${tmpCounter}.${uuid}`; } +// fsync the containing directory so a rename is durable across power loss. +// Best-effort: opening a directory for fsync is not supported on every platform +// (notably Windows), so a failure here must never fail the write itself. +async function fsyncDirectory(dirPath: string) { + let handle: AsyncFileHandle | null = null; + try { + handle = await fs.promises.open(dirPath, "r"); + await handle.sync(); + } catch { + // best-effort + } finally { + if (handle) { + try { + await handle.close(); + } catch {} + } + } +} + +function fsyncDirectorySync(dirPath: string) { + let fd: number | null = null; + try { + fd = fs.openSync(dirPath, "r"); + fs.fsyncSync(fd); + } catch { + // best-effort + } finally { + if (fd !== null) { + try { + fs.closeSync(fd); + } catch {} + } + } +} + +// Preserve the current good primary as .backup before it is replaced, so a +// later corrupt/truncated primary can be recovered (see readJsonWithBackup). +// Best-effort and must only run AFTER the new content is durably written: if the +// copy fails, the previous .backup is left intact and the write still proceeds. +async function rollBackup(filePath: string, backupPath: string) { + try { + await fs.promises.copyFile(filePath, backupPath); + } catch { + // ENOENT = no primary yet (first write); nothing to back up. Any other error + // is non-fatal: the freshly fsynced temp file is the source of truth. + } +} + +function rollBackupSync(filePath: string, backupPath: string) { + try { + fs.copyFileSync(filePath, backupPath); + } catch { + // best-effort (see rollBackup) + } +} + async function performAtomicWrite(filePath: string, data: string, epoch: number | null) { const tempPath = makeTempPath(filePath); + const backupPath = `${filePath}.backup`; try { - await fs.promises.writeFile(tempPath, data, "utf-8"); + // 1. Write the new content to a temp file and fsync it to disk BEFORE + // touching the primary. This is what makes the write crash-durable: + // rename alone only makes the directory entry atomic, not the data. + const handle = await fs.promises.open(tempPath, "w"); + try { + await handle.writeFile(data, "utf-8"); + await handle.sync(); + } finally { + await handle.close(); + } + // 2. Abort if a newer write to the same path superseded this one. if (epoch != null && writeEpoch.get(filePath) !== epoch) { try { await fs.promises.unlink(tempPath); @@ -28,49 +97,28 @@ async function performAtomicWrite(filePath: string, data: string, epoch: number return; } + // 3. Preserve the current good primary as a backup before replacing it. + await rollBackup(filePath, backupPath); + + // 4. Atomically replace the primary with the new content. try { await fs.promises.rename(tempPath, filePath); } catch (renameError) { const err = renameError as { code?: string }; if (err.code === "EEXIST" || err.code === "EPERM") { - if (epoch != null && writeEpoch.get(filePath) !== epoch) { - try { - await fs.promises.unlink(tempPath); - } catch {} - return; - } - - const backupPath = `${filePath}.backup`; + // Windows cannot rename onto an existing file. The backup from step 3 + // is the safety net while the primary is briefly removed. try { - await fs.promises.unlink(backupPath); + await fs.promises.unlink(filePath); } catch {} - try { - await fs.promises.rename(filePath, backupPath); - } catch (backupError) { - const bErr = backupError as { code?: string }; - if (bErr.code !== "ENOENT") { - throw backupError; - } - } - - if (epoch != null && writeEpoch.get(filePath) !== epoch) { - try { - await fs.promises.rename(backupPath, filePath); - } catch {} - try { - await fs.promises.unlink(tempPath); - } catch {} - return; - } - await fs.promises.rename(tempPath, filePath); - try { - await fs.promises.unlink(backupPath); - } catch {} } else { throw renameError; } } + + // 5. fsync the directory so the rename itself survives power loss. + await fsyncDirectory(path.dirname(filePath)); } catch (error) { try { await fs.promises.unlink(tempPath); @@ -108,10 +156,19 @@ export function atomicWriteFileSync(filePath: string, data: string) { writeEpoch.set(filePath, epoch); const tempPath = makeTempPath(filePath); + const backupPath = `${filePath}.backup`; try { - fs.writeFileSync(tempPath, data, "utf-8"); + // 1. Write + fsync the temp file (see performAtomicWrite step 1). + const fd = fs.openSync(tempPath, "w"); + try { + fs.writeFileSync(fd, data, "utf-8"); + fs.fsyncSync(fd); + } finally { + fs.closeSync(fd); + } + // 2. Abort if superseded. if (epoch != null && writeEpoch.get(filePath) !== epoch) { try { fs.unlinkSync(tempPath); @@ -119,49 +176,26 @@ export function atomicWriteFileSync(filePath: string, data: string) { return; } + // 3. Roll a backup of the current good primary. + rollBackupSync(filePath, backupPath); + + // 4. Atomic replace (with Windows fallback). try { fs.renameSync(tempPath, filePath); } catch (renameError) { const err = renameError as { code?: string }; if (err.code === "EEXIST" || err.code === "EPERM") { - if (epoch != null && writeEpoch.get(filePath) !== epoch) { - try { - fs.unlinkSync(tempPath); - } catch {} - return; - } - - const backupPath = `${filePath}.backup`; try { - fs.unlinkSync(backupPath); + fs.unlinkSync(filePath); } catch {} - try { - fs.renameSync(filePath, backupPath); - } catch (backupError) { - const bErr = backupError as { code?: string }; - if (bErr.code !== "ENOENT") { - throw backupError; - } - } - - if (epoch != null && writeEpoch.get(filePath) !== epoch) { - try { - fs.renameSync(backupPath, filePath); - } catch {} - try { - fs.unlinkSync(tempPath); - } catch {} - return; - } - fs.renameSync(tempPath, filePath); - try { - fs.unlinkSync(backupPath); - } catch {} } else { throw renameError; } } + + // 5. fsync the directory. + fsyncDirectorySync(path.dirname(filePath)); } catch (error) { try { fs.unlinkSync(tempPath); diff --git a/test/atomicWrite.test.js b/test/atomicWrite.test.js index ed380b2..f750bf6 100644 --- a/test/atomicWrite.test.js +++ b/test/atomicWrite.test.js @@ -4,7 +4,10 @@ const fs = require("node:fs"); const path = require("node:path"); const os = require("node:os"); -const { atomicWriteFile } = require("../dist/runtime/shared/json/atomicWrite.js"); +const { + atomicWriteFile, + atomicWriteFileSync, +} = require("../dist/runtime/shared/json/atomicWrite.js"); test("atomicWriteFile: last write wins and leaves no temp files", async () => { const dir = fs.mkdtempSync(path.join(os.tmpdir(), "nw_wrld_atomicwrite_")); @@ -21,3 +24,91 @@ test("atomicWriteFile: last write wins and leaves no temp files", async () => { const tempFiles = files.filter((f) => f.includes(".tmp.")); assert.deepEqual(tempFiles, []); }); + +test("atomicWriteFile: rolls a .backup of the previous contents on overwrite", async () => { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), "nw_wrld_atomicbackup_")); + const filePath = path.join(dir, "data.json"); + + // First write to a fresh path: nothing to back up yet. + await atomicWriteFile(filePath, JSON.stringify({ v: 1 })); + assert.equal( + fs.existsSync(filePath + ".backup"), + false, + "no .backup should exist after the very first write (nothing to preserve)" + ); + + // Overwrite: the previous good contents must be preserved in .backup. + await atomicWriteFile(filePath, JSON.stringify({ v: 2 })); + assert.equal(fs.readFileSync(filePath, "utf-8"), JSON.stringify({ v: 2 })); + assert.equal( + fs.readFileSync(filePath + ".backup", "utf-8"), + JSON.stringify({ v: 1 }), + ".backup should hold the contents that were present before this write" + ); +}); + +test("atomicWriteFileSync: rolls a .backup of the previous contents on overwrite", () => { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), "nw_wrld_atomicbackupsync_")); + const filePath = path.join(dir, "data.json"); + + atomicWriteFileSync(filePath, JSON.stringify({ v: 1 })); + assert.equal(fs.existsSync(filePath + ".backup"), false); + + atomicWriteFileSync(filePath, JSON.stringify({ v: 2 })); + assert.equal(fs.readFileSync(filePath, "utf-8"), JSON.stringify({ v: 2 })); + assert.equal(fs.readFileSync(filePath + ".backup", "utf-8"), JSON.stringify({ v: 1 })); +}); + +test("atomicWriteFile: fsyncs the file and the directory for crash durability", async () => { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), "nw_wrld_atomicfsync_")); + const filePath = path.join(dir, "data.json"); + + // Spy on FileHandle.sync via fs.promises.open (same cached module instance as the SUT). + const realOpen = fs.promises.open; + let syncCount = 0; + fs.promises.open = async (...args) => { + const fh = await realOpen.apply(fs.promises, args); + const realSync = fh.sync.bind(fh); + fh.sync = async () => { + syncCount += 1; + return realSync(); + }; + return fh; + }; + + try { + await atomicWriteFile(filePath, JSON.stringify({ v: 1 })); + } finally { + fs.promises.open = realOpen; + } + + assert.equal(fs.readFileSync(filePath, "utf-8"), JSON.stringify({ v: 1 })); + assert.ok( + syncCount >= 2, + `expected at least 2 fsyncs (data file + containing directory), got ${syncCount}` + ); +}); + +test("atomicWriteFileSync: fsyncs the file and the directory for crash durability", () => { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), "nw_wrld_atomicfsyncsync_")); + const filePath = path.join(dir, "data.json"); + + const realFsyncSync = fs.fsyncSync; + let syncCount = 0; + fs.fsyncSync = (fd) => { + syncCount += 1; + return realFsyncSync(fd); + }; + + try { + atomicWriteFileSync(filePath, JSON.stringify({ v: 1 })); + } finally { + fs.fsyncSync = realFsyncSync; + } + + assert.equal(fs.readFileSync(filePath, "utf-8"), JSON.stringify({ v: 1 })); + assert.ok( + syncCount >= 2, + `expected at least 2 fsyncs (data file + containing directory), got ${syncCount}` + ); +}); From 2ff4a60ceebc5c5c6a965f106580cd63cd40163f Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:25:12 +0100 Subject: [PATCH 03/27] fix(security): deny in-app window.open and block external navigation on privileged windows The dashboard and projector windows hold the full nwWrldBridge (workspace fs, JSON store, openExternal) but had no setWindowOpenHandler and no will-navigate guard, so a stray or injected link/navigation could load remote content into a filesystem-capable renderer. Both windows now: - deny window.open, routing genuine http(s) links through the validated normalizeOpenExternalUrl + shell.openExternal path (same allow-list as os IPC) - prevent will-navigate / will-redirect away from bundled local content (file:/nw-sandbox:/nw-assets:/devtools:/about:blank), which a file:// SPA using hash/history routing never triggers, so no in-app flow regresses. TDD: extended the windows runtime harness (webContents open-handler + nav listeners + shell) and added a test asserting deny + external-nav block + file:// allow on both windows. Full suite 175/175, typecheck:all + lint green. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/main/mainProcess/windows.ts | 52 ++++++++++++++++++- test/projectorLifecycleRuntime.test.js | 71 +++++++++++++++++++++++++- 2 files changed, 121 insertions(+), 2 deletions(-) diff --git a/src/main/mainProcess/windows.ts b/src/main/mainProcess/windows.ts index a310c35..23da92d 100644 --- a/src/main/mainProcess/windows.ts +++ b/src/main/mainProcess/windows.ts @@ -1,10 +1,11 @@ -import { BrowserWindow, app, screen } from "electron"; +import { BrowserWindow, app, screen, shell } from "electron"; import * as fs from "node:fs"; import * as path from "node:path"; import InputManager from "../InputManager"; import { DEFAULT_INPUT_CONFIG, DEFAULT_USER_DATA } from "../../shared/config/defaultConfig"; import { sanitizeJsonForBridge } from "../../shared/validation/jsonBridgeValidation"; import { normalizeDashboardProjectorMessage } from "../../shared/validation/dashboardProjectorIpcValidation"; +import { normalizeOpenExternalUrl } from "../../shared/validation/openExternalValidation"; import { srcDir, state } from "./state"; import { getProjectJsonDirForMain, startWorkspaceWatcher } from "./workspace"; import { destroySandboxView, updateSandboxViewBounds } from "./sandbox"; @@ -15,6 +16,51 @@ type Jsonish = string | number | boolean | null | undefined | object; const isTestHeadless = process.env.NW_WRLD_TEST_HEADLESS === "1"; +const isAllowedInternalNavigation = (url: unknown): boolean => { + if (typeof url !== "string") return false; + return ( + url.startsWith("file:") || + url.startsWith("nw-sandbox:") || + url.startsWith("nw-assets:") || + url.startsWith("devtools:") || + url === "about:blank" + ); +}; + +// The dashboard and projector are privileged windows: their preload exposes the +// full nwWrldBridge (workspace fs, JSON store, openExternal). Deny any in-app +// window.open and any navigation away from the bundled local content, so a stray +// link or injected navigation cannot load remote code into a window that can +// reach the filesystem. Genuine external http(s) links are still honoured, but +// only via the same validated path as os.openExternal (scheme allow-list). +const hardenWindowNavigation = (win: BrowserWindow): void => { + try { + const wc = win.webContents; + if (!wc) return; + if (typeof wc.setWindowOpenHandler === "function") { + wc.setWindowOpenHandler(({ url }) => { + const safe = normalizeOpenExternalUrl(url); + if (safe) { + try { + shell.openExternal(safe); + } catch {} + } + return { action: "deny" }; + }); + } + wc.on("will-navigate", (event, url) => { + if (!isAllowedInternalNavigation(url)) { + event.preventDefault(); + } + }); + wc.on("will-redirect", (event, url) => { + if (!isAllowedInternalNavigation(url)) { + event.preventDefault(); + } + }); + } catch {} +}; + const getProjectorAspectRatioValue = (aspectRatioId: unknown): number => { const id = String(aspectRatioId || "").trim(); if (!id || id === "default" || id === "landscape") return 0; @@ -287,6 +333,8 @@ const createProjectorWindow = (projectDir: string | null): BrowserWindow => { frame: false, }); + hardenWindowNavigation(projectorWindow); + try { if (typeof projectorWindow.getBounds === "function") { state.projectorDefaultBounds = projectorWindow.getBounds(); @@ -403,6 +451,8 @@ export function createWindow(projectDir: string | null): void { paintWhenInitiallyHidden: true, }); + hardenWindowNavigation(state.dashboardWindow as BrowserWindow); + try { const win = state.dashboardWindow as { once?: unknown; show?: unknown }; if (typeof win.once === "function" && typeof win.show === "function") { diff --git a/test/projectorLifecycleRuntime.test.js b/test/projectorLifecycleRuntime.test.js index 14be096..4cc8c6d 100644 --- a/test/projectorLifecycleRuntime.test.js +++ b/test/projectorLifecycleRuntime.test.js @@ -174,6 +174,7 @@ const createPreviewControllerHarness = () => { const createWindowsHarness = () => { const browserWindows = []; const attachCalls = []; + const shellOpenExternalCalls = []; let nextWebContentsId = 1; class MockBrowserWindow { @@ -188,6 +189,16 @@ const createWindowsHarness = () => { isDestroyed: () => this.destroyed, send: () => {}, once: () => {}, + handlers: new Map(), + windowOpenHandler: null, + on(eventName, handler) { + const hs = this.handlers.get(eventName) || []; + hs.push(handler); + this.handlers.set(eventName, hs); + }, + setWindowOpenHandler(fn) { + this.windowOpenHandler = fn; + }, }; browserWindows.push(this); } @@ -265,6 +276,11 @@ const createWindowsHarness = () => { on: () => {}, quit: () => {}, }, + shell: { + openExternal: (url) => { + shellOpenExternalCalls.push(url); + }, + }, screen: { getPrimaryDisplay: () => ({ workAreaSize: { width: 1200, height: 800 }, @@ -286,6 +302,10 @@ const createWindowsHarness = () => { "../../shared/validation/dashboardProjectorIpcValidation": { normalizeDashboardProjectorMessage: (value) => value, }, + "../../shared/validation/openExternalValidation": { + normalizeOpenExternalUrl: (url) => + typeof url === "string" && /^https?:\/\//i.test(url) ? url : null, + }, "./state": { srcDir: "/tmp/src", state, @@ -300,7 +320,7 @@ const createWindowsHarness = () => { }, }); - return { ...moduleExports, browserWindows, state, attachCalls }; + return { ...moduleExports, browserWindows, state, attachCalls, shellOpenExternalCalls }; }; test("handleTrackSelection drains pending track after empty-track early exit", async () => { @@ -432,3 +452,52 @@ test("projector recovery timer does not recreate a window after shutdown starts" assert.equal(state.projector1Window, null); assert.deepEqual(attachCalls, [null]); }); + +test("createWindow denies new windows and blocks external navigation on both windows", () => { + const { createWindow, browserWindows, shellOpenExternalCalls } = createWindowsHarness(); + + createWindow("/tmp/workspace"); + + const windowsToCheck = browserWindows.filter( + (win) => win.title === "Projector 1" || win.title === "nw_wrld" + ); + assert.equal(windowsToCheck.length, 2, "expected a projector and a dashboard window"); + + for (const win of windowsToCheck) { + const wc = win.webContents; + + // New windows are denied, and a genuine external link is routed through the + // validated openExternal path instead of opening an in-app BrowserWindow. + assert.equal( + typeof wc.windowOpenHandler, + "function", + `${win.title}: setWindowOpenHandler should be installed` + ); + // Compare by property, not deepStrictEqual: the response object is created + // inside the vm sandbox realm, so its prototype differs from this realm's. + const decision = wc.windowOpenHandler({ url: "https://example.com/page" }); + assert.equal(decision.action, "deny", `${win.title}: window.open must be denied`); + + // External navigation of the privileged renderer is blocked... + const navHandlers = wc.handlers.get("will-navigate") || []; + assert.ok(navHandlers.length >= 1, `${win.title}: will-navigate should be registered`); + let blockedExternal = false; + navHandlers.forEach((handler) => + handler({ preventDefault: () => (blockedExternal = true) }, "https://evil.example/x") + ); + assert.equal(blockedExternal, true, `${win.title}: external navigation must be prevented`); + + // ...while in-app file:// navigation is still allowed. + let blockedInternal = false; + navHandlers.forEach((handler) => + handler({ preventDefault: () => (blockedInternal = true) }, "file:///app/dashboard.html") + ); + assert.equal(blockedInternal, false, `${win.title}: file:// navigation must be allowed`); + } + + assert.deepEqual( + shellOpenExternalCalls, + ["https://example.com/page", "https://example.com/page"], + "denied http(s) window.open should be forwarded to shell.openExternal once per window" + ); +}); From cdbb9b8317694d1995813a6e70c3c70276c26188 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:29:38 +0100 Subject: [PATCH 04/27] perf(dashboard): stop re-rendering debug logs on every input event when overlay is closed addDebugLog (and the from-projector debug-log path) called setDebugLogs on every inbound MIDI/OSC event regardless of whether the debug overlay was open, forcing a re-render of every debugLogs consumer on the live input hot path. Entries are now always retained in a ring buffer (cheap, no re-render) and a re-render is only triggered while the overlay is open; the buffer is flushed into state when the overlay opens. Observable behaviour is unchanged (the overlay still shows the last 200 entries); only the wasted re-renders while closed are removed. Verified: typecheck:all + lint green (no new warnings). Dashboard hook is webpack-lane (not node-testable); logic preserves the existing last-200 semantics. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/dashboard/core/hooks/useInputEvents.ts | 50 +++++++++++++++++----- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/src/dashboard/core/hooks/useInputEvents.ts b/src/dashboard/core/hooks/useInputEvents.ts index 005c672..b30da0d 100644 --- a/src/dashboard/core/hooks/useInputEvents.ts +++ b/src/dashboard/core/hooks/useInputEvents.ts @@ -1,6 +1,7 @@ import { useCallback, useEffect, + useRef, type Dispatch, type MutableRefObject, type SetStateAction, @@ -61,6 +62,38 @@ export const useInputEvents = ({ isDebugOverlayOpen, setIsProjectorReady, }: UseInputEventsArgs) => { + // Debug overlay logging: always retain recent entries in a cheap ring buffer, + // but only trigger a React re-render while the overlay is actually visible. + // This removes a setState (and re-render of every debugLogs consumer) on every + // inbound MIDI/OSC event when nobody is viewing the overlay, while preserving + // the exact observable behaviour (overlay shows the last 200 entries) via the + // flush-on-open effect below. + const debugLogBufferRef = useRef([]); + const isDebugOverlayOpenRef = useRef(isDebugOverlayOpen); + + const recordDebugEntries = useCallback( + (entries: string[]) => { + if (entries.length === 0) return; + if (!isDebugOverlayOpenRef.current) { + const buf = debugLogBufferRef.current; + for (const entry of entries) buf.push(entry); + if (buf.length > 200) buf.splice(0, buf.length - 200); + return; + } + setDebugLogs((prev) => [...prev, ...entries].slice(-200)); + }, + [setDebugLogs] + ); + + useEffect(() => { + isDebugOverlayOpenRef.current = isDebugOverlayOpen; + if (isDebugOverlayOpen && debugLogBufferRef.current.length > 0) { + const buffered = debugLogBufferRef.current; + debugLogBufferRef.current = []; + setDebugLogs((prev) => [...prev, ...buffered].slice(-200)); + } + }, [isDebugOverlayOpen, setDebugLogs]); + useEffect(() => { const tracks = getActiveSetTracks(userData, activeSetId); const globalMappings = @@ -106,10 +139,7 @@ export const useInputEvents = ({ : "" : ""; const logEntries = rawLog.split("\n\n").filter((entry) => entry.trim()); - setDebugLogs((prev) => { - const newLogs = [...prev, ...logEntries]; - return newLogs.slice(-200); - }); + recordDebugEntries(logEntries); } }); @@ -119,12 +149,12 @@ export const useInputEvents = ({ }); }, [isDebugOverlayOpen, sendToProjector]); - const addDebugLog = useCallback((log: string) => { - setDebugLogs((prev) => { - const newLogs = [...prev, log]; - return newLogs.slice(-200); - }); - }, []); + const addDebugLog = useCallback( + (log: string) => { + recordDebugEntries([log]); + }, + [recordDebugEntries] + ); const formatDebugLog = useCallback((eventData: Record) => { const timestampRaw = eventData.timestamp; From e93622f49a483d7e0140a5136dc2e6c1a4b44664 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:31:42 +0100 Subject: [PATCH 05/27] perf(dashboard): hoist sequencer-pattern lookup out of the 16-step render loop getSequencerForTrack (which walks recordingData) was called inside every one of the 16 step buttons for every channel row, i.e. 16xN times per NoteSelector render - and NoteSelector re-renders every step during playback (the playhead prop). The lookup depends only on recordingData + track.id, so it is now memoized once per render and channelPattern is derived from it. Pure refactor: identical values, no behaviour change. Verified: typecheck:all + lint green. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../components/track/ModuleComponents.tsx | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/dashboard/components/track/ModuleComponents.tsx b/src/dashboard/components/track/ModuleComponents.tsx index e859818..da2ea5e 100644 --- a/src/dashboard/components/track/ModuleComponents.tsx +++ b/src/dashboard/components/track/ModuleComponents.tsx @@ -301,6 +301,17 @@ export const NoteSelector = memo( return maxTime; }, [channelsData]); + // The sequencer pattern depends only on recordingData + track id (not on the + // channel or step), so derive it once per render instead of re-walking + // recordingData inside all 16 step buttons of every channel row. + const sequencerPattern = useMemo>(() => { + const sequencerData = getSequencerForTrack(recordingData, String(track.id)); + const patternRaw = isPlainObject(sequencerData) + ? (sequencerData as Record).pattern + : null; + return isPlainObject(patternRaw) ? (patternRaw as Record) : {}; + }, [recordingData, track.id]); + const toggleSelectChannel = useCallback( (channelNumber, isConstructor = false) => { const isSelected = @@ -660,17 +671,7 @@ export const NoteSelector = memo(
{Array.from({ length: 16 }).map((_, stepIndex) => { const channelKey = String(channel.number); - const sequencerData = getSequencerForTrack( - recordingData, - String(track.id) - ); - const patternRaw = isPlainObject(sequencerData) - ? (sequencerData as Record).pattern - : null; - const pattern = isPlainObject(patternRaw) - ? (patternRaw as Record) - : {}; - const channelPattern = pattern[channelKey] || []; + const channelPattern = sequencerPattern[channelKey] || []; const isActive = Array.isArray(channelPattern) && channelPattern.includes(stepIndex); const isCurrentStep = From 1963d2fde30d1a1fec8f309a3e7a0f5b10f6be9b Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:33:28 +0100 Subject: [PATCH 06/27] fix(projector): release window resize listener and WebGL context in threeBase destroy BaseThreeJsModule added a window 'resize' listener in its constructor but never removed it in destroy(), and disposed the renderer without forcing context loss. Across same-sandbox instance churn (e.g. matrix re-configuration, which destroys and recreates instances without recycling the sandbox process), each dead instance stayed pinned by its resize closure and its WebGL context lingered until GC. destroy() now removes the resize listener and calls renderer.forceContextLoss() before dispose(). Verified: typecheck:all green; full webpack production build compiles (dashboard, projector, moduleSandbox bundles all emit). Co-Authored-By: Claude Opus 4.8 (1M context) --- src/projector/helpers/threeBase.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/projector/helpers/threeBase.ts b/src/projector/helpers/threeBase.ts index b0174b4..13f29b6 100644 --- a/src/projector/helpers/threeBase.ts +++ b/src/projector/helpers/threeBase.ts @@ -1012,12 +1012,25 @@ export class BaseThreeJsModule extends ModuleBase { this.scene = null; } + // Remove the window resize listener registered in the constructor so the + // destroyed instance (and everything its closure retains) can be garbage + // collected. Without this it accumulates across same-sandbox instance churn + // (e.g. matrix re-configuration), since controls.dispose() only removes the + // controls' own listeners, not this one. + window.removeEventListener("resize", this.onWindowResize); + // Dispose of the renderer and its DOM element if (this.renderer) { if (this.renderer.domElement) { const parent = this.renderer.domElement.parentNode; if (parent) parent.removeChild(this.renderer.domElement); } + // Eagerly release the underlying WebGL context rather than waiting for GC + // of the canvas/renderer, so repeated instance churn cannot transiently + // stack live GL contexts toward the per-process limit. + if (typeof this.renderer.forceContextLoss === "function") { + this.renderer.forceContextLoss(); + } this.renderer.dispose(); this.renderer = null; } From 34b46043eee9b280099f7b6894213670a4b418d3 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:37:10 +0100 Subject: [PATCH 07/27] ci(security): pin softprops/action-gh-release to a commit SHA The release-publishing action ran from the mutable @v2 tag while holding the contents:write token, so a repointed tag (maintainer or attacker) could tamper with published artifacts or exfiltrate the token. Pinned to the commit SHA the v2 tag currently resolves to (3bb12739...), which is behaviourally identical to @v2. First-party actions/* remain on @v4 (lower risk); pinning those is a follow-up. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index edff0a4..a036535 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -165,7 +165,10 @@ jobs: pathlib.Path("SHA256SUMS").write_text("\n".join(lines) + ("\n" if lines else ""), encoding="utf-8") print(pathlib.Path("SHA256SUMS").read_text(encoding="utf-8")) PY - - uses: softprops/action-gh-release@v2 + # Pinned to a commit SHA (supply-chain hardening): a floating @v2 tag can be + # repointed by a maintainer or attacker, and this step publishes release + # artifacts with the contents:write token. SHA == softprops/action-gh-release v2. + - uses: softprops/action-gh-release@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65 # v2 with: tag_name: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.tag != '' && github.event.inputs.tag || github.ref_name }} files: | From 2ab7de0dd0dfe290170f8431f613959c7fdb4a75 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:43:00 +0100 Subject: [PATCH 08/27] build(security): disable RunAsNode/inspect/NODE_OPTIONS fuses on packaged builds The signed app shipped with Electron's RunAsNode, EnableNodeCliInspectArguments and EnableNodeOptionsEnvironmentVariable fuses enabled, so a local process could relaunch the notarized binary as a generic Node runtime (ELECTRON_RUN_AS_NODE), attach a debugger (--inspect), or inject NODE_OPTIONS, running arbitrary code inside the app's code-signing identity and entitlements. Added an electron-builder afterPack hook (scripts/afterPack.js) that flips these three fuses off before signing, via @electron/fuses. OnlyLoadAppFromAsar / asar-integrity fuses intentionally deferred (they interact with asar signing and need their own test). Verified: unsigned pack:mac:arm64 --dir succeeds and afterPack flips the fuses on the packaged binary. NEEDS a signed+notarized build test before release (confirm launch, and that ELECTRON_RUN_AS_NODE no longer works). Co-Authored-By: Claude Opus 4.8 (1M context) --- package-lock.json | 32 ++++++++++++++++++++++++++++++ package.json | 2 ++ scripts/afterPack.js | 47 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 scripts/afterPack.js diff --git a/package-lock.json b/package-lock.json index 5bba573..ac2c45b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,7 @@ "@babel/preset-env": "^7.23.5", "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.28.5", + "@electron/fuses": "^1.8.0", "@eslint/js": "^9.0.0", "@playwright/test": "1.60.0", "@types/node": "^20.0.0", @@ -1904,6 +1905,37 @@ "node": "*" } }, + "node_modules/@electron/fuses": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@electron/fuses/-/fuses-1.8.0.tgz", + "integrity": "sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.1", + "fs-extra": "^9.0.1", + "minimist": "^1.2.5" + }, + "bin": { + "electron-fuses": "dist/bin.js" + } + }, + "node_modules/@electron/fuses/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@electron/get": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", diff --git a/package.json b/package.json index a1612d6..73eecc9 100644 --- a/package.json +++ b/package.json @@ -83,6 +83,7 @@ "@babel/preset-env": "^7.23.5", "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.28.5", + "@electron/fuses": "^1.8.0", "@eslint/js": "^9.0.0", "@playwright/test": "1.60.0", "@types/node": "^20.0.0", @@ -123,6 +124,7 @@ "productName": "nw_wrld", "asar": true, "npmRebuild": false, + "afterPack": "scripts/afterPack.js", "directories": { "output": "release", "buildResources": "build" diff --git a/scripts/afterPack.js b/scripts/afterPack.js new file mode 100644 index 0000000..aa2d8a8 --- /dev/null +++ b/scripts/afterPack.js @@ -0,0 +1,47 @@ +// electron-builder afterPack hook: harden the packaged Electron binary by +// flipping security fuses BEFORE electron-builder code-signs the app (afterPack +// runs prior to signing, so the resulting signature covers the modified binary). +// +// Fuses disabled here close the standard Electron local-code-execution backdoors: +// - RunAsNode: blocks ELECTRON_RUN_AS_NODE=... relaunching the signed app as a +// generic Node runtime inside the app's code-signing identity / entitlements. +// - EnableNodeCliInspectArguments: blocks --inspect / --inspect-brk attaching a +// debugger to the main process. +// - EnableNodeOptionsEnvironmentVariable: blocks NODE_OPTIONS injection. +// +// Intentionally NOT touching OnlyLoadAppFromAsar / EnableEmbeddedAsarIntegrityValidation: +// those interact with electron-builder's asar packing/signing and need a dedicated +// build+notarize test before enabling. They can be added later once verified. +const path = require("node:path"); +const { flipFuses, FuseVersion, FuseV1Options } = require("@electron/fuses"); + +exports.default = async function afterPack(context) { + const { appOutDir, packager, electronPlatformName } = context; + const appName = packager.appInfo.productFilename; + + let electronBinaryPath; + if (electronPlatformName === "darwin") { + electronBinaryPath = path.join( + appOutDir, + `${appName}.app`, + "Contents", + "MacOS", + appName + ); + } else if (electronPlatformName === "win32") { + electronBinaryPath = path.join(appOutDir, `${appName}.exe`); + } else { + electronBinaryPath = path.join(appOutDir, appName); + } + + await flipFuses(electronBinaryPath, { + version: FuseVersion.V1, + [FuseV1Options.RunAsNode]: false, + [FuseV1Options.EnableNodeCliInspectArguments]: false, + [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, + }); + + console.log( + `[afterPack] Disabled RunAsNode / inspect / NODE_OPTIONS fuses on ${electronBinaryPath}` + ); +}; From ea4c5a380cd8b880bbf454b041976d8e5f68a2d2 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:43:00 +0100 Subject: [PATCH 09/27] build(security): drop disable-library-validation from macOS entitlements The hardened-runtime entitlements granted com.apple.security.cs.disable-library-validation, which lets the signed app load unsigned/third-party dylibs and weakens the hardened runtime. Removed it from both entitlement plists; kept allow-jit and allow-unsigned-executable-memory (required for V8 JIT) and device.audio-input (the mic capture feature). No dependency appears to load external unsigned dylibs. Verified: plists remain valid (packagingConfig test green); unsigned --dir pack succeeds. NEEDS a signed+notarized build launch test (confirm the app starts and audio capture works) before release. Co-Authored-By: Claude Opus 4.8 (1M context) --- build/entitlements.mac.inherit.plist | 2 -- build/entitlements.mac.plist | 2 -- 2 files changed, 4 deletions(-) diff --git a/build/entitlements.mac.inherit.plist b/build/entitlements.mac.inherit.plist index 281212c..2414ef0 100644 --- a/build/entitlements.mac.inherit.plist +++ b/build/entitlements.mac.inherit.plist @@ -6,8 +6,6 @@ com.apple.security.cs.allow-unsigned-executable-memory - com.apple.security.cs.disable-library-validation - com.apple.security.device.audio-input diff --git a/build/entitlements.mac.plist b/build/entitlements.mac.plist index 281212c..2414ef0 100644 --- a/build/entitlements.mac.plist +++ b/build/entitlements.mac.plist @@ -6,8 +6,6 @@ com.apple.security.cs.allow-unsigned-executable-memory - com.apple.security.cs.disable-library-validation - com.apple.security.device.audio-input From de02615d772f90b193b06f9931e2923cd5357a12 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 22:46:57 +0100 Subject: [PATCH 10/27] build(deps): upgrade electron-builder 25 to 26 to clear high-severity build CVEs electron-builder 25.x pulled ~9 high-severity advisories via app-builder-lib, @electron/rebuild, node-gyp, tar, etc. (build-time only, not shipped, but flagged by npm audit). Bumped electron-builder, dmg-builder and electron-builder-squirrel-windows together to 26.8.1. npm audit: 12 to 3 (the remaining 3 are dev-only webpack-dev-server transitives needing a breaking major). Verified: typecheck:all + 175 unit tests + lint green; unsigned pack:mac:arm64 --dir packages successfully on eb 26 with the afterPack fuses applied. NEEDS a full signed+notarized release build (dist:mac/win/linux) before release: eb 26 changed parts of the signing/notarization path that --dir does not exercise. Co-Authored-By: Claude Opus 4.8 (1M context) --- package-lock.json | 2153 +++++++++++---------------------------------- package.json | 6 +- 2 files changed, 502 insertions(+), 1657 deletions(-) diff --git a/package-lock.json b/package-lock.json index ac2c45b..02c92f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,10 +42,10 @@ "babel-loader": "^9.1.3", "concurrently": "^8.2.2", "css-loader": "^6.10.0", - "dmg-builder": "25.1.8", + "dmg-builder": "26.8.1", "electron": "^39.8.10", - "electron-builder": "^25.1.8", - "electron-builder-squirrel-windows": "25.1.8", + "electron-builder": "^26.8.1", + "electron-builder-squirrel-windows": "26.8.1", "eslint": "^9.0.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-react": "^7.0.0", @@ -2025,9 +2025,9 @@ } }, "node_modules/@electron/osx-sign": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.1.tgz", - "integrity": "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.3.tgz", + "integrity": "sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2060,55 +2060,34 @@ } }, "node_modules/@electron/rebuild": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.1.tgz", - "integrity": "sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-4.0.4.tgz", + "integrity": "sha512-Rzc39XPdk/+/wBG8MfwAHohXflep0ITUfulb6Rgz3R0NeSB1noE+E9/M/cb8ftCAiyDD9PPhLuuWgE1GaInbKg==", "dev": true, "license": "MIT", "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", - "chalk": "^4.0.0", "debug": "^4.1.1", - "detect-libc": "^2.0.1", - "fs-extra": "^10.0.0", - "got": "^11.7.0", - "node-abi": "^3.45.0", - "node-api-version": "^0.2.0", - "node-gyp": "^9.0.0", - "ora": "^5.1.0", - "read-binary-file-arch": "^1.0.6", - "semver": "^7.3.5", - "tar": "^6.0.5", - "yargs": "^17.0.1" + "node-abi": "^4.2.0", + "node-api-version": "^0.2.1", + "node-gyp": "^12.2.0", + "read-binary-file-arch": "^1.0.6" }, "bin": { "electron-rebuild": "lib/cli.js" }, "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/@electron/rebuild/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "node": ">=22.12.0" } }, "node_modules/@electron/universal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz", - "integrity": "sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.3.tgz", + "integrity": "sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==", "dev": true, "license": "MIT", "dependencies": { - "@electron/asar": "^3.2.7", + "@electron/asar": "^3.3.1", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "dir-compare": "^4.2.0", @@ -2131,9 +2110,9 @@ } }, "node_modules/@electron/universal/node_modules/fs-extra": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", - "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.5.tgz", + "integrity": "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2161,6 +2140,43 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@electron/windows-sign": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.2.2.tgz", + "integrity": "sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "dependencies": { + "cross-dirname": "^0.1.0", + "debug": "^4.3.4", + "fs-extra": "^11.1.1", + "minimist": "^1.2.8", + "postject": "^1.0.0-alpha.6" + }, + "bin": { + "electron-windows-sign": "bin/electron-windows-sign.js" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/windows-sign/node_modules/fs-extra": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.5.tgz", + "integrity": "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", @@ -2328,13 +2344,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true, - "license": "MIT" - }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -2418,107 +2427,17 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "minipass": "^7.0.4" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=18.0.0" } }, "node_modules/@jridgewell/gen-mapping": { @@ -2815,48 +2734,6 @@ "node": ">= 8" } }, - "node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@peculiar/asn1-cms": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.7.0.tgz", @@ -3026,17 +2903,6 @@ "node": ">=20.0.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@playwright/test": { "version": "1.60.0", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", @@ -3381,16 +3247,6 @@ "node": ">=10" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.1.tgz", - "integrity": "sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/@tweenjs/tween.js": { "version": "23.1.3", "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", @@ -3453,9 +3309,9 @@ } }, "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", "dev": true, "license": "MIT", "dependencies": { @@ -4209,11 +4065,14 @@ "license": "MIT" }, "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", + "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", "dev": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } }, "node_modules/accepts": { "version": "1.3.8", @@ -4285,33 +4144,6 @@ "node": ">= 14" } }, - "node_modules/agentkeepalive": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", - "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.15.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", @@ -4442,167 +4274,168 @@ } }, "node_modules/app-builder-bin": { - "version": "5.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.10.tgz", - "integrity": "sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw==", + "version": "5.0.0-alpha.12", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.12.tgz", + "integrity": "sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==", "dev": true, "license": "MIT" }, "node_modules/app-builder-lib": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-25.1.8.tgz", - "integrity": "sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-26.8.1.tgz", + "integrity": "sha512-p0Im/Dx5C4tmz8QEE1Yn4MkuPC8PrnlRneMhWJj7BBXQfNTJUshM/bp3lusdEsDbvvfJZpXWnYesgSLvwtM2Zw==", "dev": true, "license": "MIT", "dependencies": { "@develar/schema-utils": "~2.6.5", + "@electron/asar": "3.4.1", + "@electron/fuses": "^1.8.0", + "@electron/get": "^3.0.0", "@electron/notarize": "2.5.0", - "@electron/osx-sign": "1.3.1", - "@electron/rebuild": "3.6.1", - "@electron/universal": "2.0.1", + "@electron/osx-sign": "1.3.3", + "@electron/rebuild": "^4.0.3", + "@electron/universal": "2.0.3", "@malept/flatpak-bundler": "^0.4.0", "@types/fs-extra": "9.0.13", "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "builder-util": "26.8.1", + "builder-util-runtime": "9.5.1", "chromium-pickle-js": "^0.2.0", - "config-file-ts": "0.2.8-rc1", + "ci-info": "4.3.1", "debug": "^4.3.4", "dotenv": "^16.4.5", "dotenv-expand": "^11.0.6", "ejs": "^3.1.8", - "electron-publish": "25.1.7", - "form-data": "^4.0.0", + "electron-publish": "26.8.1", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", - "is-ci": "^3.0.0", "isbinaryfile": "^5.0.0", + "jiti": "^2.4.2", "js-yaml": "^4.1.0", "json5": "^2.2.3", "lazy-val": "^1.0.5", - "minimatch": "^10.0.0", + "minimatch": "^10.0.3", + "plist": "3.1.0", + "proper-lockfile": "^4.1.2", "resedit": "^1.7.0", - "sanitize-filename": "^1.6.3", - "semver": "^7.3.8", - "tar": "^6.1.12", - "temp-file": "^3.4.0" + "semver": "~7.7.3", + "tar": "^7.5.7", + "temp-file": "^3.4.0", + "tiny-async-pool": "1.3.0", + "which": "^5.0.0" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "dmg-builder": "25.1.8", - "electron-builder-squirrel-windows": "25.1.8" - } - }, - "node_modules/app-builder-lib/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "dmg-builder": "26.8.1", + "electron-builder-squirrel-windows": "26.8.1" } }, - "node_modules/aproba": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", - "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", - "dev": true, - "license": "ISC" - }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "node_modules/app-builder-lib/node_modules/@electron/get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-3.1.0.tgz", + "integrity": "sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==", "dev": true, "license": "MIT", "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" }, "engines": { - "node": ">= 10" + "node": ">=14" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" } }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "node_modules/app-builder-lib/node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "license": "MIT", "dependencies": { - "glob": "^7.1.4", "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">= 6" + "node": ">=6 <7 || >=8" } }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/app-builder-lib/node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/app-builder-lib/node_modules/isexe": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", "dev": true, - "license": "MIT" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/app-builder-lib/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "deprecated": "This package is no longer supported.", + "node_modules/app-builder-lib/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/app-builder-lib/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/arg": { @@ -5065,35 +4898,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/bluebird-lst": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.5" - } - }, "node_modules/body-parser": { "version": "1.20.5", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", @@ -5247,6 +5051,7 @@ } ], "license": "MIT", + "optional": true, "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -5270,34 +5075,34 @@ "license": "MIT" }, "node_modules/builder-util": { - "version": "25.1.7", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-25.1.7.tgz", - "integrity": "sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-26.8.1.tgz", + "integrity": "sha512-pm1lTYbGyc90DHgCDO7eo8Rl4EqKLciayNbZqGziqnH9jrlKe8ZANGdityLZU+pJh16dfzjAx2xQq9McuIPEtw==", "dev": true, "license": "MIT", "dependencies": { "@types/debug": "^4.1.6", "7zip-bin": "~5.2.0", - "app-builder-bin": "5.0.0-alpha.10", - "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.2.10", + "app-builder-bin": "5.0.0-alpha.12", + "builder-util-runtime": "9.5.1", "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", + "cross-spawn": "^7.0.6", "debug": "^4.3.4", "fs-extra": "^10.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", - "is-ci": "^3.0.0", "js-yaml": "^4.1.0", + "sanitize-filename": "^1.6.3", "source-map-support": "^0.5.19", "stat-mode": "^1.0.0", - "temp-file": "^3.4.0" + "temp-file": "^3.4.0", + "tiny-async-pool": "1.3.0" } }, "node_modules/builder-util-runtime": { - "version": "9.2.10", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.10.tgz", - "integrity": "sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.5.1.tgz", + "integrity": "sha512-qt41tMfgHTllhResqM5DcnHyDIWNgzHvuY2jDcYP9iaGpkWxTUzV6GQjDeLnlR1/DtdlcsWQbA7sByMpmJFTLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5344,90 +5149,6 @@ "node": ">=6.0.0" } }, - "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", - "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -5617,13 +5338,13 @@ } }, "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/chrome-trace-event": { @@ -5644,9 +5365,9 @@ "license": "MIT" }, "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", "dev": true, "funding": [ { @@ -5659,42 +5380,6 @@ "node": ">=8" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", @@ -5728,16 +5413,6 @@ "node": ">=12" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -5786,16 +5461,6 @@ "dev": true, "license": "MIT" }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -5842,22 +5507,6 @@ "node": ">=0.10.0" } }, - "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -5942,74 +5591,6 @@ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, - "node_modules/config-file-ts": { - "version": "0.2.8-rc1", - "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.8-rc1.tgz", - "integrity": "sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob": "^10.3.12", - "typescript": "^5.4.3" - } - }, - "node_modules/config-file-ts/node_modules/brace-expansion": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", - "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/config-file-ts/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/config-file-ts/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/config-file-ts/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -6020,13 +5601,6 @@ "node": ">=0.8" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true, - "license": "ISC" - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -6133,32 +5707,13 @@ "buffer": "^5.1.0" } }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "node_modules/cross-dirname": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", + "integrity": "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==", "dev": true, "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } + "optional": true }, "node_modules/cross-spawn": { "version": "7.0.6", @@ -6800,19 +6355,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", @@ -6891,13 +6433,6 @@ "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true, - "license": "MIT" - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -6919,16 +6454,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -6984,15 +6509,14 @@ "license": "MIT" }, "node_modules/dmg-builder": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-25.1.8.tgz", - "integrity": "sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-26.8.1.tgz", + "integrity": "sha512-glMJgnTreo8CFINujtAhCgN96QAqApDMZ8Vl1r8f0QT8QprvC1UCltV4CcWj20YoIyLZx6IUskaJZ0NV8fokcg==", "dev": true, "license": "MIT", "dependencies": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "app-builder-lib": "26.8.1", + "builder-util": "26.8.1", "fs-extra": "^10.1.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" @@ -7085,13 +6609,6 @@ "node": ">= 0.4" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7135,19 +6652,19 @@ } }, "node_modules/electron-builder": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-25.1.8.tgz", - "integrity": "sha512-poRgAtUHHOnlzZnc9PK4nzG53xh74wj2Jy7jkTrqZ0MWPoHGh1M2+C//hGeYdA+4K8w4yiVCNYoLXF7ySj2Wig==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-26.8.1.tgz", + "integrity": "sha512-uWhx1r74NGpCagG0ULs/P9Nqv2nsoo+7eo4fLUOB8L8MdWltq9odW/uuLXMFCDGnPafknYLZgjNX0ZIFRzOQAw==", "dev": true, "license": "MIT", "dependencies": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "app-builder-lib": "26.8.1", + "builder-util": "26.8.1", + "builder-util-runtime": "9.5.1", "chalk": "^4.1.2", - "dmg-builder": "25.1.8", + "ci-info": "^4.2.0", + "dmg-builder": "26.8.1", "fs-extra": "^10.1.0", - "is-ci": "^3.0.0", "lazy-val": "^1.0.5", "simple-update-notifier": "2.0.0", "yargs": "^17.6.2" @@ -7161,29 +6678,29 @@ } }, "node_modules/electron-builder-squirrel-windows": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-25.1.8.tgz", - "integrity": "sha512-2ntkJ+9+0GFP6nAISiMabKt6eqBB0kX1QqHNWFWAXgi0VULKGisM46luRFpIBiU3u/TDmhZMM8tzvo2Abn3ayg==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-26.8.1.tgz", + "integrity": "sha512-o288fIdgPLHA76eDrFADHPoo7VyGkDCYbLV1GzndaMSAVBoZrGvM9m2IehdcVMzdAZJ2eV9bgyissQXHv5tGzA==", "dev": true, "license": "MIT", "dependencies": { - "app-builder-lib": "25.1.8", - "archiver": "^5.3.1", - "builder-util": "25.1.7", - "fs-extra": "^10.1.0" + "app-builder-lib": "26.8.1", + "builder-util": "26.8.1", + "electron-winstaller": "5.4.0" } }, "node_modules/electron-publish": { - "version": "25.1.7", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-25.1.7.tgz", - "integrity": "sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-26.8.1.tgz", + "integrity": "sha512-q+jrSTIh/Cv4eGZa7oVR+grEJo/FoLMYBAnSL5GCtqwUpr1T+VgKB/dn1pnzxIxqD8S/jP1yilT9VrwCqINR4w==", "dev": true, "license": "MIT", "dependencies": { "@types/fs-extra": "^9.0.11", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "builder-util": "26.8.1", + "builder-util-runtime": "9.5.1", "chalk": "^4.1.2", + "form-data": "^4.0.5", "fs-extra": "^10.1.0", "lazy-val": "^1.0.5", "mime": "^2.5.2" @@ -7196,42 +6713,87 @@ "dev": true, "license": "ISC" }, - "node_modules/electron/node_modules/@types/node": { - "version": "22.19.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz", - "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==", + "node_modules/electron-winstaller": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-5.4.0.tgz", + "integrity": "sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==", "dev": true, + "hasInstallScript": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "@electron/asar": "^3.2.1", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "lodash": "^4.17.21", + "temp": "^0.9.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "@electron/windows-sign": "^1.1.2" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/electron-winstaller/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/electron-winstaller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-winstaller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 4.0.0" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "node_modules/electron/node_modules/@types/node": { + "version": "22.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz", + "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "iconv-lite": "^0.6.2" + "undici-types": "~6.21.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, "node_modules/end-of-stream": { @@ -8219,9 +7781,9 @@ } }, "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -8402,36 +7964,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/form-data": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", @@ -8483,13 +8015,6 @@ "node": ">= 0.6" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "license": "MIT" - }, "node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -8505,19 +8030,6 @@ "node": ">=12" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8581,27 +8093,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/generator-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", @@ -8709,7 +8200,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -8974,13 +8465,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true, - "license": "ISC" - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -9197,16 +8681,6 @@ "node": ">= 14" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, "node_modules/hyperdyperid": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", @@ -9279,7 +8753,8 @@ "url": "https://feross.org/support" } ], - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "optional": true }, "node_modules/ignore": { "version": "7.0.5", @@ -9427,23 +8902,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true, - "license": "ISC" - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -9497,16 +8955,6 @@ "node": ">=10.13.0" } }, - "node_modules/ip-address": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", - "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, "node_modules/ipaddr.js": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", @@ -9621,19 +9069,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", @@ -9789,23 +9224,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -9997,19 +9415,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", @@ -10127,22 +9532,6 @@ "node": ">= 0.4" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/jake": { "version": "10.9.4", "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", @@ -10397,52 +9786,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -10521,34 +9864,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -10556,30 +9871,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -10618,86 +9909,6 @@ "yallist": "^3.0.2" } }, - "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/matcher": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", @@ -10838,16 +10049,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -10915,127 +10116,39 @@ } }, "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "minipass": "^7.1.2" }, "engines": { - "node": ">= 8" + "node": ">= 18" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, "bin": { "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/ms": { @@ -11115,22 +10228,22 @@ "license": "MIT" }, "node_modules/node-abi": { - "version": "3.85.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.85.0.tgz", - "integrity": "sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.31.0.tgz", + "integrity": "sha512-Erq5w/t3syw3s4sDsUaX4QttIdBPsGKTT1DTRsCkTonGggczhlDKm/wDX3o+HPJpQ41EjXCbcmXf0tgr5YZJXw==", "dev": true, "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "semver": "^7.6.3" }, "engines": { - "node": ">=10" + "node": ">=22.12.0" } }, "node_modules/node-abi/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.8.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", + "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", "dev": true, "license": "ISC", "bin": { @@ -11159,9 +10272,9 @@ } }, "node_modules/node-api-version/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.8.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", + "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", "dev": true, "license": "ISC", "bin": { @@ -11172,29 +10285,28 @@ } }, "node_modules/node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.4.0.tgz", + "integrity": "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==", "dev": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", + "nopt": "^9.0.0", + "proc-log": "^6.0.0", "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" + "tar": "^7.5.4", + "tinyglobby": "^0.2.12", + "undici": "^6.25.0", + "which": "^6.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/node-gyp-build": { @@ -11209,10 +10321,20 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" + } + }, "node_modules/node-gyp/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.8.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", + "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", "dev": true, "license": "ISC", "bin": { @@ -11222,6 +10344,22 @@ "node": ">=10" } }, + "node_modules/node-gyp/node_modules/which": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, "node_modules/node-releases": { "version": "2.0.47", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz", @@ -11238,19 +10376,19 @@ "integrity": "sha512-sw39KaUS2YBta6apZ0/H+nnCsUyxT/ZRxgv/HnDxx6pWO2e2nUmWgLhpOaQdlxxkFepIpxDrlXy3fHVx0S3SLg==" }, "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", + "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", "dev": true, "license": "ISC", "dependencies": { - "abbrev": "^1.0.0" + "abbrev": "^4.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/normalize-path": { @@ -11276,23 +10414,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -11451,22 +10572,6 @@ "wrappy": "1" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/open": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", @@ -11504,30 +10609,6 @@ "node": ">= 0.8.0" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/osc": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/osc/-/osc-2.4.5.tgz", @@ -11632,22 +10713,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-retry": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", @@ -11692,13 +10757,6 @@ "integrity": "sha512-k58mfexvavFb+KNRpi70PbkKE2gCNiWQkzS4kVOyC2F9SKGgYy1jSO+JXZ24ikXV9OvZIAxGusiSVWEijYrmNg==", "license": "LGPL-2.1" }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11778,40 +10836,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/path-to-regexp": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", @@ -12262,15 +11286,43 @@ "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/postject": { + "version": "1.0.0-alpha.6", + "resolved": "https://registry.npmjs.org/postject/-/postject-1.0.0-alpha.6.tgz", + "integrity": "sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "commander": "^9.4.0" + }, + "bin": { + "postject": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "node_modules/postject/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "engines": { + "node": "^12.20.0 || >=14" + } }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -12298,6 +11350,16 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -12315,13 +11377,6 @@ "node": ">=0.4.0" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true, - "license": "ISC" - }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", @@ -12348,6 +11403,18 @@ "react-is": "^16.13.1" } }, + "node_modules/proper-lockfile": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -12591,39 +11658,6 @@ "node": ">= 6" } }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", - "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -12878,20 +11912,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -12914,9 +11934,9 @@ } }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", @@ -12925,9 +11945,6 @@ }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/roarr": { @@ -13105,9 +12122,9 @@ "license": "MIT" }, "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.4.tgz", + "integrity": "sha512-9ZyI08PsvdQl2r/bBIGubpVdR3RR9sY6RDiWFPreA21C/EFlQhmgo20UZlNjZMMZNubusLhAQozkA0Od5J21Eg==", "dev": true, "license": "WTFPL OR ISC", "dependencies": { @@ -13115,11 +12132,14 @@ } }, "node_modules/sax": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", - "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", "dev": true, - "license": "BlueOak-1.0.0" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } }, "node_modules/scheduler": { "version": "0.23.2", @@ -13454,13 +12474,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true, - "license": "ISC" - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -13703,6 +12716,7 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "license": "MIT", + "optional": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -13720,49 +12734,6 @@ "websocket-driver": "^0.7.4" } }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -13840,19 +12811,6 @@ "license": "BSD-3-Clause", "optional": true }, - "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/standardized-audio-context": { "version": "25.3.77", "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.77.tgz", @@ -13923,22 +12881,6 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/string.prototype.matchall": { "version": "4.0.12", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", @@ -14050,20 +12992,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -14246,57 +13174,46 @@ } }, "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "version": "7.5.16", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.16.tgz", + "integrity": "sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=6" + "node": ">=18" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", "dev": true, - "license": "ISC", + "license": "MIT", + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/temp-file": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", @@ -14448,6 +13365,26 @@ "dev": true, "license": "MIT" }, + "node_modules/tiny-async-pool": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz", + "integrity": "sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.5.0" + } + }, + "node_modules/tiny-async-pool/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -14766,6 +13703,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.26.0.tgz", + "integrity": "sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", @@ -14817,32 +13764,6 @@ "node": ">=4" } }, - "node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -15008,16 +13929,6 @@ "minimalistic-assert": "^1.0.0" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/webmidi": { "version": "3.1.16", "resolved": "https://registry.npmjs.org/webmidi/-/webmidi-3.1.16.tgz", @@ -15423,16 +14334,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", @@ -15474,25 +14375,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "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", @@ -15616,43 +14498,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } } } } diff --git a/package.json b/package.json index 73eecc9..ed7adf0 100644 --- a/package.json +++ b/package.json @@ -95,10 +95,10 @@ "babel-loader": "^9.1.3", "concurrently": "^8.2.2", "css-loader": "^6.10.0", - "dmg-builder": "25.1.8", + "dmg-builder": "26.8.1", "electron": "^39.8.10", - "electron-builder": "^25.1.8", - "electron-builder-squirrel-windows": "25.1.8", + "electron-builder": "^26.8.1", + "electron-builder-squirrel-windows": "26.8.1", "eslint": "^9.0.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-react": "^7.0.0", From 9b4e678e76ff576731028fa767d77efb3c7c6ba5 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 5 Jun 2026 23:06:52 +0100 Subject: [PATCH 11/27] fix(build,security): correct Linux fuse-hook path and catch openExternal rejection Adversarial review of the branch surfaced two issues: - afterPack used productFilename (nw_wrld) for the Linux binary, but electron-builder names the Linux executable from the package name (nw-wrld), so flipFuses hit ENOENT and would abort every Linux build and the Linux release CI job. The Linux branch now uses packager.executableName (sanitizedName.toLowerCase()). macOS/Windows paths were already correct and verified. - the window-open handler caught only synchronous throws from shell.openExternal; its promise rejection is now swallowed too (mirrors registerOsBridge). Verified: typecheck:all + 175 unit tests + lint green; unsigned --dir packs now succeed on macOS AND Linux, afterPack flipping fuses on the correct binary (release/linux-unpacked/nw-wrld). Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/afterPack.js | 8 +++++++- src/main/mainProcess/windows.ts | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/afterPack.js b/scripts/afterPack.js index aa2d8a8..ce31c4c 100644 --- a/scripts/afterPack.js +++ b/scripts/afterPack.js @@ -31,7 +31,13 @@ exports.default = async function afterPack(context) { } else if (electronPlatformName === "win32") { electronBinaryPath = path.join(appOutDir, `${appName}.exe`); } else { - electronBinaryPath = path.join(appOutDir, appName); + // Linux: electron-builder derives the executable name from the package "name" + // (sanitizedName.toLowerCase()), NOT productName/productFilename. Using appName + // ("nw_wrld") here would point at a nonexistent file ("nw-wrld" is the real + // basename) and flipFuses would throw ENOENT, aborting the Linux build. + const linuxExecutableName = + packager.executableName || packager.appInfo.sanitizedName.toLowerCase(); + electronBinaryPath = path.join(appOutDir, linuxExecutableName); } await flipFuses(electronBinaryPath, { diff --git a/src/main/mainProcess/windows.ts b/src/main/mainProcess/windows.ts index 23da92d..635f817 100644 --- a/src/main/mainProcess/windows.ts +++ b/src/main/mainProcess/windows.ts @@ -41,9 +41,9 @@ const hardenWindowNavigation = (win: BrowserWindow): void => { wc.setWindowOpenHandler(({ url }) => { const safe = normalizeOpenExternalUrl(url); if (safe) { - try { - shell.openExternal(safe); - } catch {} + // openExternal returns a promise; swallow async rejection (e.g. no OS + // handler for the URL) the same way registerOsBridge does. + Promise.resolve(shell.openExternal(safe)).catch(() => {}); } return { action: "deny" }; }); From c2e8086d6bf43831508f3e58bd1c109b48c5ec31 Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 6 Jun 2026 12:13:33 +0100 Subject: [PATCH 12/27] chore(deps): drop @eslint/js and globals; keep eslint on v8 eslint.config.mjs already runs on eslint 8 with both packages resolved transitively, so the 8->9 bump was currency-only and added two avoidable direct deps. Revert to eslint ^8 and remove the companions; lint stays green (0 errors). Co-Authored-By: Claude Opus 4.8 (1M context) --- package-lock.json | 385 ++++++++++++++++++++-------------------------- package.json | 4 +- 2 files changed, 169 insertions(+), 220 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02c92f1..5e39117 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,6 @@ "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.28.5", "@electron/fuses": "^1.8.0", - "@eslint/js": "^9.0.0", "@playwright/test": "1.60.0", "@types/node": "^20.0.0", "@types/react": "^18.3.27", @@ -46,11 +45,10 @@ "electron": "^39.8.10", "electron-builder": "^26.8.1", "electron-builder-squirrel-windows": "26.8.1", - "eslint": "^9.0.0", + "eslint": "^8.0.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-react": "^7.0.0", "eslint-plugin-react-hooks": "^5.0.0", - "globals": "^14.0.0", "playwright": "1.60.0", "postcss": "^8.4.38", "postcss-loader": "^8.1.1", @@ -2206,79 +2204,25 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@eslint/config-array": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", - "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.7", - "debug": "^4.3.1", - "minimatch": "^3.1.5" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "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": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@eslint/eslintrc": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", - "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.14.0", + "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", + "espree": "^9.6.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", - "minimatch": "^3.1.5", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2308,40 +2252,13 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.4", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", - "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@hapi/hoek": { @@ -2361,42 +2278,33 @@ "@hapi/hoek": "^9.0.0" } }, - "node_modules/@humanfs/core": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", - "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanfs/types": "^0.15.0" + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=18.18.0" + "node": ">=10.10.0" } }, - "node_modules/@humanfs/node": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", - "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "@humanfs/core": "^0.19.2", - "@humanfs/types": "^0.15.0", - "@humanwhocodes/retry": "^0.4.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/types": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", - "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" + "node": "*" } }, "node_modules/@humanwhocodes/module-importer": { @@ -2413,19 +2321,13 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } + "license": "BSD-3-Clause" }, "node_modules/@isaacs/fs-minipass": { "version": "4.0.1", @@ -3825,6 +3727,13 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", + "dev": true, + "license": "ISC" + }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -6565,6 +6474,19 @@ "node": ">=6" } }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dotenv": { "version": "16.6.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", @@ -7083,63 +7005,60 @@ } }, "node_modules/eslint": { - "version": "9.39.4", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", - "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.2", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.5", - "@eslint/js": "9.39.4", - "@eslint/plugin-kit": "^0.4.1", - "@humanfs/node": "^0.16.6", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.14.0", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", + "cross-spawn": "^7.0.2", "debug": "^4.3.2", + "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", + "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.5", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-prettier": { @@ -7283,9 +7202,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7293,20 +7212,7 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -7405,31 +7311,18 @@ } }, "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.15.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -7768,16 +7661,16 @@ } }, "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^4.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=16.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/filelist": { @@ -7907,17 +7800,35 @@ } }, "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.4" + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=16" + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/flatted": { @@ -8302,13 +8213,29 @@ } }, "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=18" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8377,6 +8304,13 @@ "dev": true, "license": "ISC" }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -9290,6 +9224,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -13312,6 +13256,13 @@ "dev": true, "license": "MIT" }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", diff --git a/package.json b/package.json index ed7adf0..ea88614 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,6 @@ "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.28.5", "@electron/fuses": "^1.8.0", - "@eslint/js": "^9.0.0", "@playwright/test": "1.60.0", "@types/node": "^20.0.0", "@types/react": "^18.3.27", @@ -99,11 +98,10 @@ "electron": "^39.8.10", "electron-builder": "^26.8.1", "electron-builder-squirrel-windows": "26.8.1", - "eslint": "^9.0.0", + "eslint": "^8.0.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-react": "^7.0.0", "eslint-plugin-react-hooks": "^5.0.0", - "globals": "^14.0.0", "playwright": "1.60.0", "postcss": "^8.4.38", "postcss-loader": "^8.1.1", From 0f5a8602de4f03d2e771bee1fb3f2030312b24ab Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 6 Jun 2026 12:13:33 +0100 Subject: [PATCH 13/27] style: trim audit-hardening comments to match house style Codebase is near-zero comments (sandbox.ts: 633 lines, 0; all untouched test files: 0). Reduce the multi-line explanatory blocks to terse one-liners, keeping only genuine gotchas (Windows rename, Linux exec name, dir fsync). threeBase.ts keeps short notes matching the projector layer's local style. atomicWrite.ts is comments-only; logic unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/afterPack.js | 21 ++--------- .../components/track/ModuleComponents.tsx | 3 -- src/dashboard/core/hooks/useInputEvents.ts | 7 +--- src/main/mainProcess/windows.ts | 9 +---- src/projector/helpers/threeBase.ts | 10 ++---- src/shared/json/atomicWrite.ts | 36 ++++--------------- test/atomicWrite.test.js | 3 -- test/projectorLifecycleRuntime.test.js | 6 ---- 8 files changed, 13 insertions(+), 82 deletions(-) diff --git a/scripts/afterPack.js b/scripts/afterPack.js index ce31c4c..8b003c2 100644 --- a/scripts/afterPack.js +++ b/scripts/afterPack.js @@ -1,17 +1,5 @@ -// electron-builder afterPack hook: harden the packaged Electron binary by -// flipping security fuses BEFORE electron-builder code-signs the app (afterPack -// runs prior to signing, so the resulting signature covers the modified binary). -// -// Fuses disabled here close the standard Electron local-code-execution backdoors: -// - RunAsNode: blocks ELECTRON_RUN_AS_NODE=... relaunching the signed app as a -// generic Node runtime inside the app's code-signing identity / entitlements. -// - EnableNodeCliInspectArguments: blocks --inspect / --inspect-brk attaching a -// debugger to the main process. -// - EnableNodeOptionsEnvironmentVariable: blocks NODE_OPTIONS injection. -// -// Intentionally NOT touching OnlyLoadAppFromAsar / EnableEmbeddedAsarIntegrityValidation: -// those interact with electron-builder's asar packing/signing and need a dedicated -// build+notarize test before enabling. They can be added later once verified. +// electron-builder afterPack hook: disable RunAsNode / inspect / NODE_OPTIONS +// fuses before signing, so the signature covers the hardened binary. const path = require("node:path"); const { flipFuses, FuseVersion, FuseV1Options } = require("@electron/fuses"); @@ -31,10 +19,7 @@ exports.default = async function afterPack(context) { } else if (electronPlatformName === "win32") { electronBinaryPath = path.join(appOutDir, `${appName}.exe`); } else { - // Linux: electron-builder derives the executable name from the package "name" - // (sanitizedName.toLowerCase()), NOT productName/productFilename. Using appName - // ("nw_wrld") here would point at a nonexistent file ("nw-wrld" is the real - // basename) and flipFuses would throw ENOENT, aborting the Linux build. + // Linux executable name comes from package "name", not productName. const linuxExecutableName = packager.executableName || packager.appInfo.sanitizedName.toLowerCase(); electronBinaryPath = path.join(appOutDir, linuxExecutableName); diff --git a/src/dashboard/components/track/ModuleComponents.tsx b/src/dashboard/components/track/ModuleComponents.tsx index da2ea5e..b890509 100644 --- a/src/dashboard/components/track/ModuleComponents.tsx +++ b/src/dashboard/components/track/ModuleComponents.tsx @@ -301,9 +301,6 @@ export const NoteSelector = memo( return maxTime; }, [channelsData]); - // The sequencer pattern depends only on recordingData + track id (not on the - // channel or step), so derive it once per render instead of re-walking - // recordingData inside all 16 step buttons of every channel row. const sequencerPattern = useMemo>(() => { const sequencerData = getSequencerForTrack(recordingData, String(track.id)); const patternRaw = isPlainObject(sequencerData) diff --git a/src/dashboard/core/hooks/useInputEvents.ts b/src/dashboard/core/hooks/useInputEvents.ts index b30da0d..93b41af 100644 --- a/src/dashboard/core/hooks/useInputEvents.ts +++ b/src/dashboard/core/hooks/useInputEvents.ts @@ -62,12 +62,7 @@ export const useInputEvents = ({ isDebugOverlayOpen, setIsProjectorReady, }: UseInputEventsArgs) => { - // Debug overlay logging: always retain recent entries in a cheap ring buffer, - // but only trigger a React re-render while the overlay is actually visible. - // This removes a setState (and re-render of every debugLogs consumer) on every - // inbound MIDI/OSC event when nobody is viewing the overlay, while preserving - // the exact observable behaviour (overlay shows the last 200 entries) via the - // flush-on-open effect below. + // Buffer debug entries in a ring buffer; only re-render while the overlay is open. const debugLogBufferRef = useRef([]); const isDebugOverlayOpenRef = useRef(isDebugOverlayOpen); diff --git a/src/main/mainProcess/windows.ts b/src/main/mainProcess/windows.ts index 635f817..a67673c 100644 --- a/src/main/mainProcess/windows.ts +++ b/src/main/mainProcess/windows.ts @@ -27,12 +27,7 @@ const isAllowedInternalNavigation = (url: unknown): boolean => { ); }; -// The dashboard and projector are privileged windows: their preload exposes the -// full nwWrldBridge (workspace fs, JSON store, openExternal). Deny any in-app -// window.open and any navigation away from the bundled local content, so a stray -// link or injected navigation cannot load remote code into a window that can -// reach the filesystem. Genuine external http(s) links are still honoured, but -// only via the same validated path as os.openExternal (scheme allow-list). +// Privileged windows can reach the fs; pin them to local content (external links go via validated openExternal). const hardenWindowNavigation = (win: BrowserWindow): void => { try { const wc = win.webContents; @@ -41,8 +36,6 @@ const hardenWindowNavigation = (win: BrowserWindow): void => { wc.setWindowOpenHandler(({ url }) => { const safe = normalizeOpenExternalUrl(url); if (safe) { - // openExternal returns a promise; swallow async rejection (e.g. no OS - // handler for the URL) the same way registerOsBridge does. Promise.resolve(shell.openExternal(safe)).catch(() => {}); } return { action: "deny" }; diff --git a/src/projector/helpers/threeBase.ts b/src/projector/helpers/threeBase.ts index 13f29b6..6ea532d 100644 --- a/src/projector/helpers/threeBase.ts +++ b/src/projector/helpers/threeBase.ts @@ -1012,11 +1012,7 @@ export class BaseThreeJsModule extends ModuleBase { this.scene = null; } - // Remove the window resize listener registered in the constructor so the - // destroyed instance (and everything its closure retains) can be garbage - // collected. Without this it accumulates across same-sandbox instance churn - // (e.g. matrix re-configuration), since controls.dispose() only removes the - // controls' own listeners, not this one. + // Remove the constructor's resize listener so the instance can be GC'd. window.removeEventListener("resize", this.onWindowResize); // Dispose of the renderer and its DOM element @@ -1025,9 +1021,7 @@ export class BaseThreeJsModule extends ModuleBase { const parent = this.renderer.domElement.parentNode; if (parent) parent.removeChild(this.renderer.domElement); } - // Eagerly release the underlying WebGL context rather than waiting for GC - // of the canvas/renderer, so repeated instance churn cannot transiently - // stack live GL contexts toward the per-process limit. + // Eagerly release the WebGL context before disposing. if (typeof this.renderer.forceContextLoss === "function") { this.renderer.forceContextLoss(); } diff --git a/src/shared/json/atomicWrite.ts b/src/shared/json/atomicWrite.ts index cb25f8a..e04aef7 100644 --- a/src/shared/json/atomicWrite.ts +++ b/src/shared/json/atomicWrite.ts @@ -17,16 +17,14 @@ function makeTempPath(filePath: string) { return `${filePath}.tmp.${process.pid}.${Date.now()}.${tmpCounter}.${uuid}`; } -// fsync the containing directory so a rename is durable across power loss. -// Best-effort: opening a directory for fsync is not supported on every platform -// (notably Windows), so a failure here must never fail the write itself. +// Best-effort fsync of the containing dir so the rename survives power loss. async function fsyncDirectory(dirPath: string) { let handle: AsyncFileHandle | null = null; try { handle = await fs.promises.open(dirPath, "r"); await handle.sync(); } catch { - // best-effort + /* best-effort */ } finally { if (handle) { try { @@ -42,7 +40,7 @@ function fsyncDirectorySync(dirPath: string) { fd = fs.openSync(dirPath, "r"); fs.fsyncSync(fd); } catch { - // best-effort + /* best-effort */ } finally { if (fd !== null) { try { @@ -52,25 +50,16 @@ function fsyncDirectorySync(dirPath: string) { } } -// Preserve the current good primary as .backup before it is replaced, so a -// later corrupt/truncated primary can be recovered (see readJsonWithBackup). -// Best-effort and must only run AFTER the new content is durably written: if the -// copy fails, the previous .backup is left intact and the write still proceeds. async function rollBackup(filePath: string, backupPath: string) { try { await fs.promises.copyFile(filePath, backupPath); - } catch { - // ENOENT = no primary yet (first write); nothing to back up. Any other error - // is non-fatal: the freshly fsynced temp file is the source of truth. - } + } catch {} } function rollBackupSync(filePath: string, backupPath: string) { try { fs.copyFileSync(filePath, backupPath); - } catch { - // best-effort (see rollBackup) - } + } catch {} } async function performAtomicWrite(filePath: string, data: string, epoch: number | null) { @@ -78,9 +67,6 @@ async function performAtomicWrite(filePath: string, data: string, epoch: number const backupPath = `${filePath}.backup`; try { - // 1. Write the new content to a temp file and fsync it to disk BEFORE - // touching the primary. This is what makes the write crash-durable: - // rename alone only makes the directory entry atomic, not the data. const handle = await fs.promises.open(tempPath, "w"); try { await handle.writeFile(data, "utf-8"); @@ -89,7 +75,6 @@ async function performAtomicWrite(filePath: string, data: string, epoch: number await handle.close(); } - // 2. Abort if a newer write to the same path superseded this one. if (epoch != null && writeEpoch.get(filePath) !== epoch) { try { await fs.promises.unlink(tempPath); @@ -97,17 +82,14 @@ async function performAtomicWrite(filePath: string, data: string, epoch: number return; } - // 3. Preserve the current good primary as a backup before replacing it. await rollBackup(filePath, backupPath); - // 4. Atomically replace the primary with the new content. try { await fs.promises.rename(tempPath, filePath); } catch (renameError) { const err = renameError as { code?: string }; if (err.code === "EEXIST" || err.code === "EPERM") { - // Windows cannot rename onto an existing file. The backup from step 3 - // is the safety net while the primary is briefly removed. + // Windows can't rename onto an existing file. try { await fs.promises.unlink(filePath); } catch {} @@ -117,7 +99,6 @@ async function performAtomicWrite(filePath: string, data: string, epoch: number } } - // 5. fsync the directory so the rename itself survives power loss. await fsyncDirectory(path.dirname(filePath)); } catch (error) { try { @@ -159,7 +140,6 @@ export function atomicWriteFileSync(filePath: string, data: string) { const backupPath = `${filePath}.backup`; try { - // 1. Write + fsync the temp file (see performAtomicWrite step 1). const fd = fs.openSync(tempPath, "w"); try { fs.writeFileSync(fd, data, "utf-8"); @@ -168,7 +148,6 @@ export function atomicWriteFileSync(filePath: string, data: string) { fs.closeSync(fd); } - // 2. Abort if superseded. if (epoch != null && writeEpoch.get(filePath) !== epoch) { try { fs.unlinkSync(tempPath); @@ -176,10 +155,8 @@ export function atomicWriteFileSync(filePath: string, data: string) { return; } - // 3. Roll a backup of the current good primary. rollBackupSync(filePath, backupPath); - // 4. Atomic replace (with Windows fallback). try { fs.renameSync(tempPath, filePath); } catch (renameError) { @@ -194,7 +171,6 @@ export function atomicWriteFileSync(filePath: string, data: string) { } } - // 5. fsync the directory. fsyncDirectorySync(path.dirname(filePath)); } catch (error) { try { diff --git a/test/atomicWrite.test.js b/test/atomicWrite.test.js index f750bf6..971aac8 100644 --- a/test/atomicWrite.test.js +++ b/test/atomicWrite.test.js @@ -29,7 +29,6 @@ test("atomicWriteFile: rolls a .backup of the previous contents on overwrite", a const dir = fs.mkdtempSync(path.join(os.tmpdir(), "nw_wrld_atomicbackup_")); const filePath = path.join(dir, "data.json"); - // First write to a fresh path: nothing to back up yet. await atomicWriteFile(filePath, JSON.stringify({ v: 1 })); assert.equal( fs.existsSync(filePath + ".backup"), @@ -37,7 +36,6 @@ test("atomicWriteFile: rolls a .backup of the previous contents on overwrite", a "no .backup should exist after the very first write (nothing to preserve)" ); - // Overwrite: the previous good contents must be preserved in .backup. await atomicWriteFile(filePath, JSON.stringify({ v: 2 })); assert.equal(fs.readFileSync(filePath, "utf-8"), JSON.stringify({ v: 2 })); assert.equal( @@ -63,7 +61,6 @@ test("atomicWriteFile: fsyncs the file and the directory for crash durability", const dir = fs.mkdtempSync(path.join(os.tmpdir(), "nw_wrld_atomicfsync_")); const filePath = path.join(dir, "data.json"); - // Spy on FileHandle.sync via fs.promises.open (same cached module instance as the SUT). const realOpen = fs.promises.open; let syncCount = 0; fs.promises.open = async (...args) => { diff --git a/test/projectorLifecycleRuntime.test.js b/test/projectorLifecycleRuntime.test.js index 4cc8c6d..6fe3541 100644 --- a/test/projectorLifecycleRuntime.test.js +++ b/test/projectorLifecycleRuntime.test.js @@ -466,19 +466,14 @@ test("createWindow denies new windows and blocks external navigation on both win for (const win of windowsToCheck) { const wc = win.webContents; - // New windows are denied, and a genuine external link is routed through the - // validated openExternal path instead of opening an in-app BrowserWindow. assert.equal( typeof wc.windowOpenHandler, "function", `${win.title}: setWindowOpenHandler should be installed` ); - // Compare by property, not deepStrictEqual: the response object is created - // inside the vm sandbox realm, so its prototype differs from this realm's. const decision = wc.windowOpenHandler({ url: "https://example.com/page" }); assert.equal(decision.action, "deny", `${win.title}: window.open must be denied`); - // External navigation of the privileged renderer is blocked... const navHandlers = wc.handlers.get("will-navigate") || []; assert.ok(navHandlers.length >= 1, `${win.title}: will-navigate should be registered`); let blockedExternal = false; @@ -487,7 +482,6 @@ test("createWindow denies new windows and blocks external navigation on both win ); assert.equal(blockedExternal, true, `${win.title}: external navigation must be prevented`); - // ...while in-app file:// navigation is still allowed. let blockedInternal = false; navHandlers.forEach((handler) => handler({ preventDefault: () => (blockedInternal = true) }, "file:///app/dashboard.html") From cfb9e009ac977da376c182e35ce4ac90d6564ed2 Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 6 Jun 2026 16:24:36 +0100 Subject: [PATCH 14/27] fix(projector): show empty state for a set with no active track Creating or switching to a set with no selected track sends reload-data with trackName: null. The projector fell back to the previously active track's name (props.trackName || this.activeTrack?.name), then tried to select that track in the new set, surfacing "Track not found" on the projector. Now a null/empty trackName clears lastRequestedTrackName, deactivates, and shows "No tracks in this set" / "No track selected". Decision extracted to a pure, unit-tested helper (resolveReloadTarget, 5 tests). Co-Authored-By: Claude Opus 4.8 (1M context) --- src/projector/internal/ipcFromDashboard.ts | 26 ++++++++---- src/projector/internal/track/reloadTarget.ts | 22 ++++++++++ test/reloadTarget.test.js | 42 ++++++++++++++++++++ tsconfig.runtime.json | 3 +- 4 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 src/projector/internal/track/reloadTarget.ts create mode 100644 test/reloadTarget.test.js diff --git a/src/projector/internal/ipcFromDashboard.ts b/src/projector/internal/ipcFromDashboard.ts index d90a204..a819ab7 100644 --- a/src/projector/internal/ipcFromDashboard.ts +++ b/src/projector/internal/ipcFromDashboard.ts @@ -1,6 +1,7 @@ import { find, isEqual } from "lodash"; import { getMessaging } from "./bridge"; import { normalizeDashboardProjectorMessage } from "../../shared/validation/dashboardProjectorIpcValidation"; +import { resolveReloadTarget } from "./track/reloadTarget"; type DashboardIpcContext = { introspectModule: (moduleId: unknown) => Promise; @@ -19,12 +20,14 @@ type DashboardIpcContext = { pendingReloadData: unknown; activeTrack: { name?: unknown } | null; userData: unknown; + lastRequestedTrackName: string | null; loadUserData: (setId: unknown) => unknown; applyConfigSettings: () => unknown; deactivateActiveTrack: () => unknown; handleTrackSelection: (trackName: unknown) => unknown; handleChannelMessage: (channelPath: string) => unknown; + setRenderStatus: (status: unknown, message?: unknown) => unknown; debugOverlayActive: boolean; debugLogTimeout: ReturnType | null; @@ -118,20 +121,29 @@ export function initDashboardIpc(this: DashboardIpcContext) { if (this.isLoadingTrack) { this.pendingReloadData = { setId: (props as { setId?: unknown }).setId, - trackName: - (props as { trackName?: unknown }).trackName || - (this.activeTrack as { name?: unknown } | null)?.name, + trackName: (props as { trackName?: unknown }).trackName ?? null, }; return; } - const currentTrackName = - (props as { trackName?: unknown }).trackName || - (this.activeTrack as { name?: unknown } | null)?.name; this.loadUserData((props as { setId?: unknown }).setId); this.applyConfigSettings(); - if (currentTrackName) { + const tracks = Array.isArray(this.userData) ? (this.userData as unknown[]) : []; + const target = resolveReloadTarget( + (props as { trackName?: unknown }).trackName, + tracks.length + ); + + if (target.action === "empty") { + this.lastRequestedTrackName = null; + this.deactivateActiveTrack(); + this.setRenderStatus("empty", target.message); + return; + } + + { + const currentTrackName = target.trackName; const nextTrack = find(this.userData as never, { name: currentTrackName } as never); if ( this.activeTrack && diff --git a/src/projector/internal/track/reloadTarget.ts b/src/projector/internal/track/reloadTarget.ts new file mode 100644 index 0000000..3a43c32 --- /dev/null +++ b/src/projector/internal/track/reloadTarget.ts @@ -0,0 +1,22 @@ +export type ReloadTarget = + | { action: "select"; trackName: string } + | { action: "empty"; message: string }; + +// A null/empty trackName means the active set has no selected track: show an empty +// state rather than falling back to the previously active track (which belongs to a +// different set and would surface as "Track X not found"). +export function resolveReloadTarget( + propsTrackName: unknown, + trackCount: unknown +): ReloadTarget { + const name = propsTrackName != null ? String(propsTrackName).trim() : ""; + if (name) { + return { action: "select", trackName: name }; + } + const count = + typeof trackCount === "number" && Number.isFinite(trackCount) ? trackCount : 0; + return { + action: "empty", + message: count > 0 ? "No track selected" : "No tracks in this set", + }; +} diff --git a/test/reloadTarget.test.js b/test/reloadTarget.test.js new file mode 100644 index 0000000..31c2c03 --- /dev/null +++ b/test/reloadTarget.test.js @@ -0,0 +1,42 @@ +const test = require("node:test"); +const assert = require("node:assert/strict"); +const path = require("node:path"); + +const { resolveReloadTarget } = require( + path.join(__dirname, "..", "dist", "runtime", "projector", "internal", "track", "reloadTarget.js") +); + +test("resolveReloadTarget: a named track resolves to a select action", () => { + assert.deepEqual(resolveReloadTarget("Track 1", 3), { + action: "select", + trackName: "Track 1", + }); +}); + +test("resolveReloadTarget: trims surrounding whitespace from the track name", () => { + assert.deepEqual(resolveReloadTarget(" Track 1 ", 3), { + action: "select", + trackName: "Track 1", + }); +}); + +test("resolveReloadTarget: null track name with no tracks shows the empty-set message", () => { + // Bug 1: a freshly created empty set must NOT resurrect a previous set's track. + assert.deepEqual(resolveReloadTarget(null, 0), { + action: "empty", + message: "No tracks in this set", + }); +}); + +test("resolveReloadTarget: null track name with tracks present shows no-selection message", () => { + assert.deepEqual(resolveReloadTarget(null, 2), { + action: "empty", + message: "No track selected", + }); +}); + +test("resolveReloadTarget: empty or whitespace track name never resolves to select", () => { + assert.equal(resolveReloadTarget("", 0).action, "empty"); + assert.equal(resolveReloadTarget(" ", 5).action, "empty"); + assert.equal(resolveReloadTarget(undefined, 0).action, "empty"); +}); diff --git a/tsconfig.runtime.json b/tsconfig.runtime.json index 8190453..18b415b 100644 --- a/tsconfig.runtime.json +++ b/tsconfig.runtime.json @@ -77,6 +77,7 @@ "src/projector/internal/workspaceEvents.ts", "src/projector/internal/workspaceModules.ts", "src/projector/internal/sandbox/TrackSandboxHost.ts", - "src/projector/internal/introspection.ts" + "src/projector/internal/introspection.ts", + "src/projector/internal/track/reloadTarget.ts" ] } From 77b4cd63124db40f18718a3009d396cd5e238f4f Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 6 Jun 2026 17:22:49 +0100 Subject: [PATCH 15/27] fix(modules): guard AsteroidGraph against destroy during async init AsteroidGraph's loadMeteors (executeOnLoad) awaits an asset load, but unlike the working PerlinBlob it had no 'destroyed' guard. During the projector's deactivate/re-init churn the async load resolves on an already-destroyed instance, orphaning a p5 canvas (flaky removal) and leaving the live instance's meteors unpopulated (blank on add); preview/refresh create a clean single instance so they render. Mirror PerlinBlob's lifecycle: set destroyed=false in the constructor, bail after the await and in p5 setup/draw, and set destroyed=true first in destroy(). Unit test (RED->GREEN) covers the post-destroy guard. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/main/starter_modules/AsteroidGraph.js | 5 ++ test/asteroidGraphStarterModule.test.js | 97 +++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 test/asteroidGraphStarterModule.test.js diff --git a/src/main/starter_modules/AsteroidGraph.js b/src/main/starter_modules/AsteroidGraph.js index 2fad6d0..3424ad7 100644 --- a/src/main/starter_modules/AsteroidGraph.js +++ b/src/main/starter_modules/AsteroidGraph.js @@ -47,6 +47,7 @@ class AsteroidGraph extends ModuleBase { this.meteors = []; this.dataset = null; this.myp5 = null; + this.destroyed = false; this.init(); } @@ -58,6 +59,7 @@ class AsteroidGraph extends ModuleBase { let noiseOffsetY = 0.0; p.setup = () => { + if (this.destroyed || !this.elem) return; let canvasWidth = this.elem.clientWidth; let canvasHeight = this.elem.clientHeight; @@ -69,6 +71,7 @@ class AsteroidGraph extends ModuleBase { }; p.draw = () => { + if (this.destroyed || !this.elem) return; p.clear(); const centerY = p.height / 2; let maxDistortion = (p.height / 2) * 0.9; @@ -132,6 +135,7 @@ class AsteroidGraph extends ModuleBase { if (!this.dataset) { this.dataset = await getSdkMeteorDataset(); } + if (this.destroyed) return; if (this.dataset && this.dataset.length > 0 && this.myp5) { for (let i = 0; i < safeCount; i++) { @@ -160,6 +164,7 @@ class AsteroidGraph extends ModuleBase { } destroy() { + this.destroyed = true; if (this.myp5) { this.myp5.remove(); this.myp5 = null; diff --git a/test/asteroidGraphStarterModule.test.js b/test/asteroidGraphStarterModule.test.js new file mode 100644 index 0000000..528a1c4 --- /dev/null +++ b/test/asteroidGraphStarterModule.test.js @@ -0,0 +1,97 @@ +const test = require("node:test"); +const assert = require("node:assert/strict"); +const fs = require("node:fs"); +const path = require("node:path"); +const vm = require("node:vm"); + +const modPath = path.join(__dirname, "..", "src", "main", "starter_modules", "AsteroidGraph.js"); + +const loadAsteroidGraph = ({ loadJson }) => { + const source = fs + .readFileSync(modPath, "utf8") + .replace(/export default AsteroidGraph;\s*$/, "module.exports = AsteroidGraph;\n"); + + class P5Mock { + constructor(sketch) { + sketch(this); + } + remove() { + this.removed = true; + } + createCanvas() { + return { parent() {} }; + } + textSize() {} + textAlign() {} + random() { + return 0; + } + noise() { + return 0.5; + } + clear() {} + stroke() {} + noFill() {} + fill() {} + beginShape() {} + endShape() {} + vertex() {} + text() {} + get CENTER() { + return "center"; + } + get width() { + return 200; + } + get height() { + return 100; + } + } + + const sandbox = { + module: { exports: {} }, + exports: {}, + console, + p5: P5Mock, + loadJson, + ModuleBase: class ModuleBase { + constructor(container) { + this.elem = container; + this.name = this.constructor.name; + } + destroy() { + this.elem = null; + } + }, + }; + + vm.runInNewContext(source, sandbox, { filename: modPath }); + return sandbox.module.exports; +}; + +const createContainer = () => ({ + clientWidth: 200, + clientHeight: 100, + appendChild() {}, + removeChild() {}, +}); + +test("AsteroidGraph: loadMeteors must not populate after the instance is destroyed", async () => { + let resolveLoad; + const loadJson = () => new Promise((res) => (resolveLoad = res)); + const AsteroidGraph = loadAsteroidGraph({ loadJson }); + + const inst = new AsteroidGraph(createContainer()); + const pending = inst.loadMeteors({ count: 3 }); + // Destroyed mid-flight (the projector's deactivate/re-init churn) before the + // async dataset load resolves. + inst.destroy(); + resolveLoad(null); + await pending; + + assert.equal( + inst.meteors.length, + 0, + "a destroyed instance must not keep populating its meteors after the async load resolves" + ); +}); From 8cc75a1db66bb1d1188fa305f6b4f510f3bf9eef Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 6 Jun 2026 20:13:36 +0100 Subject: [PATCH 16/27] fix(sandbox): run a module's executeOnLoad methods even when dropped from the saved constructor Confirmed from the real save folder: set2/aaa AsteroidGraph was saved with constructor [matrix, show] - loadMeteors (its executeOnLoad data loader) was missing, so the sandbox (which only ran the saved constructor methods) never populated this.meteors and drew nothing. handleAddToTrack drops executeOnLoad methods when a module is added before its introspection has populated module.methods; only AsteroidGraph showed it because its dropped method loads render DATA (other modules' dropped executeOnLoad methods are cosmetic, so they still draw). Fix: at initTrack and setMatrixForInstance, merge the module class's declared executeOnLoad methods (with default options) into the run list when absent from the saved constructor, running loaders first. Pure helper resolveConstructorRunList with 5 tests; verified against the real save ([matrix, show] -> runs [loadMeteors, show]). Fixes existing saves with no recreation. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../internal/track/constructorRunList.ts | 37 ++++++++++++ src/projector/moduleSandboxEntry.ts | 18 ++++-- test/constructorRunList.test.js | 59 +++++++++++++++++++ tsconfig.runtime.json | 3 +- 4 files changed, 111 insertions(+), 6 deletions(-) create mode 100644 src/projector/internal/track/constructorRunList.ts create mode 100644 test/constructorRunList.test.js diff --git a/src/projector/internal/track/constructorRunList.ts b/src/projector/internal/track/constructorRunList.ts new file mode 100644 index 0000000..fc0bfa3 --- /dev/null +++ b/src/projector/internal/track/constructorRunList.ts @@ -0,0 +1,37 @@ +export type RunMethod = { name: string; options: unknown }; + +// The saved module constructor can be missing the module's executeOnLoad methods +// (e.g. a module added before its introspection populated its method list), which +// leaves data-loading modules blank. Re-add any class-declared executeOnLoad method +// that is absent from the saved constructor (with default options), running loaders +// before the saved methods. Matrix is handled separately and never appears here. +export function resolveConstructorRunList( + savedConstructor: unknown, + classMethods: unknown +): RunMethod[] { + const saved = Array.isArray(savedConstructor) ? savedConstructor : []; + const nonMatrix: RunMethod[] = []; + for (const mm of saved) { + const m = mm as { name?: unknown; options?: unknown }; + const name = typeof m.name === "string" ? m.name : ""; + if (!name || name === "matrix") continue; + nonMatrix.push({ name, options: m.options }); + } + const present = new Set(nonMatrix.map((mm) => mm.name)); + + const cls = Array.isArray(classMethods) ? classMethods : []; + const missing: RunMethod[] = []; + for (const cm of cls) { + const c = cm as { name?: unknown; executeOnLoad?: unknown; options?: unknown }; + const name = typeof c.name === "string" ? c.name : ""; + if (!name || name === "matrix" || c.executeOnLoad !== true || present.has(name)) continue; + const options = Array.isArray(c.options) + ? c.options.map((o) => { + const opt = o as { name?: unknown; defaultVal?: unknown }; + return { name: opt?.name, value: opt?.defaultVal }; + }) + : []; + missing.push({ name, options }); + } + return [...missing, ...nonMatrix]; +} diff --git a/src/projector/moduleSandboxEntry.ts b/src/projector/moduleSandboxEntry.ts index 8f5bce4..cd55480 100644 --- a/src/projector/moduleSandboxEntry.ts +++ b/src/projector/moduleSandboxEntry.ts @@ -12,6 +12,7 @@ import { STLLoader } from "three/examples/jsm/loaders/STLLoader.js"; import { parseNwWrldDocblockMetadata } from "../shared/nwWrldDocblock"; import { buildMethodOptions, parseMatrixOptions } from "../shared/utils/methodOptions"; import { createSdkHelpers } from "../shared/utils/sdkHelpers"; +import { resolveConstructorRunList } from "./internal/track/constructorRunList"; import { buildWorkspaceImportPreamble, ensureTrailingSlash, @@ -389,8 +390,12 @@ globalThis.nwSandboxIpc?.on?.(async (data) => { instancesById.set(instanceId, { moduleType, instances }); - const nonMatrix = constructorMethods.filter((mm) => mm?.name && mm.name !== "matrix"); - for (const mm of nonMatrix) { + const allClassMethods = mergeMethodsByName( + getBaseMethodsForClass(ModuleClass), + Array.isArray(ModuleClass?.methods) ? ModuleClass.methods : [] + ); + const runList = resolveConstructorRunList(constructorMethods, allClassMethods); + for (const mm of runList) { const methodName = String(mm.name || "").trim(); if (!methodName) continue; const opts = buildMethodOptions(mm.options); @@ -464,8 +469,6 @@ globalThis.nwSandboxIpc?.on?.(async (data) => { const ctor = Array.isArray(modulesData?.[instanceId]?.constructor) ? modulesData[instanceId].constructor : []; - const nonMatrix = ctor.filter((mm) => mm?.name && mm.name !== "matrix"); - const ModuleClass = await getModuleClass(moduleType, moduleSources); const instances = []; for (let row = 1; row <= matrix.rows; row++) { @@ -496,7 +499,12 @@ globalThis.nwSandboxIpc?.on?.(async (data) => { instancesById.set(instanceId, { moduleType, instances }); - for (const mm of nonMatrix) { + const allClassMethods = mergeMethodsByName( + getBaseMethodsForClass(ModuleClass), + Array.isArray(ModuleClass?.methods) ? ModuleClass.methods : [] + ); + const runList = resolveConstructorRunList(ctor, allClassMethods); + for (const mm of runList) { const methodName = String(mm.name || "").trim(); if (!methodName) continue; const opts = buildMethodOptions(mm.options); diff --git a/test/constructorRunList.test.js b/test/constructorRunList.test.js new file mode 100644 index 0000000..bd57776 --- /dev/null +++ b/test/constructorRunList.test.js @@ -0,0 +1,59 @@ +const test = require("node:test"); +const assert = require("node:assert/strict"); +const path = require("node:path"); + +const { resolveConstructorRunList } = require( + path.join(__dirname, "..", "dist", "runtime", "projector", "internal", "track", "constructorRunList.js") +); + +const names = (list) => list.map((m) => m.name); + +test("resolveConstructorRunList: prepends a class executeOnLoad method missing from the saved constructor", () => { + // Bug: AsteroidGraph saved as [matrix, show]; loadMeteors (its executeOnLoad data + // loader) was dropped, so it never ran and the module drew nothing. + const saved = [ + { name: "matrix", options: [{ name: "matrix", value: { rows: 1, cols: 1 } }] }, + { name: "show", options: [{ name: "duration", value: 0 }] }, + ]; + const classMethods = [ + { name: "loadMeteors", executeOnLoad: true, options: [{ name: "count", defaultVal: 5 }] }, + ]; + const runList = resolveConstructorRunList(saved, classMethods); + assert.deepEqual(names(runList), ["loadMeteors", "show"]); + const loader = runList.find((m) => m.name === "loadMeteors"); + assert.deepEqual(loader.options, [{ name: "count", value: 5 }]); +}); + +test("resolveConstructorRunList: never includes matrix (handled separately)", () => { + const saved = [{ name: "matrix", options: [] }]; + const classMethods = [{ name: "matrix", executeOnLoad: true, options: [] }]; + assert.deepEqual(names(resolveConstructorRunList(saved, classMethods)), []); +}); + +test("resolveConstructorRunList: does not duplicate an executeOnLoad method already saved (keeps saved options)", () => { + const saved = [ + { name: "matrix", options: [] }, + { name: "loadData", options: [{ name: "dataPath", value: "json/custom.json" }] }, + ]; + const classMethods = [ + { name: "loadData", executeOnLoad: true, options: [{ name: "dataPath", defaultVal: "json/radiation.json" }] }, + ]; + const runList = resolveConstructorRunList(saved, classMethods); + assert.deepEqual(names(runList), ["loadData"]); + // saved options preserved, not overwritten with defaults + assert.deepEqual(runList[0].options, [{ name: "dataPath", value: "json/custom.json" }]); +}); + +test("resolveConstructorRunList: ignores non-executeOnLoad class methods", () => { + const saved = [{ name: "matrix", options: [] }]; + const classMethods = [{ name: "color", executeOnLoad: false, options: [] }]; + assert.deepEqual(names(resolveConstructorRunList(saved, classMethods)), []); +}); + +test("resolveConstructorRunList: preserves saved non-matrix methods when nothing is missing", () => { + const saved = [ + { name: "matrix", options: [] }, + { name: "size", options: [{ name: "size", value: 20 }] }, + ]; + assert.deepEqual(names(resolveConstructorRunList(saved, [])), ["size"]); +}); diff --git a/tsconfig.runtime.json b/tsconfig.runtime.json index 18b415b..b8ad799 100644 --- a/tsconfig.runtime.json +++ b/tsconfig.runtime.json @@ -78,6 +78,7 @@ "src/projector/internal/workspaceModules.ts", "src/projector/internal/sandbox/TrackSandboxHost.ts", "src/projector/internal/introspection.ts", - "src/projector/internal/track/reloadTarget.ts" + "src/projector/internal/track/reloadTarget.ts", + "src/projector/internal/track/constructorRunList.ts" ] } From 4f0136737a9bc263c82fe3b2a3e6069370d8aebb Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 6 Jun 2026 20:54:43 +0100 Subject: [PATCH 17/27] Revert "fix(modules): guard AsteroidGraph against destroy during async init" This reverts commit 77b4cd63124db40f18718a3009d396cd5e238f4f. --- src/main/starter_modules/AsteroidGraph.js | 5 -- test/asteroidGraphStarterModule.test.js | 97 ----------------------- 2 files changed, 102 deletions(-) delete mode 100644 test/asteroidGraphStarterModule.test.js diff --git a/src/main/starter_modules/AsteroidGraph.js b/src/main/starter_modules/AsteroidGraph.js index 3424ad7..2fad6d0 100644 --- a/src/main/starter_modules/AsteroidGraph.js +++ b/src/main/starter_modules/AsteroidGraph.js @@ -47,7 +47,6 @@ class AsteroidGraph extends ModuleBase { this.meteors = []; this.dataset = null; this.myp5 = null; - this.destroyed = false; this.init(); } @@ -59,7 +58,6 @@ class AsteroidGraph extends ModuleBase { let noiseOffsetY = 0.0; p.setup = () => { - if (this.destroyed || !this.elem) return; let canvasWidth = this.elem.clientWidth; let canvasHeight = this.elem.clientHeight; @@ -71,7 +69,6 @@ class AsteroidGraph extends ModuleBase { }; p.draw = () => { - if (this.destroyed || !this.elem) return; p.clear(); const centerY = p.height / 2; let maxDistortion = (p.height / 2) * 0.9; @@ -135,7 +132,6 @@ class AsteroidGraph extends ModuleBase { if (!this.dataset) { this.dataset = await getSdkMeteorDataset(); } - if (this.destroyed) return; if (this.dataset && this.dataset.length > 0 && this.myp5) { for (let i = 0; i < safeCount; i++) { @@ -164,7 +160,6 @@ class AsteroidGraph extends ModuleBase { } destroy() { - this.destroyed = true; if (this.myp5) { this.myp5.remove(); this.myp5 = null; diff --git a/test/asteroidGraphStarterModule.test.js b/test/asteroidGraphStarterModule.test.js deleted file mode 100644 index 528a1c4..0000000 --- a/test/asteroidGraphStarterModule.test.js +++ /dev/null @@ -1,97 +0,0 @@ -const test = require("node:test"); -const assert = require("node:assert/strict"); -const fs = require("node:fs"); -const path = require("node:path"); -const vm = require("node:vm"); - -const modPath = path.join(__dirname, "..", "src", "main", "starter_modules", "AsteroidGraph.js"); - -const loadAsteroidGraph = ({ loadJson }) => { - const source = fs - .readFileSync(modPath, "utf8") - .replace(/export default AsteroidGraph;\s*$/, "module.exports = AsteroidGraph;\n"); - - class P5Mock { - constructor(sketch) { - sketch(this); - } - remove() { - this.removed = true; - } - createCanvas() { - return { parent() {} }; - } - textSize() {} - textAlign() {} - random() { - return 0; - } - noise() { - return 0.5; - } - clear() {} - stroke() {} - noFill() {} - fill() {} - beginShape() {} - endShape() {} - vertex() {} - text() {} - get CENTER() { - return "center"; - } - get width() { - return 200; - } - get height() { - return 100; - } - } - - const sandbox = { - module: { exports: {} }, - exports: {}, - console, - p5: P5Mock, - loadJson, - ModuleBase: class ModuleBase { - constructor(container) { - this.elem = container; - this.name = this.constructor.name; - } - destroy() { - this.elem = null; - } - }, - }; - - vm.runInNewContext(source, sandbox, { filename: modPath }); - return sandbox.module.exports; -}; - -const createContainer = () => ({ - clientWidth: 200, - clientHeight: 100, - appendChild() {}, - removeChild() {}, -}); - -test("AsteroidGraph: loadMeteors must not populate after the instance is destroyed", async () => { - let resolveLoad; - const loadJson = () => new Promise((res) => (resolveLoad = res)); - const AsteroidGraph = loadAsteroidGraph({ loadJson }); - - const inst = new AsteroidGraph(createContainer()); - const pending = inst.loadMeteors({ count: 3 }); - // Destroyed mid-flight (the projector's deactivate/re-init churn) before the - // async dataset load resolves. - inst.destroy(); - resolveLoad(null); - await pending; - - assert.equal( - inst.meteors.length, - 0, - "a destroyed instance must not keep populating its meteors after the async load resolves" - ); -}); From 2f08bf026e518d5f1fac7ad32c22b0cebb7d4cb6 Mon Sep 17 00:00:00 2001 From: Dan Date: Sun, 7 Jun 2026 14:23:09 +0100 Subject: [PATCH 18/27] chore(cleanup): remove dead code and unused assets Remove modules, exports, types and assets confirmed unused by repo-wide grep (no runtime, test or build references): - delete orphaned files ThreeTemplate.ts, SequencerGrid.tsx (and its dead helpText key) and ProgressBar.tsx - drop the unused helpTextAtom (recordingStateAtom is still used, kept) - drop dead midiUtils exports (MIDI_INPUT_NAME, NOTE_TO_CHANNEL, noteNameToNumber, buildChannelNotesMap, buildTrackNotesMapFromTracks) and the now-orphaned CHANNEL_NOTES table - drop the unwired per-track signal-settings type island in userData.ts - delete unused assets (low-earth-orbits-objects.json, three-font.json) and the unreferenced Roboto Mono static font weights No behaviour change. typecheck, test:unit, lint and build all pass. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/assets/json/low-earth-orbits-objects.json | 1058 -------------- src/assets/json/three-font.json | 1264 ----------------- .../Roboto_Mono/static/RobotoMono-Bold.ttf | Bin 87696 -> 0 bytes .../static/RobotoMono-BoldItalic.ttf | Bin 95100 -> 0 bytes .../static/RobotoMono-ExtraLight.ttf | Bin 88500 -> 0 bytes .../static/RobotoMono-ExtraLightItalic.ttf | Bin 94404 -> 0 bytes .../Roboto_Mono/static/RobotoMono-Italic.ttf | Bin 94836 -> 0 bytes .../Roboto_Mono/static/RobotoMono-Light.ttf | Bin 88284 -> 0 bytes .../static/RobotoMono-LightItalic.ttf | Bin 94720 -> 0 bytes .../Roboto_Mono/static/RobotoMono-Medium.ttf | Bin 87476 -> 0 bytes .../static/RobotoMono-MediumItalic.ttf | Bin 94876 -> 0 bytes .../Roboto_Mono/static/RobotoMono-Regular.ttf | Bin 87540 -> 0 bytes .../static/RobotoMono-SemiBold.ttf | Bin 87756 -> 0 bytes .../static/RobotoMono-SemiBoldItalic.ttf | Bin 94904 -> 0 bytes .../Roboto_Mono/static/RobotoMono-Thin.ttf | Bin 88592 -> 0 bytes .../static/RobotoMono-ThinItalic.ttf | Bin 94052 -> 0 bytes src/dashboard/components/SequencerGrid.tsx | 134 -- src/dashboard/core/state.ts | 1 - src/dashboard/shared/ProgressBar.tsx | 34 - src/projector/templates/ThreeTemplate.ts | 120 -- src/shared/helpText.ts | 2 - src/shared/midi/midiUtils.ts | 75 - src/types/userData.ts | 27 - 23 files changed, 2715 deletions(-) delete mode 100644 src/assets/json/low-earth-orbits-objects.json delete mode 100644 src/assets/json/three-font.json delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Bold.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-BoldItalic.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-ExtraLight.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-ExtraLightItalic.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Italic.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Light.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-LightItalic.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Medium.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-MediumItalic.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Regular.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-SemiBold.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-SemiBoldItalic.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Thin.ttf delete mode 100644 src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-ThinItalic.ttf delete mode 100644 src/dashboard/components/SequencerGrid.tsx delete mode 100644 src/dashboard/shared/ProgressBar.tsx delete mode 100644 src/projector/templates/ThreeTemplate.ts diff --git a/src/assets/json/low-earth-orbits-objects.json b/src/assets/json/low-earth-orbits-objects.json deleted file mode 100644 index a814c94..0000000 --- a/src/assets/json/low-earth-orbits-objects.json +++ /dev/null @@ -1,1058 +0,0 @@ -[ - { - "Entity": "Debris", - "Code": "", - "Year": 1958, - "Objects in space": 1 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1959, - "Objects in space": 4 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1960, - "Objects in space": 15 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1961, - "Objects in space": 292 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1962, - "Objects in space": 308 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1963, - "Objects in space": 424 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1964, - "Objects in space": 501 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1965, - "Objects in space": 1169 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1966, - "Objects in space": 1343 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1967, - "Objects in space": 1403 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1968, - "Objects in space": 1680 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1969, - "Objects in space": 1923 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1970, - "Objects in space": 2481 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1971, - "Objects in space": 2638 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1972, - "Objects in space": 2892 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1973, - "Objects in space": 3119 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1974, - "Objects in space": 3352 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1975, - "Objects in space": 3913 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1976, - "Objects in space": 4335 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1977, - "Objects in space": 4547 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1978, - "Objects in space": 4683 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1979, - "Objects in space": 4803 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1980, - "Objects in space": 4778 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1981, - "Objects in space": 5158 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1982, - "Objects in space": 7013 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1983, - "Objects in space": 7241 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1984, - "Objects in space": 7276 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1985, - "Objects in space": 7431 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1986, - "Objects in space": 8027 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1987, - "Objects in space": 8421 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1988, - "Objects in space": 8292 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1989, - "Objects in space": 8176 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1990, - "Objects in space": 8189 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1991, - "Objects in space": 8437 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1992, - "Objects in space": 8743 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1993, - "Objects in space": 10605 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1994, - "Objects in space": 11550 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1995, - "Objects in space": 11795 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1996, - "Objects in space": 11694 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1997, - "Objects in space": 12114 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1998, - "Objects in space": 12032 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 1999, - "Objects in space": 15772 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2000, - "Objects in space": 16021 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2001, - "Objects in space": 16157 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2002, - "Objects in space": 15983 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2003, - "Objects in space": 15827 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2004, - "Objects in space": 15781 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2005, - "Objects in space": 15709 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2006, - "Objects in space": 16503 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2007, - "Objects in space": 16502 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2008, - "Objects in space": 16058 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2009, - "Objects in space": 16002 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2010, - "Objects in space": 15907 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2011, - "Objects in space": 15943 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2012, - "Objects in space": 15808 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2013, - "Objects in space": 15539 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2014, - "Objects in space": 15154 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2015, - "Objects in space": 14868 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2016, - "Objects in space": 14776 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2017, - "Objects in space": 14724 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2018, - "Objects in space": 14825 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2019, - "Objects in space": 14868 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2020, - "Objects in space": 14742 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2021, - "Objects in space": 14554 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2022, - "Objects in space": 13538 - }, - { - "Entity": "Debris", - "Code": "", - "Year": 2023, - "Objects in space": 12884 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1963, - "Objects in space": 1 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1964, - "Objects in space": 2 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1965, - "Objects in space": 3 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1966, - "Objects in space": 4 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1967, - "Objects in space": 8 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1968, - "Objects in space": 10 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1969, - "Objects in space": 14 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1970, - "Objects in space": 17 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1971, - "Objects in space": 22 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1972, - "Objects in space": 25 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1973, - "Objects in space": 29 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1974, - "Objects in space": 36 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1975, - "Objects in space": 49 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1976, - "Objects in space": 62 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1977, - "Objects in space": 71 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1978, - "Objects in space": 77 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1979, - "Objects in space": 86 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1980, - "Objects in space": 94 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1981, - "Objects in space": 106 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1982, - "Objects in space": 120 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1983, - "Objects in space": 135 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1984, - "Objects in space": 151 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1985, - "Objects in space": 172 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1986, - "Objects in space": 180 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1987, - "Objects in space": 191 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1988, - "Objects in space": 207 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1989, - "Objects in space": 217 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1990, - "Objects in space": 236 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1991, - "Objects in space": 249 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1992, - "Objects in space": 263 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1993, - "Objects in space": 277 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1994, - "Objects in space": 297 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1995, - "Objects in space": 313 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1996, - "Objects in space": 328 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1997, - "Objects in space": 342 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1998, - "Objects in space": 348 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 1999, - "Objects in space": 358 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2000, - "Objects in space": 383 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2001, - "Objects in space": 397 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2002, - "Objects in space": 409 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2003, - "Objects in space": 429 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2004, - "Objects in space": 442 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2005, - "Objects in space": 458 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2006, - "Objects in space": 478 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2007, - "Objects in space": 494 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2008, - "Objects in space": 524 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2009, - "Objects in space": 552 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2010, - "Objects in space": 581 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2011, - "Objects in space": 609 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2012, - "Objects in space": 646 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2013, - "Objects in space": 670 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2014, - "Objects in space": 699 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2015, - "Objects in space": 735 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2016, - "Objects in space": 771 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2017, - "Objects in space": 807 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2018, - "Objects in space": 837 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2019, - "Objects in space": 866 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2020, - "Objects in space": 886 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2021, - "Objects in space": 911 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2022, - "Objects in space": 939 - }, - { - "Entity": "Geostationary orbit", - "Code": "", - "Year": 2023, - "Objects in space": 954 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1963, - "Objects in space": 2 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1964, - "Objects in space": 4 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1965, - "Objects in space": 6 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1966, - "Objects in space": 7 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1967, - "Objects in space": 9 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1968, - "Objects in space": 10 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1969, - "Objects in space": 13 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1970, - "Objects in space": 14 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1971, - "Objects in space": 16 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1972, - "Objects in space": 18 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1973, - "Objects in space": 23 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1974, - "Objects in space": 24 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1975, - "Objects in space": 25 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1976, - "Objects in space": 33 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1977, - "Objects in space": 42 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1978, - "Objects in space": 52 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1979, - "Objects in space": 58 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1980, - "Objects in space": 63 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1981, - "Objects in space": 70 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1982, - "Objects in space": 80 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1983, - "Objects in space": 92 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1984, - "Objects in space": 107 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1985, - "Objects in space": 116 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1986, - "Objects in space": 125 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1987, - "Objects in space": 133 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1988, - "Objects in space": 148 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1989, - "Objects in space": 165 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1990, - "Objects in space": 181 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1991, - "Objects in space": 199 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1992, - "Objects in space": 214 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1993, - "Objects in space": 224 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1994, - "Objects in space": 241 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1995, - "Objects in space": 258 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1996, - "Objects in space": 275 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1997, - "Objects in space": 294 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1998, - "Objects in space": 316 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 1999, - "Objects in space": 328 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2000, - "Objects in space": 349 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2001, - "Objects in space": 359 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2002, - "Objects in space": 374 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2003, - "Objects in space": 382 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2004, - "Objects in space": 392 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2005, - "Objects in space": 400 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2006, - "Objects in space": 406 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2007, - "Objects in space": 414 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2008, - "Objects in space": 417 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2009, - "Objects in space": 420 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2010, - "Objects in space": 422 - }, - { - "Entity": "High Earth orbit", - "Code": "", - "Year": 2011, - "Objects in space": 424 - } -] diff --git a/src/assets/json/three-font.json b/src/assets/json/three-font.json deleted file mode 100644 index 6ab21ba..0000000 --- a/src/assets/json/three-font.json +++ /dev/null @@ -1,1264 +0,0 @@ -{ - "glyphs": { - "ο": { - "x_min": 0, - "x_max": 712, - "ha": 815, - "o": "m 356 -25 q 96 88 192 -25 q 0 368 0 201 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 " - }, - "S": { - "x_min": 0, - "x_max": 788, - "ha": 890, - "o": "m 788 291 q 662 54 788 144 q 397 -26 550 -26 q 116 68 226 -26 q 0 337 0 168 l 131 337 q 200 152 131 220 q 384 85 269 85 q 557 129 479 85 q 650 270 650 183 q 490 429 650 379 q 194 513 341 470 q 33 739 33 584 q 142 964 33 881 q 388 1041 242 1041 q 644 957 543 1041 q 756 716 756 867 l 625 716 q 561 874 625 816 q 395 933 497 933 q 243 891 309 933 q 164 759 164 841 q 325 609 164 656 q 625 526 475 568 q 788 291 788 454 " - }, - "¦": { - "x_min": 343, - "x_max": 449, - "ha": 792, - "o": "m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 " - }, - "/": { - "x_min": 183.25, - "x_max": 608.328125, - "ha": 792, - "o": "m 608 1041 l 266 -129 l 183 -129 l 520 1041 l 608 1041 " - }, - "Τ": { - "x_min": -0.4375, - "x_max": 777.453125, - "ha": 839, - "o": "m 777 893 l 458 893 l 458 0 l 319 0 l 319 892 l 0 892 l 0 1013 l 777 1013 l 777 893 " - }, - "y": { - "x_min": 0, - "x_max": 684.78125, - "ha": 771, - "o": "m 684 738 l 388 -83 q 311 -216 356 -167 q 173 -279 252 -279 q 97 -266 133 -279 l 97 -149 q 132 -155 109 -151 q 168 -160 155 -160 q 240 -114 213 -160 q 274 -26 248 -98 l 0 738 l 137 737 l 341 139 l 548 737 l 684 738 " - }, - "Π": { - "x_min": 0, - "x_max": 803, - "ha": 917, - "o": "m 803 0 l 667 0 l 667 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 803 1012 l 803 0 " - }, - "ΐ": { - "x_min": -111, - "x_max": 339, - "ha": 361, - "o": "m 339 800 l 229 800 l 229 925 l 339 925 l 339 800 m -1 800 l -111 800 l -111 925 l -1 925 l -1 800 m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 m 302 1040 l 113 819 l 30 819 l 165 1040 l 302 1040 " - }, - "g": { - "x_min": 0, - "x_max": 686, - "ha": 838, - "o": "m 686 34 q 586 -213 686 -121 q 331 -306 487 -306 q 131 -252 216 -306 q 31 -84 31 -190 l 155 -84 q 228 -174 166 -138 q 345 -207 284 -207 q 514 -109 454 -207 q 564 89 564 -27 q 461 6 521 36 q 335 -23 401 -23 q 88 100 184 -23 q 0 370 0 215 q 87 634 0 522 q 330 758 183 758 q 457 728 398 758 q 564 644 515 699 l 564 737 l 686 737 l 686 34 m 582 367 q 529 560 582 481 q 358 652 468 652 q 189 561 250 652 q 135 369 135 482 q 189 176 135 255 q 361 85 251 85 q 529 176 468 85 q 582 367 582 255 " - }, - "²": { - "x_min": 0, - "x_max": 442, - "ha": 539, - "o": "m 442 383 l 0 383 q 91 566 0 492 q 260 668 176 617 q 354 798 354 727 q 315 875 354 845 q 227 905 277 905 q 136 869 173 905 q 99 761 99 833 l 14 761 q 82 922 14 864 q 232 974 141 974 q 379 926 316 974 q 442 797 442 878 q 351 635 442 704 q 183 539 321 611 q 92 455 92 491 l 442 455 l 442 383 " - }, - "–": { - "x_min": 0, - "x_max": 705.5625, - "ha": 803, - "o": "m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 " - }, - "Κ": { - "x_min": 0, - "x_max": 819.5625, - "ha": 893, - "o": "m 819 0 l 650 0 l 294 509 l 139 356 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 " - }, - "ƒ": { - "x_min": -46.265625, - "x_max": 392, - "ha": 513, - "o": "m 392 651 l 259 651 l 79 -279 l -46 -278 l 134 651 l 14 651 l 14 751 l 135 751 q 151 948 135 900 q 304 1041 185 1041 q 334 1040 319 1041 q 392 1034 348 1039 l 392 922 q 337 931 360 931 q 271 883 287 931 q 260 793 260 853 l 260 751 l 392 751 l 392 651 " - }, - "e": { - "x_min": 0, - "x_max": 714, - "ha": 813, - "o": "m 714 326 l 140 326 q 200 157 140 227 q 359 87 260 87 q 488 130 431 87 q 561 245 545 174 l 697 245 q 577 48 670 123 q 358 -26 484 -26 q 97 85 195 -26 q 0 363 0 197 q 94 642 0 529 q 358 765 195 765 q 626 627 529 765 q 714 326 714 503 m 576 429 q 507 583 564 522 q 355 650 445 650 q 206 583 266 650 q 140 429 152 522 l 576 429 " - }, - "ό": { - "x_min": 0, - "x_max": 712, - "ha": 815, - "o": "m 356 -25 q 94 91 194 -25 q 0 368 0 202 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 m 576 1040 l 387 819 l 303 819 l 438 1040 l 576 1040 " - }, - "J": { - "x_min": 0, - "x_max": 588, - "ha": 699, - "o": "m 588 279 q 287 -26 588 -26 q 58 73 126 -26 q 0 327 0 158 l 133 327 q 160 172 133 227 q 288 96 198 96 q 426 171 391 96 q 449 336 449 219 l 449 1013 l 588 1013 l 588 279 " - }, - "»": { - "x_min": -1, - "x_max": 503, - "ha": 601, - "o": "m 503 302 l 280 136 l 281 256 l 429 373 l 281 486 l 280 608 l 503 440 l 503 302 m 221 302 l 0 136 l 0 255 l 145 372 l 0 486 l -1 608 l 221 440 l 221 302 " - }, - "©": { - "x_min": -3, - "x_max": 1008, - "ha": 1106, - "o": "m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 741 394 q 661 246 731 302 q 496 190 591 190 q 294 285 369 190 q 228 497 228 370 q 295 714 228 625 q 499 813 370 813 q 656 762 588 813 q 733 625 724 711 l 634 625 q 589 704 629 673 q 498 735 550 735 q 377 666 421 735 q 334 504 334 597 q 374 340 334 408 q 490 272 415 272 q 589 304 549 272 q 638 394 628 337 l 741 394 " - }, - "ώ": { - "x_min": 0, - "x_max": 922, - "ha": 1030, - "o": "m 687 1040 l 498 819 l 415 819 l 549 1040 l 687 1040 m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 338 0 202 q 45 551 0 444 q 161 737 84 643 l 302 737 q 175 552 219 647 q 124 336 124 446 q 155 179 124 248 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 341 797 257 q 745 555 797 450 q 619 737 705 637 l 760 737 q 874 551 835 640 q 922 339 922 444 " - }, - "^": { - "x_min": 193.0625, - "x_max": 598.609375, - "ha": 792, - "o": "m 598 772 l 515 772 l 395 931 l 277 772 l 193 772 l 326 1013 l 462 1013 l 598 772 " - }, - "«": { - "x_min": 0, - "x_max": 507.203125, - "ha": 604, - "o": "m 506 136 l 284 302 l 284 440 l 506 608 l 507 485 l 360 371 l 506 255 l 506 136 m 222 136 l 0 302 l 0 440 l 222 608 l 221 486 l 73 373 l 222 256 l 222 136 " - }, - "D": { - "x_min": 0, - "x_max": 828, - "ha": 935, - "o": "m 389 1013 q 714 867 593 1013 q 828 521 828 729 q 712 161 828 309 q 382 0 587 0 l 0 0 l 0 1013 l 389 1013 m 376 124 q 607 247 523 124 q 681 510 681 355 q 607 771 681 662 q 376 896 522 896 l 139 896 l 139 124 l 376 124 " - }, - "∙": { - "x_min": 0, - "x_max": 142, - "ha": 239, - "o": "m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 " - }, - "ÿ": { - "x_min": 0, - "x_max": 47, - "ha": 125, - "o": "m 47 3 q 37 -7 47 -7 q 28 0 30 -7 q 39 -4 32 -4 q 45 3 45 -1 l 37 0 q 28 9 28 0 q 39 19 28 19 l 47 16 l 47 19 l 47 3 m 37 1 q 44 8 44 1 q 37 16 44 16 q 30 8 30 16 q 37 1 30 1 m 26 1 l 23 22 l 14 0 l 3 22 l 3 3 l 0 25 l 13 1 l 22 25 l 26 1 " - }, - "w": { - "x_min": 0, - "x_max": 1009.71875, - "ha": 1100, - "o": "m 1009 738 l 783 0 l 658 0 l 501 567 l 345 0 l 222 0 l 0 738 l 130 738 l 284 174 l 432 737 l 576 738 l 721 173 l 881 737 l 1009 738 " - }, - "$": { - "x_min": 0, - "x_max": 700, - "ha": 793, - "o": "m 664 717 l 542 717 q 490 825 531 785 q 381 872 450 865 l 381 551 q 620 446 540 522 q 700 241 700 370 q 618 45 700 116 q 381 -25 536 -25 l 381 -152 l 307 -152 l 307 -25 q 81 62 162 -25 q 0 297 0 149 l 124 297 q 169 146 124 204 q 307 81 215 89 l 307 441 q 80 536 148 469 q 13 725 13 603 q 96 910 13 839 q 307 982 180 982 l 307 1077 l 381 1077 l 381 982 q 574 917 494 982 q 664 717 664 845 m 307 565 l 307 872 q 187 831 233 872 q 142 724 142 791 q 180 618 142 656 q 307 565 218 580 m 381 76 q 562 237 562 96 q 517 361 562 313 q 381 423 472 409 l 381 76 " - }, - "\\": { - "x_min": -0.015625, - "x_max": 425.0625, - "ha": 522, - "o": "m 425 -129 l 337 -129 l 0 1041 l 83 1041 l 425 -129 " - }, - "µ": { - "x_min": 0, - "x_max": 697.21875, - "ha": 747, - "o": "m 697 -4 q 629 -14 658 -14 q 498 97 513 -14 q 422 9 470 41 q 313 -23 374 -23 q 207 4 258 -23 q 119 81 156 32 l 119 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 173 124 246 q 308 83 216 83 q 452 178 402 83 q 493 359 493 255 l 493 738 l 617 738 l 617 214 q 623 136 617 160 q 673 92 637 92 q 697 96 684 92 l 697 -4 " - }, - "Ι": { - "x_min": 42, - "x_max": 181, - "ha": 297, - "o": "m 181 0 l 42 0 l 42 1013 l 181 1013 l 181 0 " - }, - "Ύ": { - "x_min": 0, - "x_max": 1144.5, - "ha": 1214, - "o": "m 1144 1012 l 807 416 l 807 0 l 667 0 l 667 416 l 325 1012 l 465 1012 l 736 533 l 1004 1012 l 1144 1012 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 " - }, - "’": { - "x_min": 0, - "x_max": 139, - "ha": 236, - "o": "m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 " - }, - "Ν": { - "x_min": 0, - "x_max": 801, - "ha": 915, - "o": "m 801 0 l 651 0 l 131 822 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 191 l 670 1013 l 801 1013 l 801 0 " - }, - "-": { - "x_min": 8.71875, - "x_max": 350.390625, - "ha": 478, - "o": "m 350 317 l 8 317 l 8 428 l 350 428 l 350 317 " - }, - "Q": { - "x_min": 0, - "x_max": 968, - "ha": 1072, - "o": "m 954 5 l 887 -79 l 744 35 q 622 -11 687 2 q 483 -26 556 -26 q 127 130 262 -26 q 0 504 0 279 q 127 880 0 728 q 484 1041 262 1041 q 841 884 708 1041 q 968 507 968 735 q 933 293 968 398 q 832 104 899 188 l 954 5 m 723 191 q 802 330 777 248 q 828 499 828 412 q 744 790 828 673 q 483 922 650 922 q 228 791 322 922 q 142 505 142 673 q 227 221 142 337 q 487 91 323 91 q 632 123 566 91 l 520 215 l 587 301 l 723 191 " - }, - "ς": { - "x_min": 1, - "x_max": 676.28125, - "ha": 740, - "o": "m 676 460 l 551 460 q 498 595 542 546 q 365 651 448 651 q 199 578 263 651 q 136 401 136 505 q 266 178 136 241 q 508 106 387 142 q 640 -50 640 62 q 625 -158 640 -105 q 583 -278 611 -211 l 465 -278 q 498 -182 490 -211 q 515 -80 515 -126 q 381 12 515 -15 q 134 91 197 51 q 1 388 1 179 q 100 651 1 542 q 354 761 199 761 q 587 680 498 761 q 676 460 676 599 " - }, - "M": { - "x_min": 0, - "x_max": 954, - "ha": 1067, - "o": "m 954 0 l 819 0 l 819 869 l 537 0 l 405 0 l 128 866 l 128 0 l 0 0 l 0 1013 l 200 1013 l 472 160 l 757 1013 l 954 1013 l 954 0 " - }, - "Ψ": { - "x_min": 0, - "x_max": 1006, - "ha": 1094, - "o": "m 1006 678 q 914 319 1006 429 q 571 200 814 200 l 571 0 l 433 0 l 433 200 q 92 319 194 200 q 0 678 0 429 l 0 1013 l 139 1013 l 139 679 q 191 417 139 492 q 433 326 255 326 l 433 1013 l 571 1013 l 571 326 l 580 326 q 813 423 747 326 q 868 679 868 502 l 868 1013 l 1006 1013 l 1006 678 " - }, - "C": { - "x_min": 0, - "x_max": 886, - "ha": 944, - "o": "m 886 379 q 760 87 886 201 q 455 -26 634 -26 q 112 136 236 -26 q 0 509 0 283 q 118 882 0 737 q 469 1041 245 1041 q 748 955 630 1041 q 879 708 879 859 l 745 708 q 649 862 724 805 q 473 920 573 920 q 219 791 312 920 q 136 509 136 675 q 217 229 136 344 q 470 99 311 99 q 672 179 591 99 q 753 379 753 259 l 886 379 " - }, - "!": { - "x_min": 0, - "x_max": 138, - "ha": 236, - "o": "m 138 684 q 116 409 138 629 q 105 244 105 299 l 33 244 q 16 465 33 313 q 0 684 0 616 l 0 1013 l 138 1013 l 138 684 m 138 0 l 0 0 l 0 151 l 138 151 l 138 0 " - }, - "{": { - "x_min": 0, - "x_max": 480.5625, - "ha": 578, - "o": "m 480 -286 q 237 -213 303 -286 q 187 -45 187 -159 q 194 48 187 -15 q 201 141 201 112 q 164 264 201 225 q 0 314 118 314 l 0 417 q 164 471 119 417 q 201 605 201 514 q 199 665 201 644 q 193 772 193 769 q 241 941 193 887 q 480 1015 308 1015 l 480 915 q 336 866 375 915 q 306 742 306 828 q 310 662 306 717 q 314 577 314 606 q 288 452 314 500 q 176 365 256 391 q 289 275 257 337 q 314 143 314 226 q 313 84 314 107 q 310 -11 310 -5 q 339 -131 310 -94 q 480 -182 377 -182 l 480 -286 " - }, - "X": { - "x_min": -0.015625, - "x_max": 854.15625, - "ha": 940, - "o": "m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 428 637 l 675 1013 l 836 1013 l 504 520 l 854 0 " - }, - "#": { - "x_min": 0, - "x_max": 963.890625, - "ha": 1061, - "o": "m 963 690 l 927 590 l 719 590 l 655 410 l 876 410 l 840 310 l 618 310 l 508 -3 l 393 -2 l 506 309 l 329 310 l 215 -2 l 102 -3 l 212 310 l 0 310 l 36 410 l 248 409 l 312 590 l 86 590 l 120 690 l 347 690 l 459 1006 l 573 1006 l 462 690 l 640 690 l 751 1006 l 865 1006 l 754 690 l 963 690 m 606 590 l 425 590 l 362 410 l 543 410 l 606 590 " - }, - "ι": { - "x_min": 42, - "x_max": 284, - "ha": 361, - "o": "m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 738 l 167 738 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 " - }, - "Ά": { - "x_min": 0, - "x_max": 906.953125, - "ha": 982, - "o": "m 283 1040 l 88 799 l 5 799 l 145 1040 l 283 1040 m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1012 l 529 1012 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 " - }, - ")": { - "x_min": 0, - "x_max": 318, - "ha": 415, - "o": "m 318 365 q 257 25 318 191 q 87 -290 197 -141 l 0 -290 q 140 21 93 -128 q 193 360 193 189 q 141 704 193 537 q 0 1024 97 850 l 87 1024 q 257 706 197 871 q 318 365 318 542 " - }, - "ε": { - "x_min": 0, - "x_max": 634.71875, - "ha": 714, - "o": "m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 314 0 265 q 128 390 67 353 q 56 460 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 " - }, - "Δ": { - "x_min": 0, - "x_max": 952.78125, - "ha": 1028, - "o": "m 952 0 l 0 0 l 400 1013 l 551 1013 l 952 0 m 762 124 l 476 867 l 187 124 l 762 124 " - }, - "}": { - "x_min": 0, - "x_max": 481, - "ha": 578, - "o": "m 481 314 q 318 262 364 314 q 282 136 282 222 q 284 65 282 97 q 293 -58 293 -48 q 241 -217 293 -166 q 0 -286 174 -286 l 0 -182 q 143 -130 105 -182 q 171 -2 171 -93 q 168 81 171 22 q 165 144 165 140 q 188 275 165 229 q 306 365 220 339 q 191 455 224 391 q 165 588 165 505 q 168 681 165 624 q 171 742 171 737 q 141 865 171 827 q 0 915 102 915 l 0 1015 q 243 942 176 1015 q 293 773 293 888 q 287 675 293 741 q 282 590 282 608 q 318 466 282 505 q 481 417 364 417 l 481 314 " - }, - "‰": { - "x_min": -3, - "x_max": 1672, - "ha": 1821, - "o": "m 846 0 q 664 76 732 0 q 603 244 603 145 q 662 412 603 344 q 846 489 729 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 846 0 962 0 m 845 103 q 945 143 910 103 q 981 243 981 184 q 947 340 981 301 q 845 385 910 385 q 745 342 782 385 q 709 243 709 300 q 742 147 709 186 q 845 103 781 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 m 1428 0 q 1246 76 1314 0 q 1185 244 1185 145 q 1244 412 1185 344 q 1428 489 1311 489 q 1610 412 1542 489 q 1672 244 1672 343 q 1612 76 1672 144 q 1428 0 1545 0 m 1427 103 q 1528 143 1492 103 q 1564 243 1564 184 q 1530 340 1564 301 q 1427 385 1492 385 q 1327 342 1364 385 q 1291 243 1291 300 q 1324 147 1291 186 q 1427 103 1363 103 " - }, - "a": { - "x_min": 0, - "x_max": 698.609375, - "ha": 794, - "o": "m 698 0 q 661 -12 679 -7 q 615 -17 643 -17 q 536 12 564 -17 q 500 96 508 41 q 384 6 456 37 q 236 -25 312 -25 q 65 31 130 -25 q 0 194 0 88 q 118 390 0 334 q 328 435 180 420 q 488 483 476 451 q 495 523 495 504 q 442 619 495 584 q 325 654 389 654 q 209 617 257 654 q 152 513 161 580 l 33 513 q 123 705 33 633 q 332 772 207 772 q 528 712 448 772 q 617 531 617 645 l 617 163 q 624 108 617 126 q 664 90 632 90 l 698 94 l 698 0 m 491 262 l 491 372 q 272 329 350 347 q 128 201 128 294 q 166 113 128 144 q 264 83 205 83 q 414 130 346 83 q 491 262 491 183 " - }, - "—": { - "x_min": 0, - "x_max": 941.671875, - "ha": 1039, - "o": "m 941 334 l 0 334 l 0 410 l 941 410 l 941 334 " - }, - "=": { - "x_min": 8.71875, - "x_max": 780.953125, - "ha": 792, - "o": "m 780 510 l 8 510 l 8 606 l 780 606 l 780 510 m 780 235 l 8 235 l 8 332 l 780 332 l 780 235 " - }, - "N": { - "x_min": 0, - "x_max": 801, - "ha": 914, - "o": "m 801 0 l 651 0 l 131 823 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 193 l 670 1013 l 801 1013 l 801 0 " - }, - "ρ": { - "x_min": 0, - "x_max": 712, - "ha": 797, - "o": "m 712 369 q 620 94 712 207 q 362 -26 521 -26 q 230 2 292 -26 q 119 83 167 30 l 119 -278 l 0 -278 l 0 362 q 91 643 0 531 q 355 764 190 764 q 617 647 517 764 q 712 369 712 536 m 583 366 q 530 559 583 480 q 359 651 469 651 q 190 562 252 651 q 135 370 135 483 q 189 176 135 257 q 359 85 250 85 q 528 175 466 85 q 583 366 583 254 " - }, - "2": { - "x_min": 59, - "x_max": 731, - "ha": 792, - "o": "m 731 0 l 59 0 q 197 314 59 188 q 457 487 199 315 q 598 691 598 580 q 543 819 598 772 q 411 867 488 867 q 272 811 328 867 q 209 630 209 747 l 81 630 q 182 901 81 805 q 408 986 271 986 q 629 909 536 986 q 731 694 731 826 q 613 449 731 541 q 378 316 495 383 q 201 122 235 234 l 731 122 l 731 0 " - }, - "¯": { - "x_min": 0, - "x_max": 941.671875, - "ha": 938, - "o": "m 941 1033 l 0 1033 l 0 1109 l 941 1109 l 941 1033 " - }, - "Z": { - "x_min": 0, - "x_max": 779, - "ha": 849, - "o": "m 779 0 l 0 0 l 0 113 l 621 896 l 40 896 l 40 1013 l 779 1013 l 778 887 l 171 124 l 779 124 l 779 0 " - }, - "u": { - "x_min": 0, - "x_max": 617, - "ha": 729, - "o": "m 617 0 l 499 0 l 499 110 q 391 10 460 45 q 246 -25 322 -25 q 61 58 127 -25 q 0 258 0 136 l 0 738 l 125 738 l 125 284 q 156 148 125 202 q 273 82 197 82 q 433 165 369 82 q 493 340 493 243 l 493 738 l 617 738 l 617 0 " - }, - "k": { - "x_min": 0, - "x_max": 612.484375, - "ha": 697, - "o": "m 612 738 l 338 465 l 608 0 l 469 0 l 251 382 l 121 251 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 402 l 456 738 l 612 738 " - }, - "Η": { - "x_min": 0, - "x_max": 803, - "ha": 917, - "o": "m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 " - }, - "Α": { - "x_min": 0, - "x_max": 906.953125, - "ha": 985, - "o": "m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 " - }, - "s": { - "x_min": 0, - "x_max": 604, - "ha": 697, - "o": "m 604 217 q 501 36 604 104 q 292 -23 411 -23 q 86 43 166 -23 q 0 238 0 114 l 121 237 q 175 122 121 164 q 300 85 223 85 q 415 112 363 85 q 479 207 479 147 q 361 309 479 276 q 140 372 141 370 q 21 544 21 426 q 111 708 21 647 q 298 761 190 761 q 492 705 413 761 q 583 531 583 643 l 462 531 q 412 625 462 594 q 298 657 363 657 q 199 636 242 657 q 143 558 143 608 q 262 454 143 486 q 484 394 479 397 q 604 217 604 341 " - }, - "B": { - "x_min": 0, - "x_max": 778, - "ha": 876, - "o": "m 580 546 q 724 469 670 535 q 778 311 778 403 q 673 83 778 171 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 892 q 691 633 732 693 q 580 546 650 572 m 393 899 l 139 899 l 139 588 l 379 588 q 521 624 462 588 q 592 744 592 667 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 303 635 219 q 559 436 635 389 q 402 477 494 477 l 139 477 l 139 124 l 419 124 " - }, - "…": { - "x_min": 0, - "x_max": 614, - "ha": 708, - "o": "m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 m 378 0 l 236 0 l 236 151 l 378 151 l 378 0 m 614 0 l 472 0 l 472 151 l 614 151 l 614 0 " - }, - "?": { - "x_min": 0, - "x_max": 607, - "ha": 704, - "o": "m 607 777 q 543 599 607 674 q 422 474 482 537 q 357 272 357 391 l 236 272 q 297 487 236 395 q 411 619 298 490 q 474 762 474 691 q 422 885 474 838 q 301 933 371 933 q 179 880 228 933 q 124 706 124 819 l 0 706 q 94 963 0 872 q 302 1044 177 1044 q 511 973 423 1044 q 607 777 607 895 m 370 0 l 230 0 l 230 151 l 370 151 l 370 0 " - }, - "H": { - "x_min": 0, - "x_max": 803, - "ha": 915, - "o": "m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 " - }, - "ν": { - "x_min": 0, - "x_max": 675, - "ha": 761, - "o": "m 675 738 l 404 0 l 272 0 l 0 738 l 133 738 l 340 147 l 541 738 l 675 738 " - }, - "c": { - "x_min": 1, - "x_max": 701.390625, - "ha": 775, - "o": "m 701 264 q 584 53 681 133 q 353 -26 487 -26 q 91 91 188 -26 q 1 370 1 201 q 92 645 1 537 q 353 761 190 761 q 572 688 479 761 q 690 493 666 615 l 556 493 q 487 606 545 562 q 356 650 428 650 q 186 563 246 650 q 134 372 134 487 q 188 179 134 258 q 359 88 250 88 q 492 136 437 88 q 566 264 548 185 l 701 264 " - }, - "¶": { - "x_min": 0, - "x_max": 566.671875, - "ha": 678, - "o": "m 21 892 l 52 892 l 98 761 l 145 892 l 176 892 l 178 741 l 157 741 l 157 867 l 108 741 l 88 741 l 40 871 l 40 741 l 21 741 l 21 892 m 308 854 l 308 731 q 252 691 308 691 q 227 691 240 691 q 207 696 213 695 l 207 712 l 253 706 q 288 733 288 706 l 288 763 q 244 741 279 741 q 193 797 193 741 q 261 860 193 860 q 287 860 273 860 q 308 854 302 855 m 288 842 l 263 843 q 213 796 213 843 q 248 756 213 756 q 288 796 288 756 l 288 842 m 566 988 l 502 988 l 502 -1 l 439 -1 l 439 988 l 317 988 l 317 -1 l 252 -1 l 252 602 q 81 653 155 602 q 0 805 0 711 q 101 989 0 918 q 309 1053 194 1053 l 566 1053 l 566 988 " - }, - "β": { - "x_min": 0, - "x_max": 660, - "ha": 745, - "o": "m 471 550 q 610 450 561 522 q 660 280 660 378 q 578 64 660 151 q 367 -22 497 -22 q 239 5 299 -22 q 126 82 178 32 l 126 -278 l 0 -278 l 0 593 q 54 903 0 801 q 318 1042 127 1042 q 519 964 436 1042 q 603 771 603 887 q 567 644 603 701 q 471 550 532 586 m 337 79 q 476 138 418 79 q 535 279 535 198 q 427 437 535 386 q 226 477 344 477 l 226 583 q 398 620 329 583 q 486 762 486 668 q 435 884 486 833 q 312 935 384 935 q 169 861 219 935 q 126 698 126 797 l 126 362 q 170 169 126 242 q 337 79 224 79 " - }, - "Μ": { - "x_min": 0, - "x_max": 954, - "ha": 1068, - "o": "m 954 0 l 819 0 l 819 868 l 537 0 l 405 0 l 128 865 l 128 0 l 0 0 l 0 1013 l 199 1013 l 472 158 l 758 1013 l 954 1013 l 954 0 " - }, - "Ό": { - "x_min": 0.109375, - "x_max": 1120, - "ha": 1217, - "o": "m 1120 505 q 994 132 1120 282 q 642 -29 861 -29 q 290 130 422 -29 q 167 505 167 280 q 294 883 167 730 q 650 1046 430 1046 q 999 882 868 1046 q 1120 505 1120 730 m 977 504 q 896 784 977 669 q 644 915 804 915 q 391 785 484 915 q 307 504 307 669 q 391 224 307 339 q 644 95 486 95 q 894 224 803 95 q 977 504 977 339 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 " - }, - "Ή": { - "x_min": 0, - "x_max": 1158, - "ha": 1275, - "o": "m 1158 0 l 1022 0 l 1022 475 l 496 475 l 496 0 l 356 0 l 356 1012 l 496 1012 l 496 599 l 1022 599 l 1022 1012 l 1158 1012 l 1158 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 " - }, - "•": { - "x_min": 0, - "x_max": 663.890625, - "ha": 775, - "o": "m 663 529 q 566 293 663 391 q 331 196 469 196 q 97 294 194 196 q 0 529 0 393 q 96 763 0 665 q 331 861 193 861 q 566 763 469 861 q 663 529 663 665 " - }, - "¥": { - "x_min": 0.1875, - "x_max": 819.546875, - "ha": 886, - "o": "m 563 561 l 697 561 l 696 487 l 520 487 l 482 416 l 482 380 l 697 380 l 695 308 l 482 308 l 482 0 l 342 0 l 342 308 l 125 308 l 125 380 l 342 380 l 342 417 l 303 487 l 125 487 l 125 561 l 258 561 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 l 563 561 " - }, - "(": { - "x_min": 0, - "x_max": 318.0625, - "ha": 415, - "o": "m 318 -290 l 230 -290 q 61 23 122 -142 q 0 365 0 190 q 62 712 0 540 q 230 1024 119 869 l 318 1024 q 175 705 219 853 q 125 360 125 542 q 176 22 125 187 q 318 -290 223 -127 " - }, - "U": { - "x_min": 0, - "x_max": 796, - "ha": 904, - "o": "m 796 393 q 681 93 796 212 q 386 -25 566 -25 q 101 95 208 -25 q 0 393 0 211 l 0 1013 l 138 1013 l 138 391 q 204 191 138 270 q 394 107 276 107 q 586 191 512 107 q 656 391 656 270 l 656 1013 l 796 1013 l 796 393 " - }, - "γ": { - "x_min": 0.5, - "x_max": 744.953125, - "ha": 822, - "o": "m 744 737 l 463 54 l 463 -278 l 338 -278 l 338 54 l 154 495 q 104 597 124 569 q 13 651 67 651 l 0 651 l 0 751 l 39 753 q 168 711 121 753 q 242 594 207 676 l 403 208 l 617 737 l 744 737 " - }, - "α": { - "x_min": 0, - "x_max": 765.5625, - "ha": 809, - "o": "m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 728 407 760 q 563 637 524 696 l 563 739 l 685 739 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 96 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 " - }, - "F": { - "x_min": 0, - "x_max": 683.328125, - "ha": 717, - "o": "m 683 888 l 140 888 l 140 583 l 613 583 l 613 458 l 140 458 l 140 0 l 0 0 l 0 1013 l 683 1013 l 683 888 " - }, - "­": { - "x_min": 0, - "x_max": 705.5625, - "ha": 803, - "o": "m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 " - }, - ":": { - "x_min": 0, - "x_max": 142, - "ha": 239, - "o": "m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 " - }, - "Χ": { - "x_min": 0, - "x_max": 854.171875, - "ha": 935, - "o": "m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 427 637 l 675 1013 l 836 1013 l 504 521 l 854 0 " - }, - "*": { - "x_min": 116, - "x_max": 674, - "ha": 792, - "o": "m 674 768 l 475 713 l 610 544 l 517 477 l 394 652 l 272 478 l 178 544 l 314 713 l 116 766 l 153 876 l 341 812 l 342 1013 l 446 1013 l 446 811 l 635 874 l 674 768 " - }, - "†": { - "x_min": 0, - "x_max": 777, - "ha": 835, - "o": "m 458 804 l 777 804 l 777 683 l 458 683 l 458 0 l 319 0 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 " - }, - "°": { - "x_min": 0, - "x_max": 347, - "ha": 444, - "o": "m 173 802 q 43 856 91 802 q 0 977 0 905 q 45 1101 0 1049 q 173 1153 90 1153 q 303 1098 255 1153 q 347 977 347 1049 q 303 856 347 905 q 173 802 256 802 m 173 884 q 238 910 214 884 q 262 973 262 937 q 239 1038 262 1012 q 173 1064 217 1064 q 108 1037 132 1064 q 85 973 85 1010 q 108 910 85 937 q 173 884 132 884 " - }, - "V": { - "x_min": 0, - "x_max": 862.71875, - "ha": 940, - "o": "m 862 1013 l 505 0 l 361 0 l 0 1013 l 143 1013 l 434 165 l 718 1012 l 862 1013 " - }, - "Ξ": { - "x_min": 0, - "x_max": 734.71875, - "ha": 763, - "o": "m 723 889 l 9 889 l 9 1013 l 723 1013 l 723 889 m 673 463 l 61 463 l 61 589 l 673 589 l 673 463 m 734 0 l 0 0 l 0 124 l 734 124 l 734 0 " - }, - " ": { "x_min": 0, "x_max": 0, "ha": 853 }, - "Ϋ": { - "x_min": 0.328125, - "x_max": 819.515625, - "ha": 889, - "o": "m 588 1046 l 460 1046 l 460 1189 l 588 1189 l 588 1046 m 360 1046 l 232 1046 l 232 1189 l 360 1189 l 360 1046 m 819 1012 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1012 l 140 1012 l 411 533 l 679 1012 l 819 1012 " - }, - "0": { - "x_min": 73, - "x_max": 715, - "ha": 792, - "o": "m 394 -29 q 153 129 242 -29 q 73 479 73 272 q 152 829 73 687 q 394 989 241 989 q 634 829 545 989 q 715 479 715 684 q 635 129 715 270 q 394 -29 546 -29 m 394 89 q 546 211 489 89 q 598 479 598 322 q 548 748 598 640 q 394 871 491 871 q 241 748 298 871 q 190 479 190 637 q 239 211 190 319 q 394 89 296 89 " - }, - "”": { - "x_min": 0, - "x_max": 347, - "ha": 454, - "o": "m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 m 347 851 q 310 737 347 784 q 208 669 273 690 l 208 734 q 267 787 250 741 q 280 873 280 821 l 208 873 l 208 1013 l 347 1013 l 347 851 " - }, - "@": { - "x_min": 0, - "x_max": 1260, - "ha": 1357, - "o": "m 1098 -45 q 877 -160 1001 -117 q 633 -203 752 -203 q 155 -29 327 -203 q 0 360 0 127 q 176 802 0 616 q 687 1008 372 1008 q 1123 854 969 1008 q 1260 517 1260 718 q 1155 216 1260 341 q 868 82 1044 82 q 772 106 801 82 q 737 202 737 135 q 647 113 700 144 q 527 82 594 82 q 367 147 420 82 q 314 312 314 212 q 401 565 314 452 q 639 690 498 690 q 810 588 760 690 l 849 668 l 938 668 q 877 441 900 532 q 833 226 833 268 q 853 182 833 198 q 902 167 873 167 q 1088 272 1012 167 q 1159 512 1159 372 q 1051 793 1159 681 q 687 925 925 925 q 248 747 415 925 q 97 361 97 586 q 226 26 97 159 q 627 -122 370 -122 q 856 -87 737 -122 q 1061 8 976 -53 l 1098 -45 m 786 488 q 738 580 777 545 q 643 615 700 615 q 483 517 548 615 q 425 322 425 430 q 457 203 425 250 q 552 156 490 156 q 722 273 665 156 q 786 488 738 309 " - }, - "Ί": { - "x_min": 0, - "x_max": 499, - "ha": 613, - "o": "m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 m 499 0 l 360 0 l 360 1012 l 499 1012 l 499 0 " - }, - "i": { - "x_min": 14, - "x_max": 136, - "ha": 275, - "o": "m 136 873 l 14 873 l 14 1013 l 136 1013 l 136 873 m 136 0 l 14 0 l 14 737 l 136 737 l 136 0 " - }, - "Β": { - "x_min": 0, - "x_max": 778, - "ha": 877, - "o": "m 580 545 q 724 468 671 534 q 778 310 778 402 q 673 83 778 170 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 891 q 691 632 732 692 q 580 545 650 571 m 393 899 l 139 899 l 139 587 l 379 587 q 521 623 462 587 q 592 744 592 666 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 302 635 219 q 559 435 635 388 q 402 476 494 476 l 139 476 l 139 124 l 419 124 " - }, - "υ": { - "x_min": 0, - "x_max": 617, - "ha": 725, - "o": "m 617 352 q 540 94 617 199 q 308 -24 455 -24 q 76 94 161 -24 q 0 352 0 199 l 0 739 l 126 739 l 126 355 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 355 492 257 l 492 739 l 617 739 l 617 352 " - }, - "]": { - "x_min": 0, - "x_max": 275, - "ha": 372, - "o": "m 275 -281 l 0 -281 l 0 -187 l 151 -187 l 151 920 l 0 920 l 0 1013 l 275 1013 l 275 -281 " - }, - "m": { - "x_min": 0, - "x_max": 1019, - "ha": 1128, - "o": "m 1019 0 l 897 0 l 897 454 q 860 591 897 536 q 739 660 816 660 q 613 586 659 660 q 573 436 573 522 l 573 0 l 447 0 l 447 455 q 412 591 447 535 q 294 657 372 657 q 165 586 213 657 q 122 437 122 521 l 122 0 l 0 0 l 0 738 l 117 738 l 117 640 q 202 730 150 697 q 316 763 254 763 q 437 730 381 763 q 525 642 494 697 q 621 731 559 700 q 753 763 682 763 q 943 694 867 763 q 1019 512 1019 625 l 1019 0 " - }, - "χ": { - "x_min": 8.328125, - "x_max": 780.5625, - "ha": 815, - "o": "m 780 -278 q 715 -294 747 -294 q 616 -257 663 -294 q 548 -175 576 -227 l 379 133 l 143 -277 l 9 -277 l 313 254 l 163 522 q 127 586 131 580 q 36 640 91 640 q 8 637 27 640 l 8 752 l 52 757 q 162 719 113 757 q 236 627 200 690 l 383 372 l 594 737 l 726 737 l 448 250 l 625 -69 q 670 -153 647 -110 q 743 -188 695 -188 q 780 -184 759 -188 l 780 -278 " - }, - "8": { - "x_min": 55, - "x_max": 736, - "ha": 792, - "o": "m 571 527 q 694 424 652 491 q 736 280 736 358 q 648 71 736 158 q 395 -26 551 -26 q 142 69 238 -26 q 55 279 55 157 q 96 425 55 359 q 220 527 138 491 q 120 615 153 562 q 88 726 88 668 q 171 904 88 827 q 395 986 261 986 q 618 905 529 986 q 702 727 702 830 q 670 616 702 667 q 571 527 638 565 m 394 565 q 519 610 475 565 q 563 717 563 655 q 521 823 563 781 q 392 872 474 872 q 265 824 312 872 q 224 720 224 783 q 265 613 224 656 q 394 565 312 565 m 395 91 q 545 150 488 91 q 597 280 597 204 q 546 408 597 355 q 395 465 492 465 q 244 408 299 465 q 194 280 194 356 q 244 150 194 203 q 395 91 299 91 " - }, - "ί": { - "x_min": 42, - "x_max": 326.71875, - "ha": 361, - "o": "m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 102 239 101 q 284 112 257 104 l 284 3 m 326 1040 l 137 819 l 54 819 l 189 1040 l 326 1040 " - }, - "Ζ": { - "x_min": 0, - "x_max": 779.171875, - "ha": 850, - "o": "m 779 0 l 0 0 l 0 113 l 620 896 l 40 896 l 40 1013 l 779 1013 l 779 887 l 170 124 l 779 124 l 779 0 " - }, - "R": { - "x_min": 0, - "x_max": 781.953125, - "ha": 907, - "o": "m 781 0 l 623 0 q 587 242 590 52 q 407 433 585 433 l 138 433 l 138 0 l 0 0 l 0 1013 l 396 1013 q 636 946 539 1013 q 749 731 749 868 q 711 597 749 659 q 608 502 674 534 q 718 370 696 474 q 729 207 722 352 q 781 26 736 62 l 781 0 m 373 551 q 533 594 465 551 q 614 731 614 645 q 532 859 614 815 q 373 896 465 896 l 138 896 l 138 551 l 373 551 " - }, - "o": { - "x_min": 0, - "x_max": 713, - "ha": 821, - "o": "m 357 -25 q 94 91 194 -25 q 0 368 0 202 q 93 642 0 533 q 357 761 193 761 q 618 644 518 761 q 713 368 713 533 q 619 91 713 201 q 357 -25 521 -25 m 357 85 q 528 175 465 85 q 584 369 584 255 q 529 562 584 484 q 357 651 467 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 357 85 250 85 " - }, - "5": { - "x_min": 54.171875, - "x_max": 738, - "ha": 792, - "o": "m 738 314 q 626 60 738 153 q 382 -23 526 -23 q 155 47 248 -23 q 54 256 54 125 l 183 256 q 259 132 204 174 q 382 91 314 91 q 533 149 471 91 q 602 314 602 213 q 538 469 602 411 q 386 528 475 528 q 284 506 332 528 q 197 439 237 484 l 81 439 l 159 958 l 684 958 l 684 840 l 254 840 l 214 579 q 306 627 258 612 q 407 643 354 643 q 636 552 540 643 q 738 314 738 457 " - }, - "7": { - "x_min": 58.71875, - "x_max": 730.953125, - "ha": 792, - "o": "m 730 839 q 469 448 560 641 q 335 0 378 255 l 192 0 q 328 441 235 252 q 593 830 421 630 l 58 830 l 58 958 l 730 958 l 730 839 " - }, - "K": { - "x_min": 0, - "x_max": 819.46875, - "ha": 906, - "o": "m 819 0 l 649 0 l 294 509 l 139 355 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 " - }, - ",": { - "x_min": 0, - "x_max": 142, - "ha": 239, - "o": "m 142 -12 q 105 -132 142 -82 q 0 -205 68 -182 l 0 -138 q 57 -82 40 -124 q 70 0 70 -51 l 0 0 l 0 151 l 142 151 l 142 -12 " - }, - "d": { - "x_min": 0, - "x_max": 683, - "ha": 796, - "o": "m 683 0 l 564 0 l 564 93 q 456 6 516 38 q 327 -25 395 -25 q 87 100 181 -25 q 0 365 0 215 q 90 639 0 525 q 343 763 187 763 q 564 647 486 763 l 564 1013 l 683 1013 l 683 0 m 582 373 q 529 562 582 484 q 361 653 468 653 q 190 561 253 653 q 135 365 135 479 q 189 175 135 254 q 358 85 251 85 q 529 178 468 85 q 582 373 582 258 " - }, - "¨": { - "x_min": -109, - "x_max": 247, - "ha": 232, - "o": "m 247 1046 l 119 1046 l 119 1189 l 247 1189 l 247 1046 m 19 1046 l -109 1046 l -109 1189 l 19 1189 l 19 1046 " - }, - "E": { - "x_min": 0, - "x_max": 736.109375, - "ha": 789, - "o": "m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 " - }, - "Y": { - "x_min": 0, - "x_max": 820, - "ha": 886, - "o": "m 820 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 534 l 679 1012 l 820 1013 " - }, - "\"": { - "x_min": 0, - "x_max": 299, - "ha": 396, - "o": "m 299 606 l 203 606 l 203 988 l 299 988 l 299 606 m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 " - }, - "‹": { - "x_min": 17.984375, - "x_max": 773.609375, - "ha": 792, - "o": "m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 " - }, - "„": { - "x_min": 0, - "x_max": 364, - "ha": 467, - "o": "m 141 -12 q 104 -132 141 -82 q 0 -205 67 -182 l 0 -138 q 56 -82 40 -124 q 69 0 69 -51 l 0 0 l 0 151 l 141 151 l 141 -12 m 364 -12 q 327 -132 364 -82 q 222 -205 290 -182 l 222 -138 q 279 -82 262 -124 q 292 0 292 -51 l 222 0 l 222 151 l 364 151 l 364 -12 " - }, - "δ": { - "x_min": 1, - "x_max": 710, - "ha": 810, - "o": "m 710 360 q 616 87 710 196 q 356 -28 518 -28 q 99 82 197 -28 q 1 356 1 192 q 100 606 1 509 q 355 703 199 703 q 180 829 288 754 q 70 903 124 866 l 70 1012 l 643 1012 l 643 901 l 258 901 q 462 763 422 794 q 636 592 577 677 q 710 360 710 485 m 584 365 q 552 501 584 447 q 451 602 521 555 q 372 611 411 611 q 197 541 258 611 q 136 355 136 472 q 190 171 136 245 q 358 85 252 85 q 528 173 465 85 q 584 365 584 252 " - }, - "έ": { - "x_min": 0, - "x_max": 634.71875, - "ha": 714, - "o": "m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 313 0 265 q 128 390 67 352 q 56 459 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 m 520 1040 l 331 819 l 248 819 l 383 1040 l 520 1040 " - }, - "ω": { - "x_min": 0, - "x_max": 922, - "ha": 1031, - "o": "m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 339 0 203 q 45 551 0 444 q 161 738 84 643 l 302 738 q 175 553 219 647 q 124 336 124 446 q 155 179 124 249 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 342 797 257 q 745 556 797 450 q 619 738 705 638 l 760 738 q 874 551 835 640 q 922 339 922 444 " - }, - "´": { - "x_min": 0, - "x_max": 96, - "ha": 251, - "o": "m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 " - }, - "±": { - "x_min": 11, - "x_max": 781, - "ha": 792, - "o": "m 781 490 l 446 490 l 446 255 l 349 255 l 349 490 l 11 490 l 11 586 l 349 586 l 349 819 l 446 819 l 446 586 l 781 586 l 781 490 m 781 21 l 11 21 l 11 115 l 781 115 l 781 21 " - }, - "|": { - "x_min": 343, - "x_max": 449, - "ha": 792, - "o": "m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 " - }, - "ϋ": { - "x_min": 0, - "x_max": 617, - "ha": 725, - "o": "m 482 800 l 372 800 l 372 925 l 482 925 l 482 800 m 239 800 l 129 800 l 129 925 l 239 925 l 239 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 " - }, - "§": { - "x_min": 0, - "x_max": 593, - "ha": 690, - "o": "m 593 425 q 554 312 593 369 q 467 233 516 254 q 537 83 537 172 q 459 -74 537 -12 q 288 -133 387 -133 q 115 -69 184 -133 q 47 96 47 -6 l 166 96 q 199 7 166 40 q 288 -26 232 -26 q 371 -5 332 -26 q 420 60 420 21 q 311 201 420 139 q 108 309 210 255 q 0 490 0 383 q 33 602 0 551 q 124 687 66 654 q 75 743 93 712 q 58 812 58 773 q 133 984 58 920 q 300 1043 201 1043 q 458 987 394 1043 q 529 814 529 925 l 411 814 q 370 908 404 877 q 289 939 336 939 q 213 911 246 939 q 180 841 180 883 q 286 720 180 779 q 484 612 480 615 q 593 425 593 534 m 467 409 q 355 544 467 473 q 196 630 228 612 q 146 587 162 609 q 124 525 124 558 q 239 387 124 462 q 398 298 369 315 q 448 345 429 316 q 467 409 467 375 " - }, - "b": { - "x_min": 0, - "x_max": 685, - "ha": 783, - "o": "m 685 372 q 597 99 685 213 q 347 -25 501 -25 q 219 5 277 -25 q 121 93 161 36 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 634 q 214 723 157 692 q 341 754 272 754 q 591 637 493 754 q 685 372 685 526 m 554 356 q 499 550 554 470 q 328 644 437 644 q 162 556 223 644 q 108 369 108 478 q 160 176 108 256 q 330 83 221 83 q 498 169 435 83 q 554 356 554 245 " - }, - "q": { - "x_min": 0, - "x_max": 683, - "ha": 876, - "o": "m 683 -278 l 564 -278 l 564 97 q 474 8 533 39 q 345 -23 415 -23 q 91 93 188 -23 q 0 364 0 203 q 87 635 0 522 q 337 760 184 760 q 466 727 408 760 q 564 637 523 695 l 564 737 l 683 737 l 683 -278 m 582 375 q 527 564 582 488 q 358 652 466 652 q 190 565 253 652 q 135 377 135 488 q 189 179 135 261 q 361 84 251 84 q 530 179 469 84 q 582 375 582 260 " - }, - "Ω": { - "x_min": -0.171875, - "x_max": 969.5625, - "ha": 1068, - "o": "m 969 0 l 555 0 l 555 123 q 744 308 675 194 q 814 558 814 423 q 726 812 814 709 q 484 922 633 922 q 244 820 334 922 q 154 567 154 719 q 223 316 154 433 q 412 123 292 199 l 412 0 l 0 0 l 0 124 l 217 124 q 68 327 122 210 q 15 572 15 444 q 144 911 15 781 q 484 1041 274 1041 q 822 909 691 1041 q 953 569 953 777 q 899 326 953 443 q 750 124 846 210 l 969 124 l 969 0 " - }, - "ύ": { - "x_min": 0, - "x_max": 617, - "ha": 725, - "o": "m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 535 1040 l 346 819 l 262 819 l 397 1040 l 535 1040 " - }, - "z": { - "x_min": -0.015625, - "x_max": 613.890625, - "ha": 697, - "o": "m 613 0 l 0 0 l 0 100 l 433 630 l 20 630 l 20 738 l 594 738 l 593 636 l 163 110 l 613 110 l 613 0 " - }, - "™": { - "x_min": 0, - "x_max": 894, - "ha": 1000, - "o": "m 389 951 l 229 951 l 229 503 l 160 503 l 160 951 l 0 951 l 0 1011 l 389 1011 l 389 951 m 894 503 l 827 503 l 827 939 l 685 503 l 620 503 l 481 937 l 481 503 l 417 503 l 417 1011 l 517 1011 l 653 580 l 796 1010 l 894 1011 l 894 503 " - }, - "ή": { - "x_min": 0.78125, - "x_max": 697, - "ha": 810, - "o": "m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 721 124 755 q 200 630 193 687 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 m 479 1040 l 290 819 l 207 819 l 341 1040 l 479 1040 " - }, - "Θ": { - "x_min": 0, - "x_max": 960, - "ha": 1056, - "o": "m 960 507 q 833 129 960 280 q 476 -32 698 -32 q 123 129 255 -32 q 0 507 0 280 q 123 883 0 732 q 476 1045 255 1045 q 832 883 696 1045 q 960 507 960 732 m 817 500 q 733 789 817 669 q 476 924 639 924 q 223 792 317 924 q 142 507 142 675 q 222 222 142 339 q 476 89 315 89 q 730 218 636 89 q 817 500 817 334 m 716 449 l 243 449 l 243 571 l 716 571 l 716 449 " - }, - "®": { - "x_min": -3, - "x_max": 1008, - "ha": 1106, - "o": "m 503 532 q 614 562 566 532 q 672 658 672 598 q 614 747 672 716 q 503 772 569 772 l 338 772 l 338 532 l 503 532 m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 788 146 l 678 146 q 653 316 655 183 q 527 449 652 449 l 338 449 l 338 146 l 241 146 l 241 854 l 518 854 q 688 808 621 854 q 766 658 766 755 q 739 563 766 607 q 668 497 713 519 q 751 331 747 472 q 788 164 756 190 l 788 146 " - }, - "~": { - "x_min": 0, - "x_max": 833, - "ha": 931, - "o": "m 833 958 q 778 753 833 831 q 594 665 716 665 q 402 761 502 665 q 240 857 302 857 q 131 795 166 857 q 104 665 104 745 l 0 665 q 54 867 0 789 q 237 958 116 958 q 429 861 331 958 q 594 765 527 765 q 704 827 670 765 q 729 958 729 874 l 833 958 " - }, - "Ε": { - "x_min": 0, - "x_max": 736.21875, - "ha": 778, - "o": "m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 " - }, - "³": { - "x_min": 0, - "x_max": 450, - "ha": 547, - "o": "m 450 552 q 379 413 450 464 q 220 366 313 366 q 69 414 130 366 q 0 567 0 470 l 85 567 q 126 470 85 504 q 225 437 168 437 q 320 467 280 437 q 360 552 360 498 q 318 632 360 608 q 213 657 276 657 q 195 657 203 657 q 176 657 181 657 l 176 722 q 279 733 249 722 q 334 815 334 752 q 300 881 334 856 q 220 907 267 907 q 133 875 169 907 q 97 781 97 844 l 15 781 q 78 926 15 875 q 220 972 135 972 q 364 930 303 972 q 426 817 426 888 q 344 697 426 733 q 421 642 392 681 q 450 552 450 603 " - }, - "[": { - "x_min": 0, - "x_max": 273.609375, - "ha": 371, - "o": "m 273 -281 l 0 -281 l 0 1013 l 273 1013 l 273 920 l 124 920 l 124 -187 l 273 -187 l 273 -281 " - }, - "L": { - "x_min": 0, - "x_max": 645.828125, - "ha": 696, - "o": "m 645 0 l 0 0 l 0 1013 l 140 1013 l 140 126 l 645 126 l 645 0 " - }, - "σ": { - "x_min": 0, - "x_max": 803.390625, - "ha": 894, - "o": "m 803 628 l 633 628 q 713 368 713 512 q 618 93 713 204 q 357 -25 518 -25 q 94 91 194 -25 q 0 368 0 201 q 94 644 0 533 q 356 761 194 761 q 481 750 398 761 q 608 739 564 739 l 803 739 l 803 628 m 360 85 q 529 180 467 85 q 584 374 584 262 q 527 566 584 490 q 352 651 463 651 q 187 559 247 651 q 135 368 135 478 q 189 175 135 254 q 360 85 251 85 " - }, - "ζ": { - "x_min": 0, - "x_max": 573, - "ha": 642, - "o": "m 573 -40 q 553 -162 573 -97 q 510 -278 543 -193 l 400 -278 q 441 -187 428 -219 q 462 -90 462 -132 q 378 -14 462 -14 q 108 45 197 -14 q 0 290 0 117 q 108 631 0 462 q 353 901 194 767 l 55 901 l 55 1012 l 561 1012 l 561 924 q 261 669 382 831 q 128 301 128 489 q 243 117 128 149 q 458 98 350 108 q 573 -40 573 80 " - }, - "θ": { - "x_min": 0, - "x_max": 674, - "ha": 778, - "o": "m 674 496 q 601 160 674 304 q 336 -26 508 -26 q 73 153 165 -26 q 0 485 0 296 q 72 840 0 683 q 343 1045 166 1045 q 605 844 516 1045 q 674 496 674 692 m 546 579 q 498 798 546 691 q 336 935 437 935 q 178 798 237 935 q 126 579 137 701 l 546 579 m 546 475 l 126 475 q 170 233 126 348 q 338 80 230 80 q 504 233 447 80 q 546 475 546 346 " - }, - "Ο": { - "x_min": 0, - "x_max": 958, - "ha": 1054, - "o": "m 485 1042 q 834 883 703 1042 q 958 511 958 735 q 834 136 958 287 q 481 -26 701 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 729 q 485 1042 263 1042 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 670 q 480 913 640 913 q 226 785 321 913 q 142 504 142 671 q 226 224 142 339 q 480 98 319 98 " - }, - "Γ": { - "x_min": 0, - "x_max": 705.28125, - "ha": 749, - "o": "m 705 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 705 1012 l 705 886 " - }, - " ": { "x_min": 0, "x_max": 0, "ha": 375 }, - "%": { - "x_min": -3, - "x_max": 1089, - "ha": 1186, - "o": "m 845 0 q 663 76 731 0 q 602 244 602 145 q 661 412 602 344 q 845 489 728 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 845 0 962 0 m 844 103 q 945 143 909 103 q 981 243 981 184 q 947 340 981 301 q 844 385 909 385 q 744 342 781 385 q 708 243 708 300 q 741 147 708 186 q 844 103 780 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 " - }, - "P": { - "x_min": 0, - "x_max": 726, - "ha": 806, - "o": "m 424 1013 q 640 931 555 1013 q 726 719 726 850 q 637 506 726 587 q 413 426 548 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 379 889 l 140 889 l 140 548 l 372 548 q 522 589 459 548 q 593 720 593 637 q 528 845 593 801 q 379 889 463 889 " - }, - "Έ": { - "x_min": 0, - "x_max": 1078.21875, - "ha": 1118, - "o": "m 1078 0 l 342 0 l 342 1013 l 1067 1013 l 1067 889 l 481 889 l 481 585 l 1019 585 l 1019 467 l 481 467 l 481 125 l 1078 125 l 1078 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 " - }, - "Ώ": { - "x_min": 0.125, - "x_max": 1136.546875, - "ha": 1235, - "o": "m 1136 0 l 722 0 l 722 123 q 911 309 842 194 q 981 558 981 423 q 893 813 981 710 q 651 923 800 923 q 411 821 501 923 q 321 568 321 720 q 390 316 321 433 q 579 123 459 200 l 579 0 l 166 0 l 166 124 l 384 124 q 235 327 289 210 q 182 572 182 444 q 311 912 182 782 q 651 1042 441 1042 q 989 910 858 1042 q 1120 569 1120 778 q 1066 326 1120 443 q 917 124 1013 210 l 1136 124 l 1136 0 m 277 1040 l 83 800 l 0 800 l 140 1041 l 277 1040 " - }, - "_": { - "x_min": 0, - "x_max": 705.5625, - "ha": 803, - "o": "m 705 -334 l 0 -334 l 0 -234 l 705 -234 l 705 -334 " - }, - "Ϊ": { - "x_min": -110, - "x_max": 246, - "ha": 275, - "o": "m 246 1046 l 118 1046 l 118 1189 l 246 1189 l 246 1046 m 18 1046 l -110 1046 l -110 1189 l 18 1189 l 18 1046 m 136 0 l 0 0 l 0 1012 l 136 1012 l 136 0 " - }, - "+": { - "x_min": 23, - "x_max": 768, - "ha": 792, - "o": "m 768 372 l 444 372 l 444 0 l 347 0 l 347 372 l 23 372 l 23 468 l 347 468 l 347 840 l 444 840 l 444 468 l 768 468 l 768 372 " - }, - "½": { - "x_min": 0, - "x_max": 1050, - "ha": 1149, - "o": "m 1050 0 l 625 0 q 712 178 625 108 q 878 277 722 187 q 967 385 967 328 q 932 456 967 429 q 850 484 897 484 q 759 450 798 484 q 721 352 721 416 l 640 352 q 706 502 640 448 q 851 551 766 551 q 987 509 931 551 q 1050 385 1050 462 q 976 251 1050 301 q 829 179 902 215 q 717 68 740 133 l 1050 68 l 1050 0 m 834 985 l 215 -28 l 130 -28 l 750 984 l 834 985 m 224 422 l 142 422 l 142 811 l 0 811 l 0 867 q 104 889 62 867 q 164 973 157 916 l 224 973 l 224 422 " - }, - "Ρ": { - "x_min": 0, - "x_max": 720, - "ha": 783, - "o": "m 424 1013 q 637 933 554 1013 q 720 723 720 853 q 633 508 720 591 q 413 426 546 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 378 889 l 140 889 l 140 548 l 371 548 q 521 589 458 548 q 592 720 592 637 q 527 845 592 801 q 378 889 463 889 " - }, - "'": { - "x_min": 0, - "x_max": 139, - "ha": 236, - "o": "m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 " - }, - "ª": { - "x_min": 0, - "x_max": 350, - "ha": 397, - "o": "m 350 625 q 307 616 328 616 q 266 631 281 616 q 247 673 251 645 q 190 628 225 644 q 116 613 156 613 q 32 641 64 613 q 0 722 0 669 q 72 826 0 800 q 247 866 159 846 l 247 887 q 220 934 247 916 q 162 953 194 953 q 104 934 129 953 q 76 882 80 915 l 16 882 q 60 976 16 941 q 166 1011 104 1011 q 266 979 224 1011 q 308 891 308 948 l 308 706 q 311 679 308 688 q 331 670 315 670 l 350 672 l 350 625 m 247 757 l 247 811 q 136 790 175 798 q 64 726 64 773 q 83 682 64 697 q 132 667 103 667 q 207 690 174 667 q 247 757 247 718 " - }, - "΅": { - "x_min": 0, - "x_max": 450, - "ha": 553, - "o": "m 450 800 l 340 800 l 340 925 l 450 925 l 450 800 m 406 1040 l 212 800 l 129 800 l 269 1040 l 406 1040 m 110 800 l 0 800 l 0 925 l 110 925 l 110 800 " - }, - "T": { - "x_min": 0, - "x_max": 777, - "ha": 835, - "o": "m 777 894 l 458 894 l 458 0 l 319 0 l 319 894 l 0 894 l 0 1013 l 777 1013 l 777 894 " - }, - "Φ": { - "x_min": 0, - "x_max": 915, - "ha": 997, - "o": "m 527 0 l 389 0 l 389 122 q 110 231 220 122 q 0 509 0 340 q 110 785 0 677 q 389 893 220 893 l 389 1013 l 527 1013 l 527 893 q 804 786 693 893 q 915 509 915 679 q 805 231 915 341 q 527 122 696 122 l 527 0 m 527 226 q 712 310 641 226 q 779 507 779 389 q 712 705 779 627 q 527 787 641 787 l 527 226 m 389 226 l 389 787 q 205 698 275 775 q 136 505 136 620 q 206 308 136 391 q 389 226 276 226 " - }, - "⁋": { "x_min": 0, "x_max": 0, "ha": 694 }, - "j": { - "x_min": -77.78125, - "x_max": 167, - "ha": 349, - "o": "m 167 871 l 42 871 l 42 1013 l 167 1013 l 167 871 m 167 -80 q 121 -231 167 -184 q -26 -278 76 -278 l -77 -278 l -77 -164 l -41 -164 q 26 -143 11 -164 q 42 -65 42 -122 l 42 737 l 167 737 l 167 -80 " - }, - "Σ": { - "x_min": 0, - "x_max": 756.953125, - "ha": 819, - "o": "m 756 0 l 0 0 l 0 107 l 395 523 l 22 904 l 22 1013 l 745 1013 l 745 889 l 209 889 l 566 523 l 187 125 l 756 125 l 756 0 " - }, - "1": { - "x_min": 215.671875, - "x_max": 574, - "ha": 792, - "o": "m 574 0 l 442 0 l 442 697 l 215 697 l 215 796 q 386 833 330 796 q 475 986 447 875 l 574 986 l 574 0 " - }, - "›": { - "x_min": 18.0625, - "x_max": 774, - "ha": 792, - "o": "m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 " - }, - "<": { - "x_min": 17.984375, - "x_max": 773.609375, - "ha": 792, - "o": "m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 " - }, - "£": { - "x_min": 0, - "x_max": 704.484375, - "ha": 801, - "o": "m 704 41 q 623 -10 664 5 q 543 -26 583 -26 q 359 15 501 -26 q 243 36 288 36 q 158 23 197 36 q 73 -21 119 10 l 6 76 q 125 195 90 150 q 175 331 175 262 q 147 443 175 383 l 0 443 l 0 512 l 108 512 q 43 734 43 623 q 120 929 43 854 q 358 1010 204 1010 q 579 936 487 1010 q 678 729 678 857 l 678 684 l 552 684 q 504 838 552 780 q 362 896 457 896 q 216 852 263 896 q 176 747 176 815 q 199 627 176 697 q 248 512 217 574 l 468 512 l 468 443 l 279 443 q 297 356 297 398 q 230 194 297 279 q 153 107 211 170 q 227 133 190 125 q 293 142 264 142 q 410 119 339 142 q 516 96 482 96 q 579 105 550 96 q 648 142 608 115 l 704 41 " - }, - "t": { - "x_min": 0, - "x_max": 367, - "ha": 458, - "o": "m 367 0 q 312 -5 339 -2 q 262 -8 284 -8 q 145 28 183 -8 q 108 143 108 64 l 108 638 l 0 638 l 0 738 l 108 738 l 108 944 l 232 944 l 232 738 l 367 738 l 367 638 l 232 638 l 232 185 q 248 121 232 140 q 307 102 264 102 q 345 104 330 102 q 367 107 360 107 l 367 0 " - }, - "¬": { - "x_min": 0, - "x_max": 706, - "ha": 803, - "o": "m 706 411 l 706 158 l 630 158 l 630 335 l 0 335 l 0 411 l 706 411 " - }, - "λ": { - "x_min": 0, - "x_max": 750, - "ha": 803, - "o": "m 750 -7 q 679 -15 716 -15 q 538 59 591 -15 q 466 214 512 97 l 336 551 l 126 0 l 0 0 l 270 705 q 223 837 247 770 q 116 899 190 899 q 90 898 100 899 l 90 1004 q 152 1011 125 1011 q 298 938 244 1011 q 373 783 326 901 l 605 192 q 649 115 629 136 q 716 95 669 95 l 736 95 q 750 97 745 97 l 750 -7 " - }, - "W": { - "x_min": 0, - "x_max": 1263.890625, - "ha": 1351, - "o": "m 1263 1013 l 995 0 l 859 0 l 627 837 l 405 0 l 265 0 l 0 1013 l 136 1013 l 342 202 l 556 1013 l 701 1013 l 921 207 l 1133 1012 l 1263 1013 " - }, - ">": { - "x_min": 18.0625, - "x_max": 774, - "ha": 792, - "o": "m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 " - }, - "v": { - "x_min": 0, - "x_max": 675.15625, - "ha": 761, - "o": "m 675 738 l 404 0 l 272 0 l 0 738 l 133 737 l 340 147 l 541 737 l 675 738 " - }, - "τ": { - "x_min": 0.28125, - "x_max": 644.5, - "ha": 703, - "o": "m 644 628 l 382 628 l 382 179 q 388 120 382 137 q 436 91 401 91 q 474 94 447 91 q 504 97 501 97 l 504 0 q 454 -9 482 -5 q 401 -14 426 -14 q 278 67 308 -14 q 260 233 260 118 l 260 628 l 0 628 l 0 739 l 644 739 l 644 628 " - }, - "ξ": { - "x_min": 0, - "x_max": 624.9375, - "ha": 699, - "o": "m 624 -37 q 608 -153 624 -96 q 563 -278 593 -211 l 454 -278 q 491 -183 486 -200 q 511 -83 511 -126 q 484 -23 511 -44 q 370 1 452 1 q 323 0 354 1 q 283 -1 293 -1 q 84 76 169 -1 q 0 266 0 154 q 56 431 0 358 q 197 538 108 498 q 94 613 134 562 q 54 730 54 665 q 77 823 54 780 q 143 901 101 867 l 27 901 l 27 1012 l 576 1012 l 576 901 l 380 901 q 244 863 303 901 q 178 745 178 820 q 312 600 178 636 q 532 582 380 582 l 532 479 q 276 455 361 479 q 118 281 118 410 q 165 173 118 217 q 274 120 208 133 q 494 101 384 110 q 624 -37 624 76 " - }, - "&": { - "x_min": -3, - "x_max": 894.25, - "ha": 992, - "o": "m 894 0 l 725 0 l 624 123 q 471 0 553 40 q 306 -41 390 -41 q 168 -7 231 -41 q 62 92 105 26 q 14 187 31 139 q -3 276 -3 235 q 55 433 -3 358 q 248 581 114 508 q 170 689 196 640 q 137 817 137 751 q 214 985 137 922 q 384 1041 284 1041 q 548 988 483 1041 q 622 824 622 928 q 563 666 622 739 q 431 556 516 608 l 621 326 q 649 407 639 361 q 663 493 653 426 l 781 493 q 703 229 781 352 l 894 0 m 504 818 q 468 908 504 877 q 384 940 433 940 q 293 907 331 940 q 255 818 255 875 q 289 714 255 767 q 363 628 313 678 q 477 729 446 682 q 504 818 504 771 m 556 209 l 314 499 q 179 395 223 449 q 135 283 135 341 q 146 222 135 253 q 183 158 158 192 q 333 80 241 80 q 556 209 448 80 " - }, - "Λ": { - "x_min": 0, - "x_max": 862.5, - "ha": 942, - "o": "m 862 0 l 719 0 l 426 847 l 143 0 l 0 0 l 356 1013 l 501 1013 l 862 0 " - }, - "I": { - "x_min": 41, - "x_max": 180, - "ha": 293, - "o": "m 180 0 l 41 0 l 41 1013 l 180 1013 l 180 0 " - }, - "G": { - "x_min": 0, - "x_max": 921, - "ha": 1011, - "o": "m 921 0 l 832 0 l 801 136 q 655 15 741 58 q 470 -28 568 -28 q 126 133 259 -28 q 0 499 0 284 q 125 881 0 731 q 486 1043 259 1043 q 763 957 647 1043 q 905 709 890 864 l 772 709 q 668 866 747 807 q 486 926 589 926 q 228 795 322 926 q 142 507 142 677 q 228 224 142 342 q 483 94 323 94 q 712 195 625 94 q 796 435 796 291 l 477 435 l 477 549 l 921 549 l 921 0 " - }, - "ΰ": { - "x_min": 0, - "x_max": 617, - "ha": 725, - "o": "m 524 800 l 414 800 l 414 925 l 524 925 l 524 800 m 183 800 l 73 800 l 73 925 l 183 925 l 183 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 489 1040 l 300 819 l 216 819 l 351 1040 l 489 1040 " - }, - "`": { - "x_min": 0, - "x_max": 138.890625, - "ha": 236, - "o": "m 138 699 l 0 699 l 0 861 q 36 974 0 929 q 138 1041 72 1020 l 138 977 q 82 931 95 969 q 69 839 69 893 l 138 839 l 138 699 " - }, - "·": { - "x_min": 0, - "x_max": 142, - "ha": 239, - "o": "m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 " - }, - "Υ": { - "x_min": 0.328125, - "x_max": 819.515625, - "ha": 889, - "o": "m 819 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 " - }, - "r": { - "x_min": 0, - "x_max": 355.5625, - "ha": 432, - "o": "m 355 621 l 343 621 q 179 569 236 621 q 122 411 122 518 l 122 0 l 0 0 l 0 737 l 117 737 l 117 604 q 204 719 146 686 q 355 753 262 753 l 355 621 " - }, - "x": { - "x_min": 0, - "x_max": 675, - "ha": 764, - "o": "m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 " - }, - "μ": { - "x_min": 0, - "x_max": 696.609375, - "ha": 747, - "o": "m 696 -4 q 628 -14 657 -14 q 498 97 513 -14 q 422 8 470 41 q 313 -24 374 -24 q 207 3 258 -24 q 120 80 157 31 l 120 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 172 124 246 q 308 82 216 82 q 451 177 402 82 q 492 358 492 254 l 492 738 l 616 738 l 616 214 q 623 136 616 160 q 673 92 636 92 q 696 95 684 92 l 696 -4 " - }, - "h": { - "x_min": 0, - "x_max": 615, - "ha": 724, - "o": "m 615 472 l 615 0 l 490 0 l 490 454 q 456 590 490 535 q 338 654 416 654 q 186 588 251 654 q 122 436 122 522 l 122 0 l 0 0 l 0 1013 l 122 1013 l 122 633 q 218 727 149 694 q 362 760 287 760 q 552 676 484 760 q 615 472 615 600 " - }, - ".": { - "x_min": 0, - "x_max": 142, - "ha": 239, - "o": "m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 " - }, - "φ": { - "x_min": -2, - "x_max": 878, - "ha": 974, - "o": "m 496 -279 l 378 -279 l 378 -17 q 101 88 204 -17 q -2 367 -2 194 q 68 626 -2 510 q 283 758 151 758 l 283 646 q 167 537 209 626 q 133 373 133 462 q 192 177 133 254 q 378 93 259 93 l 378 758 q 445 764 426 763 q 476 765 464 765 q 765 659 653 765 q 878 377 878 553 q 771 96 878 209 q 496 -17 665 -17 l 496 -279 m 496 93 l 514 93 q 687 183 623 93 q 746 380 746 265 q 691 569 746 491 q 522 658 629 658 l 496 656 l 496 93 " - }, - ";": { - "x_min": 0, - "x_max": 142, - "ha": 239, - "o": "m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 -12 q 105 -132 142 -82 q 0 -206 68 -182 l 0 -138 q 58 -82 43 -123 q 68 0 68 -56 l 0 0 l 0 151 l 142 151 l 142 -12 " - }, - "f": { - "x_min": 0, - "x_max": 378, - "ha": 472, - "o": "m 378 638 l 246 638 l 246 0 l 121 0 l 121 638 l 0 638 l 0 738 l 121 738 q 137 935 121 887 q 290 1028 171 1028 q 320 1027 305 1028 q 378 1021 334 1026 l 378 908 q 323 918 346 918 q 257 870 273 918 q 246 780 246 840 l 246 738 l 378 738 l 378 638 " - }, - "“": { - "x_min": 1, - "x_max": 348.21875, - "ha": 454, - "o": "m 140 670 l 1 670 l 1 830 q 37 943 1 897 q 140 1011 74 990 l 140 947 q 82 900 97 940 q 68 810 68 861 l 140 810 l 140 670 m 348 670 l 209 670 l 209 830 q 245 943 209 897 q 348 1011 282 990 l 348 947 q 290 900 305 940 q 276 810 276 861 l 348 810 l 348 670 " - }, - "A": { - "x_min": 0.03125, - "x_max": 906.953125, - "ha": 1008, - "o": "m 906 0 l 756 0 l 648 303 l 251 303 l 142 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 610 421 l 452 867 l 293 421 l 610 421 " - }, - "6": { - "x_min": 53, - "x_max": 739, - "ha": 792, - "o": "m 739 312 q 633 62 739 162 q 400 -31 534 -31 q 162 78 257 -31 q 53 439 53 206 q 178 859 53 712 q 441 986 284 986 q 643 912 559 986 q 732 713 732 833 l 601 713 q 544 830 594 786 q 426 875 494 875 q 268 793 331 875 q 193 517 193 697 q 301 597 240 570 q 427 624 362 624 q 643 540 552 624 q 739 312 739 451 m 603 298 q 540 461 603 400 q 404 516 484 516 q 268 461 323 516 q 207 300 207 401 q 269 137 207 198 q 405 83 325 83 q 541 137 486 83 q 603 298 603 197 " - }, - "‘": { - "x_min": 1, - "x_max": 139.890625, - "ha": 236, - "o": "m 139 670 l 1 670 l 1 830 q 37 943 1 897 q 139 1011 74 990 l 139 947 q 82 900 97 940 q 68 810 68 861 l 139 810 l 139 670 " - }, - "ϊ": { - "x_min": -70, - "x_max": 283, - "ha": 361, - "o": "m 283 800 l 173 800 l 173 925 l 283 925 l 283 800 m 40 800 l -70 800 l -70 925 l 40 925 l 40 800 m 283 3 q 232 -10 257 -5 q 181 -15 206 -15 q 84 26 118 -15 q 41 200 41 79 l 41 737 l 166 737 l 167 215 q 171 141 167 157 q 225 101 182 101 q 247 103 238 101 q 283 112 256 104 l 283 3 " - }, - "π": { - "x_min": -0.21875, - "x_max": 773.21875, - "ha": 857, - "o": "m 773 -7 l 707 -11 q 575 40 607 -11 q 552 174 552 77 l 552 226 l 552 626 l 222 626 l 222 0 l 97 0 l 97 626 l 0 626 l 0 737 l 773 737 l 773 626 l 676 626 l 676 171 q 695 103 676 117 q 773 90 714 90 l 773 -7 " - }, - "ά": { - "x_min": 0, - "x_max": 765.5625, - "ha": 809, - "o": "m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 727 407 760 q 563 637 524 695 l 563 738 l 685 738 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 95 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 m 604 1040 l 415 819 l 332 819 l 466 1040 l 604 1040 " - }, - "O": { - "x_min": 0, - "x_max": 958, - "ha": 1057, - "o": "m 485 1041 q 834 882 702 1041 q 958 512 958 734 q 834 136 958 287 q 481 -26 702 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 728 q 485 1041 263 1041 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 669 q 480 912 640 912 q 226 784 321 912 q 142 504 142 670 q 226 224 142 339 q 480 98 319 98 " - }, - "n": { - "x_min": 0, - "x_max": 615, - "ha": 724, - "o": "m 615 463 l 615 0 l 490 0 l 490 454 q 453 592 490 537 q 331 656 410 656 q 178 585 240 656 q 117 421 117 514 l 117 0 l 0 0 l 0 738 l 117 738 l 117 630 q 218 728 150 693 q 359 764 286 764 q 552 675 484 764 q 615 463 615 593 " - }, - "3": { - "x_min": 54, - "x_max": 737, - "ha": 792, - "o": "m 737 284 q 635 55 737 141 q 399 -25 541 -25 q 156 52 248 -25 q 54 308 54 140 l 185 308 q 245 147 185 202 q 395 96 302 96 q 539 140 484 96 q 602 280 602 190 q 510 429 602 390 q 324 454 451 454 l 324 565 q 487 584 441 565 q 565 719 565 617 q 515 835 565 791 q 395 879 466 879 q 255 824 307 879 q 203 661 203 769 l 78 661 q 166 909 78 822 q 387 992 250 992 q 603 921 513 992 q 701 723 701 844 q 669 607 701 656 q 578 524 637 558 q 696 434 655 499 q 737 284 737 369 " - }, - "9": { - "x_min": 53, - "x_max": 739, - "ha": 792, - "o": "m 739 524 q 619 94 739 241 q 362 -32 516 -32 q 150 47 242 -32 q 59 244 59 126 l 191 244 q 246 129 191 176 q 373 82 301 82 q 526 161 466 82 q 597 440 597 255 q 363 334 501 334 q 130 432 216 334 q 53 650 53 521 q 134 880 53 786 q 383 986 226 986 q 659 841 566 986 q 739 524 739 719 m 388 449 q 535 514 480 449 q 585 658 585 573 q 535 805 585 744 q 388 873 480 873 q 242 809 294 873 q 191 658 191 745 q 239 514 191 572 q 388 449 292 449 " - }, - "l": { - "x_min": 41, - "x_max": 166, - "ha": 279, - "o": "m 166 0 l 41 0 l 41 1013 l 166 1013 l 166 0 " - }, - "¤": { - "x_min": 40.09375, - "x_max": 728.796875, - "ha": 825, - "o": "m 728 304 l 649 224 l 512 363 q 383 331 458 331 q 256 363 310 331 l 119 224 l 40 304 l 177 441 q 150 553 150 493 q 184 673 150 621 l 40 818 l 119 898 l 267 749 q 321 766 291 759 q 384 773 351 773 q 447 766 417 773 q 501 749 477 759 l 649 898 l 728 818 l 585 675 q 612 618 604 648 q 621 553 621 587 q 591 441 621 491 l 728 304 m 384 682 q 280 643 318 682 q 243 551 243 604 q 279 461 243 499 q 383 423 316 423 q 487 461 449 423 q 525 553 525 500 q 490 641 525 605 q 384 682 451 682 " - }, - "κ": { - "x_min": 0, - "x_max": 632.328125, - "ha": 679, - "o": "m 632 0 l 482 0 l 225 384 l 124 288 l 124 0 l 0 0 l 0 738 l 124 738 l 124 446 l 433 738 l 596 738 l 312 466 l 632 0 " - }, - "4": { - "x_min": 48, - "x_max": 742.453125, - "ha": 792, - "o": "m 742 243 l 602 243 l 602 0 l 476 0 l 476 243 l 48 243 l 48 368 l 476 958 l 602 958 l 602 354 l 742 354 l 742 243 m 476 354 l 476 792 l 162 354 l 476 354 " - }, - "p": { - "x_min": 0, - "x_max": 685, - "ha": 786, - "o": "m 685 364 q 598 96 685 205 q 350 -23 504 -23 q 121 89 205 -23 l 121 -278 l 0 -278 l 0 738 l 121 738 l 121 633 q 220 726 159 691 q 351 761 280 761 q 598 636 504 761 q 685 364 685 522 m 557 371 q 501 560 557 481 q 330 651 437 651 q 162 559 223 651 q 108 366 108 479 q 162 177 108 254 q 333 87 224 87 q 502 178 441 87 q 557 371 557 258 " - }, - "‡": { - "x_min": 0, - "x_max": 777, - "ha": 835, - "o": "m 458 238 l 458 0 l 319 0 l 319 238 l 0 238 l 0 360 l 319 360 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 l 777 804 l 777 683 l 458 683 l 458 360 l 777 360 l 777 238 l 458 238 " - }, - "ψ": { - "x_min": 0, - "x_max": 808, - "ha": 907, - "o": "m 465 -278 l 341 -278 l 341 -15 q 87 102 180 -15 q 0 378 0 210 l 0 739 l 133 739 l 133 379 q 182 195 133 275 q 341 98 242 98 l 341 922 l 465 922 l 465 98 q 623 195 563 98 q 675 382 675 278 l 675 742 l 808 742 l 808 381 q 720 104 808 213 q 466 -13 627 -13 l 465 -278 " - }, - "η": { - "x_min": 0.78125, - "x_max": 697, - "ha": 810, - "o": "m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 720 124 755 q 200 630 193 686 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 " - } - }, - "cssFontWeight": "normal", - "ascender": 1189, - "underlinePosition": -100, - "cssFontStyle": "normal", - "boundingBox": { "yMin": -334, "xMin": -111, "yMax": 1189, "xMax": 1672 }, - "resolution": 1000, - "original_font_information": { - "postscript_name": "Helvetiker-Regular", - "version_string": "Version 1.00 2004 initial release", - "vendor_url": "http://www.magenta.gr/", - "full_font_name": "Helvetiker", - "font_family_name": "Helvetiker", - "copyright": "Copyright (c) Μagenta ltd, 2004", - "description": "", - "trademark": "", - "designer": "", - "designer_url": "", - "unique_font_identifier": "Μagenta ltd:Helvetiker:22-10-104", - "license_url": "http://www.ellak.gr/fonts/MgOpen/license.html", - "license_description": "Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license (\"Fonts\") and associated documentation files (the \"Font Software\"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \r\n\r\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\r\n\r\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word \"MgOpen\", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\r\n\r\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the \"MgOpen\" name.\r\n\r\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \r\n\r\nTHE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.", - "manufacturer_name": "Μagenta ltd", - "font_sub_family_name": "Regular" - }, - "descender": -334, - "familyName": "Helvetiker", - "lineHeight": 1522, - "underlineThickness": 50 -} diff --git a/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Bold.ttf b/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Bold.ttf deleted file mode 100644 index bef439f3b9a884d4377c193ea52f104e820afc98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87696 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 Z?uN)pxi0>?VH-^Ty3==XU7v${{}1B`zwrP7 diff --git a/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-BoldItalic.ttf b/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-BoldItalic.ttf deleted file mode 100644 index 642dd0589f0053acfd4f32100e7004c6e82df8fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95100 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 DWt1{X diff --git a/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-ExtraLightItalic.ttf b/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-ExtraLightItalic.ttf deleted file mode 100644 index 47e4a4f46a2b7791484245fa936ac8bcf3979535..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94404 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 diff --git a/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Light.ttf b/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-Light.ttf deleted file mode 100644 index b6fb475d94c89789bd770d212657e78ebc2a031b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88284 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 F8n_CGPSkSu%CPJ{tCQ*8`^P>_wONn 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 diff --git a/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-LightItalic.ttf b/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-LightItalic.ttf deleted file mode 100644 index 48fec001da3efb2638ec15f034bc6bd685a03cac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94720 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 diff --git a/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-MediumItalic.ttf b/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-MediumItalic.ttf deleted file mode 100644 index 6916e76540838d9a2302eb449900e357b4464db5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94876 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 H^|Jhb<`UPU diff --git a/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-SemiBold.ttf b/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-SemiBold.ttf deleted file mode 100644 index b828c3aef59427e7cf1b7da559825c3a6b145832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87756 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 _w-JE;%-h9{$+aU=Q_PeOm;si0-M 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%0Dnh5z7N92*(5cJ?D8;$hcI24_==T!P33wC| z$sdrV>Lctq1dq*UKoaG@Bt$M;os-vr=Cb*NKizM)ePej}j`DJ30xc>j9jaDVlx3)E z%iA^}3k*TBu!~o>?zY?O3uI2_`u1=7yfj4M%C?v>u-;_$q{C}FJ>o>VE9Te3-;G8) z4dt52;F7HVF$`=zFWh&8 z+;3Zykupd0OFKWmSzR6~JY&|l*OD{FF)|@DT#C#x8u-!<&qp+^SNYW$<;Y)>a>-$J zg$!@fSFkqa5=u3b1xx};*HMIyN$Ktr+RFU%P^ObpU>&h#xI+8`?GfZC>>BYNEgZ** zlvazDFPrJ%e-!xL@6MP(tytU#r{>O>-b#=3RzIOs@5S3wg_B5w@#A*LKSZhk{}6Du zELWx{n*{hMd=?G!a4EEm0vz+TS?8gYm&IF;;rv=?jU5qhJ#9=t6Mf@k`CS4keJ9a& zqTCHy`Vc1z&GV+GbpF4*StmOl3+dm;xo5s(?~iAOQyMKLVotcPxoXd6iz~G|=4UPa zcVgD#sA%s8{0Z#Lf5{**lWihSQF$FVKtlLeX-+q+zg~c^ox6Aro@64fQ?>yP8W6bn z3^@q+t5}0P83Rshct_y0WIePeOf@hC3MMr!PCY&iIj1v5@m(sKdr6-CAUHLgZQGSUV39_@rp;Wi

QJ+TmK{hA4eu3+Fr=A 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 diff --git a/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-ThinItalic.ttf b/src/dashboard/assets/fonts/Roboto_Mono/static/RobotoMono-ThinItalic.ttf deleted file mode 100644 index a1b2e5a9ece5081280bb2080e68e4bfcfaebc617..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94052 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 AsQ>@~ diff --git a/src/dashboard/components/SequencerGrid.tsx b/src/dashboard/components/SequencerGrid.tsx deleted file mode 100644 index b924002..0000000 --- a/src/dashboard/components/SequencerGrid.tsx +++ /dev/null @@ -1,134 +0,0 @@ -import { ChangeEventHandler, useState } from "react"; -import { NumberInput } from "./FormInputs"; -import { HelpIcon } from "./HelpIcon"; -import { HELP_TEXT } from "../../shared/helpText"; - -type TrackChannel = string | { name: string }; - -type SequencerGridProps = { - track: { channels?: TrackChannel[] } | null; - pattern: Record; - bpm: number; - isPlaying: boolean; - currentStep: number; - onToggleStep: (channelName: string, stepIndex: number) => void; - onBpmChange: ChangeEventHandler; -}; - -export const SequencerGrid = ({ - track, - pattern, - bpm, - isPlaying, - currentStep, - onToggleStep, - onBpmChange, -}: SequencerGridProps) => { - const [isCollapsed, setIsCollapsed] = useState(false); - - const channels = track?.channels || []; - const steps = 16; - - if (channels.length === 0) { - return ( -

- ); - } - - return ( -
-
-
- - {!isCollapsed && } -
- - {!isCollapsed && ( -
- BPM: - - -
- )} -
- - {!isCollapsed && ( -
-
-
- {Array.from({ length: steps }).map((_, stepIndex) => ( -
- {stepIndex + 1} -
- ))} -
- -
- {channels.map((channel) => { - const channelName = - typeof channel === "string" ? channel : channel.name; - const channelSteps = pattern[channelName] || []; - - return ( -
-
- {channelName} -
- - {Array.from({ length: steps }).map((_, stepIndex) => { - const isActive = channelSteps.includes(stepIndex); - const isCurrentStep = isPlaying && currentStep === stepIndex; - - return ( -
- ); - })} -
-
- )} -
- ); -}; - diff --git a/src/dashboard/core/state.ts b/src/dashboard/core/state.ts index 3a474f9..e3d192e 100644 --- a/src/dashboard/core/state.ts +++ b/src/dashboard/core/state.ts @@ -14,7 +14,6 @@ export const flashingConstructorsAtom = atom>(new Set()); export const recordingStateAtom = atom>( {} ); -export const helpTextAtom = atom(""); export const useFlashingChannels = (): [ Set, diff --git a/src/dashboard/shared/ProgressBar.tsx b/src/dashboard/shared/ProgressBar.tsx deleted file mode 100644 index 4f8bfca..0000000 --- a/src/dashboard/shared/ProgressBar.tsx +++ /dev/null @@ -1,34 +0,0 @@ -type TerminalProgressBarProps = { - value: number; - max?: number; - width?: number; - label?: string; -}; - -export const TerminalProgressBar = ({ - value, - max = 100, - width = 100, - label, -}: TerminalProgressBarProps) => { - const percentage = Math.min((value / max) * 100, 100); - const filledWidth = Math.round((percentage / 100) * width); - - return ( -
- {label && ( - {label}: - )} -
-
-
- - {Math.round(percentage)}% - -
- ); -}; - diff --git a/src/projector/templates/ThreeTemplate.ts b/src/projector/templates/ThreeTemplate.ts deleted file mode 100644 index 4e9fb18..0000000 --- a/src/projector/templates/ThreeTemplate.ts +++ /dev/null @@ -1,120 +0,0 @@ -import * as THREE from "three"; -import BaseThreeJsModule from "../helpers/threeBase"; - -export class ThreeTemplate extends BaseThreeJsModule { - static title = "ThreeTemplate"; - static category = "primary"; - - static methods = [...BaseThreeJsModule.methods]; - - customGroup: THREE.Group | null; - customObjects: Array>; - - constructor(container) { - super(container); - - this.name = ThreeTemplate.title; - this.customGroup = new THREE.Group(); - this.customObjects = []; - this.primary = this.primary.bind(this); - this.init(); - } - - init() { - if (!this.renderer || !this.scene || !this.camera || this.destroyed) return; - this.createCustomObjects(); - this.setModel(this.customGroup); - } - - createCustomObjects() { - if (!this.renderer || !this.scene || !this.camera || this.destroyed) return; - - const geometry = new THREE.BoxGeometry(1, 1, 1); - const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); - const cube = new THREE.Mesh(geometry, material); - - this.customGroup.add(cube); - this.customObjects.push(cube); - - const sphereGeometry = new THREE.SphereGeometry(0.5, 32, 32); - const sphereMaterial = new THREE.MeshBasicMaterial({ color: 0x0000ff }); - const sphere = new THREE.Mesh(sphereGeometry, sphereMaterial); - - sphere.position.set(2, 0, 0); - this.customGroup.add(sphere); - this.customObjects.push(sphere); - } - - animateLoop() { - if (!this.renderer || !this.scene || !this.camera || this.destroyed) return; - - this.customObjects.forEach((obj) => { - obj.rotation.x += 0.01; - obj.rotation.y += 0.01; - }); - } - - primary({ duration = 0 } = {}) { - if (!this.renderer || !this.scene || !this.camera || this.destroyed) return; - - const targetColor = new THREE.Color( - Math.random(), - Math.random(), - Math.random() - ); - - this.customObjects.forEach((obj) => { - if (duration > 0) { - const initialColor = obj.material.color.clone(); - const startTime = performance.now(); - - const animate = () => { - const currentTime = performance.now(); - const elapsed = (currentTime - startTime) / 1000; - const t = Math.min(elapsed / duration, 1); - - obj.material.color.copy(initialColor).lerp(targetColor, t); - obj.material.needsUpdate = true; - - if (t < 1) { - requestAnimationFrame(animate); - } - }; - - animate(); - } else { - obj.material.color.copy(targetColor); - obj.material.needsUpdate = true; - } - }); - - this.render(); - } - - destroy() { - if (!this.renderer || !this.scene || !this.camera || this.destroyed) return; - - this.customObjects.forEach((obj) => { - if (obj.geometry) obj.geometry.dispose(); - if (obj.material) { - if (Array.isArray(obj.material)) { - obj.material.forEach((mat) => mat.dispose()); - } else { - obj.material.dispose(); - } - } - this.customGroup.remove(obj); - }); - this.customObjects = []; - - if (this.customGroup) { - this.scene.remove(this.customGroup); - this.customGroup = null; - } - - super.destroy(); - } -} - -export default ThreeTemplate; - diff --git a/src/shared/helpText.ts b/src/shared/helpText.ts index adfe647..634365c 100644 --- a/src/shared/helpText.ts +++ b/src/shared/helpText.ts @@ -43,7 +43,5 @@ export const HELP_TEXT: Record = { "UDP port for receiving OSC messages. Default: 8000. Configure your OSC sender to match this port. OSC naming: use /track/name for tracks, /ch/name for channels.", sequencerMode: "Choose your signal source. Sequencer (default): program patterns with a 16-step grid. External: connect MIDI/OSC hardware for live performance.", - sequencerGrid: - "Program 16-step patterns here. Each row is a channel; lit steps trigger the channel on that beat.", sequencerBpm: "Set the sequencer tempo in BPM. Controls playback speed when using the sequencer.", }; diff --git a/src/shared/midi/midiUtils.ts b/src/shared/midi/midiUtils.ts index a4aeb59..b1eea80 100644 --- a/src/shared/midi/midiUtils.ts +++ b/src/shared/midi/midiUtils.ts @@ -1,28 +1,3 @@ -export const MIDI_INPUT_NAME = "IAC Driver Bus 1"; - -export const CHANNEL_NOTES: Record = { - G8: "ch1", - "F#8": "ch2", - F8: "ch3", - E8: "ch4", - "D#8": "ch5", - D8: "ch6", - "C#8": "ch7", - C8: "ch8", - B7: "ch9", - "A#7": "ch10", - A7: "ch11", - "G#7": "ch12", - G7: "ch13", - "F#7": "ch14", - F7: "ch15", - E7: "ch16", -}; - -export const NOTE_TO_CHANNEL: Record = Object.fromEntries( - Object.entries(CHANNEL_NOTES).map(([note, channel]) => [channel, note]) -); - export const NOTE_OFFSETS: Record = { C: 0, "C#": 1, @@ -132,26 +107,6 @@ export function parseMidiTriggerValue(input: unknown, noteMatchMode: unknown): n return noteNameToPitchClass(trimmed); } -export function noteNameToNumber(noteName: unknown): number | null { - if (typeof noteName !== "string") return null; - const match = noteName.trim().match(/^([A-G](?:#|b)?)(-?\d+)$/); - if (!match) return null; - const note = match[1]; - const octave = parseInt(match[2], 10); - const semitone = NOTE_OFFSETS[note]; - if (semitone === undefined || Number.isNaN(octave)) return null; - return (octave + 2) * 12 + semitone; -} - -export function buildChannelNotesMap(): Record { - const map: Record = {}; - Object.entries(CHANNEL_NOTES).forEach(([noteName, channelName]) => { - const num = noteNameToNumber(noteName); - if (num !== null) map[num] = channelName; - }); - return map; -} - export function resolveTrackTrigger( track: unknown, inputType: unknown, @@ -244,36 +199,6 @@ export function resolveChannelTrigger( return ""; } -export function buildTrackNotesMapFromTracks( - tracks: unknown, - globalMappings: unknown, - currentInputType: unknown = "midi" -): Record { - const map: Record = {}; - if (!Array.isArray(tracks)) { - return map; - } - - tracks.forEach((track) => { - const t = track && typeof track === "object" ? (track as Record) : null; - const trackTrigger = resolveTrackTrigger(track, currentInputType, globalMappings); - - if ( - t && - trackTrigger !== "" && - trackTrigger !== null && - trackTrigger !== undefined && - t.id && - currentInputType === "midi" - ) { - const pc = parsePitchClass(trackTrigger); - if (pc !== null) map[pc] = t.id; - } - }); - - return map; -} - export function buildMidiConfig( userData: unknown, globalMappings: unknown, diff --git a/src/types/userData.ts b/src/types/userData.ts index 02cc301..38a7f8f 100644 --- a/src/types/userData.ts +++ b/src/types/userData.ts @@ -2,33 +2,6 @@ type InputType = "midi" | "osc" | "audio" | "file"; export type NoteMatchMode = "pitchClass" | "exactNote"; -export type AudioBand = "low" | "medium" | "high"; - -export type AudioBandThresholds = Record; - -export type TrackSignalBandThresholds = { - low: number; - medium: number; - high: number; -}; - -export type TrackAudioSignalSettings = { - thresholds: TrackSignalBandThresholds; - minIntervalMs: number; -}; - -export type TrackFileSignalSettings = { - thresholds: TrackSignalBandThresholds; - minIntervalMs: number; - assetRelPath: string; - assetName: string; -}; - -export type TrackSignalSettings = { - audio: TrackAudioSignalSettings; - file: TrackFileSignalSettings; -}; - export interface InputConfig { type: InputType; deviceId?: string; From 0be9015db154954aa73a11d8b85e22b0c78c8572 Mon Sep 17 00:00:00 2001 From: Dan Date: Sun, 7 Jun 2026 14:23:09 +0100 Subject: [PATCH 19/27] refactor(consistency): align exports and projector logging with house style - ErrorBoundary: default export to named export, matching the rest of the component layer; update the single import site - audio/device/file dashboard hooks: export function to export const, to match the other hooks - ipcFromDashboard and methodExecutor: route console.* through the projector logger (silences debug logs in packaged builds; logger.error keeps the same always-on behaviour as console.error) No behaviour change. typecheck, test:unit, lint and build all pass. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/dashboard/Dashboard.js | 2 +- src/dashboard/components/ErrorBoundary.tsx | 4 +-- .../core/hooks/useDashboardAudioCapture.ts | 4 +-- .../core/hooks/useDashboardAudioDevices.ts | 2 +- .../core/hooks/useDashboardFileAudio.ts | 4 +-- src/projector/internal/ipcFromDashboard.ts | 25 ++++++++++--------- .../internal/track/methodExecutor.ts | 4 +-- 7 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/dashboard/Dashboard.js b/src/dashboard/Dashboard.js index 708e2cf..e9cf78d 100644 --- a/src/dashboard/Dashboard.js +++ b/src/dashboard/Dashboard.js @@ -34,7 +34,7 @@ import { useDashboardUpdateConfig } from "./core/hooks/useDashboardUpdateConfig" import { useDashboardAudioDevices } from "./core/hooks/useDashboardAudioDevices"; import { useDashboardAudioCapture } from "./core/hooks/useDashboardAudioCapture"; import { useDashboardFileAudio } from "./core/hooks/useDashboardFileAudio"; -import ErrorBoundary from "./components/ErrorBoundary"; +import { ErrorBoundary } from "./components/ErrorBoundary"; const Dashboard = () => { const [userData, setUserData] = useAtom(userDataAtom); diff --git a/src/dashboard/components/ErrorBoundary.tsx b/src/dashboard/components/ErrorBoundary.tsx index cf0ba90..830ae11 100644 --- a/src/dashboard/components/ErrorBoundary.tsx +++ b/src/dashboard/components/ErrorBoundary.tsx @@ -9,7 +9,7 @@ type ErrorBoundaryState = { errorInfo: ErrorInfo | null; }; -class ErrorBoundary extends Component { +export class ErrorBoundary extends Component { constructor(props: ErrorBoundaryProps) { super(props); this.state = { hasError: false, error: null, errorInfo: null }; @@ -55,5 +55,3 @@ class ErrorBoundary extends Component { } } -export default ErrorBoundary; - diff --git a/src/dashboard/core/hooks/useDashboardAudioCapture.ts b/src/dashboard/core/hooks/useDashboardAudioCapture.ts index 5b07d80..3402145 100644 --- a/src/dashboard/core/hooks/useDashboardAudioCapture.ts +++ b/src/dashboard/core/hooks/useDashboardAudioCapture.ts @@ -33,7 +33,7 @@ function bandForHz(hz: number): Band | null { const dbToLin = (db: number) => (Number.isFinite(db) ? Math.pow(10, db / 20) : 0); -export function useDashboardAudioCapture({ +export const useDashboardAudioCapture = ({ enabled, deviceId, emitBand, @@ -45,7 +45,7 @@ export function useDashboardAudioCapture({ emitBand: (payload: { channelName: Band; velocity: number }) => Promise; thresholds?: Partial | null; minIntervalMs?: number | null; -}) { +}) => { const zero: Levels = { low: 0, medium: 0, high: 0 }; const negInf: PeaksDb = { low: -Infinity, medium: -Infinity, high: -Infinity }; const [state, setState] = useState({ diff --git a/src/dashboard/core/hooks/useDashboardAudioDevices.ts b/src/dashboard/core/hooks/useDashboardAudioDevices.ts index 013a424..67ff840 100644 --- a/src/dashboard/core/hooks/useDashboardAudioDevices.ts +++ b/src/dashboard/core/hooks/useDashboardAudioDevices.ts @@ -2,7 +2,7 @@ import { useCallback, useEffect, useState } from "react"; type AudioDevice = { id: string; label: string }; -export function useDashboardAudioDevices(enabled: boolean) { +export const useDashboardAudioDevices = (enabled: boolean) => { const [devices, setDevices] = useState([]); const [error, setError] = useState(null); diff --git a/src/dashboard/core/hooks/useDashboardFileAudio.ts b/src/dashboard/core/hooks/useDashboardFileAudio.ts index 3c22c66..d15d3e5 100644 --- a/src/dashboard/core/hooks/useDashboardFileAudio.ts +++ b/src/dashboard/core/hooks/useDashboardFileAudio.ts @@ -59,7 +59,7 @@ const getBridgeWorkspace = () => { return w; }; -export function useDashboardFileAudio({ +export const useDashboardFileAudio = ({ enabled, assetRelPath, emitBand, @@ -71,7 +71,7 @@ export function useDashboardFileAudio({ emitBand: (payload: { channelName: Band; velocity: number }) => Promise; thresholds?: Partial | null; minIntervalMs?: number | null; -}) { +}) => { const zero: Levels = useMemo(() => ({ low: 0, medium: 0, high: 0 }), []); const negInf: PeaksDb = useMemo( () => ({ low: -Infinity, medium: -Infinity, high: -Infinity }), diff --git a/src/projector/internal/ipcFromDashboard.ts b/src/projector/internal/ipcFromDashboard.ts index a819ab7..762e8c8 100644 --- a/src/projector/internal/ipcFromDashboard.ts +++ b/src/projector/internal/ipcFromDashboard.ts @@ -1,4 +1,5 @@ import { find, isEqual } from "lodash"; +import logger from "../helpers/logger"; import { getMessaging } from "./bridge"; import { normalizeDashboardProjectorMessage } from "../../shared/validation/dashboardProjectorIpcValidation"; import { resolveReloadTarget } from "./track/reloadTarget"; @@ -41,7 +42,7 @@ export function initDashboardIpc(this: DashboardIpcContext) { try { const msg = normalizeDashboardProjectorMessage(data); if (!msg) { - console.error("❌ [PROJECTOR-IPC] Invalid IPC message received:", data); + logger.error("❌ [PROJECTOR-IPC] Invalid IPC message received:", data); return; } const type = msg.type; @@ -66,7 +67,7 @@ export function initDashboardIpc(this: DashboardIpcContext) { if (type === "toggleAspectRatioStyle") { if (!(props as { name?: unknown } | null)?.name) { - console.error("❌ [PROJECTOR-IPC] toggleAspectRatioStyle missing name"); + logger.error("❌ [PROJECTOR-IPC] toggleAspectRatioStyle missing name"); return; } return this.toggleAspectRatioStyle((props as { name?: unknown }).name); @@ -74,7 +75,7 @@ export function initDashboardIpc(this: DashboardIpcContext) { if (type === "setBg") { if (!(props as { value?: unknown } | null)?.value) { - console.error("❌ [PROJECTOR-IPC] setBg missing value"); + logger.error("❌ [PROJECTOR-IPC] setBg missing value"); return; } return this.setBg((props as { value?: unknown }).value); @@ -82,7 +83,7 @@ export function initDashboardIpc(this: DashboardIpcContext) { if (type === "preview-module") { if (!(props as { moduleName?: unknown } | null)?.moduleName) { - console.error("❌ [PROJECTOR-IPC] preview-module missing moduleName"); + logger.error("❌ [PROJECTOR-IPC] preview-module missing moduleName"); return; } return this.previewModule( @@ -101,7 +102,7 @@ export function initDashboardIpc(this: DashboardIpcContext) { !(props as { moduleName?: unknown } | null)?.moduleName || !(props as { methodName?: unknown } | null)?.methodName ) { - console.error( + logger.error( "❌ [PROJECTOR-IPC] trigger-preview-method missing moduleName or methodName" ); return; @@ -196,7 +197,7 @@ export function initDashboardIpc(this: DashboardIpcContext) { if (type === "track-activate") { if (!(props as { trackName?: unknown } | null)?.trackName) { - console.error("❌ [PROJECTOR-IPC] track-activate missing trackName"); + logger.error("❌ [PROJECTOR-IPC] track-activate missing trackName"); return; } return this.handleTrackSelection((props as { trackName?: unknown }).trackName); @@ -213,19 +214,19 @@ export function initDashboardIpc(this: DashboardIpcContext) { } if (!channelNumber) { - console.error( + logger.error( "❌ [PROJECTOR-IPC] channel-trigger missing channelNumber/channelName" ); return; } - console.log("🎵 [PROJECTOR-IPC] Channel trigger:", channelNumber); + logger.log("🎵 [PROJECTOR-IPC] Channel trigger:", channelNumber); return this.handleChannelMessage(`/Ableton/${channelNumber}`); } if (type === "debug-overlay-visibility") { if (typeof (props as { isOpen?: unknown } | null)?.isOpen !== "boolean") { - console.error( + logger.error( "❌ [PROJECTOR-IPC] debug-overlay-visibility missing isOpen" ); return; @@ -242,12 +243,12 @@ export function initDashboardIpc(this: DashboardIpcContext) { return; } } catch (error) { - console.error("❌ [PROJECTOR-IPC] Error processing IPC message:", error); - console.error( + logger.error("❌ [PROJECTOR-IPC] Error processing IPC message:", error); + logger.error( "❌ [PROJECTOR-IPC] Error stack:", (error as { stack?: unknown } | null)?.stack ); - console.error("❌ [PROJECTOR-IPC] Message that caused error:", data); + logger.error("❌ [PROJECTOR-IPC] Message that caused error:", data); } }); } diff --git a/src/projector/internal/track/methodExecutor.ts b/src/projector/internal/track/methodExecutor.ts index 83ada06..b41fda4 100644 --- a/src/projector/internal/track/methodExecutor.ts +++ b/src/projector/internal/track/methodExecutor.ts @@ -96,14 +96,14 @@ export async function executeMethods( const options = buildMethodOptions(methodOptions, { onInvalidRandomRange: ({ name, min, max, value }) => { if (debugEnabled) { - console.warn( + logger.warn( `[Projector] Invalid randomRange for "${name}": [${min}, ${max}] - expected numbers. Using value: ${value}` ); } }, onSwapRandomRange: ({ name, min, max }) => { if (debugEnabled) { - console.warn( + logger.warn( `[Projector] Invalid randomRange for "${name}": min (${min}) > max (${max}). Swapping values.` ); } From dbdfbf2905db96a537cb6a6af0eb77a5653d6568 Mon Sep 17 00:00:00 2001 From: Dan Date: Sun, 7 Jun 2026 14:23:09 +0100 Subject: [PATCH 20/27] docs: fact-check and simplify the markdown docs Correct inaccuracies found by auditing the docs against the code, and trim duplication: - starter modules: 16 to 22, with correct names and categories - README: fix the Electron badge (39.8.10) and source tree (.ts paths, drop src/renderer.ts and the deleted template, describe the real main process), complete the allowed-imports list, fix the built-in-methods anchor; de-duplicate the project tree, DAW and external-modes sections - GETTING_STARTED: rewrite the non-existent "Monaco" editor step to match the read-only viewer, fill the libasound stub, point install at the README - CONTRIBUTING: Node v20, double quotes and semicolons (Prettier), target develop, add the automated test commands, split validated vs recommended module rules, version 0.5.0-beta - MODULE_DEVELOPMENT: add listAssets, correct the seeded-assets list, condense the generic performance section to nw_wrld specifics - RUNTIME_TS_TESTING: repoint IPC-handler wiring to src/main/mainProcess/ipcBridge/*; consolidate the dist/runtime vs src rule - add E2E_TESTING_GUIDELINES to the PR and copilot context lists British English, no em dashes. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/PULL_REQUEST_TEMPLATE.md | 1 + .github/copilot-instructions.md | 1 + CONTRIBUTING.md | 71 +++++----- E2E_TESTING_GUIDELINES.md | 5 +- GETTING_STARTED.md | 42 +++--- MODULE_DEVELOPMENT.md | 224 +++++++------------------------ README.md | 152 ++++++++------------- RUNTIME_TS_TESTING_GUIDELINES.md | 44 ++---- 8 files changed, 178 insertions(+), 362 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 74ae4f5..36f0698 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -35,3 +35,4 @@ Anything risky, or areas to pay attention to: - `MODULE_DEVELOPMENT.md` - `CONTRIBUTING.md` - `RUNTIME_TS_TESTING_GUIDELINES.md` +- `E2E_TESTING_GUIDELINES.md` diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index c6ec6b2..1ec26c2 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -8,6 +8,7 @@ You are reviewing changes in `nw_wrld`, an Electron app with a deliberate archit - `MODULE_DEVELOPMENT.md` - `CONTRIBUTING.md` - `RUNTIME_TS_TESTING_GUIDELINES.md` +- `E2E_TESTING_GUIDELINES.md` #### Primary goal diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9ba95ab..a4ab61f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -78,7 +78,7 @@ Documentation improvements are always welcome: ### Prerequisites -- Node.js v18 or higher +- Node.js v20 or higher - Git - A code editor (VS Code recommended) - Basic familiarity with JavaScript @@ -99,19 +99,9 @@ cd nw_wrld git remote add upstream https://github.com/aagentah/nw_wrld.git ``` -### Install Dependencies +### Install and Run -```bash -npm install -``` - -### Run the App - -```bash -npm start -``` - -Two windows should open: Dashboard and Projector. +Install dependencies and start the app by following the [Installation (For Developers)](README.md#for-developers) section of the README. Two windows should open: Dashboard and Projector. ### Development Workflow @@ -142,10 +132,12 @@ git checkout -b feature/my-awesome-feature ### Formatting - 2 spaces for indentation -- Semicolons are optional but be consistent -- Use single quotes for strings +- Semicolons are required +- Use double quotes for strings - No trailing whitespace +These are enforced by Prettier. Run `npm run format` to auto-format, or `npm run format:check` to verify before submitting. + ### Comments - Add comments for complex logic @@ -169,13 +161,17 @@ pulse({ intensity = 1.5, duration = 500 }) { ### Module Structure -All modules must: +All modules must (these are validated): -1. Extend `ModuleBase` or `BaseThreeJsModule` -2. Include the required `@nwWrld` docblock metadata (`name`, `category`, `imports`) +1. Include the `@nwWrld` docblock metadata (`name`, `category`, `imports`), with `imports` non-empty +2. Use only allow-listed tokens in `imports` 3. Default-export the module class -4. Call `super()` first in constructor -5. Implement `destroy()` and call `super.destroy()` last + +You should also (recommended best practice, not validated): + +- Extend `ModuleBase` or `BaseThreeJsModule` +- Call `super()` first in the constructor +- Implement `destroy()` and call `super.destroy()` last Example: @@ -251,18 +247,20 @@ Bad: 4. **Be responsive**: Address review feedback promptly -5. **Update your branch** if main has changed: +5. **Target `develop`**: open your PR against the `develop` branch (this is required) + +6. **Update your branch** if `develop` has changed: ```bash git fetch upstream -git rebase upstream/main +git rebase upstream/develop ``` ### Review Process - Maintainers will review your PR - They may request changes -- Be patient—reviews take time +- Be patient, reviews take time - Address feedback constructively --- @@ -324,16 +322,7 @@ If your module needs assets, there are two cases: ### Module Categories -Use appropriate categories: - -- `Text` - Text-based visuals -- `GUI` - UI elements and overlays -- `3D` - Three.js 3D graphics -- `2D` - Canvas-based 2D graphics -- `Data` - Data visualization -- `Effects` - Visual effects and filters -- `Particle` - Particle systems -- `Examples` - Tutorial/example modules +The `category` field in the docblock is a free-form label; it is not validated against a fixed list. The bundled starter modules use `2D`, `3D`, and `Text`. Pick a label that describes your module and stays consistent with related modules. See [MODULE_DEVELOPMENT.md](MODULE_DEVELOPMENT.md) for guidance. --- @@ -375,7 +364,7 @@ A good bug report includes: ``` - OS: macOS 13.2 / Windows 11 - Node version: 20.x.x -- App version: 1.0.0 +- App version: 0.5.0-beta ``` ### 2. Steps to Reproduce @@ -429,6 +418,20 @@ A good feature request includes: ## Testing Guidelines +### Automated Checks + +Run these before submitting and make sure they pass: + +```bash +npm run typecheck:all +npm run test:unit +npm run test:e2e +npm run lint +npm run build:renderer +``` + +For more detail on the test suites, see [RUNTIME_TS_TESTING_GUIDELINES.md](RUNTIME_TS_TESTING_GUIDELINES.md) for runtime/unit tests and [E2E_TESTING_GUIDELINES.md](E2E_TESTING_GUIDELINES.md) for end-to-end tests. + ### Manual Testing Before submitting: diff --git a/E2E_TESTING_GUIDELINES.md b/E2E_TESTING_GUIDELINES.md index 2536e84..be7d829 100644 --- a/E2E_TESTING_GUIDELINES.md +++ b/E2E_TESTING_GUIDELINES.md @@ -12,6 +12,7 @@ This document is the standard we will follow (and enforce) for any future work i - **Boundary coverage**: Prefer tests that cross real boundaries (UI → IPC → disk JSON → projector messaging) when that’s the risk. - **No bloat**: Keep tests short, deterministic, and easy to maintain. - **Zero regression**: A failing E2E test should point to a real break (not flakiness). + - Note: `playwright.config.ts` retries up to 3 times locally, so a green local run can still mask intermittent flakiness (a test that only passed on a retry). Treat retried passes as a signal to fix the underlying instability, not as a clean result. --- @@ -22,7 +23,7 @@ This document is the standard we will follow (and enforce) for any future work i - **No fixed sleeps.** - Do not add `setTimeout`/`sleep` waits. Use Playwright auto-waiting, `expect(...).toBeVisible()`, `waitForFunction`, `expect.poll`, etc. - **No brittle selectors.** - - Prefer stable selectors. If you can’t make it stable, don’t write the test yet—fix the UI contract first. + - Prefer stable selectors. If you can’t make it stable, don’t write the test yet. Fix the UI contract first. - **No mystery diffs.** - If you can’t explain a changed line, revert it. @@ -97,7 +98,7 @@ Use “wait for truth” instead of “wait for time”: ### Scope rules: golden paths vs. small workflows - **Golden path tests**: - - 1–2 tests max + - 1-2 tests max - Prove the most important end-to-end “happy path” - Keep assertions minimal but meaningful diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md index 199d0e8..19def4e 100644 --- a/GETTING_STARTED.md +++ b/GETTING_STARTED.md @@ -22,21 +22,11 @@ This guide covers installation, setup, and basic usage of nw_wrld. ## Installation -### Developer Setup - **Requirements:** Node.js v20+ and basic terminal knowledge -```bash -# Clone the repository -git clone https://github.com/aagentah/nw_wrld.git -cd nw_wrld +To clone the repository, install dependencies, start the app, and learn what the two windows are, follow the [Installation (For Developers)](README.md#for-developers) section in the README. -# Install dependencies -npm install - -# Start the app -npm start -``` +The rest of this guide picks up from your first launch. --- @@ -55,7 +45,7 @@ You have two options: nw_wrld will initialize your project folder with: -- **16 starter modules** - Ready-to-use examples (Text, GridOverlay, SpinningCube, etc.) +- **22 starter modules** - Ready-to-use examples (Text, GridOverlay, SpinningCube, etc.) - **Sample assets** - Images and JSON data files for experimentation - **Data storage** - Configuration, tracks, and recordings @@ -65,7 +55,7 @@ Your project folder structure will look like this: ``` MyProject/ -├── modules/ # Visual modules (16 starter modules included) +├── modules/ # Visual modules (22 starter modules included) ├── assets/ # Images and JSON data │ ├── images/ │ └── json/ @@ -97,7 +87,7 @@ Tracks are containers for visual modules and sequencer patterns. 2. Select a module from the dropdown (e.g., **Text**, **GridOverlay**, **Corners**) 3. Configure the module's initial properties if prompted -**What are modules?** Modules are visual elements displayed in the Projector window. Your project includes 16 starter modules covering 2D graphics, 3D visuals, text, and data visualization. +**What are modules?** Modules are visual elements displayed in the Projector window. Your project includes 22 starter modules covering 2D graphics, 3D visuals, text, and data visualization. --- @@ -156,7 +146,7 @@ One of nw_wrld's most powerful features is that you can edit modules and see cha 1. Navigate to your project folder (the one you selected on first launch) 2. Open the `modules/` directory -3. You'll see all 16 starter modules as `.js` files +3. You'll see all 22 starter modules as `.js` files ### Editing Modules @@ -167,12 +157,14 @@ One of nw_wrld's most powerful features is that you can edit modules and see cha 3. Save the file 4. nw_wrld automatically detects the change and reloads the module -**Option 2: Use the Built-in Editor (Optional)** +**Option 2: View the Source via the Module Editor** + +The Module Editor modal does not edit modules in-app. It shows the module's source read-only and gives you a quick way to jump to the file. -1. In Dashboard, go to Settings → Module Editor -2. Select a module to edit -3. Make changes in the Monaco editor -4. Save → hot reload applies automatically +1. In Dashboard, open the Module Editor for a module +2. Read the source in the read-only viewer to find what you want to change +3. Click the link to open the file in your own code editor +4. Edit and save there, and nw_wrld hot-reloads the change automatically ### What You Can Change @@ -197,7 +189,7 @@ Save the file and the module reloads automatically. ### Learning from Examples -Study the 16 starter modules to learn different patterns: +Study the 22 starter modules to learn different patterns: - **HelloWorld.js** - Simplest possible module - **Text.js** - DOM-based text rendering @@ -389,6 +381,12 @@ $: note(r).midi("MIDI_port_name").midichan(1); // send to MIDI_port_name channel **libasound.so cannot open shared object file (Windows 11 + WSL/Ubuntu):** +Electron needs the ALSA sound libraries, which are not installed by default on minimal WSL/Ubuntu setups. Install them, then start the app again: + +```bash +sudo apt-get install libasound2 libasound2-dev +``` + For more help, see [Troubleshooting](README.md#troubleshooting) in the README or check [GitHub Issues](https://github.com/aagentah/nw_wrld/issues). --- diff --git a/MODULE_DEVELOPMENT.md b/MODULE_DEVELOPMENT.md index 48e26f2..68288b6 100644 --- a/MODULE_DEVELOPMENT.md +++ b/MODULE_DEVELOPMENT.md @@ -63,7 +63,7 @@ All workspace modules must follow the **docblock contract**: Allowed `@nwWrld imports`: -- **SDK**: `ModuleBase`, `BaseThreeJsModule`, `assetUrl`, `readText`, `loadJson` +- **SDK**: `ModuleBase`, `BaseThreeJsModule`, `assetUrl`, `readText`, `loadJson`, `listAssets` - **Global libs**: `THREE`, `p5`, `d3`, `Noise` - **THREE.js Loaders**: `OBJLoader`, `PLYLoader`, `PCDLoader`, `GLTFLoader`, `STLLoader` @@ -569,13 +569,31 @@ if (text) { **Returns:** `Promise` - File contents or null if error +#### listAssets(dir) + +List the asset files inside a subdirectory of workspace `assets/`. + +```javascript +const models = await listAssets("models"); +if (models) { + console.log("Available models:", models); +} +``` + +**Parameters:** + +- `dir` (string) - Relative directory path from `assets/` folder (e.g. `"models"`, `"json"`) + +**Returns:** `Promise` - Array of asset paths (empty if the directory is missing or invalid) + ### SDK Method Summary -| Method | Purpose | Returns | -| ---------------- | -------------------------------- | ------------------------- | -| `assetUrl(path)` | Get `nw-assets://` URL for asset | `string \| null` | -| `loadJson(path)` | Load & parse JSON file | `Promise` | -| `readText(path)` | Read text file | `Promise` | +| Method | Purpose | Returns | +| ------------------ | -------------------------------- | ------------------------- | +| `assetUrl(path)` | Get `nw-assets://` URL for asset | `string \| null` | +| `loadJson(path)` | Load & parse JSON file | `Promise` | +| `readText(path)` | Read text file | `Promise` | +| `listAssets(dir)` | List asset files in a directory | `Promise` | --- @@ -760,10 +778,13 @@ assetUrl("http://example.com/file.obj"); // No external URLs ### Starter Assets -New projects include two starter assets: +New projects include a set of starter assets: - `assets/images/blueprint.png` - Example image (used by Image module) - `assets/json/meteor.json` - Example dataset (used by AsteroidGraph module) +- `assets/json/radiation.json` - Example dataset +- `assets/fonts/RobotoMono-VariableFont_wght.ttf` - Example variable font +- `assets/fonts/RobotoMono-Italic-VariableFont_wght.ttf` - Example italic variable font - `assets/models/cube.obj` - Example OBJ model (used by ModelLoader) - `assets/models/tetra.stl` - Example STL model (used by ModelLoader) - `assets/models/triangle.ply` - Example PLY model (used by ModelLoader) @@ -1293,9 +1314,7 @@ async testAssetLoading() { } ``` -3. **Use relative paths** (no leading slash): - - ✅ `'images/photo.png'` - - ❌ `'/images/photo.png'` +3. **Use relative paths** that stay inside `assets/`. See [Asset Path Rules](#asset-path-rules) for the canonical statement; paths are normalised by `safeAssetRelPath`, so a leading slash or a `../` that escapes `assets/` resolves to null. ### Cleanup and Memory @@ -1376,189 +1395,36 @@ async testAssetLoading() { ## Performance Tips -### General Performance - -1. **Batch DOM updates** - Minimize reflows and repaints: +Most rendering performance comes down to the engine you are drawing with. The points below are the ones that are specific to the nw_wrld module lifecycle; for general p5.js, Three.js, and canvas optimisation, see the upstream docs linked under [Further Learning](#library-documentation). - ```javascript - // Bad: Multiple style updates - this.elem.style.width = "100px"; - this.elem.style.height = "100px"; - this.elem.style.opacity = "0.5"; - - // Good: Single cssText update - this.elem.style.cssText = "width: 100px; height: 100px; opacity: 0.5;"; - ``` +### nw_wrld lifecycle essentials -2. **Use requestAnimationFrame** for animations (not `setInterval` or `setTimeout`): +1. **Load assets once, then reuse.** SDK calls like `loadJson` and `readText` hit disk, so fetch during `init()` and cache the result rather than reloading inside a method that fires on every trigger: ```javascript - // Bad - setInterval(() => this.render(), 16); - - // Good - const animate = () => { - this.render(); - this.animationId = requestAnimationFrame(animate); - }; - animate(); - ``` - -3. **Debounce expensive operations**: - ```javascript - onResize() { - clearTimeout(this.resizeTimeout); - this.resizeTimeout = setTimeout(() => { - this.resize(); - }, 250); - } - ``` - -### Canvas Performance - -1. **Clear only what you need**: - - ```javascript - // If full clear needed - ctx.clearRect(0, 0, canvas.width, canvas.height); - - // If partial clear possible - ctx.clearRect(x, y, width, height); - ``` - -2. **Use offscreen canvas** for complex rendering: - - ```javascript - init() { - this.offscreen = document.createElement('canvas'); - this.offscreenCtx = this.offscreen.getContext('2d'); - // Render to offscreen, then copy to visible canvas - } - ``` - -3. **Cache unchanging elements**: - - ```javascript - // Draw static background once - this.cachedBackground = this.renderBackground(); - - render() { - // Use cached background - ctx.drawImage(this.cachedBackground, 0, 0); - // Draw dynamic elements on top - } - ``` - -### Three.js Performance - -1. **Reuse geometries and materials**: - - ```javascript - // Bad: New geometry/material for each object - for (let i = 0; i < 100; i++) { - const geo = new THREE.BoxGeometry(1, 1, 1); - const mat = new THREE.MeshBasicMaterial({ color: 0xff0000 }); - const mesh = new THREE.Mesh(geo, mat); - } - - // Good: Shared geometry/material - const geo = new THREE.BoxGeometry(1, 1, 1); - const mat = new THREE.MeshBasicMaterial({ color: 0xff0000 }); - for (let i = 0; i < 100; i++) { - const mesh = new THREE.Mesh(geo, mat); - // Position mesh differently - } - ``` - -2. **Limit object counts**: - - ```javascript - setCount({ count = 100 } = {}) { - // Cap at reasonable maximum - const safeCount = Math.min(count, 1000); - this.createObjects(safeCount); - } - ``` - -3. **Use instanced meshes** for many identical objects: - - ```javascript - const geometry = new THREE.BoxGeometry(1, 1, 1); - const material = new THREE.MeshBasicMaterial({ color: 0xff0000 }); - const instancedMesh = new THREE.InstancedMesh(geometry, material, 1000); - this.scene.add(instancedMesh); - ``` - -4. **Dispose resources properly**: - ```javascript - destroy() { - if (this.mesh) { - this.scene.remove(this.mesh); - this.mesh.geometry.dispose(); - this.mesh.material.dispose(); - } - super.destroy(); + async init() { + // Load once during init + this.dataset = await loadJson("json/data.json"); } - ``` - -### p5.js Performance - -1. **Avoid unnecessary redraws**: - - ```javascript - p.setup = () => { - p.createCanvas(width, height); - p.noLoop(); // Don't redraw unless needed - }; myMethod() { - // Update state, then redraw once - this.updateState(); - this.myp5.redraw(); + // Reuse the cached dataset + this.processData(this.dataset); } ``` -2. **Use p5 rendering modes**: - ```javascript - p.setup = () => { - p.createCanvas(width, height, p.WEBGL); // Hardware accelerated - }; - ``` - -### Memory Management - -1. **Avoid memory leaks**: - - Remove event listeners in `destroy()` - - Cancel animation frames - - Clear intervals/timeouts - - Dispose Three.js resources - - Remove p5 instances - -2. **Monitor memory usage**: - - Use Chrome DevTools Memory profiler - - Test loading/unloading modules repeatedly - - Check for increasing memory over time - -### Asset Loading Performance +2. **Tear everything down in `destroy()`.** Modules are loaded and unloaded repeatedly during a session (hot reload, track changes), so a leak compounds fast. Cancel animation frames, clear timers, remove listeners, dispose Three.js geometries/materials, and remove p5 instances. See [Cleanup and Memory](#cleanup-and-memory) for the full pattern, and use `this.externalElements` for any DOM you create outside `this.elem`. -1. **Load assets once, reuse**: +3. **Batch DOM writes.** Prefer a single `cssText` assignment over several individual style writes to avoid repeated reflows: ```javascript - async init() { - // Load once during init - this.dataset = await loadJson("json/data.json"); - } - - myMethod() { - // Reuse loaded dataset - this.processData(this.dataset); - } + // Good: one write + this.elem.style.cssText = "width: 100px; height: 100px; opacity: 0.5;"; ``` -2. **Consider asset size**: - - Optimize images before adding to workspace - - Compress JSON data where possible - - Limit texture sizes for Three.js +4. **Animate with `requestAnimationFrame`.** Use it instead of `setInterval`/`setTimeout`, store the id, and cancel it in `destroy()` (see [Animation Loops](#animation-loops)). + +To check for leaks, load and unload your module repeatedly and watch memory in the Chrome DevTools Memory profiler. --- @@ -1616,7 +1482,7 @@ async testAssetLoading() { ### Study Starter Modules -The 16 starter modules in your project's `modules/` folder are your best learning resource: +The 22 starter modules in your project's `modules/` folder are your best learning resource: - **HelloWorld.js** - Simplest structure - **Text.js** - Method options and DOM diff --git a/README.md b/README.md index 219c318..3fde58e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ nw_wrld is an event-driven sequencer for triggering visuals using web technologi Visuals can be triggered via the built-in 16-step sequencer or by configuring external MIDI, OSC, audio capture, or file-upload inputs. ![Node Version](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen) -![Electron](https://img.shields.io/badge/electron-v39.2.7-blue) +![Electron](https://img.shields.io/badge/electron-v39.8.10-blue) Screenshot 2026-01-09 at 14 17 49 @@ -89,27 +89,13 @@ nw_wrld uses a **project folder** model. Each project is a self-contained folder ### What's Inside a Project Folder -``` -MyProject/ -├── modules/ # Visual modules (hot-reloadable JavaScript files) -│ ├── Text.js -│ ├── GridOverlay.js -│ ├── SpinningCube.js -│ └── ...16 starter modules -├── assets/ # Images, JSON, and other resources -│ ├── images/ -│ │ └── blueprint.png -│ └── json/ -│ └── meteor.json -└── nw_wrld_data/ # Tracks, settings, and recordings - └── json/ -``` +A project folder holds three things: `modules/` (your hot-reloadable visual modules), `assets/` (images, JSON, and other resources), and `nw_wrld_data/` (tracks, settings, and recordings). For the full annotated layout, see [Project Structure](#project-structure) below. ### First Launch Experience When you first launch nw_wrld, you'll be prompted to select or create a project folder. The app automatically scaffolds a working project with: -- **16 starter modules** - Ready-to-use examples (2D, 3D, text, data visualization) +- **22 starter modules** - Ready-to-use examples (2D, 3D, text, data visualization) - **Sample assets** - Images and JSON data files - **Data storage** - Configuration, tracks, and recordings @@ -174,22 +160,7 @@ To set up input routing and switch modes, see [Getting Started](GETTING_STARTED. ### DAW Quickstart (Ableton / FL Studio / Logic / etc.) -Most DAW setups send notes on **MIDI Channel 1** unless you explicitly route or change it. nw_wrld supports both single-channel and split-channel workflows: - -- **Option A (simplest): Single MIDI channel** - - In nw_wrld → Settings → External (MIDI/OSC) → MIDI: - - **Method Triggers MIDI Channel**: `1` - - **Track Select MIDI Channel**: `1` - - Use **Settings → Configure Mappings** to choose either: - - **MIDI (Pitch Class)**: octave-agnostic mapping using C..B (avoids DAW octave-name differences) - - **MIDI (Exact Note)**: octave-specific mapping using full MIDI note numbers (0–127) - - Then map which triggers activate track selection vs method triggers. - -- **Option B (clean separation): Split MIDI channels** - - In your DAW, route method trigger notes to Channel 1 and track-selection notes to Channel 2 (commonly done with separate MIDI routing tracks/devices). - - In nw_wrld → Settings: - - **Method Triggers MIDI Channel**: `1` - - **Track Select MIDI Channel**: `2` +Most DAW setups send notes on **MIDI Channel 1** unless you explicitly route or change it. nw_wrld supports both a single-channel workflow and a split-channel workflow (method triggers on one channel, track selection on another). For the full channel-defaults walkthrough and best practice, see [Getting Started](GETTING_STARTED.md#advanced-connect-external-midiosc). --- @@ -199,7 +170,7 @@ Modules are JavaScript files in your **project's `modules/` folder**. Edit them ### Quick Module Creation -Create or edit a `.js` file in your project’s `modules/` folder and save — nw_wrld hot-reloads it automatically. +Create or edit a `.js` file in your project’s `modules/` folder and save, and nw_wrld hot-reloads it automatically. ### Module File Contract (Docblock + Default Export) @@ -212,8 +183,9 @@ Workspace modules are loaded from your project folder and must follow a strict c Allowed `@nwWrld imports`: -- **SDK**: `ModuleBase`, `BaseThreeJsModule`, `assetUrl`, `readText`, `loadJson` -- **Global libs**: `THREE`, `p5`, `d3` +- **SDK**: `ModuleBase`, `BaseThreeJsModule`, `assetUrl`, `readText`, `loadJson`, `listAssets` +- **Global libs**: `THREE`, `p5`, `d3`, `Noise` +- **Three.js loaders**: `OBJLoader`, `PLYLoader`, `PCDLoader`, `GLTFLoader`, `STLLoader` ```javascript /* @@ -244,11 +216,11 @@ See the [Module Development Guide](MODULE_DEVELOPMENT.md) for complete documenta ## Built-in ModuleBase Methods -When you extend `ModuleBase`, you inherit powerful methods for free: `show`, `hide`, `offset`, `scale`, `opacity`, `rotate`, `randomZoom`, and `matrix`. +When you extend `ModuleBase`, you inherit powerful methods for free: `show`, `hide`, `offset`, `scale`, `opacity`, `rotate`, `randomZoom`, `matrix`, `viewportLine`, `background`, and `invert`. These methods can be triggered via the sequencer or external signal sources (MIDI/OSC/audio/file), giving you instant control over positioning, visibility, transformations, and effects. -See the [Module Development Guide](MODULE_DEVELOPMENT.md#option-types-reference) for complete documentation of all built-in methods and their parameters. +See the [Module Development Guide](MODULE_DEVELOPMENT.md#sdk-api-reference) for complete documentation of all built-in methods and their parameters. --- @@ -258,15 +230,7 @@ Switch between modes in **Settings → Signal Source**. **Sequencer Mode (Default)** - Program patterns with a 16-step grid per channel. Perfect for getting started, testing modules, and creating standalone pieces without external hardware. Adjustable BPM (60-130), patterns loop continuously and save with your tracks. -**External Modes (Advanced)** - Use one of the following sources: - -- **MIDI (Pitch Class)**: map C..B (octave-agnostic). This avoids “G7 vs G8” naming differences across DAWs because matching is based on pitch class. -- **MIDI (Exact Note)**: map full MIDI note numbers (0–127) for octave-specific triggers. -- **OSC**: map OSC addresses. -- **External Audio**: capture live audio from a selected input device and trigger channels from Low/Medium/High bands. -- **File Upload**: upload an MP3/WAV per track and trigger channels from Low/Medium/High bands during playback. - -Configure global mappings in Settings for consistent control across all tracks. +**External Modes (Advanced)** - Drive channels from MIDI, OSC, live audio input, or an uploaded audio file. For the per-source breakdown and routing details, see [Advanced: External Input Control](#advanced-external-input-control) above. Configure global mappings in Settings for consistent control across all tracks. Switch modes anytime - your tracks, modules, and methods remain the same. Only the trigger source changes. @@ -274,37 +238,40 @@ Switch modes anytime - your tracks, modules, and methods remain the same. Only t ## Starter Modules -Every new project includes 16 starter modules in your `modules/` folder: +Every new project includes 22 starter modules in your `modules/` folder, grouped by category: -**2D & UI:** +**2D:** -- **Text** - Configurable text display and manipulation +- **AsteroidGraph** - p5.js with workspace JSON data - **Corners** - DOM-based corner UI elements -- **GridOverlay** - Canvas-based grid overlay -- **GridDots** - Animated dot grid patterns - **Frame** - Border frame overlay +- **GridDots** - Animated dot grid patterns +- **GridOverlay** - Canvas-based grid overlay - **Image** - Load images from workspace assets -- **CodeColumns** - Animated code/text columns - -**3D Graphics:** - -- **SpinningCube** - Basic Three.js example -- **CubeCube** - Nested cube visualization +- **ImageGallery** - Cycle through multiple workspace images +- **MathOrbitalMap** - Mathematical orbit mapping - **OrbitalPlane** - Orbital mechanics simulation -- **LowEarthPoint** - Low earth orbit visualization +- **PerlinBlob** - Noise-driven animated blob +- **ScanLines** - Animated scan-line overlay -**Data Visualization:** +**3D:** -- **AsteroidGraph** - p5.js with workspace JSON data -- **MathOrbitalMap** - Mathematical orbit mapping +- **BasicGeometry** - Three.js primitive geometry example - **CloudPointIceberg** - 3D point cloud -- **ZKProofVisualizer** - Zero-knowledge proof visualization +- **CubeCube** - Nested cube visualization +- **CubeGrowth** - Growing cube animation +- **LowEarthPoint** - Low earth orbit visualization +- **ModelLoader** - Load external 3D models +- **SpinningCube** - Basic Three.js example -**Getting Started:** +**Text:** +- **CodeColumns** - Animated code/text columns - **HelloWorld** - Minimal working example +- **Text** - Configurable text display and manipulation +- **ZKProofVisualizer** - Zero-knowledge proof visualization -Study these modules to learn patterns for 2D, 3D, text, and data visualization. All are fully editable in your project's `modules/` folder. +Study these modules to learn patterns for 2D, 3D, and text. All are fully editable in your project's `modules/` folder. --- @@ -319,7 +286,7 @@ MyProject/ │ ├── GridOverlay.js │ ├── SpinningCube.js │ ├── YourCustomModule.js # Create your own modules here -│ └── ...16 starter modules +│ └── ...22 starter modules │ ├── assets/ # ← YOUR ASSETS GO HERE │ ├── images/ @@ -349,31 +316,31 @@ nw_wrld/ │ │ └── styles/ # Dashboard styles │ │ │ ├── projector/ # Visual output window -│ │ ├── Projector.js # Main projector logic -│ │ ├── helpers/ -│ │ │ ├── moduleBase.ts # Base class (the foundation) -│ │ │ └── threeBase.ts # Three.js base class -│ │ └── templates/ -│ │ └── ThreeTemplate.ts # 3D module template +│ │ ├── Projector.ts # Main projector logic +│ │ ├── moduleSandboxEntry.ts # SDK initialization (sandbox entry) +│ │ └── helpers/ +│ │ ├── moduleBase.ts # Base class (the foundation) +│ │ └── threeBase.ts # Three.js base class │ │ │ ├── main/ # Electron main process -│ │ ├── InputManager.js # MIDI/OSC input handling +│ │ ├── InputManager.ts # MIDI/OSC input handling │ │ ├── starter_modules/ # Starter modules (seeded into projects) -│ │ └── workspaceStarterModules.js -│ │ -│ ├── shared/ -│ │ ├── json/ # JSON file management -│ │ ├── config/ # Default configuration -│ │ ├── sequencer/ # Sequencer playback engine -│ │ ├── midi/ # MIDI utilities -│ │ └── audio/ # Audio feedback +│ │ └── workspaceStarterModules.ts │ │ -│ └── renderer.ts # SDK initialization +│ └── shared/ +│ ├── json/ # JSON file management +│ ├── config/ # Default configuration +│ ├── sequencer/ # Sequencer playback engine +│ ├── midi/ # MIDI utilities +│ └── audio/ # Audio feedback │ +├── index.js # Thin bootstrap into the compiled main process ├── package.json └── README.md ``` +`src/index.js` is a thin bootstrap that loads the compiled main process. The Electron main process lives under `src/main/mainProcess/` (`entry.ts`, `windows.ts`, `sandbox.ts`, `workspace.ts`, `protocols.ts`, `lifecycle.ts`, and `ipcBridge/`). + --- ## Configuration @@ -391,19 +358,14 @@ These files are managed by the Dashboard and typically don't require manual edit ## Troubleshooting -| Issue | Solution | -| ------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| Project folder missing | App will prompt to reselect - choose or create a new project | -| Module doesn't appear | Verify filename is `MyModule.js` (letters/numbers only), and docblock includes `@nwWrld name/category/imports` | -| Module won't load | Open Projector devtools; check for syntax errors, missing imports, or unknown imports | -| Module hidden | Trigger `show()` method or set `executeOnLoad: true` | -| Asset won't load | Verify path is relative to `assets/` folder | -| Pattern not playing | Check that methods are assigned to channels | -| No MIDI detected | Enable IAC Driver/loopMIDI and verify DAW MIDI output | -| MIDI works once, then stops (Windows) | Ensure nw_wrld fully closed (no background process). If using a virtual port, restart the port app or reboot. | -| Method not triggering | Verify mapping, check method name match, check console | -| Hot reload not working | Check file is saved in project's `modules/` folder | -| App won't start (dev mode) | Close other dev servers (port 9000), run `npm install` | +Common quick fixes are below. For the full troubleshooting reference (module, asset, sequencer, MIDI, dev-mode, and Linux/WSL issues), see [Getting Started](GETTING_STARTED.md#troubleshooting). + +| Issue | Solution | +| ---------------------- | -------------------------------------------------------------------------------------------------------------- | +| Project folder missing | App will prompt to reselect - choose or create a new project | +| Module doesn't appear | Verify filename is `MyModule.js` (letters/numbers only), and docblock includes `@nwWrld name/category/imports` | +| Module hidden | Trigger `show()` method or set `executeOnLoad: true` | +| No MIDI detected | Enable IAC Driver/loopMIDI and verify DAW MIDI output | --- diff --git a/RUNTIME_TS_TESTING_GUIDELINES.md b/RUNTIME_TS_TESTING_GUIDELINES.md index 69fc3c3..6e235f6 100644 --- a/RUNTIME_TS_TESTING_GUIDELINES.md +++ b/RUNTIME_TS_TESTING_GUIDELINES.md @@ -74,9 +74,9 @@ Examples of **not critical**: In this repo, the canonical boundary points include: -- Main process IPC handlers in `src/index.js` +- Main-process IPC handlers in `src/main/mainProcess/ipcBridge/*` (`registerJsonBridge.ts`, `registerWorkspaceBridge.ts`, `registerInputBridge.ts`, `registerAppBridge.ts`, `registerProjectBridge.ts`, `registerOsBridge.ts`, etc.) - JSON bridge sanitization in `src/shared/validation/jsonBridgeValidation.ts` -- Sandbox request/result handling in `src/index.js` and runtime validators in `src/shared/validation/*` +- Sandbox request/result handling and boundary wiring in `src/main/mainProcess/sandbox.ts`, with runtime validators in `src/shared/validation/*` - Input emission in `src/main/InputManager.ts` --- @@ -94,34 +94,18 @@ In this repo, the canonical boundary points include: --- -### Preference: runtime code must not import from `src/` at runtime +### When to import from `dist/runtime/**` vs `src/**` -When migrating logic into the runtime TS lane, the **single runtime source of truth** is the compiled output under `dist/runtime/**`. +The **single runtime source of truth** is the compiled output under `dist/runtime/**`. This repo has two “worlds” that can both consume shared logic, so import by which world the code path belongs to: -- Runtime code should **not** use “require-from-`src` fallbacks” (e.g., “try `dist/runtime`, else `src/`”). -- If a module is needed at runtime, it should be **compiled into** `dist/runtime/**` (via `tsconfig.runtime.json`) and imported normally from the runtime bundle. -- This avoids duplicated implementations (`.js` + `.ts`) and keeps runtime behavior consistent with what unit tests execute. +- **Runtime/Node code and runtime tests → import from `dist/runtime/**`**: + - Main-process/runtime code and runtime-focused unit tests should import from `dist/runtime/**`, so they exercise what actually executes at runtime. + - Do **not** use “require-from-`src` fallbacks” (e.g., “try `dist/runtime`, else `src/`”). If a module is needed at runtime, compile it into `dist/runtime/**` (via `tsconfig.runtime.json`) and import it from the runtime bundle. This avoids duplicated implementations (`.js` + `.ts`) and keeps runtime behavior consistent with what unit tests execute. ---- - -### Clarification: when to import from `dist/runtime/**` vs `src/**` - -This repo has two “worlds” that can both consume shared logic: - -- **Runtime lane (Electron/Node execution)**: - - Main-process/runtime code should import from **`dist/runtime/**`\*\*. - - Runtime-focused unit tests should import from **`dist/runtime/**`\*\* to validate what actually executes at runtime. - - This keeps runtime behavior consistent and enforces the “single runtime source of truth” rule. - -- **App/renderer/source code (bundled UI code under `src/`)**: - - Source/UI code should import from **`src/**`** (typically `src/shared/**`), not from `dist/runtime/**`. +- **Renderer/UI bundled code → import from `src/**`**: + - Source/UI code bundled by webpack should import from `src/**` (typically `src/shared/**`), not from `dist/runtime/**`. - Avoid making `src/**` depend on build artifacts under `dist/**` (it creates brittle build-order coupling and breaks clean builds). -In practice: - -- **Use `dist/runtime/**`\*\* when the code path is intended to run as part of the runtime TS lane (Electron main process / runtime execution) or when a unit test is explicitly validating that compiled output. -- **Use `src/**`\*\* for renderer/UI modules and other source code that is bundled by webpack. - --- ### How to add a new “TS island” safely (checklist) @@ -136,10 +120,10 @@ In practice: - Preserve unknown fields unless unsafe. - Be a no-op on valid inputs whenever possible. - **Wire it at the boundary**: - - Central place (e.g., `src/index.js` IPC handler, `sanitizeJsonForBridge`). + - Central place (e.g., an IPC handler under `src/main/mainProcess/ipcBridge/*`, the sandbox boundary in `src/main/mainProcess/sandbox.ts`, or `sanitizeJsonForBridge`). - **Add minimal unit tests**: - - 1–2 “valid input preserved” tests - - 1–2 “invalid input contained” tests + - 1-2 “valid input preserved” tests + - 1-2 “invalid input contained” tests - **Prove no regression**: - Run `npm run test:unit`. - Confirm the runtime lane duplicate check passes (it is run as part of `npm run test:unit`). @@ -268,7 +252,7 @@ test("normalizer rejects invalid payload", () => { ### Practical “don’t overdo it” rules - **Prefer 1 normalizer at 1 boundary** over many validators scattered in the app. -- **Prefer 3–6 tests total** for a new critical area; more is usually diminishing returns. +- **Prefer 3-6 tests total** for a new critical area; more is usually diminishing returns. - **Don’t normalize deep trees unless needed**: - Stabilize the minimal shape that prevents crashes or silent failure. - **Avoid creating “a schema system”**: @@ -295,5 +279,5 @@ This repo currently follows these standards in practice via: - Runtime TS compilation (`tsconfig.runtime.json` → `dist/runtime/**`) - Boundary validators/sanitizers under `src/shared/validation/**` -- Main-process boundary wiring in `src/index.js` +- Main-process boundary wiring under `src/main/mainProcess/ipcBridge/**` (and sandbox wiring in `src/main/mainProcess/sandbox.ts`) - Minimal unit tests under `test/**` using `node --test` From 71f2a5503c265456d22496048b740891cc67e9a3 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 11 Jun 2026 10:06:29 +0100 Subject: [PATCH 21/27] perf(sandbox): skip the per-request ensure round trip when a token is cached Every module method trigger paid an extra sandbox:ensure IPC invoke, an fs.statSync, and a BrowserView re-attach + setBounds in main before the actual sandbox:request. Cache the token in TrackSandboxHost and only ensure when absent; on an out-of-band token invalidation (sandbox crash/respawn) re-ensure and resend the same payload once, which lands in the same INSTANCE_NOT_FOUND end state the per-request ensure produced. Resize re-attach is unaffected: the projector window's resize handler already calls updateSandboxViewBounds directly. Co-Authored-By: Claude Fable 5 --- .../internal/sandbox/TrackSandboxHost.ts | 23 ++- test/trackSandboxHostRuntime.test.js | 149 ++++++++++++++++++ 2 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 test/trackSandboxHostRuntime.test.js diff --git a/src/projector/internal/sandbox/TrackSandboxHost.ts b/src/projector/internal/sandbox/TrackSandboxHost.ts index fc503f1..06b74e6 100644 --- a/src/projector/internal/sandbox/TrackSandboxHost.ts +++ b/src/projector/internal/sandbox/TrackSandboxHost.ts @@ -3,6 +3,16 @@ import { getBridge } from "../bridge"; type EnsureSandboxOk = { ok: true; token: string }; type EnsureSandboxErr = { ok: false; reason: string }; +const STALE_TOKEN_ERRORS = new Set(["TOKEN_NOT_OWNED", "INVALID_TOKEN", "SANDBOX_UNAVAILABLE"]); + +const isStaleTokenResult = (res: unknown): boolean => + Boolean( + res && + typeof res === "object" && + (res as { ok?: unknown }).ok !== true && + STALE_TOKEN_ERRORS.has(String((res as { error?: unknown }).error || "")) + ); + export class TrackSandboxHost { modulesContainer: unknown; token: string | null; @@ -36,13 +46,22 @@ export class TrackSandboxHost { } async request(type: string, props: Record | null) { - await this.ensureSandbox(); + if (!this.token) { + await this.ensureSandbox(); + } const bridge = getBridge(); const req = bridge?.sandbox?.request; if (typeof req !== "function") { return { ok: false, error: "SANDBOX_BRIDGE_UNAVAILABLE" }; } - return await req(this.token as string, type, props || {}); + const res = await req(this.token as string, type, props || {}); + if (this.disposed || !isStaleTokenResult(res)) { + return res; + } + // Token invalidated out-of-band (sandbox crash/respawn): re-ensure and resend once. + this.token = null; + const ensured = await this.ensureSandbox(); + return await req(ensured.ok === true ? ensured.token : "", type, props || {}); } initTrack({ diff --git a/test/trackSandboxHostRuntime.test.js b/test/trackSandboxHostRuntime.test.js new file mode 100644 index 0000000..bad2047 --- /dev/null +++ b/test/trackSandboxHostRuntime.test.js @@ -0,0 +1,149 @@ +const test = require("node:test"); +const assert = require("node:assert/strict"); +const path = require("node:path"); + +const { TrackSandboxHost } = require( + path.join( + __dirname, + "..", + "dist", + "runtime", + "projector", + "internal", + "sandbox", + "TrackSandboxHost.js" + ) +); + +const withBridge = async (sandbox, fn) => { + const prev = globalThis.nwWrldBridge; + globalThis.nwWrldBridge = { sandbox }; + try { + return await fn(); + } finally { + globalThis.nwWrldBridge = prev; + } +}; + +test("TrackSandboxHost: request reuses the cached token without re-ensuring", async () => { + let ensureCalls = 0; + const requests = []; + await withBridge( + { + ensure: async () => { + ensureCalls += 1; + return { ok: true, token: "tok-1" }; + }, + request: async (token, type, props) => { + requests.push({ token, type, props }); + return { ok: true }; + }, + }, + async () => { + const host = new TrackSandboxHost(null); + const first = await host.request("invokeOnInstance", { a: 1 }); + const second = await host.request("invokeOnInstance", { a: 2 }); + assert.equal(first.ok, true); + assert.equal(second.ok, true); + assert.equal(ensureCalls, 1); + assert.deepEqual( + requests.map((r) => r.token), + ["tok-1", "tok-1"] + ); + } + ); +}); + +test("TrackSandboxHost: stale token re-ensures and retries the same payload once", async () => { + let ensureCalls = 0; + const requests = []; + await withBridge( + { + ensure: async () => { + ensureCalls += 1; + return { ok: true, token: `tok-${ensureCalls}` }; + }, + request: async (token, type, props) => { + requests.push({ token, type, props }); + if (token === "tok-1") return { ok: false, error: "TOKEN_NOT_OWNED" }; + return { ok: true }; + }, + }, + async () => { + const host = new TrackSandboxHost(null); + const res = await host.request("invokeOnInstance", { x: 1 }); + assert.equal(res.ok, true); + assert.equal(ensureCalls, 2); + assert.equal(requests.length, 2); + assert.equal(requests[0].token, "tok-1"); + assert.equal(requests[1].token, "tok-2"); + assert.deepEqual(requests[1].props, { x: 1 }); + assert.equal(requests[1].type, "invokeOnInstance"); + } + ); +}); + +test("TrackSandboxHost: a failing retry is returned without looping", async () => { + let requestCalls = 0; + await withBridge( + { + ensure: async () => ({ ok: true, token: "tok" }), + request: async () => { + requestCalls += 1; + return { ok: false, error: "TOKEN_NOT_OWNED" }; + }, + }, + async () => { + const host = new TrackSandboxHost(null); + const res = await host.request("invokeOnInstance", {}); + assert.equal(res.ok, false); + assert.equal(res.error, "TOKEN_NOT_OWNED"); + assert.equal(requestCalls, 2); + } + ); +}); + +test("TrackSandboxHost: non-token errors are not retried", async () => { + let requestCalls = 0; + await withBridge( + { + ensure: async () => ({ ok: true, token: "tok" }), + request: async () => { + requestCalls += 1; + return { ok: false, error: "TIMEOUT" }; + }, + }, + async () => { + const host = new TrackSandboxHost(null); + const res = await host.request("invokeOnInstance", {}); + assert.equal(res.error, "TIMEOUT"); + assert.equal(requestCalls, 1); + } + ); +}); + +test("TrackSandboxHost: destroyed host does not re-ensure or retry", async () => { + let ensureCalls = 0; + let requestCalls = 0; + await withBridge( + { + ensure: async () => { + ensureCalls += 1; + return { ok: true, token: "tok" }; + }, + request: async (token) => { + requestCalls += 1; + return token ? { ok: true } : { ok: false, error: "INVALID_TOKEN" }; + }, + destroy: async () => ({ ok: true }), + }, + async () => { + const host = new TrackSandboxHost(null); + await host.destroy(); + const res = await host.request("invokeOnInstance", {}); + assert.equal(res.ok, false); + assert.equal(ensureCalls, 0); + assert.equal(requestCalls, 1); + } + ); +}); From 4e65b8c78c53e4408f3a8626ba57413e786856bc Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 11 Jun 2026 10:06:42 +0100 Subject: [PATCH 22/27] perf(projector): cache trigger maps per reference and drop redundant three.js renders buildMidiConfig walked every track and channel mapping on every input event, before the sequencer-mode and source early-outs. Add createMidiConfigCache (reference-keyed on userData/config/input type, both reassigned wholesale in loadUserData) and build only after the drop checks. threeBase rendered the scene 2-4 times per rAF tick while a camera animation or damping was active: updateCameraAnimation ran its own controls.update() + render() microseconds before animate() ran the same pair, and the OrbitControls "change" listener rendered again from inside controls.update(). Intermediate renders in the same tick are never composited, so drop the duplicate pair and gate the change listener to the pre-loop phase (modules that never call setModel keep rendering on interaction). Co-Authored-By: Claude Fable 5 --- src/projector/helpers/threeBase.ts | 10 ++++----- src/projector/internal/inputListener.ts | 5 +++-- src/shared/midi/midiUtils.ts | 27 ++++++++++++++++++++++ test/midiRuntime.test.js | 30 ++++++++++++++++++++++++- 4 files changed, 64 insertions(+), 8 deletions(-) diff --git a/src/projector/helpers/threeBase.ts b/src/projector/helpers/threeBase.ts index 6ea532d..217c84c 100644 --- a/src/projector/helpers/threeBase.ts +++ b/src/projector/helpers/threeBase.ts @@ -212,8 +212,10 @@ export class BaseThreeJsModule extends ModuleBase { this.controls.autoRotate = false; this.controls.autoRotateSpeed = 2.0; - // Add event listener for controls - this.controls.addEventListener("change", this.render); + // Render on interaction only until the shared loop takes over (it renders every frame) + this.controls.addEventListener("change", () => { + if (!this.isInitialized) this.render(); + }); // Bind resize event window.addEventListener("resize", this.onWindowResize); @@ -529,9 +531,7 @@ export class BaseThreeJsModule extends ModuleBase { this.stopCameraAnimation(); break; } - - this.controls.update(); - this.render(); + // animate() runs controls.update() and render() right after this returns (same tick). } /** diff --git a/src/projector/internal/inputListener.ts b/src/projector/internal/inputListener.ts index 4ad599f..cae4f32 100644 --- a/src/projector/internal/inputListener.ts +++ b/src/projector/internal/inputListener.ts @@ -1,5 +1,5 @@ import { - buildMidiConfig, + createMidiConfigCache, normalizeNoteMatchMode, noteNumberToTriggerKey, pitchClassToName, @@ -27,6 +27,7 @@ type InputListenerContext = { export function initInputListener(this: InputListenerContext) { const messaging = getMessaging(); if (!messaging || typeof messaging.onInputEvent !== "function") return; + const midiConfigCache = createMidiConfigCache(); messaging.onInputEvent((event: unknown, payload: unknown) => { const p = payload && typeof payload === "object" ? (payload as InputEventPayload) : null; @@ -43,13 +44,13 @@ export function initInputListener(this: InputListenerContext) { typeof (config as { input?: unknown }).input === "object" ? String(((config as { input?: unknown }).input as { type?: unknown }).type || "midi") : "midi"; - const midiConfig = buildMidiConfig(this.userData, config, selectedInputType); if (isSequencerMode) { return; } if (data.source && data.source !== selectedInputType) { return; } + const midiConfig = midiConfigCache.get(this.userData, config, selectedInputType); if (debugEnabled) { logger.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"); diff --git a/src/shared/midi/midiUtils.ts b/src/shared/midi/midiUtils.ts index b1eea80..c0a06d9 100644 --- a/src/shared/midi/midiUtils.ts +++ b/src/shared/midi/midiUtils.ts @@ -274,3 +274,30 @@ export function buildMidiConfig( return config; } + +export function createMidiConfigCache() { + let userDataKey: unknown = null; + let mappingsKey: unknown = null; + let inputTypeKey: unknown = null; + let value: ReturnType | null = null; + return { + get( + userData: unknown, + globalMappings: unknown, + currentInputType: unknown = "midi" + ): ReturnType { + if ( + value === null || + userData !== userDataKey || + globalMappings !== mappingsKey || + currentInputType !== inputTypeKey + ) { + value = buildMidiConfig(userData, globalMappings, currentInputType); + userDataKey = userData; + mappingsKey = globalMappings; + inputTypeKey = currentInputType; + } + return value; + }, + }; +} diff --git a/test/midiRuntime.test.js b/test/midiRuntime.test.js index 11ff851..89160a7 100644 --- a/test/midiRuntime.test.js +++ b/test/midiRuntime.test.js @@ -2,7 +2,7 @@ const test = require("node:test"); const assert = require("node:assert/strict"); const path = require("node:path"); -const { parseMidiTriggerValue, normalizeNoteMatchMode, buildMidiConfig } = require( +const { parseMidiTriggerValue, normalizeNoteMatchMode, buildMidiConfig, createMidiConfigCache } = require( path.join(__dirname, "..", "dist", "runtime", "shared", "midi", "midiUtils.js") ); @@ -36,6 +36,34 @@ test("midiUtils: buildMidiConfig maps midi pitchClass trigger keys deterministic assert.equal(cfg.trackTriggersMap["0"], "T1"); }); +test("midiUtils: createMidiConfigCache reuses output for identical references and rebuilds on change", () => { + const cache = createMidiConfigCache(); + const tracks = [{ name: "T1", trackSlot: "ch1", channelMappings: { "1": 1, "2": 2 } }]; + const globalMappings = { + input: { noteMatchMode: "pitchClass" }, + trackMappings: { midi: { pitchClass: { ch1: "C" } } }, + channelMappings: { midi: { pitchClass: { "1": "D", "2": "E" } } }, + }; + + const a = cache.get(tracks, globalMappings, "midi"); + assert.deepEqual(a, buildMidiConfig(tracks, globalMappings, "midi")); + assert.equal(cache.get(tracks, globalMappings, "midi"), a); + + const tracksCopy = [...tracks]; + const b = cache.get(tracksCopy, globalMappings, "midi"); + assert.notEqual(b, a); + assert.deepEqual(b, a); + + const c = cache.get(tracksCopy, globalMappings, "osc"); + assert.notEqual(c, b); + assert.deepEqual(c, buildMidiConfig(tracksCopy, globalMappings, "osc")); + + const mappingsCopy = { ...globalMappings }; + const d = cache.get(tracksCopy, mappingsCopy, "osc"); + assert.notEqual(d, c); + assert.deepEqual(d, c); +}); + test("midiPlayback: smoke (empty channels) play/pause/stop are non-throwing and stop calls callback", () => { const engine = new MidiPlayback(); let stops = 0; From 7172655a1bf2f47be479e73114539191dc38c11d Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 11 Jun 2026 10:06:59 +0100 Subject: [PATCH 23/27] perf(dashboard): stop tick/heartbeat state re-rendering the whole tree The sequencer playhead, flash setters, projector perf stats, and audio levels all lived in (or subscribed from) the root Dashboard component, so every 16th-note step, channel flash, 1Hz perf heartbeat, and 100ms audio-level update re-rendered the entire dashboard, including the eagerly-evaluated bodies of every closed modal. - sequencerCurrentStep moves to an atom written by the playback hook and read only by a new memoised SequencerStepRow, dropping the prop from the Dashboard -> Body -> TrackItem -> SortableModuleItem -> NoteSelector chain (which also restores TrackItem's memo during playback). - useFlashingChannels becomes setter-only (no caller used the value) and setter-only useAtom subscriptions switch to useSetAtom in Dashboard and TrackItem, including TrackItem's unused userDataAtom value. - Projector perf stats park in a ref while the debug overlay is closed and seed the state on open. - Audio capture/file level updates bail with the previous state when all six values are unchanged (kills steady churn during silence). - SettingsModal (1001 lines) returns null before building its JSX when closed; DashboardFooter drops a recordingData subscription whose value was never read. Co-Authored-By: Claude Fable 5 --- src/dashboard/Dashboard.js | 10 +- src/dashboard/components/DashboardBody.tsx | 3 - src/dashboard/components/DashboardFooter.tsx | 3 - .../components/track/ModuleComponents.tsx | 113 +++++++++++------- src/dashboard/components/track/TrackItem.tsx | 11 +- .../core/hooks/useDashboardAudioCapture.ts | 17 ++- .../core/hooks/useDashboardFileAudio.ts | 29 +++-- .../core/hooks/useProjectorPerfStats.ts | 19 ++- src/dashboard/core/state.ts | 12 +- src/dashboard/modals/SettingsModal.tsx | 2 + 10 files changed, 132 insertions(+), 87 deletions(-) diff --git a/src/dashboard/Dashboard.js b/src/dashboard/Dashboard.js index e9cf78d..c37181c 100644 --- a/src/dashboard/Dashboard.js +++ b/src/dashboard/Dashboard.js @@ -1,6 +1,6 @@ import { useState, useEffect, useCallback, useMemo, useRef } from "react"; import { createRoot } from "react-dom/client"; -import { useAtom } from "jotai"; +import { useAtom, useSetAtom } from "jotai"; import { getActiveSetTracks } from "../shared/utils/setUtils"; import { useIPCSend, useIPCInvoke } from "./core/hooks/useIPC"; import { useLatestRef } from "./core/hooks/useLatestRef"; @@ -43,8 +43,8 @@ const Dashboard = () => { const [activeSetId, setActiveSetId] = useAtom(activeSetIdAtom); const [predefinedModules, setPredefinedModules] = useState([]); const [selectedChannel, setSelectedChannel] = useAtom(selectedChannelAtom); - const [, flashChannel] = useFlashingChannels(); - const [, setFlashingConstructors] = useAtom(flashingConstructorsAtom); + const flashChannel = useFlashingChannels(); + const setFlashingConstructors = useSetAtom(flashingConstructorsAtom); const sendToProjector = useIPCSend("dashboard-to-projector"); const invokeIPC = useIPCInvoke(); @@ -300,7 +300,7 @@ const Dashboard = () => { setPredefinedModules, setWorkspaceModuleLoadFailures, }); - useProjectorPerfStats(setPerfStats); + useProjectorPerfStats(setPerfStats, isDebugOverlayOpen); useWorkspaceModules({ workspacePath, @@ -359,7 +359,6 @@ const Dashboard = () => { const { footerPlaybackState, isSequencerPlaying, - sequencerCurrentStep, handleSequencerToggle, handleFooterPlayPause, handleFooterStop, @@ -419,7 +418,6 @@ const Dashboard = () => { inputConfig={inputConfig} config={userData.config} isSequencerPlaying={isSequencerPlaying} - sequencerCurrentStep={sequencerCurrentStep} handleSequencerToggle={handleSequencerToggle} workspacePath={workspacePath} workspaceModuleFiles={workspaceModuleFiles} diff --git a/src/dashboard/components/DashboardBody.tsx b/src/dashboard/components/DashboardBody.tsx index c6e07db..cc2ac73 100644 --- a/src/dashboard/components/DashboardBody.tsx +++ b/src/dashboard/components/DashboardBody.tsx @@ -14,7 +14,6 @@ type DashboardBodyProps = { inputConfig: unknown; config: Record | null; isSequencerPlaying: boolean; - sequencerCurrentStep: number; handleSequencerToggle: (channelName: string, stepIndex: number) => void; workspacePath: string | null; workspaceModuleFiles: string[]; @@ -34,7 +33,6 @@ export const DashboardBody = ({ inputConfig, config, isSequencerPlaying, - sequencerCurrentStep, handleSequencerToggle, workspacePath, workspaceModuleFiles, @@ -67,7 +65,6 @@ export const DashboardBody = ({ inputConfig={inputConfig} config={config} isSequencerPlaying={isSequencerPlaying} - sequencerCurrentStep={sequencerCurrentStep} handleSequencerToggle={handleSequencerToggle} workspacePath={workspacePath} workspaceModuleFiles={workspaceModuleFiles} diff --git a/src/dashboard/components/DashboardFooter.tsx b/src/dashboard/components/DashboardFooter.tsx index 1b1855f..ec769e0 100644 --- a/src/dashboard/components/DashboardFooter.tsx +++ b/src/dashboard/components/DashboardFooter.tsx @@ -1,6 +1,4 @@ -import { useAtom } from "jotai"; import { FaPlay, FaStop } from "react-icons/fa"; -import { recordingDataAtom } from "../core/state"; import { Checkbox } from "./FormInputs"; import { Button } from "./Button"; @@ -45,7 +43,6 @@ export const DashboardFooter = ({ onMuteChange, isProjectorReady, }: DashboardFooterProps) => { - const [_recordingData] = useAtom(recordingDataAtom); const isFileMode = !config?.sequencerMode && inputConfig?.type === "file"; const trackObj = track && typeof track === "object" ? (track as Record) : null; const trackSignal = diff --git a/src/dashboard/components/track/ModuleComponents.tsx b/src/dashboard/components/track/ModuleComponents.tsx index b890509..0ea5735 100644 --- a/src/dashboard/components/track/ModuleComponents.tsx +++ b/src/dashboard/components/track/ModuleComponents.tsx @@ -1,5 +1,5 @@ import { memo, useState, useEffect, useMemo, useCallback } from "react"; -import { useAtom, type PrimitiveAtom } from "jotai"; +import { useAtom, useAtomValue, type PrimitiveAtom } from "jotai"; import * as d3 from "d3"; import { SortableWrapper } from "../../shared/SortableWrapper"; import { @@ -9,6 +9,7 @@ import { selectedChannelAtom, flashingChannelsAtom, flashingConstructorsAtom, + sequencerCurrentStepAtom, } from "../../core/state"; import { updateActiveSet } from "../../core/utils"; import { TERMINAL_STYLES } from "../../core/constants"; @@ -142,6 +143,65 @@ const groupSequences = (sequences: Array<{ time: number; duration: number }>, th return grouped; }; +type SequencerStepRowProps = { + channelNumber: number; + channelPattern: unknown; + hasMethods: boolean; + isSequencerPlaying: boolean; + handleSequencerToggle: (channelKey: string, stepIndex: number) => void; + rowHeight: number; +}; + +const SequencerStepRow = memo( + ({ + channelNumber, + channelPattern, + hasMethods, + isSequencerPlaying, + handleSequencerToggle, + rowHeight, + }: SequencerStepRowProps) => { + const sequencerCurrentStep = useAtomValue(sequencerCurrentStepAtom); + const channelKey = String(channelNumber); + return ( +
+ {Array.from({ length: 16 }).map((_, stepIndex) => { + const isActive = Array.isArray(channelPattern) && channelPattern.includes(stepIndex); + const isCurrentStep = isSequencerPlaying && sequencerCurrentStep === stepIndex; + + return ( +
+ ); + } +); + type NoteSelectorProps = { trackIndex: number; instanceId: string; @@ -153,7 +213,6 @@ type NoteSelectorProps = { inputConfig: { type?: string } | null; config: Record | null; isSequencerPlaying: boolean; - sequencerCurrentStep: number; handleSequencerToggle: (channelKey: string, stepIndex: number) => void; workspacePath?: string | null; workspaceModuleFiles?: string[]; @@ -171,7 +230,6 @@ export const NoteSelector = memo( inputConfig, config, isSequencerPlaying, - sequencerCurrentStep, handleSequencerToggle, workspacePath = null, workspaceModuleFiles = [], @@ -665,44 +723,14 @@ export const NoteSelector = memo(
{config?.sequencerMode ? ( -
- {Array.from({ length: 16 }).map((_, stepIndex) => { - const channelKey = String(channel.number); - const channelPattern = sequencerPattern[channelKey] || []; - const isActive = - Array.isArray(channelPattern) && channelPattern.includes(stepIndex); - const isCurrentStep = - isSequencerPlaying && sequencerCurrentStep === stepIndex; - - return ( -
+ ) : ( @@ -732,7 +760,6 @@ type SortableModuleItemProps = { inputConfig: { type?: string } | null; config: Record | null; isSequencerPlaying: boolean; - sequencerCurrentStep: number; handleSequencerToggle: (channelKey: string, stepIndex: number) => void; workspacePath?: string | null; workspaceModuleFiles?: string[]; @@ -749,7 +776,6 @@ export const SortableModuleItem = memo( inputConfig, config, isSequencerPlaying, - sequencerCurrentStep, handleSequencerToggle, workspacePath = null, workspaceModuleFiles = [], @@ -771,7 +797,6 @@ export const SortableModuleItem = memo( inputConfig={inputConfig} config={config} isSequencerPlaying={isSequencerPlaying} - sequencerCurrentStep={sequencerCurrentStep} handleSequencerToggle={handleSequencerToggle} workspacePath={workspacePath} workspaceModuleFiles={workspaceModuleFiles} diff --git a/src/dashboard/components/track/TrackItem.tsx b/src/dashboard/components/track/TrackItem.tsx index 8b37035..f9668f4 100644 --- a/src/dashboard/components/track/TrackItem.tsx +++ b/src/dashboard/components/track/TrackItem.tsx @@ -1,5 +1,5 @@ import { memo, useState, useEffect, useCallback, useRef, useMemo } from "react"; -import { useAtom } from "jotai"; +import { useAtom, useSetAtom } from "jotai"; import { remove } from "lodash"; import { FaPlus } from "react-icons/fa"; import { SortableList, arrayMove } from "../../shared/SortableList"; @@ -51,7 +51,6 @@ type TrackItemProps = { inputConfig: unknown; config: Record | null; isSequencerPlaying: boolean; - sequencerCurrentStep: number; handleSequencerToggle: (channelName: string, stepIndex: number) => void; workspacePath?: string | null; workspaceModuleFiles?: string[]; @@ -71,7 +70,6 @@ export const TrackItem = memo( inputConfig, config: _config, isSequencerPlaying, - sequencerCurrentStep, handleSequencerToggle, workspacePath = null, workspaceModuleFiles = [], @@ -79,11 +77,11 @@ export const TrackItem = memo( audioCaptureState = null, fileAudioState = null, }: TrackItemProps) => { - const [_userData, setUserData] = useAtom(userDataAtom); + const setUserData = useSetAtom(userDataAtom); const [recordingData] = useAtom(recordingDataAtom); const [activeSetId] = useAtom(activeSetIdAtom); - const [_flashingChannels, flashChannel] = useFlashingChannels(); - const [_flashingConstructors, setFlashingConstructors] = useAtom(flashingConstructorsAtom); + const flashChannel = useFlashingChannels(); + const setFlashingConstructors = useSetAtom(flashingConstructorsAtom); const [selectedTrackForData, setSelectedTrackForData] = useState(null); const [isEditTrackModalOpen, setIsEditTrackModalOpen] = useState(false); const [isPlaying, setIsPlaying] = useState(false); @@ -305,7 +303,6 @@ export const TrackItem = memo( inputConfig={inputConfig} config={_config} isSequencerPlaying={isSequencerPlaying} - sequencerCurrentStep={sequencerCurrentStep} handleSequencerToggle={handleSequencerToggle} workspacePath={workspacePath} workspaceModuleFiles={workspaceModuleFiles} diff --git a/src/dashboard/core/hooks/useDashboardAudioCapture.ts b/src/dashboard/core/hooks/useDashboardAudioCapture.ts index 3402145..5bed113 100644 --- a/src/dashboard/core/hooks/useDashboardAudioCapture.ts +++ b/src/dashboard/core/hooks/useDashboardAudioCapture.ts @@ -372,11 +372,24 @@ export const useDashboardAudioCapture = ({ if (now - lastUi >= 100) { lastLevelsUpdateMsRef.current = now; setState((prev) => { - const nextLevels = { ...lastLevelsRef.current }; - const nextPeaksDb = { ...lastPeaksDbRef.current }; if (prev.status === "error") return prev; if (prev.status === "mock") return prev; if (prev.status === "idle") return prev; + const nl = lastLevelsRef.current; + const np = lastPeaksDbRef.current; + if ( + prev.status === "running" && + prev.levels.low === nl.low && + prev.levels.medium === nl.medium && + prev.levels.high === nl.high && + prev.peaksDb.low === np.low && + prev.peaksDb.medium === np.medium && + prev.peaksDb.high === np.high + ) { + return prev; + } + const nextLevels = { ...nl }; + const nextPeaksDb = { ...np }; if (prev.status === "starting") return { status: "starting", levels: nextLevels, peaksDb: nextPeaksDb }; return { status: "running", levels: nextLevels, peaksDb: nextPeaksDb }; diff --git a/src/dashboard/core/hooks/useDashboardFileAudio.ts b/src/dashboard/core/hooks/useDashboardFileAudio.ts index d15d3e5..369e158 100644 --- a/src/dashboard/core/hooks/useDashboardFileAudio.ts +++ b/src/dashboard/core/hooks/useDashboardFileAudio.ts @@ -380,23 +380,28 @@ export const useDashboardFileAudio = ({ if (now - lastUi >= 100) { lastLevelsUpdateMsRef.current = now; setState((prev) => { - const nextLevels = { ...lastLevelsRef.current }; - const nextPeaksDb = { ...lastPeaksDbRef.current }; if (prev.status === "error") return prev; if (prev.status === "idle") return prev; if (prev.status === "loading") return prev; - if (prev.status === "ready") - return { - status: "playing", - levels: nextLevels, - peaksDb: nextPeaksDb, - assetRelPath, - durationSec: buf.duration, - }; + const nl = lastLevelsRef.current; + const np = lastPeaksDbRef.current; + if ( + prev.status === "playing" && + prev.assetRelPath === assetRelPath && + prev.durationSec === buf.duration && + prev.levels.low === nl.low && + prev.levels.medium === nl.medium && + prev.levels.high === nl.high && + prev.peaksDb.low === np.low && + prev.peaksDb.medium === np.medium && + prev.peaksDb.high === np.high + ) { + return prev; + } return { status: "playing", - levels: nextLevels, - peaksDb: nextPeaksDb, + levels: { ...nl }, + peaksDb: { ...np }, assetRelPath, durationSec: buf.duration, }; diff --git a/src/dashboard/core/hooks/useProjectorPerfStats.ts b/src/dashboard/core/hooks/useProjectorPerfStats.ts index 397223a..c4cd236 100644 --- a/src/dashboard/core/hooks/useProjectorPerfStats.ts +++ b/src/dashboard/core/hooks/useProjectorPerfStats.ts @@ -1,8 +1,20 @@ +import { useEffect, useRef } from "react"; import { useIPCListener } from "./useIPC"; type PerfStats = { fps: number; frameMsAvg: number; longFramePct: number; at: number }; -export const useProjectorPerfStats = (setPerfStats: (next: PerfStats) => void) => { +export const useProjectorPerfStats = ( + setPerfStats: (next: PerfStats) => void, + isDebugOverlayOpen: boolean +) => { + const latestRef = useRef(null); + const openRef = useRef(isDebugOverlayOpen); + openRef.current = isDebugOverlayOpen; + + useEffect(() => { + if (isDebugOverlayOpen && latestRef.current) setPerfStats(latestRef.current); + }, [isDebugOverlayOpen, setPerfStats]); + useIPCListener("from-projector", (_event, data: unknown) => { if (!data || typeof data !== "object") return; const dataObj = data as Record; @@ -21,7 +33,8 @@ export const useProjectorPerfStats = (setPerfStats: (next: PerfStats) => void) = : 0; const at = typeof pObj.at === "number" && Number.isFinite(pObj.at) ? pObj.at : null; if (fps == null || frameMsAvg == null || at == null) return; - setPerfStats({ fps, frameMsAvg, longFramePct, at }); + const next = { fps, frameMsAvg, longFramePct, at }; + latestRef.current = next; + if (openRef.current) setPerfStats(next); }); }; - diff --git a/src/dashboard/core/state.ts b/src/dashboard/core/state.ts index e3d192e..a4b4cfa 100644 --- a/src/dashboard/core/state.ts +++ b/src/dashboard/core/state.ts @@ -1,4 +1,4 @@ -import { atom, useAtom } from "jotai"; +import { atom, useSetAtom } from "jotai"; import { useRef, useCallback, useEffect } from "react"; export const userDataAtom = atom<{ config: Record; sets: unknown[] }>({ @@ -14,12 +14,10 @@ export const flashingConstructorsAtom = atom>(new Set()); export const recordingStateAtom = atom>( {} ); +export const sequencerCurrentStepAtom = atom(0); -export const useFlashingChannels = (): [ - Set, - (channelName: string, duration?: number) => void, -] => { - const [flashingChannels, setFlashingChannels] = useAtom(flashingChannelsAtom); +export const useFlashingChannels = (): ((channelName: string, duration?: number) => void) => { + const setFlashingChannels = useSetAtom(flashingChannelsAtom); const activeFlashesRef = useRef>(new Set()); const pendingUpdatesRef = useRef>(new Set()); const rafIdRef = useRef(null); @@ -76,5 +74,5 @@ export const useFlashingChannels = (): [ }; }, []); - return [flashingChannels, flashChannel]; + return flashChannel; }; diff --git a/src/dashboard/modals/SettingsModal.tsx b/src/dashboard/modals/SettingsModal.tsx index dab1fbf..bceac7e 100644 --- a/src/dashboard/modals/SettingsModal.tsx +++ b/src/dashboard/modals/SettingsModal.tsx @@ -519,6 +519,8 @@ export const SettingsModal = ({ return { low: read("low"), medium: read("medium"), high: read("high") }; }, [activeTrackFileThresholds, clamp01]); + if (!isOpen) return null; + const normalizedInputType = inputConfig?.type === "osc" ? "osc" From f88bc91c80628aea02dc2a45cccbee8e218511ec Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 11 Jun 2026 10:07:11 +0100 Subject: [PATCH 24/27] perf(persistence): skip no-op writes and redundant projector disk reads A pure track or set switch re-fired the debounced userData save with an unchanged reference, paying stringify + atomic write + fsync + backup copy for identical bytes, then a reload-data broadcast that made the projector sync-read the whole file on its render thread. Skip the save (and broadcast) when the userData reference matches the last save; all mutations flow through immer so changed data always has a new reference, and the existing post-save reload-data recovery for freshly created tracks is unaffected. set-activate now only fires when the set actually changed; same-set track switches use track-activate alone, the exact flow MIDI-driven track selection has always used, removing a second synchronous userData.json read per switch. The appState read-modify-write per switch/mute now reads disk once and spreads from the in-memory copy (this hook and the unload flush are the only writers). Co-Authored-By: Claude Fable 5 --- .../core/hooks/useDashboardPersistence.ts | 21 +++++++++++++++++-- .../core/hooks/useDashboardPlayback.ts | 13 +++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/dashboard/core/hooks/useDashboardPersistence.ts b/src/dashboard/core/hooks/useDashboardPersistence.ts index 9e9540b..3eb9740 100644 --- a/src/dashboard/core/hooks/useDashboardPersistence.ts +++ b/src/dashboard/core/hooks/useDashboardPersistence.ts @@ -39,6 +39,7 @@ export const useDashboardPersistence = ({ }: UseDashboardPersistenceArgs) => { const userDataSaveTimeoutRef = useRef | null>(null); const recordingDataSaveTimeoutRef = useRef | null>(null); + const lastSavedUserDataRef = useRef | null>(null); useEffect(() => { if (isInitialMountRef.current) { @@ -49,8 +50,15 @@ export const useDashboardPersistence = ({ return; } + // All edits produce a new userData reference (immer), so a pure track/set + // switch re-firing this effect must not rewrite identical bytes to disk. + if (lastSavedUserDataRef.current === userData) { + return; + } + const debouncedSave = setTimeout(async () => { await saveUserData(userData); + lastSavedUserDataRef.current = userData; userDataSaveTimeoutRef.current = null; const tracks = getActiveSetTracks(userData, activeSetId); @@ -122,14 +130,22 @@ export const useDashboardPersistence = ({ workspacePathRef, ]); + const appStateRef = useRef | null>(null); + useEffect(() => { if (isInitialMountRef.current) { return; } const updateAppState = async () => { - const currentState = await loadAppState(); - const currentStateObj = currentState && typeof currentState === 'object' ? currentState as Record : {}; + // appState.json is written only by this hook and the unload flush, so + // read it once and spread from the in-memory copy on later writes. + if (appStateRef.current === null) { + const currentState = await loadAppState(); + appStateRef.current = + currentState && typeof currentState === 'object' ? currentState as Record : {}; + } + const currentStateObj = appStateRef.current; const preservedWorkspacePath = workspacePathRef.current ?? currentStateObj.workspacePath ?? null; const stateToSave = { ...currentStateObj, @@ -138,6 +154,7 @@ export const useDashboardPersistence = ({ sequencerMuted: isSequencerMuted, workspacePath: preservedWorkspacePath, }; + appStateRef.current = stateToSave; await saveAppState(stateToSave); }; updateAppState(); diff --git a/src/dashboard/core/hooks/useDashboardPlayback.ts b/src/dashboard/core/hooks/useDashboardPlayback.ts index 17bb053..829cf8c 100644 --- a/src/dashboard/core/hooks/useDashboardPlayback.ts +++ b/src/dashboard/core/hooks/useDashboardPlayback.ts @@ -1,4 +1,5 @@ import { useCallback, useEffect, useRef, useState, type MutableRefObject } from "react"; +import { useSetAtom } from "jotai"; import * as Tone from "tone"; import { produce } from "immer"; import MidiPlayback from "../../../shared/midi/midiPlayback"; @@ -6,6 +7,7 @@ import SequencerPlayback from "../../../shared/sequencer/SequencerPlayback"; import SequencerAudio from "../../../shared/audio/sequencerAudio"; import { getActiveSetTracks } from "../../../shared/utils/setUtils"; import { getRecordingForTrack, getSequencerForTrack } from "../../../shared/json/recordingUtils"; +import { sequencerCurrentStepAtom } from "../state"; import { useLatestRef } from "./useLatestRef"; type UseDashboardPlaybackArgs = { @@ -45,7 +47,7 @@ export const useDashboardPlayback = ({ }: UseDashboardPlaybackArgs) => { const [footerPlaybackState, setFooterPlaybackState] = useState>({}); const [isSequencerPlaying, setIsSequencerPlaying] = useState(false); - const [sequencerCurrentStep, setSequencerCurrentStep] = useState(0); + const setSequencerCurrentStep = useSetAtom(sequencerCurrentStepAtom); const isSequencerPlayingRef = useLatestRef(isSequencerPlaying); const sequencerMutedRef = useLatestRef(isSequencerMuted); @@ -93,9 +95,11 @@ export const useDashboardPlayback = ({ if (track) { setIsProjectorReady(false); - sendToProjector("set-activate", { - setId: activeSetId, - }); + if (didSetChange) { + sendToProjector("set-activate", { + setId: activeSetId, + }); + } sendToProjector("track-activate", { trackName: trackObj.name, }); @@ -446,7 +450,6 @@ export const useDashboardPlayback = ({ return { footerPlaybackState, isSequencerPlaying, - sequencerCurrentStep, handleSequencerToggle, handleFooterPlayPause, handleFooterStop, From 2aae4d3e9578b27ce96dc7940e705b78d30ef0e3 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 11 Jun 2026 15:39:34 +0100 Subject: [PATCH 25/27] feat(dashboard): live input activity readout in the footer In any external input mode the footer's bottom right now shows the last matched track selection and method trigger (TRACK / METHOD). Values are written from useInputEvents only when a trigger actually fires and are read by a memoised leaf component, so per-event updates re-render the readout alone. Covered by footer-input-activity e2e (mock MIDI). Co-Authored-By: Claude Fable 5 --- src/dashboard/components/DashboardFooter.tsx | 158 ++++++++------ src/dashboard/core/hooks/useInputEvents.ts | 15 ++ src/dashboard/core/state.ts | 2 + .../workflows/footer-input-activity.spec.ts | 192 ++++++++++++++++++ 4 files changed, 308 insertions(+), 59 deletions(-) create mode 100644 test/e2e/workflows/footer-input-activity.spec.ts diff --git a/src/dashboard/components/DashboardFooter.tsx b/src/dashboard/components/DashboardFooter.tsx index ec769e0..7d050db 100644 --- a/src/dashboard/components/DashboardFooter.tsx +++ b/src/dashboard/components/DashboardFooter.tsx @@ -1,6 +1,40 @@ +import { memo } from "react"; +import { useAtomValue } from "jotai"; import { FaPlay, FaStop } from "react-icons/fa"; import { Checkbox } from "./FormInputs"; import { Button } from "./Button"; +import { lastTrackActivityAtom, lastMethodActivityAtom } from "../core/state"; + +const InputActivityReadout = memo(() => { + const lastTrack = useAtomValue(lastTrackActivityAtom); + const lastMethod = useAtomValue(lastMethodActivityAtom); + return ( +
+
+ TRACK + + {lastTrack || "--"} + +
+
+ METHOD + + {lastMethod || "--"} + +
+
+ ); +}); type InputConfig = { type?: string; @@ -108,18 +142,21 @@ export const DashboardFooter = ({ if (!track) { return (
-
-
No track selected
- {!config?.sequencerMode && ( - - )} +
+
+
No track selected
+ {!config?.sequencerMode && ( + + )} +
+ {!config?.sequencerMode && }
); @@ -147,54 +184,57 @@ export const DashboardFooter = ({
-
- {config?.sequencerMode || isFileMode ? ( - <> - + + + ) : ( + - - - ) : ( - - )} + {getStatusIcon()} + {getStatusText()} + + )} +
+ {!config?.sequencerMode && }
diff --git a/src/dashboard/core/hooks/useInputEvents.ts b/src/dashboard/core/hooks/useInputEvents.ts index 93b41af..5761386 100644 --- a/src/dashboard/core/hooks/useInputEvents.ts +++ b/src/dashboard/core/hooks/useInputEvents.ts @@ -6,6 +6,8 @@ import { type MutableRefObject, type SetStateAction, } from "react"; +import { useSetAtom, type PrimitiveAtom } from "jotai"; +import { lastTrackActivityAtom, lastMethodActivityAtom } from "../state"; import { getRecordingForTrack, setRecordingForTrack } from "../../../shared/json/recordingUtils"; import { buildMidiConfig, @@ -65,6 +67,12 @@ export const useInputEvents = ({ // Buffer debug entries in a ring buffer; only re-render while the overlay is open. const debugLogBufferRef = useRef([]); const isDebugOverlayOpenRef = useRef(isDebugOverlayOpen); + const setLastTrackActivity = useSetAtom( + lastTrackActivityAtom as unknown as PrimitiveAtom + ); + const setLastMethodActivity = useSetAtom( + lastMethodActivityAtom as unknown as PrimitiveAtom + ); const recordDebugEntries = useCallback( (entries: string[]) => { @@ -326,6 +334,7 @@ export const useInputEvents = ({ if (id != null && idKey && name) { trackName = name; setActiveTrackId(id); + setLastTrackActivity(name); const wasRecording = recordingStateRef.current[idKey]; if (wasRecording) { @@ -477,6 +486,10 @@ export const useInputEvents = ({ flashChannel(channel, 100); }); + if (channelsToFlash.length > 0) { + setLastMethodActivity(channelsToFlash.map((ch) => `CH ${ch}`).join(", ")); + } + if (currentActiveTrackIdKey && channelsToFlash.length > 0) { const recordingStateForTrack = recordingStateRef.current[currentActiveTrackIdKey]; if (recordingStateForTrack?.isRecording) { @@ -545,6 +558,8 @@ export const useInputEvents = ({ setRecordingData, setRecordingState, setFlashingConstructors, + setLastTrackActivity, + setLastMethodActivity, ] ); diff --git a/src/dashboard/core/state.ts b/src/dashboard/core/state.ts index a4b4cfa..bae8929 100644 --- a/src/dashboard/core/state.ts +++ b/src/dashboard/core/state.ts @@ -15,6 +15,8 @@ export const recordingStateAtom = atom(0); +export const lastTrackActivityAtom = atom(null); +export const lastMethodActivityAtom = atom(null); export const useFlashingChannels = (): ((channelName: string, duration?: number) => void) => { const setFlashingChannels = useSetAtom(flashingChannelsAtom); diff --git a/test/e2e/workflows/footer-input-activity.spec.ts b/test/e2e/workflows/footer-input-activity.spec.ts new file mode 100644 index 0000000..b5027a2 --- /dev/null +++ b/test/e2e/workflows/footer-input-activity.spec.ts @@ -0,0 +1,192 @@ +import { test, expect } from "@playwright/test"; +import * as fs from "node:fs/promises"; +import * as path from "node:path"; + +import { createTestWorkspace } from "../fixtures/testWorkspace"; +import { launchNwWrld } from "../fixtures/launchElectron"; +import { installInputStatusBuffer, getInputStatuses } from "../fixtures/inputStatusBuffer"; + +const waitForProjectReady = async (page: import("playwright").Page) => { + await page.waitForLoadState("domcontentloaded"); + await page.waitForFunction( + () => globalThis.nwWrldBridge?.project?.isDirAvailable?.() === true, + undefined, + { timeout: 15_000 } + ); +}; + +const getDashboardAndProjectorWindows = async (app: import("playwright").ElectronApplication) => { + await expect.poll(() => app.windows().length, { timeout: 15_000 }).toBeGreaterThanOrEqual(2); + + const windows = app.windows(); + const dashboard = windows.find((w) => w.url().includes("dashboard.html")) || windows[0]; + const projector = windows.find((w) => w.url().includes("projector.html")) || windows[1]; + if (!dashboard || !projector) { + throw new Error("Expected both dashboard and projector windows to exist."); + } + return { dashboard, projector }; +}; + +const readUserData = async (projectDir: string) => { + const userDataPath = path.join(projectDir, "nw_wrld_data", "json", "userData.json"); + const raw = await fs.readFile(userDataPath, "utf-8"); + return JSON.parse(raw) as unknown; +}; + +const getNested = (obj: unknown, keys: string[]): unknown => { + let cur: unknown = obj; + for (const k of keys) { + if (!cur || typeof cur !== "object") return undefined; + cur = (cur as Record)[k]; + } + return cur; +}; + +const emitNote = async ( + dashboard: import("playwright").Page, + args: { deviceId: string; note: number; channel: number } +) => { + await dashboard.evaluate(({ deviceId, note, channel }) => { + const bridge = (globalThis as unknown as { nwWrldBridge?: unknown }).nwWrldBridge; + const bridgeObj = + bridge && typeof bridge === "object" ? (bridge as Record) : {}; + const testing = + bridgeObj.testing && typeof bridgeObj.testing === "object" + ? (bridgeObj.testing as Record) + : {}; + const midi = + testing.midi && typeof testing.midi === "object" + ? (testing.midi as Record) + : {}; + const noteOn = + typeof midi.noteOn === "function" ? (midi.noteOn as (args: unknown) => void) : null; + noteOn?.({ deviceId, note, channel, velocity: 1 }); + }, args); +}; + +test("footer shows last matched track and method input activity in external MIDI mode", async () => { + const { dir, cleanup } = await createTestWorkspace(); + const app = await launchNwWrld({ projectDir: dir, env: { NW_WRLD_TEST_MIDI_MOCK: "1" } }); + + const midiDeviceId = "e2e-midi-1"; + const trackSelectNote = 90; + const channelTriggerNote = 91; + + const suffix = String(Date.now()); + const setName = `E2E Set ${suffix}`; + const trackA = `E2E Track A ${suffix}`; + + try { + await app.firstWindow(); + + const { dashboard, projector } = await getDashboardAndProjectorWindows(app); + await waitForProjectReady(dashboard); + await waitForProjectReady(projector); + + await installInputStatusBuffer(dashboard); + + await dashboard.getByText("SETTINGS", { exact: true }).click(); + await dashboard.locator('label[for="signal-external-midi"]').click(); + const midiSelect = dashboard.locator("#midiDevice"); + await expect(midiSelect).toBeVisible(); + await midiSelect.selectOption(midiDeviceId); + + await expect + .poll( + async () => { + const statuses = await getInputStatuses(dashboard); + return statuses.some((s) => s.status === "connected"); + }, + { timeout: 20_000 } + ) + .toBe(true); + + await dashboard.getByText("CONFIGURE MAPPINGS", { exact: true }).click(); + await expect(dashboard.getByText("INPUT MAPPINGS", { exact: true })).toBeVisible(); + await dashboard.locator('label[for="input-mappings-midi-exact"]').click(); + + const trackRow = dashboard.locator('span:has-text("Track 1:")').first().locator(".."); + await expect(trackRow).toBeVisible(); + await trackRow.locator("select").first().selectOption(String(trackSelectNote)); + + const channelRow = dashboard.locator('span:has-text("Ch 1:")').first().locator(".."); + await expect(channelRow).toBeVisible(); + await channelRow.locator("select").first().selectOption(String(channelTriggerNote)); + + const mappingsModal = dashboard + .locator("div.fixed") + .filter({ hasText: "INPUT MAPPINGS" }) + .first(); + await mappingsModal.getByText("BACK", { exact: true }).click(); + await expect(dashboard.getByText("INPUT MAPPINGS", { exact: true })).toBeHidden(); + + if (await dashboard.locator("#midiDevice").isVisible()) { + await dashboard.getByText("CLOSE", { exact: true }).click(); + } + await expect(dashboard.locator("#midiDevice")).toBeHidden(); + + await expect + .poll( + async () => { + try { + const ud = await readUserData(dir); + return getNested(ud, ["config", "trackMappings", "midi", "exactNote", "1"]); + } catch { + return null; + } + }, + { timeout: 30_000 } + ) + .toBe(trackSelectNote); + + const userData = await readUserData(dir); + const trackSelectionChannel = getNested(userData, [ + "config", + "input", + "trackSelectionChannel", + ]) as number; + const methodTriggerChannel = getNested(userData, [ + "config", + "input", + "methodTriggerChannel", + ]) as number; + + await dashboard.getByText("SETS", { exact: true }).click(); + await dashboard.getByText("Create Set", { exact: true }).click(); + await dashboard.locator("#set-name").fill(setName); + await dashboard.getByText("Create Set", { exact: true }).click(); + await expect(dashboard.locator("#set-name")).toBeHidden(); + + await dashboard.getByText("TRACKS", { exact: true }).click(); + await dashboard.getByText("Create Track", { exact: true }).click(); + await dashboard.locator('input[placeholder="My Performance Track"]').fill(trackA); + await dashboard.getByText("Create Track", { exact: true }).click(); + await expect(dashboard.locator('input[placeholder="My Performance Track"]')).toBeHidden(); + + const trackReadout = dashboard.getByTestId("input-activity-track"); + const methodReadout = dashboard.getByTestId("input-activity-method"); + await expect(trackReadout).toBeVisible(); + await expect(trackReadout).toHaveText("--"); + await expect(methodReadout).toHaveText("--"); + + await emitNote(dashboard, { + deviceId: midiDeviceId, + note: trackSelectNote, + channel: trackSelectionChannel, + }); + await expect(trackReadout).toHaveText(trackA, { timeout: 20_000 }); + await expect(methodReadout).toHaveText("--"); + + await emitNote(dashboard, { + deviceId: midiDeviceId, + note: channelTriggerNote, + channel: methodTriggerChannel, + }); + await expect(methodReadout).toHaveText("CH 1", { timeout: 20_000 }); + } finally { + try { + await app.close(); + } catch {} + await cleanup(); + } +}); From acc0ee99882ef0c668b73e18ef5ed6145e996f96 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 11 Jun 2026 15:39:34 +0100 Subject: [PATCH 26/27] feat(dashboard): duplicate buttons for sets, tracks, and modules Clone icons next to the edit/delete controls in the set and track modals, and next to the eye toggle on each module. Copies get a "(Copy)" name with case-insensitive collision handling, fresh ids throughout (set, track, module instance, with modulesData remapped), the next free track slot for same-set track copies (alert when full), and duplicated recordingData entries so sequencer patterns and recordings carry over. Pure helpers in shared/utils/duplicateUtils.ts (runtime lane, 8 unit tests) plus duplicate-set-track-module e2e. Co-Authored-By: Claude Fable 5 --- .../components/track/ModuleComponents.tsx | 35 +++- src/dashboard/modals/SelectSetModal.tsx | 49 ++++- src/dashboard/modals/SelectTrackModal.tsx | 66 ++++++- src/shared/utils/duplicateUtils.ts | 123 ++++++++++++ test/duplicateUtils.test.js | 153 ++++++++++++++ .../duplicate-set-track-module.spec.ts | 186 ++++++++++++++++++ tsconfig.runtime.json | 1 + 7 files changed, 610 insertions(+), 3 deletions(-) create mode 100644 src/shared/utils/duplicateUtils.ts create mode 100644 test/duplicateUtils.test.js create mode 100644 test/e2e/workflows/duplicate-set-track-module.spec.ts diff --git a/src/dashboard/components/track/ModuleComponents.tsx b/src/dashboard/components/track/ModuleComponents.tsx index 0ea5735..cdf85f7 100644 --- a/src/dashboard/components/track/ModuleComponents.tsx +++ b/src/dashboard/components/track/ModuleComponents.tsx @@ -21,7 +21,8 @@ import { parsePitchClass, pitchClassToName, } from "../../../shared/midi/midiUtils"; -import { FaCog, FaExclamationTriangle, FaEye, FaEyeSlash } from "react-icons/fa"; +import { duplicateModuleInstanceInTrack } from "../../../shared/utils/duplicateUtils"; +import { FaClone, FaCog, FaExclamationTriangle, FaEye, FaEyeSlash } from "react-icons/fa"; import { Tooltip } from "../Tooltip"; type Track = { @@ -496,6 +497,22 @@ export const NoteSelector = memo( }); }, [setUserData, activeSetId, trackIndex, instanceId]); + const duplicateModule = useCallback(() => { + const newInstanceId = `inst_${Date.now()}_${Math.random().toString(36).slice(2, 11)}`; + updateActiveSet(setUserData, activeSetId, (activeSet) => { + if (!isPlainObject(activeSet)) return; + const tracksUnknown = (activeSet as Record).tracks; + if (!Array.isArray(tracksUnknown)) return; + const trackDraft = tracksUnknown[trackIndex]; + if (!isPlainObject(trackDraft)) return; + duplicateModuleInstanceInTrack( + trackDraft as Record, + instanceId, + newInstanceId + ); + }); + }, [setUserData, activeSetId, trackIndex, instanceId]); + return (
@@ -538,6 +555,22 @@ export const NoteSelector = memo( > {isDisabled ? : } + {onRemoveModule && (
void; onEdit: (setId: string) => void; + onDuplicate: (setId: string) => void; onDelete: (setId: string) => void; canDelete: boolean; }; @@ -32,6 +38,7 @@ const SortableSetItem = ({ activeSetId, onSetSelect, onEdit, + onDuplicate, onDelete, canDelete, }: SortableSetItemProps) => { @@ -62,6 +69,16 @@ const SortableSetItem = ({ > + + - + ); }; diff --git a/src/dashboard/components/track/ModuleComponents.tsx b/src/dashboard/components/track/ModuleComponents.tsx index cdf85f7..3ba1b5b 100644 --- a/src/dashboard/components/track/ModuleComponents.tsx +++ b/src/dashboard/components/track/ModuleComponents.tsx @@ -302,7 +302,7 @@ export const NoteSelector = memo( const channelName = `ch${channelNumber}`; return { name: channelName, - number: parseInt(channelNumber), + number: parseInt(channelNumber, 10), sequences: recordingMap.get(channelName) || [], }; }); diff --git a/src/dashboard/core/hooks/useDashboardAudioCapture.ts b/src/dashboard/core/hooks/useDashboardAudioCapture.ts index 5bed113..4ed438f 100644 --- a/src/dashboard/core/hooks/useDashboardAudioCapture.ts +++ b/src/dashboard/core/hooks/useDashboardAudioCapture.ts @@ -96,11 +96,11 @@ export const useDashboardAudioCapture = ({ useEffect(() => { const stop = async () => { runIdRef.current += 1; - const onVis = visibilityHandlerRef.current; + const storedVisibilityHandler = visibilityHandlerRef.current; visibilityHandlerRef.current = null; - if (typeof onVis === "function") { + if (typeof storedVisibilityHandler === "function") { try { - document.removeEventListener("visibilitychange", onVis); + document.removeEventListener("visibilitychange", storedVisibilityHandler); } catch {} } if (rafRef.current != null) { @@ -410,7 +410,7 @@ export const useDashboardAudioCapture = ({ tick().catch(() => {}); }); - const onVisibilityChange = () => { + const handleVisibilityChange = () => { try { if (!enabled) return; if (document.hidden) return; @@ -422,8 +422,8 @@ export const useDashboardAudioCapture = ({ } catch {} }; try { - visibilityHandlerRef.current = onVisibilityChange; - document.addEventListener("visibilitychange", onVisibilityChange); + visibilityHandlerRef.current = handleVisibilityChange; + document.addEventListener("visibilitychange", handleVisibilityChange); } catch {} } catch (e) { const message = e instanceof Error ? e.message : String(e); diff --git a/src/dashboard/core/hooks/useDashboardUpdateConfig.ts b/src/dashboard/core/hooks/useDashboardUpdateConfig.ts index 20a66cc..e5d237f 100644 --- a/src/dashboard/core/hooks/useDashboardUpdateConfig.ts +++ b/src/dashboard/core/hooks/useDashboardUpdateConfig.ts @@ -1,11 +1,15 @@ import { useCallback, type MutableRefObject } from "react"; -import { produce } from "immer"; +import { updateUserData, type SetUserData } from "../utils"; type UseDashboardUpdateConfigArgs = { - setUserData: (updater: (prev: Record) => Record) => void; + setUserData: SetUserData; userDataConfig: Record | undefined; isSequencerPlaying: boolean; - sequencerEngineRef: MutableRefObject<{ setBpm?: (bpm: number) => void; stop?: () => void; getRunId?: () => number } | null>; + sequencerEngineRef: MutableRefObject<{ + setBpm?: (bpm: number) => void; + stop?: () => void; + getRunId?: () => number; + } | null>; sequencerRunIdRef: MutableRefObject; setIsSequencerPlaying: (next: boolean) => void; setSequencerCurrentStep: (next: number) => void; @@ -23,7 +27,10 @@ export const useDashboardUpdateConfig = ({ return useCallback( (updates: Record) => { const wasSequencerMode = userDataConfig?.sequencerMode; - const willBeSequencerMode = Object.prototype.hasOwnProperty.call(updates || {}, "sequencerMode") + const willBeSequencerMode = Object.prototype.hasOwnProperty.call( + updates || {}, + "sequencerMode" + ) ? (updates as Record).sequencerMode : wasSequencerMode; @@ -34,7 +41,9 @@ export const useDashboardUpdateConfig = ({ Number.isFinite((updates as Record).sequencerBpm as number) && sequencerEngineRef.current ) { - sequencerEngineRef.current.setBpm?.((updates as Record).sequencerBpm as number); + sequencerEngineRef.current.setBpm?.( + (updates as Record).sequencerBpm as number + ); } if (wasSequencerMode && !willBeSequencerMode && isSequencerPlaying) { @@ -71,76 +80,79 @@ export const useDashboardUpdateConfig = ({ return out; }; - setUserData( - produce((draft: Record) => { - if (!draft.config || typeof draft.config !== "object") { - draft.config = {}; - } - const config = draft.config as Record; + updateUserData(setUserData, (draft) => { + if (!draft.config || typeof draft.config !== "object") { + draft.config = {}; + } + const config = draft.config as Record; - const hasUserColors = Object.prototype.hasOwnProperty.call(updates || {}, "userColors"); + const hasUserColors = Object.prototype.hasOwnProperty.call(updates || {}, "userColors"); - if (hasUserColors) { - const palette = normalizeUserColors((updates as Record).userColors); - config.userColors = palette; + if (hasUserColors) { + const palette = normalizeUserColors((updates as Record).userColors); + config.userColors = palette; - const syncOptions = (options: unknown) => { - const list = Array.isArray(options) ? options : []; - for (const opt of list) { - if (!opt || typeof opt !== "object") continue; - const o = opt as Record; - if (o.randomizeFromUserColors !== true) continue; - if (palette.length > 0) { - o.randomValues = [...palette]; - } else { - delete o.randomValues; - delete o.randomizeFromUserColors; - } + const syncOptions = (options: unknown) => { + const list = Array.isArray(options) ? options : []; + for (const opt of list) { + if (!opt || typeof opt !== "object") continue; + const o = opt as Record; + if (o.randomizeFromUserColors !== true) continue; + if (palette.length > 0) { + o.randomValues = [...palette]; + } else { + delete o.randomValues; + delete o.randomizeFromUserColors; } - }; + } + }; - const syncMethodList = (methods: unknown) => { - const list = Array.isArray(methods) ? methods : []; - for (const m of list) { - if (!m || typeof m !== "object") continue; - const mm = m as Record; - syncOptions(mm.options); - } - }; + const syncMethodList = (methods: unknown) => { + const list = Array.isArray(methods) ? methods : []; + for (const m of list) { + if (!m || typeof m !== "object") continue; + const mm = m as Record; + syncOptions(mm.options); + } + }; - const sets = Array.isArray(draft.sets) ? (draft.sets as unknown[]) : []; - for (const set of sets) { - const s = set && typeof set === "object" ? (set as Record) : null; - const tracks = Array.isArray(s?.tracks) ? (s?.tracks as unknown[]) : []; - for (const track of tracks) { - const t = track && typeof track === "object" ? (track as Record) : null; - const modulesData = - t && typeof t.modulesData === "object" && t.modulesData ? (t.modulesData as Record) : null; - if (!modulesData) continue; - for (const instanceId of Object.keys(modulesData)) { - const md = modulesData[instanceId] as Record | null; - if (!md || typeof md !== "object") continue; - syncMethodList(md.constructor); - const methodsByChannel = - md.methods && typeof md.methods === "object" ? (md.methods as Record) : null; - if (!methodsByChannel) continue; - for (const channelKey of Object.keys(methodsByChannel)) { - syncMethodList(methodsByChannel[channelKey]); - } + const sets = Array.isArray(draft.sets) ? (draft.sets as unknown[]) : []; + for (const set of sets) { + const s = set && typeof set === "object" ? (set as Record) : null; + const tracks = Array.isArray(s?.tracks) ? (s?.tracks as unknown[]) : []; + for (const track of tracks) { + const t = + track && typeof track === "object" ? (track as Record) : null; + const modulesData = + t && typeof t.modulesData === "object" && t.modulesData + ? (t.modulesData as Record) + : null; + if (!modulesData) continue; + for (const instanceId of Object.keys(modulesData)) { + const md = modulesData[instanceId] as Record | null; + if (!md || typeof md !== "object") continue; + syncMethodList(md.constructor); + const methodsByChannel = + md.methods && typeof md.methods === "object" + ? (md.methods as Record) + : null; + if (!methodsByChannel) continue; + for (const channelKey of Object.keys(methodsByChannel)) { + syncMethodList(methodsByChannel[channelKey]); } } } } + } - if (hasUserColors) { - const next = { ...(updates || {}) } as Record; - delete next.userColors; - Object.assign(config, next); - } else { - Object.assign(config, updates); - } - }) - ); + if (hasUserColors) { + const next = { ...(updates || {}) } as Record; + delete next.userColors; + Object.assign(config, next); + } else { + Object.assign(config, updates); + } + }); }, [ setUserData, @@ -153,4 +165,3 @@ export const useDashboardUpdateConfig = ({ ] ); }; - diff --git a/src/dashboard/core/utils.ts b/src/dashboard/core/utils.ts index cc75c67..3fe511c 100644 --- a/src/dashboard/core/utils.ts +++ b/src/dashboard/core/utils.ts @@ -71,7 +71,7 @@ const getMethodCode = (moduleName: unknown, methodName: unknown) => { type UserDataState = { config: Record; sets: unknown[] } & Record; type SetStateAction = T | ((prev: T) => T); -type SetUserData = (action: SetStateAction) => void; +export type SetUserData = (action: SetStateAction) => void; const updateUserData = (setUserData: SetUserData, updater: (draft: UserDataState) => void) => { setUserData((prev) => diff --git a/src/dashboard/modals/AddModuleModal.tsx b/src/dashboard/modals/AddModuleModal.tsx index 2cc334d..0615299 100644 --- a/src/dashboard/modals/AddModuleModal.tsx +++ b/src/dashboard/modals/AddModuleModal.tsx @@ -210,7 +210,7 @@ export const AddModuleModal = ({ if (typeof trackUnknown !== "object" || !trackUnknown) return; const t = trackUnknown as Record; - const instanceId = `inst_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`; + const instanceId = `inst_${Date.now()}_${Math.random().toString(36).slice(2, 11)}`; const modulesArray = Array.isArray(t.modules) ? t.modules : []; modulesArray.push({ id: instanceId, @@ -470,7 +470,7 @@ export const AddModuleModal = ({ } return ( - +
diff --git a/src/dashboard/modals/MethodConfiguratorModal.tsx b/src/dashboard/modals/MethodConfiguratorModal.tsx index 77f502f..b703563 100644 --- a/src/dashboard/modals/MethodConfiguratorModal.tsx +++ b/src/dashboard/modals/MethodConfiguratorModal.tsx @@ -73,7 +73,7 @@ type PredefinedModule = { methods?: unknown[]; }; -type SortableItemProps = { +type SortableMethodItemProps = { id: string; method: MethodConfig; handleRemoveMethod: (methodName: string) => void; @@ -85,7 +85,7 @@ type SortableItemProps = { onShowMethodCode: (methodName: string) => void; }; -const SortableItem = memo( +const SortableMethodItem = memo( ({ id, method, @@ -96,7 +96,7 @@ const SortableItem = memo( moduleName, userColors, onShowMethodCode, - }: SortableItemProps) => { + }: SortableMethodItemProps) => { const toggleRandomization = useCallback( (optionName: string, optionDef: OptionDef | null = null) => { const option = method.options.find((o) => o.name === optionName); @@ -276,7 +276,7 @@ const SortableItem = memo( } ); -SortableItem.displayName = "SortableItem"; +SortableMethodItem.displayName = "SortableMethodItem"; type SelectedChannel = { trackIndex: number; @@ -973,9 +973,8 @@ export const MethodConfiguratorModal = ({ (acc: MethodConfig[], l) => { if (l.name === currentLayer.name) { return [...acc, ...reorderedLayer]; - } else { - return [...acc, ...l.configuredMethods]; } + return [...acc, ...l.configuredMethods]; }, [] ); @@ -1000,7 +999,7 @@ export const MethodConfiguratorModal = ({ }; return ( - void; - min?: number; - max?: number; - step?: number; - className?: string; - style?: React.CSSProperties; - "data-testid"?: string; -}; - -const DraftFloatInput = memo(({ value, fallback, onCommit, ...props }: DraftFloatInputProps) => { - const [draft, setDraft] = useState(null); - const [isFocused, setIsFocused] = useState(false); - const skipCommitRef = useRef(false); - - useEffect(() => { - if (!isFocused) setDraft(null); - }, [isFocused, value]); - - const displayed = draft !== null ? draft : String(value ?? ""); - - const commitIfValid = useCallback( - (raw: string) => { - const s = String(raw); - const isIntermediate = - s === "" || s === "-" || s === "." || s === "-." || s.endsWith(".") || /e[+-]?$/i.test(s); - if (isIntermediate) return; - const n = parseFloat(s); - if (!Number.isFinite(n)) return; - onCommit(n); - }, - [onCommit] - ); - - const commitOnBlur = useCallback(() => { - if (draft === null) return; - const s = String(draft); - const isIntermediate = - s === "" || s === "-" || s === "." || s === "-." || s.endsWith(".") || /e[+-]?$/i.test(s); - if (isIntermediate) { - onCommit(fallback); - return; - } - const n = parseFloat(s); - if (!Number.isFinite(n)) { - onCommit(fallback); - return; - } - onCommit(n); - }, [draft, fallback, onCommit]); - - return ( - { - skipCommitRef.current = false; - setIsFocused(true); - setDraft(String(value ?? "")); - }} - onChange={(e: ChangeEvent) => { - const next = e.target.value; - setDraft(next); - commitIfValid(next); - }} - onBlur={() => { - setIsFocused(false); - if (skipCommitRef.current) { - skipCommitRef.current = false; - return; - } - commitOnBlur(); - }} - onKeyDown={(e: KeyboardEvent) => { - if (e.key === "Enter") e.currentTarget.blur(); - if (e.key === "Escape") { - skipCommitRef.current = true; - setDraft(null); - e.currentTarget.blur(); - } - }} - /> - ); -}); - type UserColorsProps = { config: { userColors?: string[] }; updateConfig: (updates: { userColors: string[] }) => void; @@ -796,7 +709,7 @@ export const SettingsModal = ({ onChange={(e: ChangeEvent) => setInputConfig({ ...inputConfig, - port: parseInt(e.target.value) || 8000, + port: parseInt(e.target.value, 10) || 8000, }) } className="py-1 w-full" diff --git a/src/dashboard/shared/MatrixGrid.tsx b/src/dashboard/shared/MatrixGrid.tsx index f805310..73caba8 100644 --- a/src/dashboard/shared/MatrixGrid.tsx +++ b/src/dashboard/shared/MatrixGrid.tsx @@ -46,7 +46,7 @@ export const MatrixGrid = ({ value, onChange }: MatrixGridProps) => { }, [value]); const handleRowsChange = (newRows: string | number) => { - const numRows = Math.max(1, Math.min(5, parseInt(String(newRows)) || 1)); + const numRows = Math.max(1, Math.min(5, parseInt(String(newRows), 10) || 1)); const oldRows = rows; setRows(numRows); @@ -71,7 +71,7 @@ export const MatrixGrid = ({ value, onChange }: MatrixGridProps) => { }; const handleColsChange = (newCols: string | number) => { - const numCols = Math.max(1, Math.min(5, parseInt(String(newCols)) || 1)); + const numCols = Math.max(1, Math.min(5, parseInt(String(newCols), 10) || 1)); const oldCols = cols; setCols(numCols); diff --git a/src/dashboard/shared/Modal.tsx b/src/dashboard/shared/Modal.tsx index 6331bdc..02ed62c 100644 --- a/src/dashboard/shared/Modal.tsx +++ b/src/dashboard/shared/Modal.tsx @@ -7,7 +7,7 @@ type ModalProps = { isOpen: boolean; onClose: (event?: MouseEvent) => void; children: ReactNode; - onCloseHandler?: (event: MouseEvent) => void; + onOverlayClick?: (event: MouseEvent) => void; position?: ModalPosition; size?: ModalSize; }; @@ -35,13 +35,13 @@ export const Modal = ({ isOpen, onClose, children, - onCloseHandler, + onOverlayClick, position = "center", size = "medium", }: ModalProps) => { if (!isOpen) return null; - const handleOverlayClick = onCloseHandler || onClose; + const handleOverlayClick = onOverlayClick || onClose; const isBottomAligned = position === "bottom"; const getSizeClass = () => { diff --git a/src/projector/helpers/moduleBase.ts b/src/projector/helpers/moduleBase.ts index 42aceef..54472cd 100644 --- a/src/projector/helpers/moduleBase.ts +++ b/src/projector/helpers/moduleBase.ts @@ -1,5 +1,3 @@ -// src/ModuleBase.js - export class ModuleBase { elem: HTMLElement | null; name: string; @@ -258,7 +256,7 @@ export class ModuleBase { /** * Adjusts the opacity of the element. * @param {Object} options - * @param {number} options.value - The opacity value between 0 and 1 (default: 1). + * @param {number} options.opacity - The opacity value between 0 and 1 (default: 1). */ opacity(options: { opacity?: number } = {}) { const { opacity = 1 } = options; @@ -279,7 +277,7 @@ export class ModuleBase { * After the duration, the rotation stops, and the element remains in its final rotated position. * @param {Object} options * @param {string} options.direction - "clockwise" or "counter-clockwise" (default: "clockwise"). - * @param {number} options.speed - The rotation speed in degrees per second (default: 60). + * @param {number} options.speed - The rotation speed multiplier (default: 1). * @param {number} options.duration - Duration in milliseconds to rotate before stopping (default: 0, which means infinite rotation). */ rotate(options: { direction?: string; speed?: number; duration?: number } = {}) { @@ -591,16 +589,6 @@ export class ModuleBase { this.viewportLineElem = svg; this.externalElements.push(svg); - - console.log( - `Module "${ - this.constructor.name - }" viewport line drawn from (${startX.toFixed(1)}, ${startY.toFixed( - 1 - )}) to (${endX.toFixed(1)}, ${endY.toFixed( - 1 - )}) via closest side: ${closestSide}, length: ${clampedLength}%.` - ); } /** diff --git a/src/shared/audio/sequencerAudio.ts b/src/shared/audio/sequencerAudio.ts index d3c78f5..2639167 100644 --- a/src/shared/audio/sequencerAudio.ts +++ b/src/shared/audio/sequencerAudio.ts @@ -101,7 +101,7 @@ class SequencerAudio { return; } - const numericChannel = parseInt(String(channelNumber)); + const numericChannel = parseInt(String(channelNumber), 10); if (isNaN(numericChannel) || numericChannel < 1) { console.warn(`Invalid channel number: ${channelNumber}`); return; diff --git a/src/shared/json/atomicWrite.ts b/src/shared/json/atomicWrite.ts index e04aef7..93d77be 100644 --- a/src/shared/json/atomicWrite.ts +++ b/src/shared/json/atomicWrite.ts @@ -179,21 +179,3 @@ export function atomicWriteFileSync(filePath: string, data: string) { throw error; } } - -export async function cleanupStaleTempFiles(directory: string, minAgeMs = 60_000) { - try { - const files = await fs.promises.readdir(directory); - const now = Date.now(); - const tempFiles = files.filter((f: string) => f.includes(".tmp.")); - - for (const file of tempFiles) { - try { - const fullPath = path.join(directory, file); - const stat = await fs.promises.stat(fullPath); - if (now - stat.mtimeMs >= minAgeMs) { - await fs.promises.unlink(fullPath); - } - } catch {} - } - } catch {} -} diff --git a/src/shared/json/jsonFileBase.ts b/src/shared/json/jsonFileBase.ts index 5edf4fc..be4e155 100644 --- a/src/shared/json/jsonFileBase.ts +++ b/src/shared/json/jsonFileBase.ts @@ -39,8 +39,6 @@ function getJsonBridge(): { }; } -export const getJsonDir = (): null => null; - export const getJsonFilePath = (filename: string): string => filename; export const loadJsonFile = async ( diff --git a/src/shared/validation/optionValidator.ts b/src/shared/validation/optionValidation.ts similarity index 100% rename from src/shared/validation/optionValidator.ts rename to src/shared/validation/optionValidation.ts diff --git a/test/optionValidatorRuntime.test.js b/test/optionValidationRuntime.test.js similarity index 98% rename from test/optionValidatorRuntime.test.js rename to test/optionValidationRuntime.test.js index 6c9ae17..9133bab 100644 --- a/test/optionValidatorRuntime.test.js +++ b/test/optionValidationRuntime.test.js @@ -3,7 +3,7 @@ const assert = require("node:assert/strict"); const path = require("node:path"); const { validateOptionValue, validateRandomRange, validateMethodOptions } = require( - path.join(__dirname, "..", "dist", "runtime", "shared", "validation", "optionValidator.js") + path.join(__dirname, "..", "dist", "runtime", "shared", "validation", "optionValidation.js") ); test("validateOptionValue preserves valid number within range", () => { diff --git a/tsconfig.runtime.json b/tsconfig.runtime.json index 7f905b3..7be3014 100644 --- a/tsconfig.runtime.json +++ b/tsconfig.runtime.json @@ -23,7 +23,7 @@ "src/shared/validation/methodCodeRequestValidation.ts", "src/shared/validation/oscValidation.ts", "src/shared/validation/openExternalValidation.ts", - "src/shared/validation/optionValidator.ts", + "src/shared/validation/optionValidation.ts", "src/shared/validation/dashboardProjectorIpcValidation.ts", "src/shared/validation/pathSafetyValidation.ts", "src/shared/validation/urlPathValidation.ts",