From 7741ed2ee90555694098fd5392156f8ff2a25e02 Mon Sep 17 00:00:00 2001 From: Local Dev Date: Sun, 4 Oct 2026 20:45:04 +0200 Subject: [PATCH] Pithos desktop: Windows installer and portable build Until now the desktop app only ran from a source checkout, so Pithos was really usable only inside Theseus. electron-builder (the version Theseus uses) now makes an NSIS installer and a portable exe; s3d is still fetched on first run by the checksum-checked installer, so the app stays small and never ships an s3d it did not verify. Icons are rendered from ui/icon.svg. Quitting also no longer waits on idle keep-alive sockets before exiting. --- core/server.js | 5 +- desktop/icons/icon.ico | Bin 0 -> 21425 bytes desktop/icons/icon.png | Bin 0 -> 29293 bytes desktop/main.cjs | 3 + package-lock.json | 4353 +++++++++++++++++++++++++++++++++++++++- package.json | 68 +- scripts/make-icons.cjs | 52 + 7 files changed, 4475 insertions(+), 6 deletions(-) create mode 100644 desktop/icons/icon.ico create mode 100644 desktop/icons/icon.png create mode 100644 scripts/make-icons.cjs diff --git a/core/server.js b/core/server.js index d571687..0f7c4af 100644 --- a/core/server.js +++ b/core/server.js @@ -883,7 +883,10 @@ export async function createPithos(opts = {}) { login.cancel(); for (const s of subscribers) s.end(); await daemon.stop(); - await new Promise((r) => server.close(r)); + // Idle keep-alive sockets would hold close() for seconds; nobody is left to answer. + const closed = new Promise((r) => server.close(r)); + server.closeAllConnections?.(); + await closed; }, }; } diff --git a/desktop/icons/icon.ico b/desktop/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..08007e66c7d7ba25c3ea3ca821097231f9bd0f74 GIT binary patch literal 21425 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" @@ -24,6 +25,24 @@ "@lydell/node-pty": "1.2.0-beta.15" } }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/@electron-internal/extract-zip": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@electron-internal/extract-zip/-/extract-zip-1.0.5.tgz", @@ -34,6 +53,55 @@ "node": ">=22.12.0" } }, + "node_modules/@electron/asar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.4.1.tgz", + "integrity": "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/asar/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@electron/asar/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/asar/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/@electron/get": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@electron/get/-/get-5.1.0.tgz", @@ -55,6 +123,278 @@ "undici": "^7.24.4" } }, + "node_modules/@electron/notarize": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.5.0.tgz", + "integrity": "sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/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/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==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "compare-version": "^0.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "isbinaryfile": "^4.0.8", + "minimist": "^1.2.6", + "plist": "^3.0.5" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "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==", + "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" + }, + "bin": { + "electron-rebuild": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "^3.2.7", + "@malept/cross-spawn-promise": "^2.0.0", + "debug": "^4.3.1", + "dir-compare": "^4.2.0", + "fs-extra": "^11.1.1", + "minimatch": "^9.0.3", + "plist": "^3.1.0" + }, + "engines": { + "node": ">=16.4" + } + }, + "node_modules/@electron/universal/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@electron/universal/node_modules/brace-expansion": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "11.4.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.1.tgz", + "integrity": "sha512-KYAb4c9BJQI6QqGKthV68OHe0badztdXJWKo0WtBA9IuCFPTKvE5ZdUBglP833aMjhaSPNO4A5j/EkzZtGlKjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/universal/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/@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/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "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.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "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.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "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" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@lydell/node-pty": { "version": "1.2.0-beta.15", "resolved": "https://registry.npmjs.org/@lydell/node-pty/-/node-pty-1.2.0-beta.15.tgz", @@ -148,6 +488,194 @@ "win32" ] }, + "node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/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/@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/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/@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/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "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/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/debug": { + "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": { + "@types/ms": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "24.19.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.1.tgz", @@ -158,6 +686,1032 @@ "undici-types": ">=7.24.0 <7.24.7" } }, + "node_modules/@types/plist": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/verror": { + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.11.tgz", + "integrity": "sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@xmldom/xmldom": { + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.12.tgz", + "integrity": "sha512-5AXjrcMClTryPe9LgZrygpB1lj7s0S9E0+W+AHaVKAVyHanafK86iPSvG5xHVSp/jC+VH1UXu0TAEmY279xH7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.6" + } + }, + "node_modules/7zip-bin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz", + "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", + "dev": true, + "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==", + "dev": true, + "license": "ISC" + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "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", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/notarize": "2.5.0", + "@electron/osx-sign": "1.3.1", + "@electron/rebuild": "3.6.1", + "@electron/universal": "2.0.1", + "@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", + "chromium-pickle-js": "^0.2.0", + "config-file-ts": "0.2.8-rc1", + "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", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "is-ci": "^3.0.0", + "isbinaryfile": "^5.0.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "lazy-val": "^1.0.5", + "minimatch": "^10.0.0", + "resedit": "^1.7.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.8", + "tar": "^6.1.12", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "dmg-builder": "25.1.8", + "electron-builder-squirrel-windows": "25.1.8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "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" + }, + "engines": { + "node": ">= 10" + } + }, + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "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/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==", + "dev": true, + "license": "MIT", + "peer": true + }, + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "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.", + "dev": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "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/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "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/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "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==", + "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", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "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", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.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/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", + "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": "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": { + "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", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true, + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "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", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "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-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "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/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "license": "MIT", + "engines": { + "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", + "peer": true, + "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/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "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/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/config-file-ts/node_modules/brace-expansion": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", + "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==", + "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": { + "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.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "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/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "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", + "peer": true, + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -176,6 +1730,239 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "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", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "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/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/dir-compare": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz", + "integrity": "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5", + "p-limit": "^3.1.0 " + } + }, + "node_modules/dir-compare/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/dir-compare/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/dir-compare/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/dmg-builder": { + "version": "25.1.8", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-25.1.8.tgz", + "integrity": "sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "25.1.8", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "fs-extra": "^10.1.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.11" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "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/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron": { "version": "44.5.1", "resolved": "https://registry.npmjs.org/electron/-/electron-44.5.1.tgz", @@ -195,6 +1982,90 @@ "node": ">= 22.12.0" } }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "25.1.8", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "chalk": "^4.1.2", + "dmg-builder": "25.1.8", + "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" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "app-builder-lib": "25.1.8", + "archiver": "^5.3.1", + "builder-util": "25.1.7", + "fs-extra": "^10.1.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "25.1.7", + "builder-util-runtime": "9.2.10", + "chalk": "^4.1.2", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.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==", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/env-paths": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", @@ -208,6 +2079,422 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "optional": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/filelist": { + "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": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/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/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.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 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", + "peer": true + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "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", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "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/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/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/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -215,6 +2502,859 @@ "dev": true, "license": "ISC" }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "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.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.3.0.tgz", + "integrity": "sha512-M5t5LlJpS1UHMjvwRQVdFHvPISGeLAxNcrWuJkeGh0KxsqCHZ1O3NXZU/8x7cD0BDcGW8kapxMKTvwlqrNkHkA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "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/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "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", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ip-address": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.3.tgz", + "integrity": "sha512-A1kdq/tSb5QjvKvAMgIoEvDBIgL7qaqVP/jkvSwYYRZ9iEzvPpopxp2wQfu3SuZRHtpHNxMn8Fs0bS+gf5Xmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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-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/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/isbinaryfile": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.7.tgz", + "integrity": "sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "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", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "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", + "peer": true, + "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", + "peer": true, + "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", + "peer": true + }, + "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", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lodash": { + "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" + }, + "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", + "peer": true + }, + "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", + "peer": true + }, + "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", + "peer": true + }, + "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", + "peer": true + }, + "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", + "peer": true + }, + "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/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "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", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", + "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", + "dev": true, + "license": "BlueOak-1.0.0", + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -222,6 +3362,338 @@ "dev": true, "license": "MIT" }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-abi": { + "version": "3.96.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.96.0.tgz", + "integrity": "sha512-rebQ/lz7i0EkoLzUVSrKRzA69zMkwLp95kKMWoMDkkM00Suxz0D7zEQPwRml5fQum24mj7bPvmlgLAmu2JCiYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-api-version": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.1.tgz", + "integrity": "sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + } + }, + "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==", + "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", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/node-gyp/node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "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/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/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/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/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "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/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/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/pe-library": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pe-library/-/pe-library-0.4.1.tgz", + "integrity": "sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/plist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.1.tgz", + "integrity": "sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.9.10", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.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", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -232,6 +3704,270 @@ "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", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-binary-file-arch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", + "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "bin": { + "read-binary-file-arch": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "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", + "peer": true, + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", + "dev": true, + "license": "MIT", + "peer": true, + "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", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resedit": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/resedit/-/resedit-1.7.2.tgz", + "integrity": "sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pe-library": "^0.4.1" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "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", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "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/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sanitize-filename": { + "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": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/semver": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", @@ -245,6 +3981,238 @@ "node": ">=10" } }, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.10.tgz", + "integrity": "sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.1.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", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/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-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/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-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/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", @@ -258,6 +4226,121 @@ "node": ">= 8.0" } }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "deprecated": "Old versions of tar 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": { + "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" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "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" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/tmp": { + "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": { + "node": ">=14.14" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/undici": { "version": "7.30.0", "resolved": "https://registry.npmjs.org/undici/-/undici-7.30.0.tgz", @@ -276,6 +4359,189 @@ "dev": true, "license": "MIT" }, + "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", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.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/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "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/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/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", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "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/yaml": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", @@ -290,6 +4556,87 @@ "funding": { "url": "https://github.com/sponsors/eemeli" } + }, + "node_modules/yargs": { + "version": "17.7.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", + "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "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", + "peer": true, + "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", + "peer": true, + "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 a578a74..bce5b01 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,11 @@ "scripts": { "web": "node bin/pithos-web.js", "desktop": "electron desktop/main.cjs", - "test": "node --test test/*.test.js" + "test": "node --test test/*.test.js", + "icons": "electron scripts/make-icons.cjs", + "dist:win": "electron-builder --win nsis portable", + "dist:linux": "electron-builder --linux AppImage tar.gz", + "dist:mac": "electron-builder --mac dmg zip" }, "engines": { "node": ">=20" @@ -23,6 +27,66 @@ "@lydell/node-pty": "1.2.0-beta.15" }, "devDependencies": { - "electron": "^44.5.1" + "electron": "^44.5.1", + "electron-builder": "^25.1.8" + }, + "author": "Silent Mode", + "homepage": "https://silentmode.st/pithos/", + "build": { + "appId": "st.silentmode.pithos", + "productName": "Pithos", + "artifactName": "Pithos-${version}-${arch}.${ext}", + "extraMetadata": { + "main": "desktop/main.cjs" + }, + "directories": { + "output": "dist/desktop", + "buildResources": "desktop/icons" + }, + "asar": true, + "asarUnpack": [ + "node_modules/@lydell/**" + ], + "npmRebuild": false, + "files": [ + "core/**/*", + "ui/**/*", + "desktop/**/*", + "LICENSE", + "package.json", + "node_modules/**/*", + "!**/*.md", + "!**/*.map", + "!**/*.d.ts" + ], + "win": { + "icon": "desktop/icons/icon.ico", + "target": [ + "nsis", + "portable" + ] + }, + "nsis": { + "oneClick": false, + "perMachine": false, + "allowToChangeInstallationDirectory": true, + "installerIcon": "desktop/icons/icon.ico", + "uninstallerIcon": "desktop/icons/icon.ico", + "installerHeaderIcon": "desktop/icons/icon.ico", + "shortcutName": "Pithos", + "artifactName": "Pithos-Setup-${version}.${ext}" + }, + "portable": { + "artifactName": "Pithos-${version}-portable.${ext}" + }, + "linux": { + "icon": "desktop/icons/icon.png", + "category": "Utility", + "synopsis": "Decentralized cloud storage you own, on Sia" + }, + "mac": { + "icon": "desktop/icons/icon.png", + "category": "public.app-category.utilities" + } } } diff --git a/scripts/make-icons.cjs b/scripts/make-icons.cjs new file mode 100644 index 0000000..f6faffe --- /dev/null +++ b/scripts/make-icons.cjs @@ -0,0 +1,52 @@ +// Renders ui/icon.svg into the desktop app's icons: desktop/icons/icon.png (512 px, +// for Linux and the window) and desktop/icons/icon.ico (16-256 px, PNG-compressed +// entries, for Windows). Run with Electron, which brings its own renderer: +// npx electron scripts/make-icons.cjs +const { app, BrowserWindow } = require('electron'); +const fs = require('node:fs'); +const path = require('node:path'); + +const root = path.join(__dirname, '..'); +const svg = fs.readFileSync(path.join(root, 'ui', 'icon.svg'), 'utf8'); +const out = path.join(root, 'desktop', 'icons'); + +app.disableHardwareAcceleration(); +app.on('window-all-closed', () => {}); +app.whenReady().then(async () => { + // The page draws the SVG on a canvas at each size and hands back a PNG. + const win = new BrowserWindow({ show: false, webPreferences: { offscreen: true } }); + await win.loadURL('data:text/html,'); + const src = `data:image/svg+xml;base64,${Buffer.from(svg).toString('base64')}`; + const render = async (size) => { + const url = await win.webContents.executeJavaScript(`new Promise((ok, fail) => { + const img = new Image(); img.onerror = () => fail(new Error('svg did not load')); + img.onload = () => { const c = document.createElement('canvas'); c.width = c.height = ${size}; + const g = c.getContext('2d'); g.imageSmoothingQuality = 'high'; g.drawImage(img, 0, 0, ${size}, ${size}); ok(c.toDataURL('image/png')); }; + img.src = ${JSON.stringify(src)}; + })`); + return Buffer.from(url.split(',')[1], 'base64'); + }; + + fs.mkdirSync(out, { recursive: true }); + fs.writeFileSync(path.join(out, 'icon.png'), await render(512)); + + const sizes = [16, 24, 32, 48, 64, 128, 256]; + const pngs = []; + for (const s of sizes) pngs.push(await render(s)); + const header = Buffer.alloc(6); + header.writeUInt16LE(0, 0); header.writeUInt16LE(1, 2); header.writeUInt16LE(sizes.length, 4); + const dir = Buffer.alloc(16 * sizes.length); + let offset = 6 + dir.length; + sizes.forEach((s, i) => { + const e = i * 16; + dir.writeUInt8(s >= 256 ? 0 : s, e); dir.writeUInt8(s >= 256 ? 0 : s, e + 1); + dir.writeUInt8(0, e + 2); dir.writeUInt8(0, e + 3); + dir.writeUInt16LE(1, e + 4); dir.writeUInt16LE(32, e + 6); + dir.writeUInt32LE(pngs[i].length, e + 8); dir.writeUInt32LE(offset, e + 12); + offset += pngs[i].length; + }); + fs.writeFileSync(path.join(out, 'icon.ico'), Buffer.concat([header, dir, ...pngs])); + win.destroy(); + console.log('icons written to', out); + app.quit(); +}).catch((e) => { console.error(e); app.exit(1); });