From 7dbe7da4eedaf3fae1efabe89c21891e444a6b11 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sun, 28 Dec 2025 21:46:58 +0000 Subject: [PATCH] Overhauled server code. --- .gitignore | 4 + Jenkinsfile | 104 +- assets/farmcontrolhosticon.png | Bin 0 -> 516555 bytes config.json | 10 +- design_files/farmcontrolhosticon.af | Bin 0 -> 149087 bytes package-lock.json | 10284 ---------------- package.json | 94 +- packaging/linux/after-install.sh | 22 + packaging/linux/after-remove.sh | 14 + packaging/linux/farmcontrol-server.service | 16 + src/documentprinter/documentprinterclient.js | 524 + src/documentprinter/documentprintermanager.js | 97 +- .../interfaces/cupsinterface.js | 306 + .../interfaces/receiptinterface.js | 200 + src/electron/App.jsx | 131 +- src/electron/assets/icons/fileicon.svg | 8 + src/electron/components/FileList.jsx | 57 + src/electron/components/StateDisplay.jsx | 32 +- src/electron/components/StateTag.jsx | 180 +- src/electron/icons/FileIcon.jsx | 6 + src/electron/index.css | 14 +- src/electron/index.html | 5 - src/electron/ipc.js | 8 +- src/electron/pages/DocumentPrinters.jsx | 34 + src/electron/pages/Files.jsx | 34 + src/electron/pages/Printers.jsx | 13 +- src/electron/vite.config.js | 2 +- src/electron/window.js | 2 +- src/files/filemanager.js | 264 + src/index.js | 27 +- src/printer/database.js | 983 +- src/printer/printerclient.js | 1130 +- src/printer/printerfilemanager.js | 155 + src/printer/printermanager.js | 200 +- src/socket/socketclient.js | 550 +- src/utils.js | 70 + yarn.lock | 7597 ++++++++++++ 37 files changed, 11335 insertions(+), 11842 deletions(-) create mode 100644 assets/farmcontrolhosticon.png create mode 100644 design_files/farmcontrolhosticon.af delete mode 100644 package-lock.json create mode 100755 packaging/linux/after-install.sh create mode 100755 packaging/linux/after-remove.sh create mode 100644 packaging/linux/farmcontrol-server.service create mode 100644 src/documentprinter/documentprinterclient.js create mode 100644 src/documentprinter/interfaces/cupsinterface.js create mode 100644 src/documentprinter/interfaces/receiptinterface.js create mode 100644 src/electron/assets/icons/fileicon.svg create mode 100644 src/electron/components/FileList.jsx create mode 100644 src/electron/icons/FileIcon.jsx create mode 100644 src/electron/pages/DocumentPrinters.jsx create mode 100644 src/electron/pages/Files.jsx create mode 100644 src/files/filemanager.js create mode 100644 src/printer/printerfilemanager.js create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 544c3cb..18c9298 100644 --- a/.gitignore +++ b/.gitignore @@ -135,3 +135,7 @@ build .pnp.* .nova + +temp_files/* + +dist/* \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index 4652068..d963663 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,55 +1,59 @@ -node { - env.NODE_ENV = 'production' +def buildOnLabel(label, buildCommand) { + return { + node(label) { + stage("Checkout (${label})") { + checkout scm + } - try { - stage('Checkout') { - checkout scm - } + stage("Setup Node.js (${label})") { + nodejs(nodeJSInstallationName: 'Node23') { + if (isUnix()) { + sh 'node -v' + sh 'yarn -v' + } else { + bat 'node -v' + bat 'yarn -v' + } + } + } - stage('Setup Node.js') { - nodejs(nodeJSInstallationName: 'Node23') { - sh 'node -v' - sh 'npm -v' + stage("Install Dependencies (${label})") { + nodejs(nodeJSInstallationName: 'Node23') { + if (isUnix()) { + sh 'yarn install --frozen-lockfile --production=false' + } else { + bat 'yarn install --frozen-lockfile --production=false' + } + } + } + + stage("Build (${label})") { + nodejs(nodeJSInstallationName: 'Node23') { + if (isUnix()) { + sh "NODE_ENV=production ${buildCommand}" + } else { + bat "set NODE_ENV=production && ${buildCommand}" + } + } + } + + stage("Archive Artifacts (${label})") { + archiveArtifacts artifacts: 'app_dist/**/*.dmg, app_dist/**/*.exe, app_dist/**/*.AppImage, app_dist/**/*.deb, app_dist/**/*.rpm', fingerprint: true } } - - stage('Install Dependencies') { - nodejs(nodeJSInstallationName: 'Node23') { - sh 'npm ci --include=dev' - } - } - - stage('Build') { - nodejs(nodeJSInstallationName: 'Node23') { - sh 'npm run build' - sh 'ls -la build || echo "Build directory not found"' - } - } - - stage('Verify Build') { - sh 'test -d build || (echo "Build directory does not exist" && exit 1)' - } - - stage('Deploy to printer1') { - def remote = [:] - remote.name = 'farmcontrolserver' - remote.host = 'farmcontrol.tombutcher.local' - remote.user = 'ci' - remote.password = 'ci' - remote.allowAnyHosts = true - - // Copy the build directory to the remote server - sshPut remote: remote, from: 'build/*', into: '/srv/farmcontrol-server/' - - // Restart the service using sudo - sshCommand remote: remote, command: 'sudo /bin/systemctl restart farmcontrol-server.service' - } - - echo 'Pipeline completed successfully!' - } catch (Exception e) { - echo 'Pipeline failed!' - throw e - } finally { - cleanWs() } -} \ No newline at end of file +} + +try { + parallel( + 'Windows Build': buildOnLabel('windows', 'yarn build:electron'), + 'MacOS Build': buildOnLabel('macos', 'yarn build:electron'), + 'Linux Build': buildOnLabel('ubuntu', 'yarn build:electron') + ) + + echo 'All parallel stages completed successfully!' + +} catch (Exception e) { + echo "Pipeline failed: ${e.message}" + throw e +} diff --git a/assets/farmcontrolhosticon.png b/assets/farmcontrolhosticon.png new file mode 100644 index 0000000000000000000000000000000000000000..a31f47c26e8fb220969440ad2daeeff1fa42e9ed GIT binary patch literal 516555 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 T%QXUSb+F4M9_I%{5*e_kvDETGzUE;jb%{7tD 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±KmrV5IatvBX=2?U6foZ+;sp(bXr6&u?}Ksce;;N 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%0AJY;g;i~aISa%IR`o^Sd& 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%0Df77> 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

R2HB)5;( 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�UU< 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

63(6J!@XId8xUuwj5oxfMJkabB8sGPU5(T!+~ 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 CRE9qQ literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 86a5ed8..0000000 --- a/package-lock.json +++ /dev/null @@ -1,10284 +0,0 @@ -{ - "name": "farmcontrol-server", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "farmcontrol-server", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@ant-design/icons": "^6.0.0", - "ant-design": "^1.0.0", - "antd": "^5.27.0", - "axios": "^1.8.4", - "etcd3": "^1.1.2", - "express": "^5.1.0", - "jsonwebtoken": "^9.0.2", - "keycloak-connect": "^26.1.1", - "lodash": "^4.17.21", - "log4js": "^6.9.1", - "mongoose": "^8.13.2", - "prop-types": "^15.8.1", - "socket.io": "^4.8.1", - "socket.io-client": "^4.8.1", - "ws": "^8.18.1" - }, - "devDependencies": { - "@vitejs/plugin-react": "^4.2.1", - "concurrently": "^9.2.0", - "electron": "^37.2.6", - "jest": "^29.7.0", - "nodemon": "^3.1.9", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "rimraf": "^5.0.5", - "supertest": "^6.3.4", - "vite": "^5.0.12", - "vite-plugin-svgo": "^2.0.0", - "vite-plugin-svgr": "^4.5.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ant-design/colors": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz", - "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==", - "license": "MIT", - "dependencies": { - "@ant-design/fast-color": "^2.0.6" - } - }, - "node_modules/@ant-design/cssinjs": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.24.0.tgz", - "integrity": "sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "@emotion/hash": "^0.8.0", - "@emotion/unitless": "^0.7.5", - "classnames": "^2.3.1", - "csstype": "^3.1.3", - "rc-util": "^5.35.0", - "stylis": "^4.3.4" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/@ant-design/cssinjs-utils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", - "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", - "license": "MIT", - "dependencies": { - "@ant-design/cssinjs": "^1.21.0", - "@babel/runtime": "^7.23.2", - "rc-util": "^5.38.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@ant-design/fast-color": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", - "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.24.7" - }, - "engines": { - "node": ">=8.x" - } - }, - "node_modules/@ant-design/icons": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-6.0.0.tgz", - "integrity": "sha512-o0aCCAlHc1o4CQcapAwWzHeaW2x9F49g7P3IDtvtNXgHowtRWYb7kiubt8sQPFvfVIVU/jLw2hzeSlNt0FU+Uw==", - "license": "MIT", - "dependencies": { - "@ant-design/colors": "^8.0.0", - "@ant-design/icons-svg": "^4.4.0", - "@rc-component/util": "^1.2.1", - "classnames": "^2.2.6" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/@ant-design/icons-svg": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", - "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", - "license": "MIT" - }, - "node_modules/@ant-design/icons/node_modules/@ant-design/colors": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-8.0.0.tgz", - "integrity": "sha512-6YzkKCw30EI/E9kHOIXsQDHmMvTllT8STzjMb4K2qzit33RW2pqCJP0sk+hidBntXxE+Vz4n1+RvCTfBw6OErw==", - "license": "MIT", - "dependencies": { - "@ant-design/fast-color": "^3.0.0" - } - }, - "node_modules/@ant-design/icons/node_modules/@ant-design/fast-color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-3.0.0.tgz", - "integrity": "sha512-eqvpP7xEDm2S7dUzl5srEQCBTXZMmY3ekf97zI+M2DHOYyKdJGH0qua0JACHTqbkRnD/KHFQP9J1uMJ/XWVzzA==", - "license": "MIT", - "engines": { - "node": ">=8.x" - } - }, - "node_modules/@ant-design/react-slick": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", - "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.4", - "classnames": "^2.2.5", - "json2mq": "^0.2.0", - "resize-observer-polyfill": "^1.5.1", - "throttle-debounce": "^5.0.0" - }, - "peerDependencies": { - "react": ">=16.9.0" - } - }, - "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==", - "dev": true, - "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/compat-data": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.3.tgz", - "integrity": "sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/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/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/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/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "dev": true, - "license": "MIT", - "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.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", - "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, - "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/get/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "license": "MIT" - }, - "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "license": "MIT" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.4.tgz", - "integrity": "sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==", - "license": "Apache-2.0", - "dependencies": { - "@grpc/proto-loader": "^0.7.13", - "@js-sdsl/ordered-map": "^4.4.2" - }, - "engines": { - "node": ">=12.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.15", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", - "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", - "license": "Apache-2.0", - "dependencies": { - "lodash.camelcase": "^4.3.0", - "long": "^5.0.0", - "protobufjs": "^7.2.5", - "yargs": "^17.7.2" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "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.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "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.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "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/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "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.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.30", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@js-sdsl/ordered-map": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/@mongodb-js/saslprep": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.2.2.tgz", - "integrity": "sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==", - "license": "MIT", - "dependencies": { - "sparse-bitfield": "^3.0.3" - } - }, - "node_modules/@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@paralleldrive/cuid2": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz", - "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@noble/hashes": "^1.1.5" - } - }, - "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/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause" - }, - "node_modules/@rc-component/async-validator": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", - "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.24.4" - }, - "engines": { - "node": ">=14.x" - } - }, - "node_modules/@rc-component/color-picker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", - "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", - "license": "MIT", - "dependencies": { - "@ant-design/fast-color": "^2.0.6", - "@babel/runtime": "^7.23.6", - "classnames": "^2.2.6", - "rc-util": "^5.38.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/context": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", - "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/mini-decimal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", - "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0" - }, - "engines": { - "node": ">=8.x" - } - }, - "node_modules/@rc-component/mutate-observer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", - "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/portal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", - "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/qrcode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz", - "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.24.7", - "classnames": "^2.3.2", - "rc-util": "^5.38.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/tour": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", - "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0", - "@rc-component/portal": "^1.0.0-9", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/trigger": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.0.tgz", - "integrity": "sha512-iwaxZyzOuK0D7lS+0AQEtW52zUWxoGqTGkke3dRyb8pYiShmRpCjB/8TzPI4R6YySCH7Vm9BZj/31VPiiQTLBg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.2", - "@rc-component/portal": "^1.1.0", - "classnames": "^2.3.2", - "rc-motion": "^2.0.0", - "rc-resize-observer": "^1.3.1", - "rc-util": "^5.44.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/util": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rc-component/util/-/util-1.2.2.tgz", - "integrity": "sha512-p3zQr9Wu8BKncqmuW23olzBoAFsN8PYMS9FaI4JwJLwknH7DvfHAr1fwbfl9aAWw4Jva64ucpenbgG4fznLUSw==", - "license": "MIT", - "dependencies": { - "is-mobile": "^5.0.0", - "react-is": "^18.2.0" - }, - "peerDependencies": { - "react": ">=18.0.0", - "react-dom": ">=18.0.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/pluginutils": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz", - "integrity": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "license": "MIT" - }, - "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/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", - "license": "MIT" - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", - "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/core/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "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/@testim/chrome-version": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.4.tgz", - "integrity": "sha512-kIhULpw9TrGYnHp/8VfdcneIcxKnLixmADtukQRtJUmsVlMg0niMkwV0xZmi8hqa57xqilIHjWFA0GKvEjVU5g==", - "license": "MIT", - "optional": true - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "license": "MIT", - "optional": true - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "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/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "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/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "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/node": { - "version": "22.14.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", - "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "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/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", - "license": "MIT" - }, - "node_modules/@types/whatwg-url": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", - "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", - "license": "MIT", - "dependencies": { - "@types/webidl-conversions": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true, - "license": "MIT" - }, - "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/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.28.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/ant-design": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ant-design/-/ant-design-1.0.0.tgz", - "integrity": "sha512-EiN9oXroImi01yz1xwpDzExb1U5ddi4MYiCTaTLVl8SA3QHXYClJn0BikAYS2IMPzmpmAYhwOgGA2HE/sL/c9g==", - "license": "ISC" - }, - "node_modules/antd": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/antd/-/antd-5.27.0.tgz", - "integrity": "sha512-o54dmpooLOc08RSGCkeEQBYAGPxUSmnhmYJKCNTHH46vzjOVxdteu+wPTRVkRbAkDTbs2VcNr5VL7Lu67rPIiA==", - "license": "MIT", - "dependencies": { - "@ant-design/colors": "^7.2.1", - "@ant-design/cssinjs": "^1.23.0", - "@ant-design/cssinjs-utils": "^1.1.3", - "@ant-design/fast-color": "^2.0.6", - "@ant-design/icons": "^5.6.1", - "@ant-design/react-slick": "~1.1.2", - "@babel/runtime": "^7.26.0", - "@rc-component/color-picker": "~2.0.1", - "@rc-component/mutate-observer": "^1.1.0", - "@rc-component/qrcode": "~1.0.0", - "@rc-component/tour": "~1.15.1", - "@rc-component/trigger": "^2.3.0", - "classnames": "^2.5.1", - "copy-to-clipboard": "^3.3.3", - "dayjs": "^1.11.11", - "rc-cascader": "~3.34.0", - "rc-checkbox": "~3.5.0", - "rc-collapse": "~3.9.0", - "rc-dialog": "~9.6.0", - "rc-drawer": "~7.3.0", - "rc-dropdown": "~4.2.1", - "rc-field-form": "~2.7.0", - "rc-image": "~7.12.0", - "rc-input": "~1.8.0", - "rc-input-number": "~9.5.0", - "rc-mentions": "~2.20.0", - "rc-menu": "~9.16.1", - "rc-motion": "^2.9.5", - "rc-notification": "~5.6.4", - "rc-pagination": "~5.1.0", - "rc-picker": "~4.11.3", - "rc-progress": "~4.0.0", - "rc-rate": "~2.13.1", - "rc-resize-observer": "^1.4.3", - "rc-segmented": "~2.7.0", - "rc-select": "~14.16.8", - "rc-slider": "~11.1.8", - "rc-steps": "~6.0.1", - "rc-switch": "~4.1.0", - "rc-table": "~7.51.1", - "rc-tabs": "~15.7.0", - "rc-textarea": "~1.10.2", - "rc-tooltip": "~6.4.0", - "rc-tree": "~5.13.1", - "rc-tree-select": "~5.27.0", - "rc-upload": "~4.9.2", - "rc-util": "^5.44.4", - "scroll-into-view-if-needed": "^3.1.0", - "throttle-debounce": "^5.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ant-design" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/antd/node_modules/@ant-design/icons": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", - "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", - "license": "MIT", - "dependencies": { - "@ant-design/colors": "^7.0.0", - "@ant-design/icons-svg": "^4.4.0", - "@babel/runtime": "^7.24.8", - "classnames": "^2.2.6", - "rc-util": "^5.31.1" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true, - "license": "MIT" - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "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/axios": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", - "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/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/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.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/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "license": "MIT", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", - "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", - "license": "MIT", - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^1.0.5", - "debug": "^4.4.0", - "http-errors": "^2.0.0", - "iconv-lite": "^0.6.3", - "on-finished": "^2.4.1", - "qs": "^6.14.0", - "raw-body": "^3.0.0", - "type-is": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "license": "ISC" - }, - "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": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "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/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "license": "MIT" - }, - "node_modules/browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001718", - "electron-to-chromium": "^1.5.160", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/bson": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.3.tgz", - "integrity": "sha512-MTxGsqgYTwfshYWTRdmZRC+M7FnG1b4y7RO7p2k3X24Wq0yv1m77Wsj0BzlPzd/IowgESfsruQCUToa7vbOpPQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=16.20.1" - } - }, - "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==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause" - }, - "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/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "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/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001720", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001720.tgz", - "integrity": "sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "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/chalk/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/chalk/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/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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chromedriver": { - "version": "135.0.1", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-135.0.1.tgz", - "integrity": "sha512-MLAS4t9dkttp1R1O2o/1nvtNIxg1dBTx7OE3ZCSrrFz+EFowd0wRAO7H5j918hw0i8+30yODq99p8CumvqRS9Q==", - "hasInstallScript": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@testim/chrome-version": "^1.1.4", - "axios": "^1.7.4", - "compare-versions": "^6.1.0", - "extract-zip": "^2.0.1", - "proxy-agent": "^6.4.0", - "proxy-from-env": "^1.1.0", - "tcp-port-used": "^1.0.2" - }, - "bin": { - "chromedriver": "bin/chromedriver" - }, - "engines": { - "node": ">=18" - } - }, - "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/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "license": "MIT" - }, - "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/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/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/cockatiel": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz", - "integrity": "sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==", - "license": "MIT", - "engines": { - "node": ">=16" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true, - "license": "MIT" - }, - "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/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": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/compare-versions": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", - "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", - "license": "MIT", - "optional": true - }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/compute-scroll-into-view": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", - "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", - "license": "MIT" - }, - "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/concurrently": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.0.tgz", - "integrity": "sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "lodash": "^4.17.21", - "rxjs": "^7.8.1", - "shell-quote": "^1.8.1", - "supports-color": "^8.1.1", - "tree-kill": "^1.2.2", - "yargs": "^17.7.2" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, - "node_modules/concurrently/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/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/content-disposition": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", - "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "license": "MIT", - "engines": { - "node": ">=6.6.0" - } - }, - "node_modules/cookiejar": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true, - "license": "MIT" - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", - "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", - "license": "MIT", - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cosmiconfig/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/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.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==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-select": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", - "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/date-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "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/dedent": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", - "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "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", - "optional": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "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/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "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/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "dev": true, - "license": "ISC", - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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==", - "dev": true, - "license": "MIT" - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron": { - "version": "37.2.6", - "resolved": "https://registry.npmjs.org/electron/-/electron-37.2.6.tgz", - "integrity": "sha512-Ns6xyxE+hIK5UlujtRlw7w4e2Ju/ImCWXf1Q/PoOhc0N3/6SN6YW7+ujCarsHbxWnolbW+1RlkHtdklUJpjbPA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@electron/get": "^2.0.0", - "@types/node": "^22.7.7", - "extract-zip": "^2.0.1" - }, - "bin": { - "electron": "cli.js" - }, - "engines": { - "node": ">= 12.20.55" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.161", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.161.tgz", - "integrity": "sha512-hwtetwfKNZo/UlwHIVBlKZVdy7o8bIZxxKs0Mv/ROPiQQQmDgdm5a+KvKtBsxM8ZjFzTaCeLoodZ8jiBE3o9rA==", - "dev": true, - "license": "ISC" - }, - "node_modules/elliptic": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", - "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "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/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz", - "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==", - "license": "MIT", - "dependencies": { - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.7.2", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/engine.io-client": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", - "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.1.1" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io/node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/engine.io/node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "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/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/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "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/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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", - "optional": true, - "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/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "devOptional": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "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", - "optional": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "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", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/etcd3": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/etcd3/-/etcd3-1.1.2.tgz", - "integrity": "sha512-YIampCz1/OmrVo/tR3QltAVUtYCQQOSFoqmHKKeoHbalm+WdXe3l4rhLIylklu8EzR/I3PBiOF4dC847dDskKg==", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.8.20", - "@grpc/proto-loader": "^0.7.8", - "bignumber.js": "^9.1.1", - "cockatiel": "^3.1.1" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/express": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", - "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", - "license": "MIT", - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.0", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "devOptional": 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/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/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true, - "license": "MIT" - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "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==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "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/finalhandler": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", - "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "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==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formidable": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.5.tgz", - "integrity": "sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@paralleldrive/cuid2": "^2.2.2", - "dezalgo": "^1.0.4", - "once": "^1.4.0", - "qs": "^6.11.0" - }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=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/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "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/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.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-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "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/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==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", - "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "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-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/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/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==", - "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==", - "license": "ISC" - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "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==", - "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/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "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/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "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-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "optional": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "optional": true, - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.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", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true, - "license": "ISC" - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "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/import-fresh/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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "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==", - "license": "ISC" - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "license": "MIT", - "optional": true, - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/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-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "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-mobile": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-5.0.0.tgz", - "integrity": "sha512-Tz/yndySvLAEXh+Uk8liFCxOwVH6YutuR74utvOcu7I9Di+DwM0mtdPVZNaVvvBUM2OXxne/NhOs1zAO7riusQ==", - "license": "MIT" - }, - "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-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "license": "MIT" - }, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "license": "MIT", - "optional": true - }, - "node_modules/is2": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", - "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", - "license": "MIT", - "optional": true, - "dependencies": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" - }, - "engines": { - "node": ">=v0.10.0" - } - }, - "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/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/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/istanbul-lib-report/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/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/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/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "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": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "license": "MIT", - "optional": true - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "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-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-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/json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", - "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", - "license": "MIT", - "dependencies": { - "string-convert": "^0.2.0" - } - }, - "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==", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "license": "MIT", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jwk-to-pem": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/jwk-to-pem/-/jwk-to-pem-2.0.7.tgz", - "integrity": "sha512-cSVphrmWr6reVchuKQZdfSs4U9c5Y4hwZggPoz6cbVnTpAVgGRpEuQng86IyqLeGZlhTh+c4MAreB6KbdQDKHQ==", - "license": "Apache-2.0", - "dependencies": { - "asn1.js": "^5.3.0", - "elliptic": "^6.6.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kareem": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", - "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/keycloak-connect": { - "version": "26.1.1", - "resolved": "https://registry.npmjs.org/keycloak-connect/-/keycloak-connect-26.1.1.tgz", - "integrity": "sha512-2wvNJXldB9Em+mp6liJ+AnftcJovFEvNhUgv3hblNDmVihBoBqn4zFlwLIN41lo0H8CicB2T86xZ5U2MiQ9FFA==", - "license": "Apache-2.0", - "dependencies": { - "jwk-to-pem": "^2.0.0" - }, - "engines": { - "node": ">=14" - }, - "optionalDependencies": { - "chromedriver": "latest" - } - }, - "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/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "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==", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "license": "MIT" - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "license": "MIT" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "license": "MIT" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "license": "MIT" - }, - "node_modules/log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", - "license": "Apache-2.0", - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "license": "Apache-2.0" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "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": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "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/matcher/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/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/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "license": "MIT" - }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "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": { - "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==", - "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-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "license": "MIT" - }, - "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/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/mongodb": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.15.0.tgz", - "integrity": "sha512-ifBhQ0rRzHDzqp9jAQP6OwHSH7dbYIQjD3SbJs9YYk9AikKEettW/9s/tbSFDTpXcRbF+u1aLrhHxDFaYtZpFQ==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.9", - "bson": "^6.10.3", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, - "node_modules/mongodb-connection-string-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", - "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", - "license": "Apache-2.0", - "dependencies": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^14.1.0 || ^13.0.0" - } - }, - "node_modules/mongoose": { - "version": "8.13.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.13.2.tgz", - "integrity": "sha512-riCBqZmNkYBWjXpM3qWLDQw7QmTKsVZDPhLXFJqC87+OjocEVpvS3dA2BPPUiLAu+m0/QmEj5pSXKhH+/DgerQ==", - "license": "MIT", - "dependencies": { - "bson": "^6.10.3", - "kareem": "2.6.3", - "mongodb": "~6.15.0", - "mpath": "0.9.0", - "mquery": "5.0.0", - "ms": "2.1.3", - "sift": "17.1.3" - }, - "engines": { - "node": ">=16.20.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mpath": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", - "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", - "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", - "license": "MIT", - "dependencies": { - "debug": "4.x" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "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" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/nodemon": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.9.tgz", - "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "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", - "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/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "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==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "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/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "license": "MIT", - "optional": true, - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "license": "MIT", - "optional": true, - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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-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==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/path-to-regexp": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", - "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", - "license": "MIT", - "engines": { - "node": ">=16" - } - }, - "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/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "devOptional": 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/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/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/protobufjs": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", - "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "license": "MIT", - "optional": true, - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true, - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "devOptional": 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==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, - "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", - "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.6.3", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc-cascader": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz", - "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.7", - "classnames": "^2.3.1", - "rc-select": "~14.16.2", - "rc-tree": "~5.13.0", - "rc-util": "^5.43.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-checkbox": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz", - "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.3.2", - "rc-util": "^5.25.2" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-collapse": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz", - "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.3.4", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-dialog": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz", - "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/portal": "^1.0.0-8", - "classnames": "^2.2.6", - "rc-motion": "^2.3.0", - "rc-util": "^5.21.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-drawer": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.3.0.tgz", - "integrity": "sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@rc-component/portal": "^1.1.1", - "classnames": "^2.2.6", - "rc-motion": "^2.6.1", - "rc-util": "^5.38.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-dropdown": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", - "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.2.6", - "rc-util": "^5.44.1" - }, - "peerDependencies": { - "react": ">=16.11.0", - "react-dom": ">=16.11.0" - } - }, - "node_modules/rc-field-form": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.0.tgz", - "integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.0", - "@rc-component/async-validator": "^5.0.3", - "rc-util": "^5.32.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-image": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz", - "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.2", - "@rc-component/portal": "^1.0.2", - "classnames": "^2.2.6", - "rc-dialog": "~9.6.0", - "rc-motion": "^2.6.2", - "rc-util": "^5.34.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-input": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz", - "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.18.1" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/rc-input-number": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz", - "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/mini-decimal": "^1.0.1", - "classnames": "^2.2.5", - "rc-input": "~1.8.0", - "rc-util": "^5.40.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-mentions": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz", - "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.22.5", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.2.6", - "rc-input": "~1.8.0", - "rc-menu": "~9.16.0", - "rc-textarea": "~1.10.0", - "rc-util": "^5.34.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-menu": { - "version": "9.16.1", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", - "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^2.0.0", - "classnames": "2.x", - "rc-motion": "^2.4.3", - "rc-overflow": "^1.3.1", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-motion": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", - "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.44.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-notification": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz", - "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.9.0", - "rc-util": "^5.20.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-overflow": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", - "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.37.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-pagination": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz", - "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.3.2", - "rc-util": "^5.38.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-picker": { - "version": "4.11.3", - "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz", - "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.24.7", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.2.1", - "rc-overflow": "^1.3.2", - "rc-resize-observer": "^1.4.0", - "rc-util": "^5.43.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "date-fns": ">= 2.x", - "dayjs": ">= 1.x", - "luxon": ">= 3.x", - "moment": ">= 2.x", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - }, - "peerDependenciesMeta": { - "date-fns": { - "optional": true - }, - "dayjs": { - "optional": true - }, - "luxon": { - "optional": true - }, - "moment": { - "optional": true - } - } - }, - "node_modules/rc-progress": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", - "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.16.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-rate": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz", - "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.0.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-resize-observer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", - "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.7", - "classnames": "^2.2.1", - "rc-util": "^5.44.1", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-segmented": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz", - "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-motion": "^2.4.4", - "rc-util": "^5.17.0" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/rc-select": { - "version": "14.16.8", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", - "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^2.1.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-overflow": "^1.3.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-slider": { - "version": "11.1.8", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz", - "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.36.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-steps": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", - "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.16.7", - "classnames": "^2.2.3", - "rc-util": "^5.16.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-switch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", - "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.21.0", - "classnames": "^2.2.1", - "rc-util": "^5.30.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-table": { - "version": "7.51.1", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.51.1.tgz", - "integrity": "sha512-5iq15mTHhvC42TlBLRCoCBLoCmGlbRZAlyF21FonFnS/DIC8DeRqnmdyVREwt2CFbPceM0zSNdEeVfiGaqYsKw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/context": "^1.4.0", - "classnames": "^2.2.5", - "rc-resize-observer": "^1.1.0", - "rc-util": "^5.44.3", - "rc-virtual-list": "^3.14.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tabs": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.7.0.tgz", - "integrity": "sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.2", - "classnames": "2.x", - "rc-dropdown": "~4.2.0", - "rc-menu": "~9.16.0", - "rc-motion": "^2.6.2", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.34.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-textarea": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.2.tgz", - "integrity": "sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-input": "~1.8.0", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tooltip": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", - "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.2", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.3.1", - "rc-util": "^5.44.3" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tree": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", - "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.1" - }, - "engines": { - "node": ">=10.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-tree-select": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz", - "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.7", - "classnames": "2.x", - "rc-select": "~14.16.2", - "rc-tree": "~5.13.0", - "rc-util": "^5.43.0" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-upload": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.9.2.tgz", - "integrity": "sha512-nHx+9rbd1FKMiMRYsqQ3NkXUv7COHPBo3X1Obwq9SWS6/diF/A0aJ5OHubvwUAIDs+4RMleljV0pcrNUc823GQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.5", - "rc-util": "^5.2.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-util": { - "version": "5.44.4", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", - "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "react-is": "^18.2.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-virtual-list": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.1.tgz", - "integrity": "sha512-DCapO2oyPqmooGhxBuXHM4lFuX+sshQwWqqkuyFA+4rShLe//+GEPVwiDgO+jKtKHtbeYwZoNvetwfHdOf+iUQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.0", - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.36.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.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==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "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-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/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "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/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "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/rimraf/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/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/rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/router": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.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==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/scroll-into-view-if-needed": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", - "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", - "license": "MIT", - "dependencies": { - "compute-scroll-into-view": "^3.0.2" - } - }, - "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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/send": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", - "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", - "license": "MIT", - "dependencies": { - "debug": "^4.3.5", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "mime-types": "^3.0.1", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/send/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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/serialize-error/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/serve-static": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", - "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", - "license": "MIT", - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.2.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sift": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", - "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", - "license": "MIT" - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "license": "MIT" - }, - "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/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/socket.io": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", - "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.6.0", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", - "license": "MIT", - "dependencies": { - "debug": "~4.3.4", - "ws": "~8.17.1" - } - }, - "node_modules/socket.io-adapter/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io-adapter/node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/socket.io-client": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", - "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.6.1", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io/node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "optional": true, - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "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==", - "devOptional": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "license": "MIT", - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "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==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/streamroller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", - "license": "MIT", - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", - "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", - "license": "MIT" - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "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==", - "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/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylis": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", - "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", - "license": "MIT" - }, - "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/superagent": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", - "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", - "deprecated": "Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net", - "dev": true, - "license": "MIT", - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.4", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.1.2", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.11.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/supertest": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", - "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "methods": "^1.1.2", - "superagent": "^8.1.2" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "4.3.1", - "is2": "^2.0.6" - } - }, - "node_modules/tcp-port-used/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/tcp-port-used/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT", - "optional": true - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/throttle-debounce": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", - "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", - "license": "MIT", - "engines": { - "node": ">=12.22" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "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/toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", - "license": "MIT" - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", - "dev": true, - "license": "ISC", - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tr46": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.0.tgz", - "integrity": "sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "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==", - "devOptional": true, - "license": "0BSD" - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "license": "MIT" - }, - "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==", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", - "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vite": { - "version": "5.4.19", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", - "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-plugin-svgo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vite-plugin-svgo/-/vite-plugin-svgo-2.0.0.tgz", - "integrity": "sha512-WaiOUlmt1fKw1w/WWJnx9gVk42D1BASKZmGCPpy6iTLE5iIemN2lim3MwI7Rffyt3aQnPrLfLSLnI8ZUJ9s49g==", - "dev": true, - "license": "ISC", - "dependencies": { - "svgo": "3.3.2" - }, - "peerDependencies": { - "typescript": ">=4.9.4", - "vite": ">=4.0.2" - } - }, - "node_modules/vite-plugin-svgr": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.5.0.tgz", - "integrity": "sha512-W+uoSpmVkSmNOGPSsDCWVW/DDAyv+9fap9AZXBvWiQqrboJ08j2vh0tFxTD/LjwqwAd3yYSVJgm54S/1GhbdnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.2.0", - "@svgr/core": "^8.1.0", - "@svgr/plugin-jsx": "^8.1.0" - }, - "peerDependencies": { - "vite": ">=2.6.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", - "license": "MIT", - "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "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==", - "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==", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", - "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", - "engines": { - "node": ">=0.4.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==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "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==", - "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==", - "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==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package.json b/package.json index df212e9..66866e4 100644 --- a/package.json +++ b/package.json @@ -2,47 +2,101 @@ "name": "farmcontrol-server", "version": "1.0.0", "description": "Connects to moonraker and also manages the socket connection to the printer.", - "main": "src/index.js", + "main": "build/index.js", "type": "module", "scripts": { "start": "node build/index.js", - "dev": "nodemon src/index.js", - "dev:electron": "concurrently \"NODE_ENV=development electron .\" \"vite src/electron --port 5173\"", - "build": "rimraf build && mkdir build && cp -r src/* build/ && cp package.json config.json build/ && npm run build:electron && cp src/electron/preload.js build/electron/ && rm -rf build/electron/App.jsx build/electron/main.jsx build/electron/App.css build/electron/index.css build/electron/FarmControlLogo.jsx build/electron/vite.config.js build/electron/public build/electron/build", - "build:electron": "vite build src/electron --outDir build/electron", + "dev": "cross-env NODE_ENV=development nodemon src/index.js", + "dev:electron": "concurrently \"cross-env NODE_ENV=development vite src/electron --port 5287 --no-open\" \"cross-env NODE_ENV=development electron src/index.js\"", + "build": "yarn clean && mkdir build && cp -r src/* build/ && cp package.json config.json build/ && yarn build:electron-renderer && cp src/electron/preload.js build/electron/ && rm -rf build/electron/App.jsx build/electron/main.jsx build/electron/App.css build/electron/index.css build/electron/FarmControlLogo.jsx build/electron/vite.config.js build/electron/public build/electron/build", + "build:electron-renderer": "vite build src/electron --outDir build/electron", + "build:electron": "yarn build && electron-builder", "clean": "rimraf build" }, "author": "Tom Butcher", "license": "ISC", "dependencies": { - "@ant-design/icons": "^6.0.0", + "@ant-design/icons": "^6.1.0", "ant-design": "^1.0.0", - "antd": "^5.27.0", - "axios": "^1.8.4", + "antd": "^5.28.0", + "axios": "^1.13.2", + "canvas": "^3.2.0", "etcd3": "^1.1.2", "express": "^5.1.0", + "ipp": "^2.0.1", "jsonwebtoken": "^9.0.2", "keycloak-connect": "^26.1.1", "lodash": "^4.17.21", "log4js": "^6.9.1", - "mongoose": "^8.13.2", + "mongoose": "^9.0.0", + "node-cache": "^5.1.2", + "node-thermal-printer": "^4.5.0", + "pdf-to-img": "^5.0.0", "prop-types": "^15.8.1", + "sharp": "^0.34.5", "socket.io": "^4.8.1", "socket.io-client": "^4.8.1", - "ws": "^8.18.1" + "ws": "^8.18.3" }, "devDependencies": { - "@vitejs/plugin-react": "^4.2.1", - "concurrently": "^9.2.0", - "electron": "^37.2.6", - "jest": "^29.7.0", - "nodemon": "^3.1.9", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "rimraf": "^5.0.5", - "supertest": "^6.3.4", - "vite": "^5.0.12", + "@electron/rebuild": "^4.0.1", + "@vitejs/plugin-react": "^5.1.1", + "concurrently": "^9.2.1", + "cross-env": "^10.1.0", + "electron": "^38.7.1", + "electron-builder": "^26.0.12", + "jest": "^30.2.0", + "nodemon": "^3.1.11", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "rimraf": "^6.1.2", + "supertest": "^7.1.4", + "vite": "^7.2.4", "vite-plugin-svgo": "^2.0.0", "vite-plugin-svgr": "^4.5.0" + }, + "build": { + "appId": "com.tombutcher.farmcontrolserver", + "productName": "Farm Control Server", + "executableName": "farmcontrol-server", + "icon": "assets/farmcontrolhosticon.png", + "directories": { + "output": "app_dist" + }, + "files": [ + "build/**/*", + "node_modules/**/*" + ], + "mac": { + "target": "dmg" + }, + "win": { + "target": "nsis" + }, + "linux": { + "target": [ + "AppImage", + "deb", + "rpm" + ], + "category": "Utility", + "maintainer": "Tom Butcher <tom@tombutcher.work>", + "executableName": "farmcontrol-server" + }, + "deb": { + "priority": "optional", + "afterInstall": "packaging/linux/after-install.sh", + "afterRemove": "packaging/linux/after-remove.sh" + }, + "rpm": { + "afterInstall": "packaging/linux/after-install.sh", + "afterRemove": "packaging/linux/after-remove.sh" + }, + "extraResources": [ + { + "from": "packaging/linux/farmcontrol-server.service", + "to": "farmcontrol-server.service" + } + ] } } diff --git a/packaging/linux/after-install.sh b/packaging/linux/after-install.sh new file mode 100755 index 0000000..676469b --- /dev/null +++ b/packaging/linux/after-install.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Copy systemd service file +# The installation directory is usually /opt/Farm Control Server +# but we can try to find it if it's different. +APP_DIR="/opt/Farm Control Server" +if [ ! -d "$APP_DIR" ]; then + # Fallback to slugified name + APP_DIR="/opt/farmcontrol-server" +fi + +cp "$APP_DIR/resources/farmcontrol-server.service" /etc/systemd/system/farmcontrol-server.service + +# Reload systemd to recognize the new service +systemctl daemon-reload + +# Enable the service to start on boot +systemctl enable farmcontrol-server.service + +# Start the service +systemctl start farmcontrol-server.service + diff --git a/packaging/linux/after-remove.sh b/packaging/linux/after-remove.sh new file mode 100755 index 0000000..71c1e53 --- /dev/null +++ b/packaging/linux/after-remove.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Stop the service +systemctl stop farmcontrol-server.service + +# Disable the service +systemctl disable farmcontrol-server.service + +# Remove the systemd service file +rm -f /etc/systemd/system/farmcontrol-server.service + +# Reload systemd +systemctl daemon-reload + diff --git a/packaging/linux/farmcontrol-server.service b/packaging/linux/farmcontrol-server.service new file mode 100644 index 0000000..dc22f44 --- /dev/null +++ b/packaging/linux/farmcontrol-server.service @@ -0,0 +1,16 @@ +[Unit] +Description=Farm Control Server +After=network.target + +[Service] +Type=simple +ExecStart=/usr/bin/farmcontrol-server --headless +Restart=always +User=root +Group=root +Environment=NODE_ENV=production +WorkingDirectory=/opt/Farm Control Server + +[Install] +WantedBy=multi-user.target + diff --git a/src/documentprinter/documentprinterclient.js b/src/documentprinter/documentprinterclient.js new file mode 100644 index 0000000..4cf5ced --- /dev/null +++ b/src/documentprinter/documentprinterclient.js @@ -0,0 +1,524 @@ +// documentprinterclient.js - Handles connection to a single document printer +import { loadConfig } from "../config.js"; +import log4js from "log4js"; +import CupsPrinterInterface from "./interfaces/cupsinterface.js"; +import ReceiptInterface from "./interfaces/receiptinterface.js"; +import { sendIPC } from "../electron/ipc.js"; +// Load configuration +const config = loadConfig(); + +const logger = log4js.getLogger("Document Printer Client"); +logger.level = config.logLevel; + +export class DocumentPrinterClient { + constructor( + documentPrinter = { + connection: { interface: "cups", host: "localhost", port: 9100 }, + }, + documentPrinterManager + ) { + this.id = documentPrinter._id; + this.documentPrinter = documentPrinter; + this.connection = documentPrinter.connection; + this.queue = []; + this.documentPrinterManager = documentPrinterManager; + this.currentJob = null; + this.socketClient = documentPrinterManager.socketClient; + this.interface = documentPrinter.connection.interface || "cups"; // cups, receipt, or os + this.state = { type: "offline" }; + this.isOnline = documentPrinter.online || false; + this.shouldReconnect = true; + this.isProcessingQueue = false; + this.eventUpdateInterval = null; + this.initializeInterface(); + this.registerEventHandlers(); + this.subscribeToActions(); + this.subscribeToObjectUpdates(); + } + + initializeInterface() { + logger.info( + `Initializing ${this.interface} interface for document printer ${this.id}` + ); + switch (this.interface) { + case "cups": + this.printerInterface = new CupsPrinterInterface(this); + logger.debug("Cups printer interface initialized"); + break; + case "epsonReceipt": + this.printerInterface = new ReceiptInterface(this); + logger.debug("Epson receipt printer interface initialized"); + break; + case "starReceipt": + this.printerInterface = new ReceiptInterface(this); + logger.debug("Star receipt printer interface initialized"); + break; + default: + logger.error(`Unknown interface type: ${this.interface}`); + this.printerInterface = null; + } + } + + async updateDocumentPrinter(data) { + logger.debug(`Updating document printer ${this.id} with data...`); + sendIPC("setDocumentPrinter", { _id: this.id, ...data }); + + // Check for connection changes before updating + + if (data?.connection) { + const oldConnection = this.connection || {}; + const newConnection = data?.connection || {}; + + const hostChanged = + newConnection.host != null && newConnection.host !== oldConnection.host; + const protocolChanged = + newConnection.protocol != null && + newConnection.protocol !== oldConnection.protocol; + const interfaceChanged = + newConnection.interface != null && + newConnection.interface !== oldConnection.interface; + const portChanged = newConnection?.port !== oldConnection?.port; + + const connectionChanged = + hostChanged || interfaceChanged || portChanged || protocolChanged; + + logger.debug(`Connection changed: ${connectionChanged}`); + logger.debug(`Host changed: ${hostChanged}`); + logger.debug(`Interface changed: ${interfaceChanged}`); + logger.debug(`Port changed: ${portChanged}`); + logger.debug(`Protocol changed: ${protocolChanged}`); + + // Update document printer data + this.documentPrinter = { ...this.documentPrinter, ...data }; + + // Update interface if it changed + if (interfaceChanged) { + this.interface = newConnection.interface; + } + + // Re-initialize only if connection properties changed + if (connectionChanged) { + this.connection = newConnection; + await this.printerInterface.disconnect(); + this.initializeInterface(); + await this.reconnect(); + } + } + } + + registerEventHandlers() { + // Register event handlers for document printer notifications + // This can be extended as needed + } + + subscribeToActions() { + this.socketClient.subscribeToObjectActions({ + objectType: "documentPrinter", + _id: this.id, + }); + } + + subscribeToObjectUpdates() { + this.socketClient.subscribeToObjectUpdates({ + objectType: "documentPrinter", + _id: this.id, + }); + } + + async connect() { + logger.info( + `Connecting to document printer ${this.id} (${this.interface})` + ); + + clearTimeout(this.reconnectTimeout); + // Always stop the event update interval when connecting + clearInterval(this.eventUpdateInterval); + this.eventUpdateInterval = null; + this.state = { type: "connecting", message: null }; + this.isOnline = false; + await this.updateDocumentPrinterState(); + + if (!this.printerInterface) { + logger.error( + `Cannot connect: No interface initialized for ${this.interface}` + ); + return false; + } + + const result = await this.printerInterface.connect(); + + if (result.error) { + logger.error( + `Error connecting to document printer ${this.documentPrinter.name}:`, + result.error + ); + this.isOnline = false; + this.state = { type: "offline", message: result.error }; + await this.updateDocumentPrinterState(); + return false; + } + logger.info( + `Connected to document printer ${this.documentPrinter.name} (${this.interface})` + ); + return true; + } + + async reconnect() { + if (this.isOnline == true) { + logger.info( + `Disconnecting from document printer ${this.documentPrinter.name} before reconnecting...` + ); + await this.disconnect(); + } + logger.info( + `Reconnecting to document printer ${this.documentPrinter.name}` + ); + this.shouldReconnect = true; + const connectResult = await this.connect(); + if (connectResult == false) { + logger.error( + `Error reconnecting to document printer ${this.documentPrinter.name}:`, + connectResult.error + ); + if (this.shouldReconnect) { + // Attempt to reconnect after delay + setTimeout(() => this.reconnect(), 30000); + } + return false; + } + const initializeResult = await this.initialize(); + if (initializeResult == false) { + logger.error( + `Error initializing document printer ${this.documentPrinter.name}:`, + initializeResult.error + ); + if (this.shouldReconnect) { + // Attempt to reconnect after delay + setTimeout(() => this.reconnect(), 30000); + } + return false; + } + + return true; + } + + async initialize() { + logger.info("Running document printer initialization..."); + this.state = { type: "initializing", message: null }; + this.isOnline = true; + this.connectedAt = new Date(); + await this.updateDocumentPrinterState(); + if (this.printerInterface && this.printerInterface.initialize) { + const result = await this.printerInterface.initialize(); + if (result.error) { + logger.error( + `Error initializing document printer ${this.documentPrinter.name}:`, + result.error + ); + this.state = { type: "offline", message: result.error }; + await this.updateDocumentPrinterState(); + return false; + } + this.state = { type: "standby", message: null }; + await this.updateDocumentPrinterState(); + this.eventUpdateInterval = setInterval( + this.handleEventUpdate.bind(this), + 3000 + ); + return true; + } + } + + async handleEventUpdate() { + if (this.printerInterface && this.printerInterface.retrieveStatus) { + try { + //await this.printerInterface.retrieveStatus(); + } catch (error) { + logger.error( + `Error retrieving status for document printer ${this.documentPrinter.name}:`, + error + ); + } + } + } + + async updateDocumentPrinterState() { + try { + // Update state in database or via socket client + // This can be implemented based on your database structure + this.socketClient.editObject({ + _id: this.id, + objectType: "documentPrinter", + updateData: { + online: this.isOnline, + state: this.state, + connectedAt: this.connectedAt, + }, + }); + } catch (error) { + logger.error(`Failed to update document printer state:`, error); + } + } + + async updateJobState(jobId, state) { + logger.info(`Updating job state for ${jobId}`); + await this.socketClient.editObject({ + _id: jobId, + objectType: "documentJob", + updateData: { state: state }, + }); + logger.info(`Updated job state for ${jobId}:`, state); + } + + async deployDocumentJob(documentJob) { + logger.info( + `Deploying document job ${documentJob._id} to ${this.documentPrinter.name}` + ); + + if (!this.isOnline) { + logger.error( + `Cannot deploy job: Document printer not connected (${this.documentPrinter.name})` + ); + return { error: "Document printer not connected" }; + } + + if (!this.printerInterface) { + logger.error( + `Cannot deploy job: No interface initialized (${this.documentPrinter.name})` + ); + return { error: "No interface initialized" }; + } + + try { + if (this.printerInterface.deploy) { + await this.updateJobState(documentJob._id, { type: "deploying" }); + const documentTemplate = await this.socketClient.getObject({ + objectType: "documentTemplate", + _id: documentJob.documentTemplate._id, + }); + await this.updateJobState(documentJob._id, { + type: "deploying", + progress: 0.25, + }); + const object = await this.socketClient.getObject({ + objectType: documentJob.objectType, + _id: documentJob.object._id, + }); + await this.updateJobState(documentJob._id, { + type: "deploying", + progress: 0.5, + }); + if (!documentTemplate) { + logger.error( + `Document template not found for job ${documentJob._id}` + ); + return { error: "Document template not found" }; + } + const pdfObj = await this.socketClient.renderTemplatePDF({ + _id: documentTemplate._id, + content: documentTemplate.content, + object: object, + }); + await this.updateJobState(documentJob._id, { + type: "deploying", + progress: 0.75, + }); + if (!pdfObj) { + logger.error( + `Failed to render document template for job ${documentJob._id}` + ); + return { error: "Failed to render document template" }; + } + const result = await this.printerInterface.deploy( + documentJob, + pdfObj.pdf + ); + await this.updateJobState(documentJob._id, { + type: "deploying", + progress: 1.0, + }); + logger.info( + `Deployed document job ${documentJob._id} to ${this.documentPrinter.name}` + ); + await this.updateJobState(documentJob._id, { + type: "queued", + progress: null, + }); + // Only add job to queue if it's not already there + if (!this.queue.includes(documentJob._id)) { + this.queue.push(documentJob._id); + } else { + logger.warn( + `Job ${documentJob._id} is already in the queue for ${this.documentPrinter.name}` + ); + } + this.startQueue(); + return result; + } else { + logger.error( + `Interface ${this.interface} does not support deployDocumentJob` + ); + return { error: "Interface does not support this operation" }; + } + } catch (error) { + logger.error( + `Error deploying document job to ${this.documentPrinter.name}:`, + error + ); + await this.updateJobState(documentJob._id, { + type: "error", + progress: null, + message: error.message || "Failed to deploy document job", + }); + return { error: error.message || "Failed to deploy document job" }; + } + } + + async startQueue() { + if (!this.isOnline) { + logger.error( + `Cannot start queue: Document printer not connected (${this.documentPrinter.name})` + ); + return { error: "Document printer not connected" }; + } + if (!this.printerInterface) { + logger.error( + `Cannot start queue: No interface initialized (${this.documentPrinter.name})` + ); + return { error: "No interface initialized" }; + } + // Prevent concurrent queue processing + if (this.isProcessingQueue) { + logger.debug( + `Queue is already being processed for ${this.documentPrinter.name}` + ); + return { info: "Queue is already being processed" }; + } + if (this.state.type == "standby") { + logger.info(`Starting queue for ${this.documentPrinter.name}`); + + await this.runQueue(); + } + } + + async runQueue() { + if (!this.isOnline) { + logger.error( + `Cannot print next job: Document printer not connected (${this.documentPrinter.name})` + ); + return { error: "Document printer not connected" }; + } + if (!this.printerInterface) { + logger.error( + `Cannot print next job: No interface initialized (${this.documentPrinter.name})` + ); + return { error: "No interface initialized" }; + } + if (this.state.type != "standby") { + logger.error( + `Cannot print next job: Document printer not in standby mode (${this.documentPrinter.name})` + ); + return { error: "Document printer not in standby mode" }; + } + + // Prevent concurrent queue processing + if (this.isProcessingQueue) { + logger.debug( + `Queue is already being processed for ${this.documentPrinter.name}` + ); + return { info: "Queue is already being processed" }; + } + + this.isProcessingQueue = true; + logger.info(`Starting to print jobs for ${this.documentPrinter.name}`); + this.state = { type: "printing", message: null }; + await this.updateDocumentPrinterState(); + try { + // Process all jobs in the queue using a loop instead of recursion + while (this.queue.length > 0) { + // Re-check connection status before each job + if (!this.isOnline) { + logger.error( + `Printer went offline while printing (${this.documentPrinter.name})` + ); + this.state = { + type: "offline", + message: "Connection lost during printing", + }; + await this.updateDocumentPrinterState(); + return { error: "Document printer not connected" }; + } + if (!this.printerInterface) { + logger.error( + `Printer interface lost while printing (${this.documentPrinter.name})` + ); + this.state = { + type: "offline", + message: "Interface lost during printing", + }; + await this.updateDocumentPrinterState(); + return { error: "No interface initialized" }; + } + + // Get the next job ID but don't remove it yet + const jobId = this.queue[0]; + if (!jobId) { + break; + } + + try { + logger.info(`Printing job ${jobId} for ${this.documentPrinter.name}`); + await this.updateJobState(jobId, { type: "printing" }); + + await this.printerInterface.print(jobId); + logger.info( + `Successfully printed job ${jobId} for ${this.documentPrinter.name}` + ); + // Only remove job from queue after successful printing + this.queue.shift(); + await this.updateJobState(jobId, { type: "complete" }); + } catch (error) { + logger.error( + `Error printing job ${jobId} for ${this.documentPrinter.name}:`, + error + ); + + // Remove failed job from queue to prevent infinite retry loop + // You may want to implement retry logic or error handling here + this.queue.shift(); + await this.updateJobState(jobId, { type: "failed" }); + // Continue with next job even if one fails + } + } + + logger.info( + `Finished printing all jobs for ${this.documentPrinter.name}` + ); + this.state = { type: "standby", message: null }; + await this.updateDocumentPrinterState(); + return true; + } finally { + // Always reset the processing flag, even if there was an error + this.isProcessingQueue = false; + } + } + + async disconnect() { + logger.info(`Disconnecting from ${this.documentPrinter.name}`); + this.shouldReconnect = false; + // Always stop the event update interval when disconnecting + clearInterval(this.eventUpdateInterval); + this.eventUpdateInterval = null; + if (this.printerInterface && this.printerInterface.disconnect) { + await this.printerInterface.disconnect(); + } + this.isOnline = false; + this.state = { type: "offline" }; + this.isProcessingQueue = false; + this.queue = []; // Clear queue on disconnect + await this.updateDocumentPrinterState(); + clearTimeout(this.reconnectTimeout); + logger.info(`Successfully disconnected from ${this.documentPrinter.name}`); + return true; + } +} diff --git a/src/documentprinter/documentprintermanager.js b/src/documentprinter/documentprintermanager.js index fab228d..138a9fa 100644 --- a/src/documentprinter/documentprintermanager.js +++ b/src/documentprinter/documentprintermanager.js @@ -1,14 +1,109 @@ import { loadConfig } from "../config.js"; import log4js from "log4js"; +import { sendIPC } from "../electron/ipc.js"; +import { DocumentPrinterClient } from "./documentprinterclient.js"; const config = loadConfig(); const logger = log4js.getLogger("Document Printer Manager"); -logger.level = config.server.logLevel; +logger.level = config.logLevel; export class DocumentPrinterManager { constructor(socketClient) { this.socketClient = socketClient; this.documentPrinterClients = new Map(); + this.documentPrinters = []; + } + + async reloadDocumentPrinters() { + logger.info("Reloading document printers..."); + try { + this.documentPrinters = await this.socketClient.listObjects({ + objectType: "documentPrinter", + filter: { host: this.socketClient.id }, + }); + + sendIPC("setDocumentPrinters", this.documentPrinters); + + // Remove printer clients that are no longer in the printers list + const documentPrinterIds = this.documentPrinters.map( + (documentPrinter) => documentPrinter._id + ); + for (const [ + documentPrinterId, + documentPrinterClient, + ] of this.documentPrinterClients.entries()) { + if (!documentPrinterIds.includes(documentPrinterId)) { + // Close the connection before removing + documentPrinterClient.shouldReconnect = false; + documentPrinterClient.disconnect(); + this.documentPrinterClients.delete(documentPrinterId); + logger.info( + `Removed document printer client for printer ID: ${documentPrinterId}` + ); + } + } + + // Add new printer clients for printers not in the documentPrinterClients map + for (const documentPrinter of this.documentPrinters) { + const documentPrinterId = documentPrinter._id; + if (!this.documentPrinterClients.has(documentPrinterId)) { + const documentPrinterClient = new DocumentPrinterClient( + documentPrinter, + this + ); + this.documentPrinterClients.set( + documentPrinterId, + documentPrinterClient + ); + await documentPrinterClient.reconnect(); + logger.info( + `Added document printer client for printer ID: ${documentPrinterId}` + ); + } + } + } catch (error) { + logger.error("Failed to update document printers:", error); + this.documentPrinters = []; + } + } + + async handleDocumentPrinterAction(id, action, callback) { + logger.debug("Running document printer action...", action); + const documentPrinter = this.getDocumentPrinterClient(id); + switch (action.type) { + case "deploy": + const deployResult = await documentPrinter.deployDocumentJob( + action.data + ); + callback(deployResult); + return; + } + callback({ error: "Unknown command." }); + } + + async handleDocumentPrinterUpdate(id, data) { + logger.debug("Handling document printer update for id:", id); + const documentPrinter = this.getDocumentPrinterClient(id); + if (documentPrinter) { + documentPrinter.updateDocumentPrinter(data.object); + } + } + + getDocumentPrinterClient(documentPrinterId) { + return this.documentPrinterClients.get(documentPrinterId); + } + + getAllDocumentPrinterClients() { + return this.documentPrinterClients.values(); + } + + // Close all printer connections + closeAllConnections() { + for (const documentPrinterClient of this.documentPrinterClients.values()) { + documentPrinterClient.shouldReconnect = false; + documentPrinterClient.disconnect(); + } + this.documentPrinterClients.clear(); } } diff --git a/src/documentprinter/interfaces/cupsinterface.js b/src/documentprinter/interfaces/cupsinterface.js new file mode 100644 index 0000000..2530bb5 --- /dev/null +++ b/src/documentprinter/interfaces/cupsinterface.js @@ -0,0 +1,306 @@ +// cupsprinterinterface.js - CUPS printer interface implementation +import log4js from "log4js"; +import { loadConfig } from "../../config.js"; +import ipp from "ipp"; + +const config = loadConfig(); +const logger = log4js.getLogger("CUPS Printer Interface"); +logger.level = config.logLevel; + +export default class CupsInterface { + constructor(documentPrinterClient) { + this.documentPrinterClient = documentPrinterClient; + this.host = documentPrinterClient.connection.host; + this.port = documentPrinterClient.connection.port || 631; + this.interface = documentPrinterClient.connection.interface || "cups"; + this.protocol = documentPrinterClient.connection.protocol; + this.name = documentPrinterClient.documentPrinter.name; + this.isConnected = false; + this.cupsPrinter = null; + this.pdfs = new Map(); + } + + /** + * Build the IPP printer URL from connection settings + */ + buildPrinterUrl() { + var hostWithPort = `${this.host}:${this.port}`; + var path = "/"; + if (this.host.includes("/")) { + const parts = this.host.split("/"); + var hostName = parts[0]; + if (hostName.includes(":")) { + const portHost = hostName.split(":"); + hostName = portHost[0]; + } + hostWithPort = `${hostName}:${this.port}`; + path += parts.slice(1).join("/"); + } + switch (this.protocol) { + case "ipp": + return `ipp://${hostWithPort}${path}`; + case "http": + return `http://${hostWithPort}${path}`; + default: + logger.warn(`Unknown protocol ${this.protocol}, defaulting to ipp.`); + return `ipp://${hostWithPort}${path}`; + } + } + + /** + * Promisify IPP execute method + */ + async executeIPP(operation, message) { + return new Promise((resolve, reject) => { + this.cupsPrinter.execute(operation, message, (err, res) => { + if (err) { + reject(err); + } else { + resolve(res); + } + }); + }); + } + + async connect() { + logger.info(`Connecting to CUPS printer ${this.name}`); + + try { + this.cupsPrinterUrl = this.buildPrinterUrl(); + logger.debug(`Printer URL: ${this.cupsPrinterUrl}`); + + // Create IPP printer instance + this.cupsPrinter = ipp.Printer(this.cupsPrinterUrl); + + // Test connection by getting printer attributes + const getPrinterAttributes = { + "operation-attributes-tag": { + "requested-attributes": [ + "printer-name", + "printer-state", + "printer-state-message", + "printer-uri-supported", + ], + }, + }; + + try { + const response = await this.executeIPP( + "Get-Printer-Attributes", + getPrinterAttributes + ); + + const printerState = + response["printer-attributes-tag"]?.["printer-state"]; + logger.info( + `Successfully connected to CUPS printer ${this.name}. State: ${printerState}` + ); + + this.isConnected = true; + + return true; + } catch (error) { + logger.error( + `Failed to get printer attributes for ${this.name}:`, + error + ); + return { + error: "Failed to get printer attributes. " + error.message, + }; + } + } catch (error) { + logger.error(`Failed to connect to CUPS printer:`, error); + this.isConnected = false; + this.cupsPrinter = null; + return { + error: "Failed to connect to CUPS printer. " + error.message, + }; + } + } + + async disconnect() { + logger.info(`Disconnecting from CUPS printer...`); + this.isConnected = false; + this.cupsPrinter = null; + return { success: true }; + } + + async initialize() { + logger.info(`Initializing CUPS printer...`); + + if (!this.isConnected || !this.cupsPrinter) { + return { error: "Printer is not connected" }; + } + + try { + // Verify printer is ready by checking attributes + const getPrinterAttributes = { + "operation-attributes-tag": { + "requested-attributes": [ + "printer-state", + "printer-state-message", + "printer-state-reasons", + ], + }, + }; + + const response = await this.executeIPP( + "Get-Printer-Attributes", + getPrinterAttributes + ); + + const printerState = + response["printer-attributes-tag"]?.["printer-state"]; + const stateMessage = + response["printer-attributes-tag"]?.["printer-state-message"] || ""; + + // Printer states: 3 = idle, 4 = processing, 5 = stopped + if (printerState === 5) { + logger.warn(`Printer ${this.name} is stopped: ${stateMessage}`); + return { error: `Printer is stopped: ${stateMessage}` }; + } + + logger.info( + `CUPS printer ${this.name} initialized successfully. State: ${printerState}` + ); + return true; + } catch (error) { + logger.error(`Failed to initialize CUPS printer ${this.name}:`, error); + return { error: error.message || "Failed to initialize CUPS printer" }; + } + } + + /** + * Get document data from documentJob + * Supports file references, buffers, and content + */ + async getDocumentData(documentJob) { + let data = null; + + // If documentJob has a file reference, fetch it + if (documentJob.file || documentJob.fileId) { + const fileId = + documentJob.file?._id || documentJob.file || documentJob.fileId; + if (this.documentPrinterClient.socketClient?.fileManager) { + data = + await this.documentPrinterClient.socketClient.fileManager.getFile( + fileId + ); + } else { + throw new Error("File manager not available to fetch file"); + } + } + // If documentJob has a buffer directly + else if (documentJob.buffer || documentJob.data) { + data = documentJob.buffer || documentJob.data; + } + // If documentJob has rendered image + else if (documentJob.renderedImage) { + data = documentJob.renderedImage; + } + // If documentJob has content (text), convert to buffer + else if (documentJob.content) { + data = Buffer.from(documentJob.content, "utf-8"); + } else { + throw new Error("Document job has no printable content"); + } + + // Ensure data is a Buffer + if (!Buffer.isBuffer(data)) { + if (data instanceof Uint8Array) { + data = Buffer.from(data); + } else if (data instanceof ArrayBuffer) { + data = Buffer.from(data); + } else if (typeof data === "string") { + data = Buffer.from(data, "utf-8"); + } else { + throw new Error( + "Document data must be a Buffer, Uint8Array, ArrayBuffer, or string" + ); + } + } + + return data; + } + + async deploy(documentJob, pdf) { + logger.info( + `Deploying job ${documentJob._id} to CUPS printer ${this.name}` + ); + + // Store the PDF buffer + this.pdfs.set(documentJob._id, pdf); + return { success: true }; + } + + async print(jobId) { + logger.info(`Printing job ${jobId} to CUPS printer ${this.name}`); + + if (!this.isConnected || !this.cupsPrinter) { + throw new Error("Printer is not connected"); + } + + const pdf = this.pdfs.get(jobId); + if (!pdf) { + throw new Error("PDF not found for job"); + } + + try { + // Ensure PDF is a Buffer + let documentData = pdf; + if (!Buffer.isBuffer(documentData)) { + if (documentData instanceof Uint8Array) { + documentData = Buffer.from(documentData); + } else if (documentData instanceof ArrayBuffer) { + documentData = Buffer.from(documentData); + } else if (typeof documentData === "string") { + documentData = Buffer.from(documentData, "utf-8"); + } else { + throw new Error( + "PDF data must be a Buffer, Uint8Array, ArrayBuffer, or string" + ); + } + } + + // Build IPP print job message + const jobName = jobId?.toString() || "Print Job"; + const userName = process.env.USER || "system"; + + const printJobMessage = { + "operation-attributes-tag": { + "requesting-user-name": userName, + "job-name": jobName, + "document-format": "application/pdf", + }, + data: documentData, + }; + + // Send print job + logger.debug(`Sending print job ${jobId} to ${this.cupsPrinterUrl}`); + const response = await this.executeIPP("Print-Job", printJobMessage); + + // Extract job ID from response + const ippJobId = response["job-attributes-tag"]?.["job-id"]; + const jobUri = response["job-attributes-tag"]?.["job-uri"]; + + logger.info( + `Successfully printed job ${jobId} to CUPS printer ${this.name}. IPP Job ID: ${ippJobId}` + ); + + return { + success: true, + jobId: ippJobId, + jobUri: jobUri, + }; + } catch (error) { + logger.error( + `Failed to print job ${jobId} to CUPS printer ${this.name}:`, + error + ); + return { + success: false, + error: error.message || "Failed to print job", + }; + } + } +} diff --git a/src/documentprinter/interfaces/receiptinterface.js b/src/documentprinter/interfaces/receiptinterface.js new file mode 100644 index 0000000..3631c11 --- /dev/null +++ b/src/documentprinter/interfaces/receiptinterface.js @@ -0,0 +1,200 @@ +// receiptinterface.js - Thermal receipt printer interface implementation +import log4js from "log4js"; +import { loadConfig } from "../../config.js"; +import { ThermalPrinter, PrinterTypes } from "node-thermal-printer"; +import { convertPDFToImage } from "../../utils.js"; + +const config = loadConfig(); +const logger = log4js.getLogger("Receipt Printer Interface"); +logger.level = config.logLevel; + +export default class ReceiptInterface { + constructor(documentPrinterClient) { + this.documentPrinterClient = documentPrinterClient; + this.host = documentPrinterClient.connection.host; + this.name = documentPrinterClient.documentPrinter.name; + this.port = documentPrinterClient.connection.port || 9100; + this.interface = + documentPrinterClient.connection.interface || "epsonReceipt"; + this.protocol = documentPrinterClient.connection.protocol; + this.isConnected = false; + this.receiptPrinter = null; + this.retrieveStatusInterval = null; + this.images = new Map(); + } + + buildPrinterUrl() { + switch (this.protocol) { + case "tcp": + return `tcp://${this.host}:${this.port}`; + case "system": + return `printer:${this.host}`; + case "serial": + return this.host; + default: + logger.warn(`Unknown protocol ${this.protocol}, defaulting to tcp.`); + return `tcp://${this.host}:${this.port}`; + } + } + + async connect() { + try { + // Determine printer type enum + let type; + switch (this.interface) { + case "epsonReceipt": + type = PrinterTypes.EPSON; + break; + case "starReceipt": + type = PrinterTypes.STAR; + break; + default: + type = PrinterTypes.EPSON; + logger.warn( + `Unknown interface ${this.interface}, defaulting to EPSON` + ); + } + + // Determine interface based on connection type + const interfaceStr = this.buildPrinterUrl(); + + logger.info( + `Connecting to receipt printer ${this.name} (${interfaceStr})` + ); + + // Initialize thermal printer + this.receiptPrinter = new ThermalPrinter({ + type: type, + interface: interfaceStr, + options: { + timeout: 10000, + }, + }); + + // Test connection + const isConnected = await this.receiptPrinter.isPrinterConnected(); + if (!isConnected) { + logger.error("Printer is not connected or not reachable"); + return { error: "Printer is not connected or not reachable." }; + } + + this.isConnected = true; + logger.info(`Successfully connected to receipt printer ${this.name}`); + return true; + } catch (error) { + logger.error(`Failed to connect to receipt printer ${this.name}:`, error); + this.isConnected = false; + return { + error: "Failed to connect to receipt printer. " + error.message, + }; + } + } + + async disconnect() { + logger.info(`Disconnecting from receipt printer ${this.name}`); + this.isConnected = false; + this.receiptPrinter = null; + return { success: true }; + } + + async initialize() { + logger.info(`Initializing receipt printer ${this.name}`); + // Thermal printers typically don't need special initialization + // but we can test the connection + if (this.receiptPrinter) { + try { + const isConnected = await this.receiptPrinter.isPrinterConnected(); + if (!isConnected) { + logger.error( + `Printer not connected during initialization for receipt printer ${this.name}` + ); + return { error: "Printer not connected during initialization" }; + } + logger.info(`Receipt printer ${this.name} initialized successfully`); + } catch (error) { + logger.error( + `Failed to initialize receipt printer ${this.name}:`, + error + ); + } + } + return true; + } + + async print(jobId) { + logger.info(`Printing job ${jobId} to receipt printer ${this.name}`); + + if (!this.isConnected || !this.receiptPrinter) { + throw new Error("Printer is not connected"); + } + + try { + // Clear the printer buffer to prevent previous print jobs from being included + this.receiptPrinter.clear(); + + const images = this.images.get(jobId); + if (!images || (Array.isArray(images) && images.length === 0)) { + throw new Error("Image not found"); + } + + // convertPDFToImage returns an array of buffers, so handle multiple pages + const imageArray = Array.isArray(images) ? images : [images]; + + for (const image of imageArray) { + // Ensure the image is a proper Buffer and create a fresh copy + // This prevents issues with pngjs reading from consumed streams + // pdf-to-img returns PNG buffers, but we create a copy to avoid any stream issues + const imageBuffer = Buffer.isBuffer(image) + ? Buffer.from(image) // Create a fresh copy + : Buffer.from(image); // Convert if needed + this.receiptPrinter.printImageBuffer(imageBuffer); + this.receiptPrinter.cut(); + } + + // Execute the print job + await this.receiptPrinter.execute({ waitForResponse: true }); + + logger.info( + `Successfully printed job ${jobId} to receipt printer ${this.name}` + ); + + return { success: true }; + } catch (error) { + logger.error( + `Failed to print job ${jobId} to receipt printer ${this.name}:`, + error + ); + return { success: false, error: error.message }; + } + } + + async deploy(documentJob, pdf) { + logger.info( + `Deploying job ${documentJob._id} to receipt printer ${this.name}` + ); + + const images = await convertPDFToImage(pdf, { width: 512 }); + // Store the array of image buffers + this.images.set(documentJob._id, images); + return { success: true }; + } + + async retrieveStatus() { + logger.debug(`Getting status of receipt printer ${this.name}`); + if (this.isOnline == false) { + logger.error("Printer is not connected or not reachable"); + return { error: "Printer is not connected or not reachable." }; + } + try { + const status = await this.receiptPrinter.raw( + Buffer.from([0x10, 0x04, 0x04]) + ); + logger.info(`Printer status: ${status}`); + } catch (error) { + logger.error(`Failed to execute printer status:`, error); + } + + logger.debug(`Receipt printer ${this.name} is connected.`); + return true; + } +} diff --git a/src/electron/App.jsx b/src/electron/App.jsx index 38d6790..710d757 100644 --- a/src/electron/App.jsx +++ b/src/electron/App.jsx @@ -1,32 +1,28 @@ import "./App.css"; -import { - Flex, - Button, - Typography, - Tag, - Menu, - ConfigProvider, - theme, - Layout, - Modal, -} from "antd"; +import { Flex, Button, Tag, Menu, ConfigProvider, theme, Layout } from "antd"; import { MenuOutlined } from "@ant-design/icons"; import React, { useState, useEffect } from "react"; -import merge from "lodash/merge"; +import _ from "lodash"; import unionBy from "lodash/unionBy"; import Overview from "./pages/Overview"; import Printers from "./pages/Printers"; +import DocumentPrinters from "./pages/DocumentPrinters"; import Loading from "./pages/Loading"; import OTPInput from "./pages/OTPInput"; import CloudIcon from "./icons/CloudIcon"; import LockIcon from "./icons/LockIcon"; import SettingsIcon from "./icons/SettingsIcon"; import Disconnected from "./pages/Disconnected"; - +import Files from "./pages/Files"; +import HostIcon from "./icons/HostIcon"; +import PrinterIcon from "./icons/PrinterIcon"; +import DocumentPrinterIcon from "./icons/DocumentPrinterIcon"; +import FileIcon from "./icons/FileIcon"; const App = () => { const [host, setHost] = useState({}); const [printers, setPrinters] = useState([]); const [documentPrinters, setDocumentPrinters] = useState([]); + const [files, setFiles] = useState([]); const [connected, setConnected] = useState(false); const [authenticated, setAuthenticated] = useState(false); const [error, setError] = useState(null); @@ -51,29 +47,45 @@ const App = () => { // Set up IPC listeners when component mounts window.electronAPI.onIPCData("setHost", (newHost) => { console.log("Host data received:", newHost); - setHost((prev) => merge(prev, newHost)); + setHost((prev) => _.merge(prev, newHost)); + }); + + window.electronAPI.onIPCData("setFiles", (newFiles) => { + console.log("Files data received:", newFiles); + setFiles(newFiles); }); window.electronAPI.onIPCData("setPrinters", (newPrinters) => { - console.log("Printers data:", newPrinters); setPrinters(newPrinters); }); window.electronAPI.onIPCData("setPrinter", (newPrinter) => { - console.log("Printer data:", newPrinter); - setPrinters((prev) => unionBy(prev, [newPrinter], "_id")); + setPrinters((prev) => + prev.map((printer) => + printer._id === newPrinter._id + ? _.merge(printer, newPrinter) + : printer + ) + ); }); window.electronAPI.onIPCData( "setDocumentPrinters", (newDocumentPrinters) => { - console.log("Document printers data:", newDocumentPrinters); - setDocumentPrinters((prev) => - unionBy(prev, newDocumentPrinters, "_id") - ); + setDocumentPrinters(newDocumentPrinters); } ); + window.electronAPI.onIPCData("setDocumentPrinter", (newDocumentPrinter) => { + setDocumentPrinters((prev) => + prev.map((documentPrinter) => + documentPrinter._id === newDocumentPrinter._id + ? _.merge(documentPrinter, newDocumentPrinter) + : documentPrinter + ) + ); + }); + window.electronAPI.onIPCData("setAuthenticated", (setAuthenticated) => { console.log("Set authenticated:", setAuthenticated); setLoading(setAuthenticated); @@ -107,13 +119,24 @@ const App = () => { return () => { window.electronAPI.removeAllListeners("setHost"); window.electronAPI.removeAllListeners("setPrinters"); + window.electronAPI.removeAllListeners("setPrinter"); window.electronAPI.removeAllListeners("setDocumentPrinters"); + window.electronAPI.removeAllListeners("setDocumentPrinter"); window.electronAPI.removeAllListeners("setAuthenticated"); + window.electronAPI.removeAllListeners("setFiles"); window.electronAPI.removeAllListeners("setConnected"); window.electronAPI.removeAllListeners("setLoading"); }; }, []); // Empty dependency array means this runs once on mount + useEffect(() => { + console.log("Document printers:", documentPrinters); + }, [documentPrinters]); + + useEffect(() => { + console.log("Printers:", printers); + }, [printers]); + // Function to render the appropriate page based on currentPageKey and auth status const renderCurrentPage = () => { // If loading, show loading @@ -134,11 +157,20 @@ const App = () => { // If authenticated and connected, show the selected page switch (currentPageKey) { case "overview": - return <Overview printers={printers} host={host} loading={loading} />; + return ( + <Overview + printers={printers} + host={host} + loading={loading} + documentPrinters={documentPrinters} + /> + ); case "printers": return <Printers printers={printers} />; + case "files": + return <Files files={files} />; case "documentPrinters": - return <div>Document Printers Page (to be implemented)</div>; + return <DocumentPrinters documentPrinters={documentPrinters} />; default: return <Overview />; } @@ -153,14 +185,22 @@ const App = () => { { key: "overview", label: "Overview", + icon: <HostIcon />, }, { key: "printers", label: "Printers", + icon: <PrinterIcon />, }, { key: "documentPrinters", label: "Document Printers", + icon: <DocumentPrinterIcon />, + }, + { + key: "files", + label: "Files", + icon: <FileIcon />, }, ]; @@ -186,28 +226,35 @@ const App = () => { <Layout> <Flex style={{ width: "100vw", height: "100vh" }} vertical> <Flex - className="ant-menu-horizontal ant-menu-light" - style={{ lineHeight: "40px", padding: "0 8px 0 75px" }} + className="ant-menu-horizontal ant-menu-light electron-drag-area" + style={{ + lineHeight: "40px", + padding: "0 8px 0 75px", + }} + justify="space-between" > {loading == false && authenticated == true && connected == true ? ( - <Menu - mode="horizontal" - items={mainMenuItems} - selectedKeys={[currentPageKey]} - style={{ - flexWrap: "wrap", - border: 0, - lineHeight: "40px", - }} - overflowedIndicator={ - <Button type="text" icon={<MenuOutlined />} /> - } - onClick={handleMenuClick} - /> + <div + className="electron-navigation" + style={{ width: "max-content" }} + > + <Menu + mode="horizontal" + items={mainMenuItems} + selectedKeys={[currentPageKey]} + style={{ + flexWrap: "wrap", + border: 0, + lineHeight: "38px", + }} + overflowedIndicator={ + <Button type="text" icon={<MenuOutlined />} /> + } + onClick={handleMenuClick} + /> + </div> ) : null} - - <div className="electron-navigation" style={{ flexGrow: 1 }}></div> - <Flex align="center" gap={"small"}> + <Flex align="center" gap={"small"} className="electron-navigation"> <Button type="text" icon={<SettingsIcon />} diff --git a/src/electron/assets/icons/fileicon.svg b/src/electron/assets/icons/fileicon.svg new file mode 100644 index 0000000..a5088c2 --- /dev/null +++ b/src/electron/assets/icons/fileicon.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="100%" height="100%" viewBox="0 0 12 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> + <g transform="matrix(0.156042,0,0,0.156042,1.80453,0.721021)"> + <rect x="0" y="0" width="53.774" height="67.661" style="fill-opacity:0;"/> + <path d="M10.149,67.641L43.438,67.641C50.137,67.641 53.586,64.135 53.586,57.41L53.586,29.058C53.586,24.717 53.028,22.725 50.308,19.954L33.894,3.284C31.282,0.616 29.111,0 25.212,0L10.149,0C3.481,0 0,3.532 0,10.257L0,57.41C0,64.161 3.455,67.641 10.149,67.641ZM10.637,61.519C7.621,61.519 6.122,59.941 6.122,57.029L6.122,10.637C6.122,7.752 7.621,6.122 10.663,6.122L23.984,6.122L23.984,23.261C23.984,27.733 26.167,29.895 30.619,29.895L47.464,29.895L47.464,57.029C47.464,59.941 45.965,61.519 42.929,61.519L10.637,61.519ZM31.198,24.496C29.903,24.496 29.384,23.945 29.384,22.656L29.384,6.973L46.613,24.496L31.198,24.496Z" style="fill-rule:nonzero;"/> + </g> +</svg> diff --git a/src/electron/components/FileList.jsx b/src/electron/components/FileList.jsx new file mode 100644 index 0000000..cdccb0b --- /dev/null +++ b/src/electron/components/FileList.jsx @@ -0,0 +1,57 @@ +import React from "react"; +import PropTypes from "prop-types"; +import { Typography, List, Button, Flex, Tag } from "antd"; +import FileIcon from "../icons/FileIcon"; +import InfoCircleIcon from "../icons/InfoCircleIcon"; +import StateDisplay from "./StateDisplay"; +import MissingPlaceholder from "./MissingPlaceholder"; +const { Text } = Typography; + +const FileList = ({ files, type = "file" }) => { + if ((files?.length || 0) <= 0) { + return ( + <MissingPlaceholder + message={`No ${type == "file" ? "files" : "document files"} added.`} + /> + ); + } + return ( + <List + dataSource={files} + size="small" + bordered + renderItem={(file) => ( + <List.Item actions={[]}> + <List.Item.Meta + description={ + <Flex gap={"middle"} justify="space-between" align="center"> + <Flex gap={"small"}> + <Text> + <FileIcon /> + </Text> + <Text>{file.name || file._id}</Text> + <Tag>{file?.extension ? file.extension : "Unknown"}</Tag> + </Flex> + <Flex gap={"middle"} align="center"> + <StateDisplay state={file.state} showProgress={true} /> + <Button + key="info" + icon={<InfoCircleIcon />} + type="text" + size="small" + /> + </Flex> + </Flex> + } + /> + </List.Item> + )} + /> + ); +}; + +FileList.propTypes = { + files: PropTypes.array.isRequired, +}; + +export default FileList; diff --git a/src/electron/components/StateDisplay.jsx b/src/electron/components/StateDisplay.jsx index 56fe851..6d8d464 100644 --- a/src/electron/components/StateDisplay.jsx +++ b/src/electron/components/StateDisplay.jsx @@ -1,36 +1,36 @@ // PrinterSelect.js -import PropTypes from 'prop-types' -import { Progress, Flex, Space } from 'antd' -import StateTag from './StateTag' +import PropTypes from "prop-types"; +import { Progress, Flex, Space } from "antd"; +import StateTag from "./StateTag"; const StateDisplay = ({ state, showProgress = true, showState = true }) => { const currentState = state || { - type: 'unknown', - progress: 0 - } + type: "unknown", + progress: 0, + }; return ( - <Flex gap='small' align={'center'}> + <Flex gap="small" align={"center"}> {showState && ( <Space> <StateTag state={currentState.type} /> </Space> )} - {showProgress && currentState?.progress && currentState?.progress > 0 ? ( + {showProgress && currentState?.percent > 0 ? ( <Progress - percent={Math.round(currentState.progress * 100)} - status='active' - style={{ width: '150px', marginBottom: '2px' }} + percent={Math.round(currentState.percent)} + status="active" + style={{ width: "150px", marginBottom: "2px" }} /> ) : null} </Flex> - ) -} + ); +}; StateDisplay.propTypes = { state: PropTypes.object, showProgress: PropTypes.bool, - showState: PropTypes.bool -} + showState: PropTypes.bool, +}; -export default StateDisplay +export default StateDisplay; diff --git a/src/electron/components/StateTag.jsx b/src/electron/components/StateTag.jsx index b0f5c5d..7c36ebb 100644 --- a/src/electron/components/StateTag.jsx +++ b/src/electron/components/StateTag.jsx @@ -1,92 +1,100 @@ -import PropTypes from 'prop-types' -import { Badge, Flex, Tag } from 'antd' -import { useMemo } from 'react' +import PropTypes from "prop-types"; +import { Badge, Flex, Tag } from "antd"; +import { useMemo } from "react"; const StateTag = ({ state, showBadge = true, style = {} }) => { const { badgeStatus, badgeText } = useMemo(() => { - let status = 'default' - let text = 'Unknown' + let status = "default"; + let text = "Unknown"; switch (state) { - case 'online': - status = 'success' - text = 'Online' - break - case 'standby': - status = 'success' - text = 'Standby' - break - case 'complete': - status = 'success' - text = 'Complete' - break - case 'offline': - status = 'default' - text = 'Offline' - break - case 'shutdown': - status = 'default' - text = 'Shutdown' - break - case 'initializing': - status = 'warning' - text = 'Initializing' - break - case 'printing': - status = 'processing' - text = 'Printing' - break - case 'paused': - status = 'warning' - text = 'Paused' - break - case 'cancelled': - status = 'error' - text = 'Cancelled' - break - case 'loading': - status = 'processing' - text = 'Uploading' - break - case 'processing': - status = 'processing' - text = 'Processing' - break - case 'ready': - status = 'success' - text = 'Ready' - break - case 'unconsumed': - status = 'success' - text = 'Unconsumed' - break - case 'error': - status = 'error' - text = 'Error' - break - case 'startup': - status = 'warning' - text = 'Startup' - break - case 'draft': - status = 'default' - text = 'Draft' - break - case 'failed': - status = 'error' - text = 'Failed' - break - case 'queued': - status = 'warning' - text = 'Queued' - break + case "online": + status = "success"; + text = "Online"; + break; + case "standby": + status = "success"; + text = "Standby"; + break; + case "complete": + status = "success"; + text = "Complete"; + break; + case "offline": + status = "default"; + text = "Offline"; + break; + case "shutdown": + status = "default"; + text = "Shutdown"; + break; + case "initializing": + status = "warning"; + text = "Initializing"; + break; + case "printing": + status = "processing"; + text = "Printing"; + break; + case "paused": + status = "warning"; + text = "Paused"; + break; + case "cancelled": + status = "error"; + text = "Cancelled"; + break; + case "loading": + status = "processing"; + text = "Uploading"; + break; + case "processing": + status = "processing"; + text = "Processing"; + break; + case "ready": + status = "success"; + text = "Ready"; + break; + case "unconsumed": + status = "success"; + text = "Unconsumed"; + break; + case "error": + status = "error"; + text = "Error"; + break; + case "startup": + status = "warning"; + text = "Startup"; + break; + case "draft": + status = "default"; + text = "Draft"; + break; + case "failed": + status = "error"; + text = "Failed"; + break; + case "queued": + status = "warning"; + text = "Queued"; + break; + case "downloading": + status = "processing"; + text = "Downloading"; + break; + case "downloaded": + status = "success"; + text = "Downloaded"; + break; default: - status = 'default' - text = state || 'Unknown' + status = "default"; + text = state || "Unknown"; } - return { badgeStatus: status, badgeText: text } - }, [state]) + return { badgeStatus: status, badgeText: text }; + }, [state]); return ( <Tag color={badgeStatus} style={{ marginRight: 0, ...style }}> @@ -95,13 +103,13 @@ const StateTag = ({ state, showBadge = true, style = {} }) => { {badgeText} </Flex> </Tag> - ) -} + ); +}; StateTag.propTypes = { state: PropTypes.string, showBadge: PropTypes.bool, - style: PropTypes.object -} + style: PropTypes.object, +}; -export default StateTag +export default StateTag; diff --git a/src/electron/icons/FileIcon.jsx b/src/electron/icons/FileIcon.jsx new file mode 100644 index 0000000..ef5d8dd --- /dev/null +++ b/src/electron/icons/FileIcon.jsx @@ -0,0 +1,6 @@ +import Icon from "@ant-design/icons"; +import CustomIconSvg from "../assets/icons/fileicon.svg?react"; + +const FileIcon = (props) => <Icon component={CustomIconSvg} {...props} />; + +export default FileIcon; diff --git a/src/electron/index.css b/src/electron/index.css index 77e0638..4cd94af 100644 --- a/src/electron/index.css +++ b/src/electron/index.css @@ -21,8 +21,14 @@ button { font-family: inherit; } -/* Ensure proper theme support */ -#root { - width: 100%; - height: 100%; +.electron-navigation { + -webkit-app-region: no-drag; +} + +.electron-drag-area { + -webkit-app-region: drag; +} + +.electron-drag-area:after { + display: none; } diff --git a/src/electron/index.html b/src/electron/index.html index 5ef01ac..4bbd666 100644 --- a/src/electron/index.html +++ b/src/electron/index.html @@ -6,11 +6,6 @@ <link rel="stylesheet" href="./fonts.css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Farm Control Server</title> - <style> - .electron-navigation { - -webkit-app-region: drag; - } - </style> </head> <body> <div id="root"></div> diff --git a/src/electron/ipc.js b/src/electron/ipc.js index b8d51c9..caec29a 100644 --- a/src/electron/ipc.js +++ b/src/electron/ipc.js @@ -21,8 +21,7 @@ export async function setupIPC() { logger.warn("ipcMain not available, skipping IPC setup"); return; } - // Generic IPC handler for custom messages - console.log("SETTING GET DATA HANDLER"); + ipcMain.on("getData", (event) => { logger.info("Getting data..."); try { @@ -35,6 +34,7 @@ export async function setupIPC() { sendIPC("setLoading", false); sendIPC("setHost", {}); sendIPC("setPrinters", []); + sendIPC("setDocumentPrinters", []); return; } @@ -44,6 +44,10 @@ export async function setupIPC() { sendIPC("setLoading", socketClient.loading); sendIPC("setHost", socketClient.host || {}); sendIPC("setPrinters", socketClient.printerManager.printers || []); + sendIPC( + "setDocumentPrinters", + socketClient.documentPrinterManager.documentPrinters || [] + ); } catch (error) { logger.error("Error getting printer data:", error); sendIPC("setAuthenticated", false); diff --git a/src/electron/pages/DocumentPrinters.jsx b/src/electron/pages/DocumentPrinters.jsx new file mode 100644 index 0000000..f1c426b --- /dev/null +++ b/src/electron/pages/DocumentPrinters.jsx @@ -0,0 +1,34 @@ +import React from "react"; +import { Space, Card, Flex } from "antd"; +import DocumentPrinterIcon from "../icons/DocumentPrinterIcon.jsx"; +import PrinterList from "../components/PrinterList.jsx"; + +const DocumentPrinters = ({ documentPrinters }) => { + return ( + <Flex + vertical + size="large" + style={{ width: "100%", height: "100%" }} + gap={"middle"} + > + <Flex gap={"middle"} wrap style={{ flexGrow: 1 }}> + <Card + size="small" + style={{ minWidth: "400px", flexGrow: 1 }} + title={ + <Space> + <DocumentPrinterIcon /> + Document Printers + </Space> + } + > + <PrinterList printers={documentPrinters} type="documentPrinter" /> + </Card> + </Flex> + </Flex> + ); +}; + +DocumentPrinters.propTypes = {}; + +export default DocumentPrinters; diff --git a/src/electron/pages/Files.jsx b/src/electron/pages/Files.jsx new file mode 100644 index 0000000..ce6815c --- /dev/null +++ b/src/electron/pages/Files.jsx @@ -0,0 +1,34 @@ +import React from "react"; +import { Card, Flex, Space } from "antd"; +import FileList from "../components/FileList.jsx"; +import FileIcon from "../icons/FileIcon"; + +const Files = ({ files }) => { + return ( + <Flex + vertical + size="large" + style={{ width: "100%", height: "100%" }} + gap={"middle"} + > + <Flex gap={"middle"} wrap style={{ flexGrow: 1 }}> + <Card + size="small" + style={{ minWidth: "400px", flexGrow: 1 }} + title={ + <Space> + <FileIcon /> + Files + </Space> + } + > + <FileList files={files} type="file" /> + </Card> + </Flex> + </Flex> + ); +}; + +Files.propTypes = {}; + +export default Files; diff --git a/src/electron/pages/Printers.jsx b/src/electron/pages/Printers.jsx index 5d19b8d..9cce184 100644 --- a/src/electron/pages/Printers.jsx +++ b/src/electron/pages/Printers.jsx @@ -1,5 +1,5 @@ import React from "react"; -import { Space, Card, Flex } from "antd"; +import { Space, Card, Flex, Button } from "antd"; import PrinterIcon from "../icons/PrinterIcon.jsx"; import PrinterList from "../components/PrinterList.jsx"; @@ -12,7 +12,16 @@ const Printers = ({ printers }) => { gap={"middle"} > <Flex gap={"middle"} wrap style={{ flexGrow: 1 }}> - <Card size="small" style={{ minWidth: "400px", flexGrow: 1 }}> + <Card + size="small" + style={{ minWidth: "400px", flexGrow: 1 }} + title={ + <Space> + <PrinterIcon /> + Printers + </Space> + } + > <PrinterList printers={printers} type="printer" /> </Card> </Flex> diff --git a/src/electron/vite.config.js b/src/electron/vite.config.js index a1eab2c..c6619ab 100644 --- a/src/electron/vite.config.js +++ b/src/electron/vite.config.js @@ -17,6 +17,6 @@ export default defineConfig({ }, }, server: { - port: 5173, + port: 5287, }, }); diff --git a/src/electron/window.js b/src/electron/window.js index ce804d3..74f32a1 100644 --- a/src/electron/window.js +++ b/src/electron/window.js @@ -62,7 +62,7 @@ export async function createElectronWindow() { logger.info("Preload Script", path.join(__dirname, "preload.js")); if (process.env.NODE_ENV === "development") { logger.info("Loading development url..."); - win.loadURL("http://localhost:5173"); // Vite dev server + win.loadURL("http://localhost:5287"); // Vite dev server } else { // In production, the built files will be in the build/electron directory win.loadFile( diff --git a/src/files/filemanager.js b/src/files/filemanager.js new file mode 100644 index 0000000..68ded0f --- /dev/null +++ b/src/files/filemanager.js @@ -0,0 +1,264 @@ +// filemanager.js - Manages file downloads and caching +import fs from "fs"; +import path from "path"; +import { fileURLToPath } from "url"; +import axios from "axios"; +import log4js from "log4js"; +import _ from "lodash"; +import { loadConfig } from "../config.js"; +import { sendIPC } from "../electron/ipc.js"; + +const config = loadConfig(); + +const logger = log4js.getLogger("File Manager"); +logger.level = config.logLevel; + +// Configure paths relative to this file +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const TEMP_FILES_DIR = path.resolve(__dirname, "../../temp_files"); + +export class FileManager { + constructor(socketClient) { + this.socketClient = socketClient; + this.files = []; + this.downloadingFiles = new Map(); // Track ongoing downloads by fileId + this.ensureTempFilesDirectory(); + this.progressCallbacks = new Map(); + } + + /** + * Ensure the temp_files directory exists + */ + ensureTempFilesDirectory() { + try { + if (!fs.existsSync(TEMP_FILES_DIR)) { + fs.mkdirSync(TEMP_FILES_DIR, { recursive: true }); + logger.info(`Created temp_files directory at ${TEMP_FILES_DIR}`); + } + } catch (error) { + logger.error(`Failed to create temp_files directory: ${error.message}`); + } + } + + /** + * Update the files list from the host's files property + */ + async updateFiles() { + const host = await this.socketClient.getObject({ + objectType: "host", + _id: this.socketClient.host._id, + populate: ["files"], + }); + this.files = (host.files || []).map((file) => { + return { ...file, state: { type: "downloaded" } }; + }); + sendIPC("setFiles", this.files); + logger.debug(`Updated files list: ${this.files.length} files`); + } + + /** + * Get the API URL for downloading files + * Converts the socket URL to HTTP/HTTPS URL + */ + getApiUrl() { + let apiUrl = config.apiUrl; + if (!apiUrl) { + throw new Error("API URL not configured"); + } + return apiUrl; + } + + /** + * Get the file path in temp_files directory + */ + getFilePath(fileId) { + return path.join(TEMP_FILES_DIR, fileId); + } + + /** + * Check if file exists in temp_files directory + */ + fileExistsInCache(fileId) { + const filePath = this.getFilePath(fileId); + return fs.existsSync(filePath); + } + + /** + * Get file from cache + */ + getFileFromCache(fileId) { + const filePath = this.getFilePath(fileId); + try { + const fileBuffer = fs.readFileSync(filePath); + logger.debug(`Retrieved file ${fileId} from cache`); + return fileBuffer; + } catch (error) { + logger.error(`Failed to read file from cache: ${error.message}`); + throw error; + } + } + + /** + * Save file to cache + */ + saveFileToCache(fileId, fileBuffer) { + const filePath = this.getFilePath(fileId); + try { + fs.writeFileSync(filePath, fileBuffer); + logger.debug(`Saved file ${fileId} to cache`); + } catch (error) { + logger.error(`Failed to save file to cache: ${error.message}`); + throw error; + } + } + + /** + * Download file from API + */ + async downloadFileFromApi(fileId) { + const apiUrl = this.getApiUrl(); + const downloadUrl = `${apiUrl}/files/${fileId}/content/`; + + const fileObject = await this.socketClient.getObject({ + objectType: "file", + _id: fileId, + }); + + this.files = [ + ...this.files, + { ...fileObject, state: { type: "downloading", percent: 0 } }, + ]; + sendIPC("setFiles", this.files); + logger.info(`Downloading file ${fileId} from ${downloadUrl}`); + + try { + const response = await axios.get(downloadUrl, { + responseType: "arraybuffer", // Get binary data + headers: { + "X-Auth-Code": config.host.authCode, + "X-Host-Id": config.host.id, + }, + onDownloadProgress: (progressEvent) => { + console.log(progressEvent); + const percent = Math.round( + (progressEvent.loaded * 100) / progressEvent.total + ); + logger.debug(`Downloading file ${fileId}: ${percent}%`); + this.files = _.unionBy( + [{ ...fileObject, state: { type: "downloading", percent } }], + this.files, + "_id" + ); + sendIPC("setFiles", this.files); + if (this.progressCallbacks.has(fileId)) { + const progressCallbacks = this.progressCallbacks.get(fileId); + for (const callback of progressCallbacks) { + callback(percent); + } + } + }, + }); + + const fileBuffer = Buffer.from(response.data); + logger.info(`Successfully downloaded file ${fileId}`); + this.saveFileToCache(fileId, fileBuffer); + this.files = _.unionBy( + [{ ...fileObject, state: { type: "downloaded" } }], + this.files, + "_id" + ); + if (this.progressCallbacks.has(fileId)) { + const progressCallbacks = this.progressCallbacks.get(fileId); + for (const callback of progressCallbacks) { + callback(100); + } + this.progressCallbacks.delete(fileId); + } + this.socketClient.editObject({ + objectType: "host", + _id: this.socketClient.host._id, + updateData: { + files: this.files.map((file) => file._id), + }, + }); + sendIPC("setFiles", this.files); + return fileBuffer; + } catch (error) { + logger.error(`Failed to download file ${fileId}: ${error.message}`); + if (error.response) { + logger.error(`Response status: ${error.response.status}`); + logger.error(`Response data: ${error.response.data}`); + } + this.files = _.unionBy( + [{ ...fileObject, state: { type: "error" } }], + this.files, + "_id" + ); + sendIPC("setFiles", this.files); + } + } + + /** + * Get file by ID + * Checks temp_files directory first, then downloads from API if not found + * If a download is already in progress for the same fileId, waits for that download + */ + async getFile(fileId, onProgress) { + if (!fileId) { + throw new Error("File ID is required"); + } + + // Update files list from host + this.updateFiles(); + + if (onProgress) { + const progressCallbacks = this.progressCallbacks.get(fileId) || []; + progressCallbacks.push(onProgress); + this.progressCallbacks.set(fileId, progressCallbacks); + } + + // Check if file exists in cache + if (this.fileExistsInCache(fileId)) { + logger.debug(`File ${fileId} found in cache`); + if (this.progressCallbacks.has(fileId)) { + const progressCallbacks = this.progressCallbacks.get(fileId); + for (const callback of progressCallbacks) { + callback(100); + } + } + return this.getFileFromCache(fileId); + } + + // Check if download is already in progress for this file + if (this.downloadingFiles.has(fileId)) { + logger.debug(`File ${fileId} download already in progress, waiting...`); + try { + return await this.downloadingFiles.get(fileId); + } catch (error) { + // If the download failed, remove it from the map so it can be retried + this.downloadingFiles.delete(fileId); + throw error; + } + } + + // File not in cache and no download in progress, start new download + logger.debug(`File ${fileId} not in cache, downloading from API`); + const downloadPromise = this.downloadFileFromApi(fileId) + .then((fileBuffer) => { + // Remove from downloading map on success + this.downloadingFiles.delete(fileId); + return fileBuffer; + }) + .catch((error) => { + // Remove from downloading map on error + this.downloadingFiles.delete(fileId); + throw error; + }); + + // Store the promise in the map + this.downloadingFiles.set(fileId, downloadPromise); + + return await downloadPromise; + } +} diff --git a/src/index.js b/src/index.js index b7d5715..15d443f 100644 --- a/src/index.js +++ b/src/index.js @@ -10,17 +10,24 @@ const config = loadConfig(); const logger = log4js.getLogger("App"); logger.level = config.logLevel; -export async function init() { - // Create Electron window first - logger.info("Creating electron window..."); - await createElectronWindow().catch((err) => { - logger.warn("Failed to create Electron window:", err); - }); +const isHeadless = process.argv.includes("--headless"); + +export async function init() { + if (!isHeadless) { + // Create Electron window first + logger.info("Creating electron window..."); + await createElectronWindow().catch((err) => { + logger.warn("Failed to create Electron window:", err); + }); + + // Setup IPC communication after window is created + setupIPC().catch((err) => { + logger.warn("Failed to setup IPC:", err); + }); + } else { + logger.info("Running in headless mode. Skipping window creation."); + } - // Setup IPC communication after window is created - setupIPC().catch((err) => { - logger.warn("Failed to setup IPC:", err); - }); const socketClient = new SocketClient(); // Make socket client globally accessible for IPC handlers global.socketClient = socketClient; diff --git a/src/printer/database.js b/src/printer/database.js index de4706d..e26a110 100644 --- a/src/printer/database.js +++ b/src/printer/database.js @@ -1,4 +1,5 @@ import log4js from "log4js"; +import NodeCache from "node-cache"; import { loadConfig } from "../config.js"; import { sendIPC } from "../electron/ipc.js"; @@ -13,28 +14,86 @@ export class PrinterDatabase { this.id = this.printer._id; this.filamentStock = null; // Store current filament stock this.existingEvent = null; // Store existing stock event + // Initialize cache with 30 second TTL + this.printerCache = new NodeCache({ stdTTL: 30 }); logger.info("Initialized PrinterDatabase with socket manager"); } async getPrinter() { + const populate = [ + "currentFilamentStock", + "currentJob", + "currentSubJob", + "queue", + ]; + const populateKey = populate.sort().join(","); + const cacheKey = `printer_${this.printer._id}_${populateKey}`; + + // Check if printer is in cache + const cachedPrinter = this.printerCache.get(cacheKey); + if (cachedPrinter) { + logger.debug(`Returning cached printer for ${this.id}`); + this.printer = cachedPrinter; + return cachedPrinter; + } + + // Fetch from socketClient if not in cache const object = await this.socketClient.getObject({ _id: this.printer._id, objectType: "printer", - populate: ["subJobs"], + populate: populate, }); + + this.printer = object; + // Store in cache + this.printerCache.set(cacheKey, object); + logger.debug(`Cached printer for ${this.id}`); + return object; } - async updatePrinter() { + async editPrinter(updateData) { sendIPC("setPrinter", this.printer); + const populate = [ + "currentFilamentStock", + "currentJob", + "currentSubJob", + "queue", + ]; const object = await this.socketClient.editObject({ _id: this.printer._id, objectType: "printer", - updateData: this.printer, + updateData: updateData, + populate: populate, }); + + // Update cache with the edited printer (overwrite existing cache) + const populateKey = populate.sort().join(","); + const cacheKey = `printer_${this.printer._id}_${populateKey}`; + this.printerCache.del(cacheKey); // Delete existing cache entry + this.printerCache.set(cacheKey, { ...object, ...updateData }); // Set new cache entry + this.printer = { ...object, ...updateData }; + logger.debug(`Updated printer cache for ${this.id}`); + return object; } + async setPrinterConnectedAt() { + const updatedPrinter = await this.editPrinter({ + connectedAt: new Date(), + }); + this.printer = updatedPrinter; + return updatedPrinter; + } + + async removePrinterConnectedAt() { + const updatedPrinter = await this.editPrinter({ + connectedAt: null, + }); + this.printer = updatedPrinter; + return updatedPrinter; + } + async getPrinterConfig() { try { logger.debug(`Getting printer config for ${this.id}`); @@ -64,7 +123,7 @@ export class PrinterDatabase { } } - async updatePrinterState(state, online) { + async updatePrinterState(state, online, connectedAt) { try { logger.debug(`Updating printer state for ${this.printer.name}:`, { state, @@ -80,8 +139,13 @@ export class PrinterDatabase { this.printer.state = state; this.printer.online = online; + this.printer.connectedAt = connectedAt; - const updatedPrinter = await this.updatePrinter(); + const updatedPrinter = await this.editPrinter({ + state, + online, + connectedAt, + }); logger.info(`Updated printer ${this.printer.name} state:`, { type: state.type, @@ -100,219 +164,18 @@ export class PrinterDatabase { } } - async clearCurrentJob() { - try { - const updatedPrinter = await this.socketClient.editObject({ - _id: this.id, - objectType: "printer", - updateData: { - currentSubJob: null, - currentJob: null, - }, - }); - - if (!updatedPrinter) { - logger.error( - `Printer with ID ${this.id} not found when clearing current job` - ); - return null; - } - - logger.info(`Cleared current job for printer ${this.id}`); - - return { - currentSubJob: null, - currentJob: null, - }; - } catch (error) { - logger.error( - `Failed to clear current job for printer ${this.id}:`, - error - ); - throw error; - } - } - - async setCurrentJobForPrinting(queuedJobIds) { - try { - const printers = await this.socketClient.listObjects({ - objectType: "printer", - filter: { _id: this.id }, - populate: ["subJobs"], - }); - - if (!printers || printers.length === 0) { - logger.error(`Printer with ID ${this.id} not found`); - return null; - } - - const printer = printers[0]; - const subJobs = printer.subJobs; - - for (const subJob of subJobs) { - if ( - !queuedJobIds.includes(subJob.subJobId) && - ["printing", "queued", "paused"].includes(subJob.state.type) - ) { - logger.info( - `Setting current job and subjob for printer ${this.id} as printing starts`, - { - subJobId: subJob.id, - jobId: subJob.job, - } - ); - - const now = new Date(); - - // Update printer with current job and startedAt - const oldCurrentJob = printer.currentJob; - const oldCurrentSubJob = printer.currentSubJob; - const updatedPrinter = await this.socketClient.editObject({ - _id: this.id, - objectType: "printer", - updateData: { - currentSubJob: subJob.id, - currentJob: subJob.job, - startedAt: now, - }, - }); - - if (!updatedPrinter) { - logger.error( - `Printer with ID ${this.id} not found when setting job and subjob` - ); - return null; - } - - // Update subjob with startedAt - const oldStartedAt = subJob.startedAt; - await this.socketClient.editObject({ - _id: subJob.id, - objectType: "subJob", - updateData: { startedAt: now }, - }); - - // Get the full job object and update its startedAt if null - const jobs = await this.socketClient.listObjects({ - objectType: "job", - filter: { _id: subJob.job }, - populate: ["gcodeFile"], - }); - - if (!jobs || jobs.length === 0) { - logger.error(`Job with ID ${subJob.job} not found`); - return null; - } - - const job = jobs[0]; - const oldJobStartedAt = job.startedAt; - if (!job.startedAt) { - await this.socketClient.editObject({ - _id: subJob.job, - objectType: "job", - updateData: { startedAt: now }, - }); - job.startedAt = now; - } - - logger.info(`Set current job for printer ${this.id}:`, { - subJobId: subJob.id, - jobId: subJob.job, - }); - - return { - currentSubJob: subJob, - currentJob: job, - }; - } - } - return null; - } catch (error) { - logger.error(`Failed to set current job for printer ${this.id}:`, error); - throw error; - } - } - async updateSubJobState(subJobId, state) { try { - if ( - state.type == "standby" || - state.type == "error" || - state.type == "offline" - ) { - state.type = "failed"; - logger.warn(`Updating subjob state for ${subJobId}:`, state); - } else { - logger.debug(`Updating subjob state for ${subJobId}:`, state); - } - - // Set startedAt if the subjob is starting to print - const updateData = { state }; - if (state.type === "printing") { - const subJobs = await this.socketClient.listObjects({ - objectType: "subJob", - filter: { _id: subJobId }, - }); - - if (subJobs && subJobs.length > 0) { - const subJob = subJobs[0]; - if (!subJob.startedAt) { - updateData.startedAt = new Date(); - logger.info( - `Setting startedAt for subjob ${subJobId} as printing begins` - ); - } - } - } - - // Set finishedAt if the subjob is complete, failed, or cancelled - if (["complete", "failed", "cancelled"].includes(state.type)) { - const subJobs = await this.socketClient.listObjects({ - objectType: "subJob", - filter: { _id: subJobId }, - }); - - if (subJobs && subJobs.length > 0) { - const subJob = subJobs[0]; - if (!subJob.finishedAt) { - updateData.finishedAt = new Date(); - logger.info( - `Setting finishedAt for subjob ${subJobId} as state is ${state.type}` - ); - } - } - } - - const subJobs = await this.socketClient.listObjects({ - objectType: "subJob", - filter: { _id: subJobId }, - }); - - if (!subJobs || subJobs.length === 0) { - logger.error(`Sub job with ID ${subJobId} not found`); - return; - } - - const subJob = subJobs[0]; - const oldState = subJob.state; const updatedSubJob = await this.socketClient.editObject({ _id: subJobId, objectType: "subJob", - updateData, + updateData: { state }, }); logger.info(`Updated subjob ${subJobId} state:`, { type: state.type, progress: state.progress, - previousState: updatedSubJob.state, - job: updatedSubJob.job, - startedAt: updatedSubJob.startedAt, - finishedAt: updatedSubJob.finishedAt, }); - - // Update parent job state - await this.updateJobState(updatedSubJob.job, subJob.printer); - return updatedSubJob; } catch (error) { logger.error(`Failed to update sub job state for ${subJobId}:`, error); @@ -320,113 +183,104 @@ export class PrinterDatabase { } } - async updateJobState(jobId, printerId) { + async updateJobState(jobId) { try { logger.debug(`Updating job state for ${jobId}`); - const jobs = await this.socketClient.listObjects({ - objectType: "job", - filter: { _id: jobId }, - populate: ["subJobs"], + const subJobs = await this.socketClient.listObjects({ + objectType: "subJob", + filter: { job: { _id: jobId } }, + cached: false, }); - if (!jobs || jobs.length === 0) { - logger.error(`Job with ID ${jobId} not found`); - return; - } - - const job = jobs[0]; - const subJobStates = job.subJobs.map((subJob) => subJob.state); + const subJobStates = subJobs.map((subJob) => subJob.state); const stateCounts = { printing: 0, paused: 0, complete: 0, failed: 0, queued: 0, + cancelled: 0, + deploying: 0, }; - let progress = 0; + let jobProgress = 0; subJobStates.forEach((state) => { stateCounts[state.type]++; - progress += state.progress || 0; + var subJobProgress = state.progress || 0; + if (state.type === "complete") { + subJobProgress = 1; + } + jobProgress += subJobProgress; }); logger.debug(`Job ${jobId} state counts:`, stateCounts); const jobState = { type: this.determineJobState(stateCounts), - progress: progress / job.subJobs.length, + progress: jobProgress / subJobs.length, }; logger.debug(`Calculated job state for ${jobId}:`, { type: jobState.type, progress: jobState.progress, - subJobCount: job.subJobs.length, + subJobCount: subJobs.length, }); - var oldAuditLogValues = {}; - var newAuditLogValues = {}; - - // Update finishedAt if all subjobs are complete and none are queued - const oldFinishedAt = job.finishedAt; - if ( - stateCounts.complete + stateCounts.failed + stateCounts.cancelled === - job.subJobs.length && - stateCounts.queued === 0 && - !job.finishedAt - ) { - logger.info( - `Setting finishedAt for job ${jobId} as all subjobs are complete` - ); - job.finishedAt = new Date(); - oldAuditLogValues = { - ...oldAuditLogValues, - finishedAt: oldFinishedAt, - }; - newAuditLogValues = { - ...newAuditLogValues, - finishedAt: job.finishedAt, - }; + if (jobState.type == "complete") { + await this.setJobFinishedAt(jobId, new Date()); } - const oldState = job.state; - if (oldState.type !== jobState.type) { - oldAuditLogValues = { ...oldAuditLogValues, state: oldState }; - newAuditLogValues = { ...newAuditLogValues, state: jobState }; - } - - const updateData = { - state: jobState, - subJobStats: stateCounts, - }; - - if (job.finishedAt) { - updateData.finishedAt = job.finishedAt; - } - - const updatedJob = await this.socketClient.editObject({ + await this.socketClient.editObject({ _id: jobId, objectType: "job", - updateData, + updateData: { state: jobState }, }); logger.info(`Updated job ${jobId} state:`, { _id: jobId, state: jobState, subJobStats: stateCounts, - finishedAt: updatedJob.finishedAt, }); - return updatedJob; + return jobState; } catch (error) { logger.error(`Failed to update job state for ${jobId}:`, error); throw error; } } + async setSubJobMoonrakerJobId(subJobId, moonrakerJobId) { + try { + logger.debug(`Setting subjob ${subJobId} moonraker job id:`, { + moonrakerJobId, + }); + const updatedSubJob = await this.socketClient.editObject({ + _id: subJobId, + objectType: "subJob", + updateData: { moonrakerJobId: moonrakerJobId }, + }); + logger.info(`Set subjob ${subJobId} moonraker job id:`, { + moonrakerJobId, + }); + return updatedSubJob; + } catch (error) { + logger.error(`Failed to set subjob ${subJobId} moonraker job id:`, error); + throw error; + } + } + determineJobState(stateCounts) { logger.debug("Determining job state from counts:", stateCounts); + // If any subjob is printing, the overall state should be printing + if (stateCounts.deploying > 0) { + logger.debug( + "Job state determined as 'deploying' due to active deploying subjobs" + ); + return "deploying"; + } + // If any subjob is printing, the overall state should be printing if (stateCounts.printing > 0) { logger.debug( @@ -456,78 +310,20 @@ export class PrinterDatabase { return "queued"; } - async addSubJobToPrinter(subJobId) { + async setCurrentJobAndSubJob(subJob, job) { try { - logger.debug(`Adding subjob ${subJobId} to printer ${this.id}`); - - const printers = await this.socketClient.listObjects({ - objectType: "printer", - filter: { _id: this.id }, + logger.debug(`Setting current job and subjob for printer ${this.id}:`, { + subJobId: subJob?._id || null, + jobId: job?._id || null, }); - - if (!printers || printers.length === 0) { - logger.error(`Printer with ID ${this.id} not found`); - return null; - } - - const printer = printers[0]; - const updatedSubJobs = [...printer.subJobs, subJobId]; - - const updatedPrinter = await this.socketClient.editObject({ - _id: this.id, - objectType: "printer", - updateData: { subJobs: updatedSubJobs }, + const updatedPrinter = await this.editPrinter({ + currentSubJob: subJob, + currentJob: job, }); - - logger.info(`Added subjob ${subJobId} to printer ${this.id}`, { - currentSubJobs: updatedPrinter.subJobs.length, - printerState: updatedPrinter.state, - }); - return updatedPrinter; } catch (error) { logger.error( - `Failed to add subjob ${subJobId} to printer ${this.id}:`, - error - ); - throw error; - } - } - - async removePrinterSubJob(subJobId) { - try { - logger.debug(`Removing subjob ${subJobId} from printer ${this.id}`); - - const printers = await this.socketClient.listObjects({ - objectType: "printer", - filter: { _id: this.id }, - }); - - if (!printers || printers.length === 0) { - logger.error(`Printer with ID ${this.id} not found`); - return; - } - - const printer = printers[0]; - const updatedSubJobs = printer.subJobs.filter( - (id) => id.toString() !== subJobId.toString() - ); - - const updatedPrinter = await this.socketClient.editObject({ - _id: this.id, - objectType: "printer", - updateData: { subJobs: updatedSubJobs }, - }); - - logger.info(`Removed subjob ${subJobId} from printer ${this.id}`, { - remainingSubJobs: updatedPrinter.subJobs.length, - printerState: updatedPrinter.state, - }); - - return updatedPrinter; - } catch (error) { - logger.error( - `Failed to remove subjob ${subJobId} from printer ${this.id}:`, + `Failed to set current job and subjob for printer ${this.id}:`, error ); throw error; @@ -559,7 +355,7 @@ export class PrinterDatabase { firmwareVersion ); this.printer.firmware = firmwareVersion; - await this.updatePrinter(); + await this.editPrinter({ firmware: firmwareVersion }); logger.info( `Updated firmware version for printer ${this.id}:`, firmwareVersion @@ -577,66 +373,9 @@ export class PrinterDatabase { try { logger.debug(`Adding alert to printer ${this.id}:`, alert); - const printers = await this.socketClient.listObjects({ - objectType: "printer", - filter: { _id: this.id }, - }); - - if (!printers || printers.length === 0) { - logger.error(`Printer with ID ${this.id} not found`); - return null; - } - - const printer = printers[0]; - const existingAlertIndex = printer.alerts.findIndex( - (a) => a.type === alert.type - ); - - if (existingAlertIndex !== -1) { - // If we have a message to update, update the existing alert - if (alert.message) { - logger.debug( - `Updating message for existing alert of type ${alert.type} on printer ${this.id}` - ); - const updatedAlerts = [...printer.alerts]; - updatedAlerts[existingAlertIndex].message = alert.message; - - const updatedPrinter = await this.socketClient.editObject({ - _id: this.id, - objectType: "printer", - updateData: { alerts: updatedAlerts }, - }); - - logger.info( - `Updated message for existing alert on printer ${this.id}:`, - { - type: alert.type, - message: alert.message, - } - ); - - return updatedPrinter; - } - - logger.debug( - `Alert of type ${alert.type} already exists for printer ${this.id}, skipping` - ); - return printer; - } - - // No existing alert found, create a new one - logger.debug(`Creating new alert for printer ${this.id}:`, { - type: alert.type, - priority: alert.priority, - hasMessage: !!alert.message, - }); - + const printer = await this.getPrinter(); const updatedAlerts = [...printer.alerts, alert]; - const updatedPrinter = await this.socketClient.editObject({ - _id: this.id, - objectType: "printer", - updateData: { alerts: updatedAlerts }, - }); + const updatedPrinter = await this.editPrinter({ alerts: updatedAlerts }); logger.info(`Added new alert to printer ${this.id}:`, { type: alert.type, @@ -651,50 +390,32 @@ export class PrinterDatabase { } } - async removeAlerts(options = {}) { + async removeAlert(alertId) { try { - logger.debug(`Clearing alerts for printer ${this.id}:`, options); + logger.debug(`Clearing alert ${alertId} for printer ${this.id}`); - const printers = await this.socketClient.listObjects({ - objectType: "printer", - filter: { _id: this.id }, - }); - - if (!printers || printers.length === 0) { - logger.error( - `Printer with ID ${this.id} not found when clearing alerts` - ); - return null; - } - - const printer = printers[0]; + const printer = await this.getPrinter(); let filteredAlerts = printer.alerts; - if (options.type) { + if (alertId) { filteredAlerts = filteredAlerts.filter( - (alert) => alert.type !== options.type - ); - } - if (options.priority) { - filteredAlerts = filteredAlerts.filter( - (alert) => alert.priority !== options.priority + (alert) => alert._id !== alertId ); } - const updatedPrinter = await this.socketClient.editObject({ - _id: this.id, - objectType: "printer", - updateData: { alerts: filteredAlerts }, - }); + const updatedPrinter = await this.editPrinter({ alerts: filteredAlerts }); - logger.info(`Cleared alerts for printer ${this.id}:`, { - options, - remainingAlerts: updatedPrinter.alerts.length, + logger.info(`Cleared alert ${alertId} for printer ${this.id}:`, { + alertId, + alerts: updatedPrinter.alerts, }); return updatedPrinter; } catch (error) { - logger.error(`Failed to clear alerts for printer ${this.id}:`, error); + logger.error( + `Failed to clear alert ${alertId} for printer ${this.id}:`, + error + ); throw error; } } @@ -703,27 +424,12 @@ export class PrinterDatabase { try { logger.debug(`Getting alerts for printer ${this.id}:`, options); - const printers = await this.socketClient.listObjects({ - objectType: "printer", - filter: { _id: this.id }, - }); - - if (!printers || printers.length === 0) { - logger.error( - `Printer with ID ${this.id} not found when getting alerts` - ); - return null; - } - - const printer = printers[0]; + const printer = await this.getPrinter(); let alerts = printer.alerts; // Filter alerts based on options - if (options.type) { - alerts = alerts.filter((alert) => alert.type === options.type); - } - if (options.priority) { - alerts = alerts.filter((alert) => alert.priority === options.priority); + if (options.action) { + alerts = alerts.filter((alert) => alert.action === options.action); } // Sort alerts by priority @@ -741,11 +447,7 @@ export class PrinterDatabase { try { logger.debug(`Clearing all alerts for printer ${this.id}`); - const updatedPrinter = await this.socketClient.editObject({ - _id: this.id, - objectType: "printer", - updateData: { alerts: [] }, - }); + const updatedPrinter = await this.editPrinter({ alerts: [] }); if (!updatedPrinter) { logger.error( @@ -763,58 +465,20 @@ export class PrinterDatabase { } } - async setCurrentFilamentStock(filamentStockId) { + async setCurrentFilamentStock(filamentStock) { try { logger.debug(`Setting current filament stock for printer ${this.id}:`, { - filamentStockId, + filamentStock, }); - const printers = await this.socketClient.listObjects({ - objectType: "printer", - filter: { _id: this.id }, - populate: [ - { - path: "currentFilamentStock", - populate: { - path: "filament", - }, - }, - ], + const updatedPrinter = await this.editPrinter({ + currentFilamentStock: filamentStock, }); - if (!printers || printers.length === 0) { - logger.error( - `Printer with ID ${this.id} not found when setting current filament stock` - ); - return null; - } - - const printer = printers[0]; - const oldFilamentStock = printer.currentFilamentStock; - const updatedPrinter = await this.socketClient.editObject({ - _id: this.id, - objectType: "printer", - updateData: { currentFilamentStock: filamentStockId }, - populate: [ - { - path: "currentFilamentStock", - populate: { - path: "filament", - }, - }, - ], - }); - - if (!updatedPrinter) { - logger.error( - `Printer with ID ${this.id} not found when setting current filament stock` - ); - return null; - } - - logger.info(`Updated current filament stock for printer ${this.id}:`, { - filamentStock: updatedPrinter.currentFilamentStock, - }); + logger.info( + `Updated current filament stock for printer ${this.id}:`, + filamentStock + ); return updatedPrinter.currentFilamentStock; } catch (error) { @@ -827,34 +491,27 @@ export class PrinterDatabase { } async updateFilamentStockWeight( - filamentStockId, + filamentStock, weight, - subJobId = null, - jobId = null + subJob = null, + job = null ) { + const subJobId = subJob._id || subJob.id; + const jobId = job._id || job.id; try { // Get or fetch filament stock - if ( - !this.filamentStock || - this.filamentStock._id.toString() !== filamentStockId - ) { - const filamentStocks = await this.socketClient.listObjects({ - objectType: "filamentStock", - filter: { _id: filamentStockId }, - populate: ["stockEvents"], - }); - - if (!filamentStocks || filamentStocks.length === 0) { - logger.error(`Filament stock with ID ${filamentStockId} not found`); - return null; - } - - this.filamentStock = filamentStocks[0]; - } + const filamentStockStockEvents = await this.socketClient.listObjects({ + objectType: "stockEvent", + filter: { + "parent._id": filamentStock._id, + parentType: "filamentStock", + }, + populate: ["owner"], + }); // Calculate new weights immediately const totalEventWeight = - this.filamentStock.stockEvents.reduce((sum, event) => { + filamentStockStockEvents.reduce((sum, event) => { // Skip the existing event if it exists if ( this.existingEvent && @@ -864,33 +521,27 @@ export class PrinterDatabase { } return sum + event.value; }, 0) + weight; - const newNetWeight = totalEventWeight; + + const newNetWeight = filamentStock.startingWeight.net + totalEventWeight; const newGrossWeight = - totalEventWeight + - (this.filamentStock.startingGrossWeight - - this.filamentStock.startingNetWeight); - const remainingPercent = - newNetWeight / this.filamentStock.startingNetWeight; + filamentStock.startingWeight.gross + totalEventWeight; + const remainingPercent = newNetWeight / filamentStock.startingWeight.net; const state = { - type: newNetWeight <= 0 ? "fullyconsumed" : "partiallyconsumed", - percent: (1 - remainingPercent).toFixed(2), + type: newNetWeight <= 0 ? "depleted" : "used", + progress: (1 - remainingPercent).toFixed(2), }; // Check if a stock event already exists for this subJobId and jobId - const stockEvents = await this.socketClient.listObjects({ - objectType: "stockEvent", - filter: { - filamentStock: filamentStockId, - subJob: subJobId, - job: jobId, - }, - }); - + const stockEvents = filamentStockStockEvents.filter( + (event) => + event.owner._id.toString() === subJobId.toString() && + event.ownerType === "subJob" + ); let stockEvent; if (stockEvents && stockEvents.length > 0) { // Update existing event this.existingEvent = stockEvents[0]; - logger.debug( + logger.trace( `Updating existing stock event for subJobId ${subJobId} and jobId ${jobId}` ); stockEvent = await this.socketClient.editObject({ @@ -900,72 +551,44 @@ export class PrinterDatabase { value: weight, updatedAt: new Date(), }, + auditLog: false, }); } else { // Create new stock event logger.debug( `Creating new stock event for subJobId ${subJobId} and jobId ${jobId}` ); - stockEvent = await this.socketClient.editObject({ - _id: null, // This will create a new object + stockEvent = await this.socketClient.newObject({ objectType: "stockEvent", - updateData: { - type: "subJob", + newData: { + filamentStock: filamentStock._id, value: weight, - subJob: subJobId, - job: jobId, - filamentStock: filamentStockId, unit: "g", - updatedAt: new Date(), - createdAt: new Date(), + parentType: "filamentStock", + parent: { _id: filamentStock._id }, + owner: this.printer.currentSubJob, + ownerType: "subJob", }, }); - - // Add the new stock event to the filament stock - const updatedStockEvents = [ - ...this.filamentStock.stockEvents, - stockEvent._id, - ]; - await this.socketClient.editObject({ - _id: filamentStockId, - objectType: "filamentStock", - updateData: { stockEvents: updatedStockEvents }, - }); } - const oldState = this.filamentStock.state; const updatedFilamentStock = await this.socketClient.editObject({ - _id: filamentStockId, + _id: filamentStock._id, objectType: "filamentStock", updateData: { - currentNetWeight: newNetWeight, - currentGrossWeight: newGrossWeight, + currentWeight: { net: newNetWeight, gross: newGrossWeight }, state, }, - populate: [ - { - path: "stockEvents", - populate: [ - { - path: "subJob", - select: "number", - }, - { - path: "job", - select: "startedAt", - }, - ], - }, - ], + auditLog: false, }); // Update the cached filament stock this.filamentStock = updatedFilamentStock; - logger.info(`Updated filament stock ${filamentStockId}:`, { + logger.trace(`Updated filament stock ${filamentStock._id}:`, { newGrossWeight: newGrossWeight, newNetWeight: newNetWeight, - eventCount: updatedFilamentStock.stockEvents.length, + eventCount: filamentStockStockEvents.length, updatedExistingEvent: !!this.existingEvent, remainingPercent: remainingPercent.toFixed(2), consumedPercent: state.percent, @@ -974,7 +597,223 @@ export class PrinterDatabase { return updatedFilamentStock; } catch (error) { logger.error( - `Failed to update filament stock weight for ${filamentStockId}:`, + `Failed to update filament stock weight for ${filamentStock._id}:`, + error + ); + throw error; + } + } + + async queueSubJob(subJob, moonrakerJobId) { + try { + logger.info( + `Queueing subjob ${subJob._id} for printer ${this.id} with Moonraker ID ${moonrakerJobId}` + ); + + // 1. Update SubJob with Moonraker ID and State + await this.socketClient.editObject({ + _id: subJob._id, + objectType: "subJob", + updateData: { + moonrakerJobId: moonrakerJobId, + state: { type: "queued" }, + }, + }); + + // 2. Add to Printer's Queue + const newQueue = [...this.printer.queue, subJob]; + + const updatedPrinter = await this.editPrinter({ + queue: newQueue, + }); + + this.printer.queue = newQueue; + + return updatedPrinter; + } catch (error) { + logger.error(`Failed to queue subjob for printer ${this.id}:`, error); + throw error; + } + } + + async setQueuedSubJobs(subJobs) { + try { + logger.debug( + `Setting queued subjobs for printer ${this.id}:`, + subJobs.map((subJob) => subJob._id).join(", ") + ); + const updatedPrinter = await this.editPrinter({ + queue: subJobs, + }); + return updatedPrinter; + } catch (error) { + logger.error( + `Failed to set queued subjobs for printer ${this.id}:`, + error + ); + throw error; + } + } + + async getQueuedSubJobs() { + try { + logger.debug(`Getting queued subjobs for printer ${this.id}`); + const printer = await this.getPrinter(); + return printer.queue; + } catch (error) { + logger.error( + `Failed to get queued subjobs for printer ${this.id}:`, + error + ); + throw error; + } + } + + async getJobById(jobId) { + try { + logger.debug(`Getting job by ID ${jobId} for printer ${this.id}`); + const job = await this.socketClient.getObject({ + objectType: "job", + _id: jobId, + }); + return job; + } catch (error) { + logger.error( + `Failed to get job by ID ${jobId} for printer ${this.id}:`, + error + ); + throw error; + } + } + + async postSubJobPartStockItems(subJobId) { + try { + logger.info( + `Posting subjob part stock items for subjob ${subJobId} for printer ${this.id}` + ); + logger.debug(`Getting subjob ${subJobId} for printer ${this.id}`); + const subJob = await this.socketClient.getObject({ + objectType: "subJob", + _id: subJobId, + }); + logger.debug(`Subjob ${subJobId} for printer ${this.id}:`, subJob); + logger.debug( + `Getting gcode file for subjob ${subJobId} for printer ${this.id}` + ); + const gcodeFile = await this.socketClient.getObject({ + objectType: "gcodeFile", + _id: subJob.gcodeFile._id, + populate: ["parts.part"], + }); + const partItems = gcodeFile.parts; + for (const partItem of partItems) { + logger.info( + `Posting part stock item for part ${ + partItem.part?.name || partItem.part._id + } for subjob ${subJobId} for printer ${this.id}` + ); + + const quantity = partItem.quantity; + const part = partItem.part; + + await this.socketClient.newObject({ + objectType: "partStock", + newData: { + sourceType: "subJob", + source: subJob, + part: part, + startingQuantity: quantity, + currentQuantity: quantity, + state: { + type: "new", + progress: 0, + }, + }, + }); + } + } catch (error) { + logger.error( + `Failed to post subjob part stock items for subjob ${subJobId} for printer ${this.id}:`, + error + ); + throw error; + } + } + + async setSubJobStartedAt(subJobId, date) { + try { + logger.debug( + `Setting started at for subjob ${subJobId} for printer ${this.id}` + ); + const updatedSubJob = await this.socketClient.editObject({ + _id: subJobId, + objectType: "subJob", + updateData: { startedAt: date }, + }); + return updatedSubJob; + } catch (error) { + logger.error( + `Failed to set started at for subjob ${subJobId} for printer ${this.id}:`, + error + ); + throw error; + } + } + + async setSubJobFinishedAt(subJobId, date) { + try { + logger.debug( + `Setting finished at for subjob ${subJobId} for printer ${this.id}` + ); + const updatedSubJob = await this.socketClient.editObject({ + _id: subJobId, + objectType: "subJob", + updateData: { finishedAt: date }, + }); + return updatedSubJob; + } catch (error) { + logger.error( + `Failed to set finished at for subjob ${subJobId} for printer ${this.id}:`, + error + ); + throw error; + } + } + + async setJobStartedAt(jobId, date) { + try { + logger.debug( + `Setting started at for job ${jobId} for printer ${this.id}` + ); + const updatedJob = await this.socketClient.editObject({ + _id: jobId, + objectType: "job", + updateData: { startedAt: date }, + }); + return updatedJob; + } catch (error) { + logger.error( + `Failed to set started at for job ${jobId} for printer ${this.id}:`, + error + ); + throw error; + } + } + + async setJobFinishedAt(jobId, date) { + try { + logger.debug( + `Setting finished at for job ${jobId} for printer ${this.id}` + ); + const updatedJob = await this.socketClient.editObject({ + _id: jobId, + objectType: "job", + updateData: { finishedAt: date }, + }); + return updatedJob; + } catch (error) { + logger.error( + `Failed to set finished at for job ${jobId} for printer ${this.id}:`, error ); throw error; diff --git a/src/printer/printerclient.js b/src/printer/printerclient.js index 335f254..dc9f1aa 100644 --- a/src/printer/printerclient.js +++ b/src/printer/printerclient.js @@ -3,6 +3,7 @@ import { JsonRPC } from "./jsonrpc.js"; import { WebSocket } from "ws"; import { loadConfig } from "../config.js"; import { PrinterDatabase } from "./database.js"; +import { PrinterFileManager } from "./printerfilemanager.js"; import log4js from "log4js"; import axios from "axios"; import FormData from "form-data"; @@ -17,25 +18,27 @@ export class PrinterClient { constructor(printer, printerManager) { this.id = printer._id; this.printer = printer; + this.name = printer.name; this.printerManager = printerManager; this.socketClient = printerManager.socketClient; this.database = new PrinterDatabase(this.socketClient, this.printer); - this.state = { type: "offline " }; - this.klippyState = { type: "offline" }; + this.printerFileManager = new PrinterFileManager(this); + this.state = { type: "offline", message: "Moonraker disconnected." }; + this.klippyState = { type: "offline", message: "Klippy disconnected." }; this.config = printer.moonraker; this.version = printer.version; this.jsonRpc = new JsonRPC(); + this.shouldReconnect = true; this.socket = null; this.connectionId = null; - this.currentJobId = null; + this.currentJob = printer.currentJob; + this.currentSubJob = printer.currentSubJob; this.temperatureObject = {}; - this.currentJobState = { type: "unknown", progress: 0 }; - this.currentSubJobId = null; - this.currentSubJobState = null; - this.currentFilamentStockId = - printer.currentFilamentStock?._id.toString() || null; - this.currentFilamentStockDensity = - printer.currentFilamentStock?.filament?.density || null; + this.motionObject = {}; + this.miscObject = {}; + this.currentFilamentStock = printer.currentFilamentStock; + this.currentFilament = null; + this.currentFilamentUsed = 0; this.registerEventHandlers(); this.subscribeToActions(); this.baseSubscription = { @@ -45,13 +48,27 @@ export class PrinterClient { output_pin: null, extruder: null, heater_bed: null, + gcode_move: null, + toolhead: null, + motion_report: null, + "heater_fan nozzle_cooling_fan": null, + fan: null, + "output_pin BEEPER_pin": null, + "output_pin LCD_backlight_pin": null, }; this.subscriptions = new Map(); this.queuedJobIds = []; + this.queue = printer.queue; this.isOnline = printer.online; this.subJobIsCancelling = false; this.subJobCancelId = null; - this.filamentDetected = false; + this.filamentDetected = null; + this.eventUpdateInterval = null; + this.deploySubJobQueue = []; + this.deploySubJobTimer = null; + this.deploySubJobTargetTime = null; + this.printrFileIds = []; + this.queueMutationChain = Promise.resolve(); } registerEventHandlers() { @@ -93,41 +110,57 @@ export class PrinterClient { }); } + async _runQueueMutation(task) { + const executeTask = async () => task(); + this.queueMutationChain = this.queueMutationChain + .catch(() => {}) + .then(executeTask); + return this.queueMutationChain; + } + async connect() { const { protocol, host, port } = this.config; const wsUrl = `${protocol}://${host}:${port}/websocket`; logger.info(`Connecting to Moonraker at ${wsUrl} (${this.id})`); - this.socket = new WebSocket(wsUrl); + this.state = { type: "connecting", message: "" }; + await this.updatePrinterState(); + this.socket = new WebSocket(wsUrl); this.jsonRpc.setSocket(this.socket); - await this.database.clearAlerts(); - - this.socket.on("open", () => { + this.socket.addEventListener("open", () => { logger.info(`Connected to Moonraker (${this.printer.name})`); this.isOnline = true; this.identifyConnection(); }); - this.socket.on("message", (data) => { - this.jsonRpc.processMessage(JSON.parse(data)); + this.socket.addEventListener("message", (event) => { + this.jsonRpc.processMessage(JSON.parse(event.data)); }); - this.socket.on("close", () => { + this.socket.addEventListener("close", () => { logger.info(`Disconnected from Moonraker (${this.printer.name})`); this.isOnline = false; - this.state = { type: "offline" }; + this.state = { type: "offline", message: "Moonraker disconnected." }; + this.connectedAt = null; this.updatePrinterState(); this.connectionId = null; - // Attempt to reconnect after delay - setTimeout(() => this.connect(), 10000); + // Always stop the event update interval when the socket closes + clearInterval(this.eventUpdateInterval); + this.eventUpdateInterval = null; + if (this.shouldReconnect) { + // Attempt to reconnect after delay + setTimeout(() => this.connect(), 10000); + } }); - this.socket.on("error", (error) => { + this.socket.addEventListener("error", (error) => { logger.error(`Moonraker connection error (${this.printer.name}):`, error); }); + + await this.database.clearAlerts(); } identifyConnection() { @@ -163,10 +196,19 @@ export class PrinterClient { async initialize() { logger.info("Running printer initialization..."); + this.state = { type: "initializing", message: null }; + this.isOnline = true; + this.connectedAt = new Date(); await this.getInfo(); - await this.getPrinterState(); - await this.getQueuedJobsInfo(); + await this.getFiles(); + await this.getCurrentFilament(); await this.updateSubscriptions(); + await this.getPrinterState(); + await this.syncSubJobs(); + this.eventUpdateInterval = setInterval( + this.handleEventUpdate.bind(this), + 500 + ); } async getInfo() { @@ -199,10 +241,22 @@ export class PrinterClient { logger.error( `Klippy error for ${this.printer.name}: ${klippyResult.state_message}`, this.database.addAlert({ + _id: "klippyError", type: "error", message: klippyResult.state_message, - priority: 9, - timestamp: new Date(), + actions: ["restartPrinter"], + }) + ); + } + + if (klippyResult.state === "shutdown" && klippyResult.state_message) { + logger.error( + `Klippy error for ${this.printer.name}: ${klippyResult.state_message}`, + this.database.addAlert({ + _id: "klippyError", + type: "error", + message: klippyResult.state_message, + actions: ["restartPrinter"], }) ); } @@ -232,14 +286,46 @@ export class PrinterClient { } } - async getQueuedJobsInfo() { + async getFiles() { + const result = await this.sendPrinterCommand({ + method: "server.files.list", + }); + this.printrFileIds = []; + for (const file of result) { + if (file.path.startsWith("farmcontrol/")) { + this.printrFileIds.push( + file.path.replace("farmcontrol/", "").replace(".gcode", "") + ); + } + } + logger.debug(`Printr file IDs: ${this.printrFileIds}`); + } + + async getCurrentFilament() { + logger.info(`Getting current filament for printer: ${this.printer.name}`); + if (!this.currentFilamentStock || !this.currentFilamentStock?._id) { + logger.warn( + `No current filament stock found for printer: ${this.printer.name}` + ); + return null; + } + const result = await this.socketClient.getObject({ + objectType: "filamentStock", + _id: this.currentFilamentStock._id, + populate: ["filament"], + }); + this.currentFilament = result.filament; + return this.currentFilament; + } + + async getQueuedJobIds() { logger.info(`Getting queued jobs info for (${this.printer.name})`); const result = await this.sendPrinterCommand({ method: "server.job_queue.status", }); - this.queuedJobIds = result.queued_jobs.map((job) => job.job_id); - logger.debug(`Queued job IDs: ${this.queuedJobIds}`); - await this.updatePrinterSubJobs(); + const idList = result.queued_jobs.map((job) => job.job_id); + logger.debug(`Queued job IDs: ${idList}`); + return idList; } async getPrinterState() { @@ -309,9 +395,6 @@ export class PrinterClient { objects: allSubscriptions, }); logger.debug(`Command sent to ${this.printer.name}`); - logger.debug({ - objects: allSubscriptions, - }); return true; } catch (error) { logger.error(`Error sending command to (${this.printer.name}):`, error); @@ -350,19 +433,27 @@ export class PrinterClient { logger.trace("Status update:", status); status = status[0]; - if (this.state.type === "deploying") { - return; - } - let stateChanged = false; let progressChanged = false; + let printerFinished = false; + let printedStarted = false; if (status.print_stats?.state) { const newState = status.print_stats.state; - if (newState !== this.state.type) { + const oldState = this.state.type; + if (newState !== oldState) { logger.info( `Printer ${this.printer.name} state changed from ${this.state.type} to ${newState}` ); + if (oldState == "printing" && newState == "complete") { + printerFinished = true; + } + if ( + (oldState == "standby" || oldState == "complete") && + newState == "printing" + ) { + printedStarted = true; + } this.state.type = newState; stateChanged = true; } @@ -371,27 +462,14 @@ export class PrinterClient { if (status.print_stats?.filament_used) { // Convert mm to cm and calculate volume const filamentLengthCm = status.print_stats.filament_used / 10; - const filamentDiameterCm = 0.175; // 1.75mm in cm + const filamentDiameterCm = this.currentFilament?.diameter / 10 || 0; // 1.75mm in cm const filamentRadiusCm = filamentDiameterCm / 2; const filamentVolumeCm3 = Math.PI * Math.pow(filamentRadiusCm, 2) * filamentLengthCm; - // Calculate weight in grams const filamentWeightG = - filamentVolumeCm3 * this.currentFilamentStockDensity; - - if ( - this.currentSubJobId != null && - this.currentJobId != null && - this.currentFilamentStockId != null - ) { - this.database.updateFilamentStockWeight( - this.currentFilamentStockId, - -1 * filamentWeightG, - this.currentSubJobId, - this.currentJobId - ); - } + filamentVolumeCm3 * this.currentFilament?.density || 0; + this.currentFilamentUsed = -1 * filamentWeightG; } if (status.display_status?.progress !== undefined) { @@ -403,15 +481,12 @@ export class PrinterClient { this.state.progress = newProgress; progressChanged = true; } - - if (status.display_status.message) { - await this.database.updateDisplayStatus(status.display_status.message); - } } - const temperatureChanged = - status.extruder?.temperature !== undefined || - status.hot_end?.temperature !== undefined; + if (status.display_status?.message) { + this.state.message = status.display_status.message; + progressChanged = true; + } if (status.extruder?.temperature !== undefined) { _.merge(this.temperatureObject, { @@ -419,6 +494,12 @@ export class PrinterClient { }); } + if (status.extruder?.power !== undefined) { + _.merge(this.temperatureObject, { + extruder: { power: status.extruder.power }, + }); + } + if (status.extruder?.target !== undefined) { _.merge(this.temperatureObject, { extruder: { target: status.extruder.target }, @@ -431,18 +512,114 @@ export class PrinterClient { }); } + if (status.heater_bed?.power !== undefined) { + _.merge(this.temperatureObject, { + bed: { power: status.heater_bed.power }, + }); + } + if (status.heater_bed?.target !== undefined) { _.merge(this.temperatureObject, { bed: { target: status.heater_bed.target }, }); } - if (temperatureChanged) { - this.socketClient.objectEvent({ - objectType: "printer", - _id: this.id, - eventType: "temperature", - eventData: this.temperatureObject, + if (status.motion_report?.live_position !== undefined) { + _.merge(this.motionObject, { + livePosition: status.motion_report.live_position, + }); + } + + if (status.gcode_move?.position !== undefined) { + _.merge(this.motionObject, { + gcodePosition: status.gcode_move.position, + }); + } + + if (status.gcode_move?.speed !== undefined) { + _.merge(this.motionObject, { + speed: status.gcode_move.speed, + }); + } + + if (status.gcode_move?.extrude_factor !== undefined) { + _.merge(this.motionObject, { + extrudeFactor: status.gcode_move.extrude_factor, + }); + } + + if (status.gcode_move?.speed_factor !== undefined) { + _.merge(this.motionObject, { + speedFactor: status.gcode_move.speed_factor, + }); + } + + if (status.gcode_move?.absolute_coordinates !== undefined) { + _.merge(this.motionObject, { + absoluteCoordinates: status.gcode_move.absolute_coordinates, + }); + } + + if (status.gcode_move?.absolute_extrude !== undefined) { + _.merge(this.motionObject, { + absoluteExtrude: status.gcode_move.absolute_extrude, + }); + } + + if (status.toolhead?.position !== undefined) { + _.merge(this.motionObject, { + toolheadPosition: status.toolhead.position, + }); + } + + if (status.toolhead?.max_velocity !== undefined) { + _.merge(this.motionObject, { + maxVelocity: status.toolhead.max_velocity, + }); + } + + if (status.toolhead?.max_accel !== undefined) { + _.merge(this.motionObject, { + maxAcceleration: status.toolhead.max_accel, + }); + } + + if (status.toolhead?.square_corner_velocity !== undefined) { + _.merge(this.motionObject, { + squareCornerVelocity: status.toolhead.square_corner_velocity, + }); + } + + if (status.toolhead?.minimum_cruise_ratio !== undefined) { + _.merge(this.motionObject, { + minCruiseRatio: status.toolhead.minimum_cruise_ratio, + }); + } + + if (status["heater_fan nozzle_cooling_fan"] !== undefined) { + _.merge(this.miscObject, { + coolingFan: status["heater_fan nozzle_cooling_fan"], + }); + } + + if (status.fan !== undefined) { + _.merge(this.miscObject, { + fan: status.fan, + }); + } + + if (status["output_pin BEEPER_pin"] !== undefined) { + _.merge(this.miscObject, { + beeper: status["output_pin BEEPER_pin"], + }); + } + + if (status["output_pin LCD_backlight_pin"] !== undefined) { + const newLcdBacklight = status["output_pin LCD_backlight_pin"]; + _.merge(this.miscObject, { + lcdBacklight: { + brightness: status["output_pin LCD_backlight_pin"].value, + }, }); } @@ -452,222 +629,304 @@ export class PrinterClient { ) { const newFilamentDetected = status["filament_switch_sensor fsensor"].filament_detected; + + _.merge(this.miscObject, { + filamentSensor: { + filamentDetected: newFilamentDetected, + enabled: status["filament_switch_sensor fsensor"].enabled, + }, + }); if (newFilamentDetected !== this.filamentDetected) { + console.log(status["filament_switch_sensor fsensor"]); logger.info( - `Printer ${this.printer.name} filament detection changed from ${this.filamentDetected} to ${newFilamentDetected} with no currentFilamentId` + `Printer ${this.printer.name} filament detection changed from ${this.filamentDetected} to ${newFilamentDetected}.` ); this.filamentDetected = newFilamentDetected; - if ( - newFilamentDetected == true && - this.currentFilamentStockId == null - ) { + console.log(this.currentFilamentStock); + + if (newFilamentDetected == false && this.currentFilamentStock == null) { + await this.database.removeAlert("noFilamentLoaded"); await this.database.addAlert({ + _id: "noFilamentSelected", + type: "info", + actions: ["loadFilamentStock"], + canDismiss: false, + message: + "No filament loaded. Please load filament to continue printing.", + }); + } else if ( + newFilamentDetected == true && + this.currentFilamentStock == null + ) { + this.currentFilamentStock = null; + await this.database.setCurrentFilamentStock(null); + await this.database.removeAlert("noFilamentSelected"); + await this.database.addAlert({ + _id: "noFilamentLoaded", + type: "info", + actions: ["loadFilamentStock"], + canDismiss: false, + message: + "No filament loaded. Please load filament to continue printing.", + }); + } else if ( + newFilamentDetected == true && + this.currentFilamentStock != null + ) { + await this.database.removeAlert("noFilamentSelected"); + await this.database.removeAlert("noFilamentLoaded"); + } else if ( + newFilamentDetected == false && + this.currentFilamentStock != null + ) { + await this.database.removeAlert("noFilamentLoaded"); + await this.database.addAlert({ + _id: "noFilamentLoaded", type: "info", message: "No filament loaded. Please load filament to continue printing.", - priority: 1, - timestamp: new Date(), + actions: ["loadFilamentStock"], + canDismiss: false, }); - } else if ( - newFilamentDetected == false && - this.currentFilamentStockId != null - ) { - this.currentFilamentStockId = null; + this.currentFilamentStock = null; await this.database.setCurrentFilamentStock(null); - // Remove filament select alert if it exists - await this.database.removeAlerts({ - type: "loadFilamentStock", - }); } } } - if (stateChanged || progressChanged) { + var isCurrentJobSubJob = + this.currentSubJob != null && this.currentJob != null; + + if (stateChanged == true) { + if (printerFinished == true && isCurrentJobSubJob == true) { + logger.info( + `Subjob ${this.currentSubJob._id} completed, posting part stock items for printer ${this.id}` + ); + await this.database.setSubJobFinishedAt( + this.currentSubJob._id, + new Date() + ); + await this.database.postSubJobPartStockItems(this.currentSubJob._id); + } // Update printer state first await this.updatePrinterState(); - // Set current job to null when not printing or paused - if (!["printing", "paused"].includes(this.state.type)) { - this.currentJobId = null; - this.currentSubJobId = null; - await this.database.clearCurrentJob( - this.id, - `Printer is in ${this.state.type} state` - ); - await this.getQueuedJobsInfo(); - } else { - // If we have a current subjob, update its state - if (this.currentSubJobId) { - logger.debug( - `Updating current subjob ${this.currentSubJobId} state:`, - this.state + await this.syncSubJobs(); + + isCurrentJobSubJob = + this.currentSubJob != null && this.currentJob != null; + if (isCurrentJobSubJob == true && printedStarted == true) { + if (this.currentSubJob.startedAt == null) { + this.currentSubJob.startedAt = new Date(); + await this.database.setSubJobStartedAt( + this.currentSubJob._id, + new Date() ); - await this.database.updateSubJobState( - this.currentSubJobId, - this.state - ); - } else { - // If no current subjob but we have queued jobs, check if we need to update printer subjobs - await this.getQueuedJobsInfo(); } + if (this.currentJob.startedAt == null) { + this.currentJob.startedAt = new Date(); + await this.database.setJobStartedAt(this.currentJob._id, new Date()); + } + this.currentFilamentUsed = 0; } } + + if (progressChanged && isCurrentJobSubJob == true) { + const subJobState = { + type: this.currentSubJob.state.type, + progress: this.state.progress, + }; + await this.database.updateSubJobState( + this.currentSubJob._id, + subJobState + ); + await this.database.updateJobState(this.currentJob._id); + } + + if (progressChanged) { + await this.updatePrinterState(); + } + } + + async handleEventUpdate() { + this.socketClient.objectEvent({ + objectType: "printer", + _id: this.id, + eventType: "temperature", + eventData: this.temperatureObject, + }); + this.socketClient.objectEvent({ + objectType: "printer", + _id: this.id, + eventType: "filamentSensor", + eventData: { detected: this.filamentDetected }, + }); + this.socketClient.objectEvent({ + objectType: "printer", + _id: this.id, + eventType: "motion", + eventData: this.motionObject, + }); + this.socketClient.objectEvent({ + objectType: "printer", + _id: this.id, + eventType: "misc", + eventData: this.miscObject, + }); + if ( + this.currentSubJob != null && + this.currentJob != null && + this.currentFilamentStock != null + ) { + logger.debug( + "Updating stock event value:", + this.currentFilamentUsed.toFixed(2) + ); + this.database.updateFilamentStockWeight( + this.currentFilamentStock, + this.currentFilamentUsed, + this.currentSubJob, + this.currentJob + ); + } } async updatePrinterState() { try { const state = this.klippyState.type !== "ready" ? this.klippyState : this.state; - this.database.updatePrinterState(state, this.isOnline); + await this.database.updatePrinterState( + state, + this.isOnline, + this.connectedAt + ); } catch (error) { logger.error(`Failed to update printer state:`, error); } } - async removePrinterSubJob(subJobId) { + async syncSubJobs() { try { - await this.database.removePrinterSubJob(subJobId); - } catch (error) { - logger.error(`Failed to remove subjob:`, error); - } - } - - async updatePrinterSubJobs() { - try { - logger.debug(`Updating printer subjobs for ${this.id}`, { + logger.debug(`Syncing printer subjobs for ${this.name}...`, { queuedJobIds: this.queuedJobIds, - currentSubJobId: this.currentSubJobId, - currentJobId: this.currentJobId, + currentSubJobId: this.currentSubJob, + currentJob: this.currentJob, printerState: this.state.type, }); - const printer = await this.database.getPrinter(); + if (this.isOnline == true) { + this.queuedJobIds = await this.getQueuedJobIds(); + } - const subJobs = printer.subJobs; + logger.info(`Getting queued subjobs for ${this.name}`); + const serverSubJobs = await this.database.getQueuedSubJobs(); - // If printer is not printing or paused, clear current job/subjob - if (!["printing", "paused"].includes(this.state.type)) { - if (this.currentSubJobId || this.currentJobId) { - logger.info( - `Clearing current job/subjob for printer ${this.printer.name} as state is ${this.state.type}` + const queuedSubJobs = serverSubJobs.filter((subJob) => + this.queuedJobIds.includes(subJob.moonrakerJobId) + ); + + const unqueuedSubJobs = serverSubJobs.filter( + (subJob) => !this.queuedJobIds.includes(subJob.moonrakerJobId) + ); + + this.queue = queuedSubJobs; + + const stateType = this.state.type; + + const syncedTypes = ["printing", "paused", "complete", "cancelled"]; + const completedTypes = ["complete"]; + const printingTypes = ["printing", "paused"]; + const failedTypes = ["error", "shutdown", "standby"]; + + var isCurrentSubJob = this.currentSubJob != null; + var isCurrentJob = this.currentJob != null; + + var isCurrentJobSubJob = isCurrentJob && isCurrentSubJob; + + // if printing, paused, or complete + if ( + isCurrentJobSubJob == false && + unqueuedSubJobs.length > 0 && + printingTypes.includes(stateType) + ) { + logger.info( + `No current subjob or job, setting first unqueued subjob as current...` + ); + const targetSubJob = unqueuedSubJobs[0]; + const targetJob = await this.database.getJobById(targetSubJob.job); + this.currentSubJob = targetSubJob; + this.currentJob = targetJob; + await this.database.setCurrentJobAndSubJob(targetSubJob, targetJob); + isCurrentSubJob = this.currentSubJob != null; + isCurrentJob = this.currentJob != null; + isCurrentJobSubJob = isCurrentJob && isCurrentSubJob; + } + + if (syncedTypes.includes(stateType)) { + if (isCurrentJobSubJob == true) { + await this.database.updateSubJobState(this.currentSubJob._id, { + type: stateType, + }); + this.currentSubJob.state.type = stateType; + this.currentJob.state = await this.database.updateJobState( + this.currentJob._id ); - await this.database.clearCurrentJob(); - this.currentSubJobId = null; - this.currentJobId = null; } - } else { - // Printer is printing or paused - find the current job - // Sort subjobs by number property - const sortedSubJobs = subJobs.sort((a, b) => a.number - b.number); + } - // Find subjobs that are in queued state - const queuedSubJobs = sortedSubJobs.filter( - (subJob) => - subJob.state.type === "queued" && - this.queuedJobIds.includes(subJob.subJobId) - ); + if (failedTypes.includes(stateType)) { + for (const subJob of unqueuedSubJobs) { + await this.database.updateSubJobState(subJob._id, { + type: "failed", + }); + await this.database.updateJobState(subJob.job._id); + } + if (isCurrentJobSubJob == true) { + await this.database.updateSubJobState(this.currentSubJob._id, { + type: "failed", + }); + await this.database.updateJobState(this.currentJob._id); + this.currentSubJob = null; + this.currentJob = null; + await this.database.setCurrentJobAndSubJob(null, null); + } + } - // Find subjobs that are not in queued state but should be - const missingQueuedSubJobs = sortedSubJobs.filter( - (subJob) => - subJob.state.type === "queued" && - !this.queuedJobIds.includes(subJob.subJobId) - ); - - // If we have missing queued jobs and printer is in standby, mark them as failed - if (missingQueuedSubJobs.length > 0 && this.state.type === "standby") { - logger.warn( - `Found ${missingQueuedSubJobs.length} missing queued jobs for printer ${this.printer.name} in standby state` - ); - for (const subJob of missingQueuedSubJobs) { - logger.info(`Marking missing queued subjob ${subJob.id} as failed`); - await this.database.updateSubJobState(subJob.id, { + if (completedTypes.includes(stateType)) { + const otherSubJobs = unqueuedSubJobs + .filter((subJob) => subJob._id != this.currentSubJob?._id) + .filter((subJob) => subJob.state.type == "queued"); + if (otherSubJobs.length > 0) { + for (const subJob of otherSubJobs) { + await this.database.updateSubJobState(subJob._id, { type: "failed", }); + await this.database.updateJobState(subJob.job._id); } } - // If we have a current subjob, verify it's still valid - if (this.currentSubJobId) { - const currentSubJob = sortedSubJobs.find( - (sj) => sj.id === this.currentSubJobId - ); - if ( - !currentSubJob || - !this.queuedJobIds.includes(currentSubJob.subJobId) - ) { - logger.info( - `Current subjob ${this.currentSubJobId} is no longer valid, clearing it` - ); - await this.database.clearCurrentJob(); - this.currentSubJobId = null; - this.currentJobId = null; - } - } - - // If we don't have a current subjob but have queued jobs, find the first one - if (!this.currentSubJobId) { - const result = await this.database.setCurrentJobForPrinting( - this.id, - this.queuedJobIds - ); - if (result) { - logger.info( - `Setting first queued subjob as current for printer ${this.printer.name}: `, - result.currentSubJob._id - ); - this.currentSubJobId = result.currentSubJob._id; - this.currentJobId = result.currentJob._id; - await this.database.updateSubJobState( - this.currentSubJobId, - this.state - ); - } - } - } - - // Update states for all subjobs - for (const subJob of subJobs) { - if (!this.queuedJobIds.includes(subJob.subJobId)) { - if (subJob.subJobId === this.subJobCancelId) { - logger.info(`Cancelling subjob ${subJob.id}`); - await this.database.updateSubJobState(subJob.id, { - type: "cancelled", - }); - await this.database.removePrinterSubJob(subJob.id); - } else if ( - !["failed", "complete", "draft", "cancelled"].includes( - subJob.state.type - ) - ) { - // Update the subjob state to match printer state - await this.database.updateSubJobState(subJob.id, this.state); - } - } - - if (["failed", "complete", "cancelled"].includes(subJob.state.type)) { - logger.info( - `Removing completed/failed/cancelled subjob ${subJob.id} from printer ${this.printer.name}` - ); - await this.database.removePrinterSubJob(subJob.id); - } + this.currentSubJob = null; + this.currentJob = null; + await await this.database.setCurrentJobAndSubJob(null, null); } + await this.database.setQueuedSubJobs(queuedSubJobs); } catch (error) { - logger.error(`Failed to update printer subjobs for ${this.id}:`, error); + logger.error(`Failed to sync printer subjobs for ${this.id}:`, error); } } async handleKlippyDisconnected() { logger.info(`Klippy disconnected (${this.printer.name})`); - this.state = { type: "offline" }; - this.klippyState = { type: "offline" }; + this.state = { type: "offline", message: "Klippy disconnected." }; + this.klippyState = { type: "offline", message: "Klippy disconnected." }; this.isOnline = false; this.isPrinting = false; this.isError = false; this.isReady = false; await this.database.clearAlerts(); await this.updatePrinterState(); - await this.updatePrinterSubJobs(); + clearInterval(this.eventUpdateInterval); + this.eventUpdateInterval = null; } async handleKlippyReady() { @@ -761,61 +1020,166 @@ export class PrinterClient { } } - async deploySubJobs(jobId) { - try { - const printSubJobs = await subJobModel - .find({ printJob: jobId }) - .sort({ number: 1 }); + async deploySubJob(subJob) { + // Add subJob to queue + this.deploySubJobQueue.push(subJob); + logger.debug( + `Queued sub job ${subJob._id} for deployment. Queue size: ${this.deploySubJobQueue.length}` + ); - // Deploy sub jobs - for (const subJob of printSubJobs) { - logger.info( - "Deploying sub job:", - subJob.subJobId, - "to printer:", - this.id, - "with files:", - `${jobId.id}.gcode` - ); + const now = Date.now(); - const result = await this.sendPrinterCommand({ - method: "server.job_queue.post_job", - params: { - filenames: [`${jobId}.gcode`], - reset: false, - }, - }); + await this.database.updateSubJobState(subJob._id, { + type: "deploying", + progress: 0, + }); - if (!result) { - throw new Error("Failed to deploy sub job to printer"); - } + // If this is the first call, set target time to 500ms from now + if (this.deploySubJobQueue.length === 1) { + this.deploySubJobTargetTime = now + 500; + this.deploySubJobTimer = setTimeout(() => { + this.processDeploySubJobQueue(); + }, 500); + } else { + // If this is a subsequent call, extend the target time by another 500ms + this.deploySubJobTargetTime += 500; + const remainingTime = this.deploySubJobTargetTime - now; - // Update the PrintSubJob model - const updatedSubJob = await subJobModel.findByIdAndUpdate( - subJob.id, - { - subJobId: result.queued_jobs[result.queued_jobs.length - 1].job_id, - state: { type: "queued" }, - updatedAt: new Date(), - }, - { new: true } - ); - - if (!updatedSubJob) { - throw new Error(`Failed to update sub job ${subJob.id}`); - } - - // Update the printer's subJobs array - await this.database.addSubJobToPrinter(updatedSubJob._id); - await this.database.updateSubJobState(subJob.id, { type: "queued" }); - - logger.info("Sub job deployed to printer:", this.id); - } - } catch (error) { - logger.error(`Error deploying sub jobs:`, error); + clearTimeout(this.deploySubJobTimer); + this.deploySubJobTimer = setTimeout(() => { + this.processDeploySubJobQueue(); + }, remainingTime); } } + async processDeploySubJobQueue() { + // Clear the timer and target time + if (this.deploySubJobTimer) { + clearTimeout(this.deploySubJobTimer); + this.deploySubJobTimer = null; + } + this.deploySubJobTargetTime = null; + + // Get all queued subJobs and clear the queue + const subJobsToDeploy = [...this.deploySubJobQueue]; + this.deploySubJobQueue = []; + + logger.info( + `Processing ${subJobsToDeploy.length} queued sub job(s) for printer ${this.id}` + ); + + // Process sub jobs in parallel with a 250ms stagger between starts + const staggerMs = 250; + const deployPromises = subJobsToDeploy.map((subJob, index) => + (async () => { + const startDelay = index * staggerMs; + if (startDelay > 0) { + await new Promise((resolve) => setTimeout(resolve, startDelay)); + } + + try { + await this._deploySubJobInternal(subJob); + } catch (error) { + logger.error( + `Error deploying sub job ${subJob._id} to printer ${this.id}:`, + error + ); + } + })() + ); + + await Promise.all(deployPromises); + } + + async _deploySubJobInternal(subJob) { + logger.info( + "Deploying sub job:", + subJob._id, + "to printer:", + this.id, + "with gcode file:", + `${subJob.gcodeFile.name}` + ); + const gcodeFile = await this.socketClient.getObject({ + objectType: "gcodeFile", + _id: subJob.gcodeFile, + }); + + if (!gcodeFile) { + throw new Error("G-code file not found"); + } + + const file = await this.socketClient.fileManager.getFile( + gcodeFile.file, + async (progress) => { + await this.database.updateSubJobState(subJob._id, { + type: "deploying", + progress: (progress / 100 / 2).toFixed(2), + }); + await this.database.updateJobState(subJob.job._id); + } + ); + if (!file) { + throw new Error("Error getting file"); + } + + if (!this.printrFileIds.includes(gcodeFile.file.toString())) { + console.log("Uploading file to printer"); + const uploadResult = await this.printerFileManager.uploadFile( + gcodeFile.file, + file, + async (progress) => { + await this.database.updateSubJobState(subJob._id, { + type: "deploying", + progress: (progress / 100 / 2 + 0.5).toFixed(2), + }); + await this.database.updateJobState(subJob.job._id); + } + ); + this.printrFileIds.push(gcodeFile.file.toString()); + if (!uploadResult) { + throw new Error("Failed to upload file"); + } + } else { + console.log("File already uploaded to printer"); + } + + await this._runQueueMutation(async () => { + const result = await this.sendPrinterCommand({ + method: "server.job_queue.post_job", + params: { + filenames: [`${gcodeFile.file}.gcode`], + reset: false, + }, + }); + + if (!result || !result?.queued_jobs) { + return { error: "Failed to deploy sub job to printer" }; + } + + const queuedJobs = result.queued_jobs; + const mostRecentQueuedJob = queuedJobs[queuedJobs.length - 1]; + const updatedSubJob = await this.database.setSubJobMoonrakerJobId( + subJob._id, + mostRecentQueuedJob.job_id + ); + await this.database.updateSubJobState(subJob._id, { + type: "queued", + }); + await this.database.updateJobState(subJob.job._id); + + this.queue.push({ + ...updatedSubJob, + moonrakerJobId: mostRecentQueuedJob.job_id, + state: { type: "queued" }, + }); + + await this.database.setQueuedSubJobs(this.queue); + }); + + logger.info("Sub job deployed to printer:", this.id); + } + async cancelSubJob(subJobId) { try { this.subJobCancelId = subJobId; @@ -829,8 +1193,6 @@ export class PrinterClient { if (!result) { throw new Error("Failed to cancel sub job"); } - - await this.getQueuedJobsInfo(); this.subJobCancelId = null; logger.info("Sub job canceled:", subJobId); @@ -839,16 +1201,6 @@ export class PrinterClient { } } - async loadFilamentStock(filamentStockId) { - this.currentFilamentStockId = filamentStockId; - const result = await this.database.setCurrentFilamentStock( - this.id, - this.currentFilamentStockId - ); - this.currentFilamentStockDensity = result.filament.density; - await this.database.removeAlerts({ type: "loadFilamentStock" }); - } - async setTemperature(temperature) { logger.info(`Setting temperature for ${this.printer.name}:`, temperature); @@ -911,4 +1263,218 @@ export class PrinterClient { return false; } } + + async restartPrinterFirmware() { + logger.info(`Restarting printer firmware for ${this.printer.name}`); + if (!this.isOnline) { + logger.error( + `Cannot restart printer firmware: Not connected to Moonraker (${this.printer.name})` + ); + return false; + } + + try { + const result = await this.sendPrinterCommand({ + method: "printer.firmware_restart", + }); + if (!result) { + throw new Error("Failed to restart printer firmware"); + } + logger.info( + `Successfully restarted printer firmware for ${this.printer.name}` + ); + return true; + } catch (error) { + logger.error( + `Error restarting printer firmware for ${this.printer.name}:`, + error + ); + return false; + } + } + + async restartPrinter() { + logger.info(`Restarting printer for ${this.printer.name}`); + if (!this.isOnline) { + logger.error( + `Cannot restart printer: Not connected to Moonraker (${this.printer.name})` + ); + return false; + } + try { + const result = await this.sendPrinterCommand({ + method: "printer.restart", + }); + if (!result) { + throw new Error("Failed to restart printer"); + } + logger.info(`Successfully restarted printer for ${this.printer.name}`); + return true; + } catch (error) { + logger.error(`Error restarting printer for ${this.printer.name}:`, error); + return false; + } + } + + async restartMoonraker() { + logger.info(`Restarting moonraker server for ${this.printer.name}`); + if (!this.isOnline) { + logger.error( + `Cannot restart moonraker server: Not connected to moonraker server (${this.printer.name})` + ); + return false; + } + + try { + const result = await this.sendPrinterCommand({ + method: "server.restart", + }); + if (!result) { + throw new Error("Failed to restart moonraker server"); + } + logger.info( + `Successfully restarted moonraker server for ${this.printer.name}` + ); + return true; + } catch (error) { + logger.error( + `Error restarting moonraker server for ${this.printer.name}:`, + error + ); + return false; + } + } + + async startQueue() { + logger.info(`Starting queue for ${this.printer.name}`); + if (!this.isOnline) { + logger.error( + `Cannot start queue: Not connected to Moonraker (${this.printer.name})` + ); + return false; + } + try { + const result = await this.sendPrinterCommand({ + method: "server.job_queue.start", + }); + if (!result) { + throw new Error("Failed to start queue"); + } + logger.info(`Successfully started queue for ${this.printer.name}`); + return true; + } catch (error) { + logger.error(`Error starting queue for ${this.printer.name}:`, error); + return false; + } + } + + async pauseJob() { + logger.info(`Pausing job for ${this.printer.name}`); + if (!this.isOnline) { + logger.error( + `Cannot pause job: Not connected to Moonraker (${this.printer.name})` + ); + return false; + } + try { + const result = await this.sendPrinterCommand({ + method: "printer.print.pause", + }); + if (!result) { + throw new Error("Failed to pause job"); + } + logger.info(`Successfully paused job for ${this.printer.name}`); + return true; + } catch (error) { + logger.error(`Error pausing job for ${this.printer.name}:`, error); + return false; + } + } + + async resumeJob() { + logger.info(`Resuming job for ${this.printer.name}`); + if (!this.isOnline) { + logger.error( + `Cannot resume job: Not connected to Moonraker (${this.printer.name})` + ); + return false; + } + try { + const result = await this.sendPrinterCommand({ + method: "printer.print.resume", + }); + if (!result) { + throw new Error("Failed to resume job"); + } + logger.info(`Successfully resumed job for ${this.printer.name}`); + return true; + } catch (error) { + logger.error(`Error resuming job for ${this.printer.name}:`, error); + return false; + } + } + + async cancelJob() { + logger.info(`Cancelling job for ${this.printer.name}`); + if (!this.isOnline) { + logger.error( + `Cannot cancel job: Not connected to Moonraker (${this.printer.name})` + ); + return false; + } + try { + const result = await this.sendPrinterCommand({ + method: "printer.print.cancel", + }); + if (!result) { + throw new Error("Failed to cancel job"); + } + logger.info(`Successfully cancelled job for ${this.printer.name}`); + return true; + } catch (error) { + logger.error(`Error cancelling job for ${this.printer.name}:`, error); + return false; + } + } + + async unloadFilamentStock() { + await this.sendPrinterCommand({ + method: "printer.gcode.script", + params: { + script: `_CLIENT_LINEAR_MOVE E=-200 F=1000`, + }, + }); + } + + async loadFilamentStock(filamentStock) { + if (filamentStock == null) { + await this.database.setCurrentFilamentStock(null); + return true; + } + await this.database.setCurrentFilamentStock(filamentStock); + this.currentFilamentStock = filamentStock; + await this.getCurrentFilament(); + await this.database.removeAlert("noFilamentSelected"); + await this.database.removeAlert("noFilamentLoaded"); + } + + async disconnect() { + logger.info(`Disconnecting from ${this.printer.name}`); + this.shouldReconnect = false; + if (this.socket) { + await this.jsonRpc.callMethodWithKwargs("printer.objects.subscribe", { + objects: {}, + }); + this.socket.close(); + this.socket = null; + } + + this.socket = null; + if (this.eventUpdateInterval) { + clearInterval(this.eventUpdateInterval); + this.eventUpdateInterval = null; + } + logger.info(`Successfully disconnected from ${this.printer.name}`); + return true; + } } diff --git a/src/printer/printerfilemanager.js b/src/printer/printerfilemanager.js new file mode 100644 index 0000000..8d43075 --- /dev/null +++ b/src/printer/printerfilemanager.js @@ -0,0 +1,155 @@ +// printerfilemanager.js - Manages file uploads from FileManager to Moonraker +import axios from "axios"; +import FormData from "form-data"; +import log4js from "log4js"; +import { loadConfig } from "../config.js"; + +const config = loadConfig(); + +const logger = log4js.getLogger("Printer File Manager"); +logger.level = config.logLevel; + +export class PrinterFileManager { + constructor(printerClient) { + this.printerClient = printerClient; + this.socketClient = printerClient.socketClient; + this.uploadingFiles = new Map(); // Track ongoing uploads by fileId + this.progressCallbacks = new Map(); + } + + /** + * Upload a file from FileManager to Moonraker + * @param {string} fileId - The ID of the file to upload (from FileManager) + * @param {string} [fileName] - Optional name to use for the file on Moonraker (will use file object name if not provided) + * @param {Object} moonrakerConfig - Moonraker configuration object with protocol, host, port, and optional apiKey + * @param {Function} [onProgress] - Optional progress callback (percent) => void + * @returns {Promise<boolean>} - True if upload succeeded, false otherwise + */ + async uploadFile(fileId, file, onProgress = null) { + if (!fileId) { + throw new Error("File ID is required"); + } + + if (onProgress) { + const progressCallbacks = this.progressCallbacks.get(fileId) || []; + progressCallbacks.push(onProgress); + this.progressCallbacks.set(fileId, progressCallbacks); + } + + // Check if upload is already in progress for this file + if (this.uploadingFiles.has(fileId)) { + logger.debug(`File ${fileId} upload already in progress, waiting...`); + try { + return await this.uploadingFiles.get(fileId); + } catch (error) { + // If the upload failed, remove it from the map so it can be retried + this.uploadingFiles.delete(fileId); + throw error; + } + } + + if ( + !this.printerClient.config || + !this.printerClient.config.host || + !this.printerClient.config.port + ) { + throw new Error("Printer configuration is required"); + } + + // Create upload promise and store it + const uploadPromise = this._performUpload(fileId, file) + .then((result) => { + // Remove from uploading map on success + this.uploadingFiles.delete(fileId); + return result; + }) + .catch((error) => { + // Remove from uploading map on error + this.uploadingFiles.delete(fileId); + throw error; + }); + + // Store the promise in the map + this.uploadingFiles.set(fileId, uploadPromise); + + return await uploadPromise; + } + + /** + * Internal method to perform the actual upload + * @private + */ + async _performUpload(fileId, file, onProgress = null) { + try { + const uploadFileName = `${fileId}.gcode`; + + const { protocol, host, port } = this.printerClient.config; + const httpUrl = `${ + protocol === "ws" ? "http" : "https" + }://${host}:${port}/server/files/upload`; + + logger.info( + `Uploading file ${uploadFileName} to printer ${this.printerClient.id} at ${httpUrl}` + ); + + // Create FormData with the file buffer + const formData = new FormData(); + formData.append("file", file, { + filename: "farmcontrol/" + uploadFileName, + contentType: "text/plain", + }); + + // Set up headers + const headers = { + ...formData.getHeaders(), + }; + + // Add API key if provided + if (this.printerClient.config.apiKey) { + headers["X-Api-Key"] = this.printerClient.config.apiKey; + } + + // Upload to Moonraker + const response = await axios.post(httpUrl, formData, { + headers, + onUploadProgress: (progressEvent) => { + if (progressEvent.total) { + const percentCompleted = Math.round( + (progressEvent.loaded * 100) / progressEvent.total + ); + logger.debug( + `Uploading file to printer ${this.printerClient.id}: ${uploadFileName} ${percentCompleted}%` + ); + if (this.progressCallbacks.has(fileId)) { + const progressCallbacks = this.progressCallbacks.get(fileId); + for (const callback of progressCallbacks) { + callback(percentCompleted); + } + } + } + }, + }); + // Check response + if (response.data && response.data.action) { + logger.info( + `Successfully uploaded file ${uploadFileName} to printer ${this.printerClient.id}` + ); + return true; + } else { + logger.error( + `Failed to upload file ${uploadFileName} to printer ${this.printerClient.id}: Invalid response` + ); + return false; + } + } catch (error) { + logger.error( + `Error uploading file ${fileId} to printer ${this.printerClient.id}: ${error.message}` + ); + if (error.response) { + logger.error(`Response status: ${error.response.status}`); + logger.error(`Response data: ${JSON.stringify(error.response.data)}`); + } + throw error; + } + } +} diff --git a/src/printer/printermanager.js b/src/printer/printermanager.js index e256ed2..8a6ddf1 100644 --- a/src/printer/printermanager.js +++ b/src/printer/printermanager.js @@ -17,27 +17,39 @@ export class PrinterManager { } async reloadPrinters() { + logger.info("Reloading printers..."); try { this.printers = await this.socketClient.listObjects({ objectType: "printer", filter: { host: this.socketClient.id }, + populate: [ + "currentFilamentStock", + "currentJob", + "currentSubJob", + "queue", + ], }); sendIPC("setPrinters", this.printers); + var removedPrintersCount = 0; + // Remove printer clients that are no longer in the printers list const printerIds = this.printers.map((printer) => printer._id); for (const [printerId, printerClient] of this.printerClients.entries()) { if (!printerIds.includes(printerId)) { // Close the connection before removing if (printerClient.socket) { + printerClient.shouldReconnect = false; printerClient.socket.close(); } this.printerClients.delete(printerId); logger.info(`Removed printer client for printer ID: ${printerId}`); + removedPrintersCount++; } } + var addedPrintersCount = 0; // Add new printer clients for printers not in the printerClients map for (const printer of this.printers) { const printerId = printer._id; @@ -46,15 +58,74 @@ export class PrinterManager { await printerClient.connect(); this.printerClients.set(printerId, printerClient); logger.info(`Added printer client for printer ID: ${printerId}`); + addedPrintersCount++; } } + + logger.debug("Printers added:", addedPrintersCount); + logger.debug("Printers removed:", removedPrintersCount); } catch (error) { logger.error("Failed to update printers:", error); this.printers = []; } } - async setupPrintersListener() {} + async handlePrinterAction(id, action, callback) { + logger.debug("Running printer action...", action); + const printer = this.getPrinterClient(id); + switch (action.type) { + case "setTemperature": + const setTempResult = await printer.setTemperature(action.data); + callback(setTempResult); + return; + + case "restartPrinterFirmware": + const restartPrinterFirmwareResult = + await printer.restartPrinterFirmware(); + callback(restartPrinterFirmwareResult); + return; + + case "restartPrinter": + const restartPrinterResult = await printer.restartPrinter(); + callback(restartPrinterResult); + return; + case "restartMoonraker": + const restartMoonrakerResult = await printer.restartMoonraker(); + callback(restartMoonrakerResult); + return; + case "deploy": + const deployResult = await printer.deploySubJob(action.data); + callback(deployResult); + return; + case "startQueue": + const startQueueResult = await printer.startQueue(); + callback(startQueueResult); + return; + case "pauseJob": + const pauseJobResult = await printer.pauseJob(); + callback(pauseJobResult); + return; + case "resumeJob": + const resumeJobResult = await printer.resumeJob(); + callback(resumeJobResult); + return; + case "cancelJob": + const cancelJobResult = await printer.cancelJob(); + callback(cancelJobResult); + return; + case "unloadFilamentStock": + const unloadFilamentStockResult = await printer.unloadFilamentStock(); + callback(unloadFilamentStockResult); + return; + case "loadFilamentStock": + const loadFilamentStockResult = await printer.loadFilamentStock( + action.data.filamentStock + ); + callback(loadFilamentStockResult); + return; + } + callback({ error: "Unknown command." }); + } getPrinterClient(printerId) { return this.printerClients.get(printerId); @@ -64,112 +135,41 @@ export class PrinterManager { return this.printerClients.values(); } - async updateSubscription(printerId, socketId, mergedSubscription) { - const printerClient = this.printerClients.get(printerId); - if (!printerClient) { - return { - success: false, - error: `Printer with ID ${printerId} not found`, - }; - } - printerClient.subscriptions.set(socketId, mergedSubscription); - return await printerClient.updateSubscriptions(); - } - // Close all printer connections - closeAllConnections() { - for (const printerClient of this.printerClients.values()) { - if (printerClient.socket) { - printerClient.socket.close(); - } - } - } + async closeAllConnections() { + logger.info( + `Closing all printer connections... current count: ${this.printerClients.size}` + ); - async downloadGCODE(gcodeFileId) { - logger.info(`Downloading G-code file ${gcodeFileId}`); - try { - // Download the G-code file with authentication - const url = `http://localhost:8080/gcodefiles/${gcodeFileId}/content/`; - const response = await fetch(url, { - headers: { - Authorization: `Bearer ${ - this.socketManager.socketClientConnections.values().next().value - .socket.handshake.auth.token - }`, - }, - }); - if (!response.ok) { - throw new Error( - `Failed to download G-code file: ${response.statusText}` + // Take a snapshot so any mutations during disconnects don't affect iteration + const clients = Array.from(this.printerClients.values()); + + for (const printerClient of clients) { + try { + // Ensure we never auto-reconnect after a manual close-all + printerClient.shouldReconnect = false; + await printerClient.disconnect(); + logger.info( + `Disconnected printer client ${printerClient?.id || "unknown"}` + ); + } catch (error) { + logger.error( + `Failed to disconnect printer client ${ + printerClient?.id || "unknown" + }:`, + error ); } - const gcodeContent = await response.blob(); - - logger.info(`G-code file ${gcodeFileId} downloaded!`); - - return gcodeContent; - } catch (error) { - logger.error("Error in deployGcodeToAllPrinters:", error); - return { - success: false, - error: error.message, - }; - } - } - - async deployPrintJob(printJobId) { - logger.info(`Deploying print job ${printJobId}`); - const printJob = await jobModel - .findById(printJobId) - .populate("printers") - .populate("subJobs"); - if (!printJob) { - throw new Error("Print job not found"); } - if (!printJob.gcodeFile) { - throw new Error("No G-code file associated with this print job"); - } + console.log("Printer clients:", this.printerClients); - const gcodeFileId = printJob.gcodeFile.toString(); - const fileName = `${printJob.id}.gcode`; + // Clear local references so no stale clients remain + this.printerClients.clear(); + this.printers = []; - const gcodeFile = await this.downloadGCODE(gcodeFileId); - - for (const printer of printJob.printers) { - const printerClient = this.getPrinterClient(printer.id); - if (!printerClient) { - throw new Error(`Printer with ID ${printer.id} not found`); - return false; - } - await printerClient.uploadGcodeFile(gcodeFile, fileName); - await printerClient.deploySubJobs(printJob.id); - } - - printJob.state = { type: "queued" }; - printJob.updatedAt = new Date(); - await printJob.save(); - - this.socketManager.broadcast("notify_job_update", { - id: printJob.id, - state: { type: "queued" }, - }); - - return true; - } - - async cancelSubJob(subJobId) { - logger.info(`Canceling sub job ${subJobId}`); - const subJob = await subJobModel.findById(subJobId); - if (!subJob) { - throw new Error("Sub job not found"); - } - const printerClient = this.getPrinterClient(subJob.printer.toString()); - if (!printerClient) { - throw new Error(`Printer with ID ${printer.id} not found`); - return false; - } - await printerClient.cancelSubJob(subJob.subJobId); - return true; + logger.info( + `All printer connections closed. Remaining clients: ${this.printerClients.size}` + ); } } diff --git a/src/socket/socketclient.js b/src/socket/socketclient.js index 1869d1f..3920bb0 100644 --- a/src/socket/socketclient.js +++ b/src/socket/socketclient.js @@ -7,6 +7,8 @@ import { askOtp, getDeviceInfo, notPrompting } from "../utils.js"; import { sendIPC } from "../electron/ipc.js"; import { PrinterManager } from "../printer/printermanager.js"; import { HostManager } from "../host/hostmanager.js"; +import { FileManager } from "../files/filemanager.js"; +import { DocumentPrinterManager } from "../documentprinter/documentprintermanager.js"; const config = loadConfig(); @@ -22,9 +24,10 @@ export class SocketClient { this.host = null; this.id = null; this.reconnectTimeout = null; - this.reloadPrintersInterval = null; this.hostManager = new HostManager(this); + this.fileManager = new FileManager(this); this.printerManager = new PrinterManager(this); + this.documentPrinterManager = new DocumentPrinterManager(this); this.scanner = new WebSocketScanner({ maxThreads: 50 }); this.readLine = null; sendIPC("setOnline", false); @@ -37,6 +40,7 @@ export class SocketClient { this.socket.on("connect_error", this.handleError.bind(this)); this.socket.on("objectUpdate", this.handleObjectUpdate.bind(this)); this.socket.on("objectAction", this.handleObjectAction.bind(this)); + this.socket.on("objectEvent", this.handleObjectEvent.bind(this)); this.socket.on("disconnect", this.handleDisconnect.bind(this)); } @@ -54,19 +58,40 @@ export class SocketClient { }, 3000); } - scheduleReloadPrinters() { - // Clear any pending reconnect timeout - if (this.reloadPrintersInterval) { - clearTimeout(this.reloadPrintersInterval); - this.reloadPrintersInterval = null; - } + subscribeToObjectEvents() { + this.subscribeToObjectEvent({ + objectType: "host", + _id: this.id, + eventType: "childUpdate", + }); + this.subscribeToObjectEvent({ + objectType: "host", + _id: this.id, + eventType: "childDelete", + }); + this.subscribeToObjectEvent({ + objectType: "host", + _id: this.id, + eventType: "childNew", + }); + } - logger.info("Reloading printers..."); - this.printerManager.reloadPrinters(); - this.reloadPrintersInterval = setInterval(() => { - logger.info("Reloading printers..."); - this.printerManager.reloadPrinters(); - }, 30000); + unsubscribeFromObjectEvents() { + this.unsubscribeFromObjectEvent({ + objectType: "host", + _id: this.id, + eventType: "childUpdate", + }); + this.unsubscribeFromObjectEvent({ + objectType: "host", + _id: this.id, + eventType: "childDelete", + }); + this.unsubscribeFromObjectEvent({ + objectType: "host", + _id: this.id, + eventType: "childNew", + }); } connect() { @@ -74,6 +99,7 @@ export class SocketClient { logger.info(`Connecting to Socket.IO server: ${config.url}`); this.socket = io(config.url, { auth: { type: "host" }, + reconnection: false, timeout: 3000, // 3 second timeout }); this.loading = true; @@ -89,6 +115,7 @@ export class SocketClient { } disconnect() { + this.unsubscribeFromObjectEvents(); this.socket.disconnect(); } @@ -129,7 +156,10 @@ export class SocketClient { config.host = { id: this.id, authCode: this.host.authCode }; saveConfig(config); this.sendDeviceInfo(); - this.scheduleReloadPrinters(); + this.subscribeToObjectEvents(); + this.documentPrinterManager.reloadDocumentPrinters(); + this.printerManager.reloadPrinters(); + await this.fileManager.updateFiles(); } ); } @@ -146,18 +176,6 @@ export class SocketClient { callback({ success: true }); } - async handlePrinterAction(id, action, callback) { - console.log("RUNNING PRINTER ACTION"); - const printer = this.printerManager.getPrinterClient(id); - switch (action.type) { - case "setTemperature": - const result = await printer.setTemperature(action.data); - callback(result); - return; - } - callback({ success: true }); - } - handleObjectAction(data, callback) { logger.debug("Running object action...", data); const id = data._id; @@ -169,15 +187,35 @@ export class SocketClient { } if (objectType == "printer") { - this.handlePrinterAction(id, action, callback); + this.printerManager.handlePrinterAction(id, action, callback); + } + + if (objectType == "documentPrinter") { + this.documentPrinterManager.handleDocumentPrinterAction( + id, + action, + callback + ); } } handleObjectUpdate(data, callback) { - logger.debug("Got object update", data); + logger.debug( + "Got object update for type:", + data.objectType, + " id:", + data._id + ); if (data.objectType == "host") { this.handleHostAction(action, callback); } + if (data.objectType == "documentPrinter") { + this.documentPrinterManager.handleDocumentPrinterUpdate( + data._id, + data, + callback + ); + } } handleConnect() { @@ -237,7 +275,7 @@ export class SocketClient { project, cached, }) { - logger.debug("Listing objects...", { + logger.trace("Listing objects...", { objectType, populate, filter, @@ -279,8 +317,35 @@ export class SocketClient { }); } - async editObject({ objectType, _id, populate, updateData }) { - logger.debug("Editing object...", { + async newObject({ objectType, newData }) { + logger.debug("Creating object...", { + objectType, + newData, + }); + return new Promise((resolve, reject) => { + this.socket.emit( + "newObject", + { + objectType, + newData, + }, + (result) => { + if (result && result.error) { + reject(new Error(result.error)); + } else { + logger.trace("Created object.", { + objectType, + newData, + }); + resolve(result); + } + } + ); + }); + } + + async editObject({ objectType, _id, populate, updateData, auditLog = true }) { + logger.trace("Editing object...", { objectType, _id, populate, @@ -293,6 +358,7 @@ export class SocketClient { _id, populate, updateData, + auditLog, }, (result) => { if (result && result.error) { @@ -359,6 +425,21 @@ export class SocketClient { }); } + async renderTemplatePDF(templateData) { + logger.debug("Rendering template PDF...", templateData); + return new Promise((resolve, reject) => { + this.socket.emit("renderTemplatePDF", templateData, (result) => { + if (result && result.error) { + logger.error("Failed to render template PDF:", result.error); + reject(new Error(result.error)); + } else { + logger.trace("Template PDF rendered successfully."); + resolve(result); + } + }); + }); + } + async subscribeToObjectActions({ objectType, _id }) { logger.debug("Suscribing to object actions...", { objectType, @@ -369,6 +450,81 @@ export class SocketClient { _id, }); } + + async subscribeToObjectUpdates({ objectType, _id }) { + logger.debug("Suscribing to object updates...", { + objectType, + _id, + }); + this.socket.emit("subscribeToObjectUpdates", { + objectType, + _id, + }); + } + + async unsubscribeFromObjectUpdates({ objectType, _id }) { + logger.debug("Unsuscribing from object updates...", { + objectType, + _id, + }); + this.socket.emit("unsubscribeFromObjectUpdates", { + objectType, + _id, + }); + } + + async subscribeToObjectEvent({ objectType, _id, eventType }) { + logger.debug("Suscribing to object event...", { + objectType, + _id, + eventType, + }); + this.socket.emit("subscribeToObjectEvent", { + objectType, + _id, + eventType, + }); + } + + async unsubscribeFromObjectEvent({ objectType, _id, eventType }) { + logger.debug("Unsuscribing from object event...", { + objectType, + _id, + eventType, + }); + this.socket.emit("unsubscribeFromObjectEvent", { + objectType, + _id, + eventType, + }); + } + + async handleHostChildUpdate(data) { + if (data.parentType == "printer") { + this.printerManager.reloadPrinters(); + } else if (data.parentType == "documentPrinter") { + this.documentPrinterManager.reloadDocumentPrinters(); + } + } + + async handleObjectEvent({ objectType, _id, event }) { + logger.debug("Received object event...", { + objectType, + _id, + event, + }); + const data = event.data; + if ( + (event.type == "childUpdate" || + event.type == "childDelete" || + event.type == "childNew") && + objectType == "host" && + _id == this.id + ) { + await this.handleHostChildUpdate(data); + } + } + //-------------------------------------- RE-WRITE ENDS HERE --------------------------------------- async handleScanNetworkStart(data, callback) { @@ -432,138 +588,6 @@ export class SocketClient { } } - async handlePrinterObjectsSubscribe(data, callback) { - logger.debug("Received printer.objects.subscribe event:", data); - try { - if (data && data.printerId) { - const printerId = data.printerId; - - // Get existing subscription or create new one - const existingSubscription = - this.activeSubscriptions.get(printerId) || {}; - - // Merge the new subscription data with existing data - const mergedSubscription = { - ...existingSubscription, - ...data.objects, - }; - - this.activeSubscriptions.set(printerId, mergedSubscription); - - logger.trace("Merged subscription:", mergedSubscription); - const result = await this.printerManager.updateSubscription( - printerId, - this.socket.id, - mergedSubscription - ); - - if (callback) { - callback(result); - } - } else { - logger.error("Missing Printer ID in subscription request"); - if (callback) { - callback({ error: "Missing Printer ID" }); - } - } - } catch (e) { - logger.error("Error processing subscription request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handlePrinterObjectsUnsubscribe(data, callback) { - logger.debug("Received printer.objects.unsubscribe event:", data); - try { - if (data && data.printerId) { - const printerId = data.printerId; - const existingSubscription = this.activeSubscriptions.get(printerId); - - if (existingSubscription) { - // Create a new objects object without the unsubscribed objects - const remainingObjects = { ...existingSubscription }; - if (data.objects) { - for (const key of Object.keys(data.objects)) { - delete remainingObjects[key]; - } - } - - console.log("remainingObjects", remainingObjects); - console.log("existingSubscription", existingSubscription); - console.log("unsubscribe", data.objects); - - // If there are no remaining objects, remove the entire subscription - if (Object.keys(remainingObjects).length === 0) { - this.activeSubscriptions.delete(printerId); - - logger.warn("Removing entire subscription"); - - // Send subscribe command with updated subscription - const result = await this.printerManager.updateSubscription( - printerId, - this.socket.id, - {} - ); - if (callback) { - callback(result); - } - } else { - this.activeSubscriptions.set(printerId, remainingObjects); - - logger.warn(remainingObjects); - - // Send subscribe command with updated subscription - const result = await this.printerManager.updateSubscription( - printerId, - this.socket.id, - remainingObjects - ); - - if (callback) { - callback(result); - } - } - } else { - logger.warn("No existing subscription found for printer:", printerId); - if (callback) { - callback({ success: true, message: "No subscription found" }); - } - } - } else { - logger.error("Missing Printer ID in unsubscribe request"); - if (callback) { - callback({ error: "Missing Printer ID" }); - } - } - } catch (e) { - logger.error("Error processing unsubscribe request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handleGcodeScript(data, callback) { - logger.debug("Received printer.gcode.script event:", data); - try { - const result = await this.printerManager.processPrinterCommand({ - method: "printer.gcode.script", - params: data, - }); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing gcode script request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - async handlePrinterObjectsQuery(data, callback) { logger.debug("Received printer.objects.query event:", data); try { @@ -602,197 +626,6 @@ export class SocketClient { } } - async handleFirmwareRestart(data, callback) { - logger.debug("Received printer.firmware_restart event:", data); - try { - const result = await this.printerManager.processPrinterCommand({ - method: "printer.firmware_restart", - params: data, - }); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing firmware restart request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handlePrinterRestart(data, callback) { - logger.debug("Received printer.restart event:", data); - try { - const result = await this.printerManager.processPrinterCommand({ - method: "printer.restart", - params: data, - }); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing printer restart request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handleJobQueueStatus(data, callback) { - logger.debug("Received server.job_queue.status event:", data); - try { - const result = await this.printerManager.processPrinterCommand({ - method: "server.job_queue.status", - params: data, - }); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing job queue status request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handleJobQueueDeploy(data, callback) { - logger.debug("Received server.job_queue.deploy event:", data); - try { - if (!data || !data.jobId) { - throw new Error("Missing required job ID"); - } - // Deploy the job to all printers - const result = await this.printerManager.deployJob(data.jobId); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing job queue deploy request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handlePrintResume(data, callback) { - logger.debug("Received printer.print.resume event:", data); - try { - const result = await this.printerManager.processPrinterCommand({ - method: "printer.print.resume", - params: data, - }); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing print resume request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handleJobQueueCancel(data, callback) { - logger.debug("Received server.job_queue.cancel event:", data); - try { - if (!data || !data.subJobId) { - throw new Error("Missing required sub job ID"); - } - const result = await this.printerManager.cancelSubJob(data.subJobId); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing job queue delete job request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handlePrintCancel(data, callback) { - logger.debug("Received printer.print.cancel event:", data); - try { - const result = await this.printerManager.processPrinterCommand({ - method: "printer.print.cancel", - params: data, - }); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing print cancel request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handlePrintPause(data, callback) { - logger.debug("Received printer.print.pause event:", data); - try { - const result = await this.printerManager.processPrinterCommand({ - method: "printer.print.pause", - params: data, - }); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing print pause request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handleJobQueuePause(data, callback) { - logger.debug("Received server.job_queue.pause event:", data); - try { - const result = await this.printerManager.processPrinterCommand({ - method: "server.job_queue.pause", - params: data, - }); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing job queue pause request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - - async handleJobQueueStart(data, callback) { - logger.debug("Received server.job_queue.start event:", data); - try { - const result = await this.printerManager.processPrinterCommand({ - method: "server.job_queue.start", - params: data, - }); - - if (callback) { - callback(result); - } - } catch (e) { - logger.error("Error processing job queue start request:", e); - if (callback) { - callback({ error: e.message }); - } - } - } - async handleFilamentStockLoad(data, callback) { logger.debug("Received printer.filamentstock.load event:", data); try { @@ -827,17 +660,14 @@ export class SocketClient { } } - handleDisconnect() { + async handleDisconnect() { logger.info("Disconnected from FarmControl Api."); - this.printerManager.closeAllConnections(); + await this.printerManager.closeAllConnections(); + await this.documentPrinterManager.closeAllConnections(); this.connected = false; sendIPC("setConnected", false); this.authenticated = false; sendIPC("setAuthenticated", false); - if (this.reloadPrintersInterval) { - clearTimeout(this.reloadPrintersInterval); - this.reloadPrintersInterval = null; - } notPrompting(); this.scheduleReconnect(); } diff --git a/src/utils.js b/src/utils.js index 00aa272..b9037a0 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,5 +1,7 @@ import readline from "node:readline"; import os from "os"; +import { pdf } from "pdf-to-img"; +import sharp from "sharp"; let isPrompting = false; // prevent multiple prompts at the same time @@ -54,3 +56,71 @@ export function getDeviceInfo() { }, }; } + +/** + * Converts a PDF buffer or file path to an array of image buffers + * @param {Buffer|string} pdfInput - PDF buffer or file path + * @param {Object} options - Conversion options (optional) + * @param {number} options.scale - Scale factor for image resolution (default: 2) + * @param {number} options.width - Target width in pixels (will calculate scale if provided) + * @param {number} options.height - Target height in pixels (optional) + * @param {number[]} options.page_numbers - Array of page numbers to convert (optional, converts all pages by default) + * @returns {Promise<Buffer[]>} Array of image buffers, one for each page + */ +export async function convertPDFToImage(pdfInput, options = {}) { + try { + // pdf-to-img uses scale instead of width/height directly + // Default scale of 2 provides good quality for thermal printers + let scale = options.scale || 2; + + const pdfOptions = { + scale, + ...options, + }; + + const document = await pdf(pdfInput, pdfOptions); + const outputImages = []; + + // If specific page numbers are requested, use getPage() for each + if ( + options.page_numbers && + Array.isArray(options.page_numbers) && + options.page_numbers.length > 0 + ) { + for (const pageNum of options.page_numbers) { + // page numbers are 1-indexed in the API + let image = await document.getPage(pageNum); + + // Resize with Sharp if width or height are provided + if (options.width || options.height) { + const resizeOptions = {}; + if (options.width) resizeOptions.width = options.width; + if (options.height) resizeOptions.height = options.height; + image = await sharp(image).resize(resizeOptions).toBuffer(); + } + + outputImages.push(image); + } + } else { + // Convert all pages: async iterable to array + for await (const image of document) { + let processedImage = image; + + // Resize with Sharp if width or height are provided + if (options.width || options.height) { + const resizeOptions = {}; + if (options.width) resizeOptions.width = options.width; + if (options.height) resizeOptions.height = options.height; + processedImage = await sharp(image).resize(resizeOptions).toBuffer(); + } + + outputImages.push(processedImage); + } + } + + return outputImages; // Array of image buffers + } catch (error) { + console.error("Error converting PDF to image:", error); + throw error; + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..a052f8c --- /dev/null +++ b/yarn.lock @@ -0,0 +1,7597 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"7zip-bin@~5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.2.0.tgz#7a03314684dd6572b7dfa89e68ce31d60286854d" + integrity sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A== + +"@ant-design/colors@^7.0.0", "@ant-design/colors@^7.2.1": + version "7.2.1" + resolved "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz" + integrity sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ== + dependencies: + "@ant-design/fast-color" "^2.0.6" + +"@ant-design/colors@^8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@ant-design/colors/-/colors-8.0.0.tgz" + integrity sha512-6YzkKCw30EI/E9kHOIXsQDHmMvTllT8STzjMb4K2qzit33RW2pqCJP0sk+hidBntXxE+Vz4n1+RvCTfBw6OErw== + dependencies: + "@ant-design/fast-color" "^3.0.0" + +"@ant-design/cssinjs-utils@^1.1.3": + version "1.1.3" + resolved "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz" + integrity sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg== + dependencies: + "@ant-design/cssinjs" "^1.21.0" + "@babel/runtime" "^7.23.2" + rc-util "^5.38.0" + +"@ant-design/cssinjs@^1.21.0", "@ant-design/cssinjs@^1.23.0": + version "1.24.0" + resolved "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.24.0.tgz" + integrity sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg== + dependencies: + "@babel/runtime" "^7.11.1" + "@emotion/hash" "^0.8.0" + "@emotion/unitless" "^0.7.5" + classnames "^2.3.1" + csstype "^3.1.3" + rc-util "^5.35.0" + stylis "^4.3.4" + +"@ant-design/fast-color@^2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz" + integrity sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA== + dependencies: + "@babel/runtime" "^7.24.7" + +"@ant-design/fast-color@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-3.0.0.tgz" + integrity sha512-eqvpP7xEDm2S7dUzl5srEQCBTXZMmY3ekf97zI+M2DHOYyKdJGH0qua0JACHTqbkRnD/KHFQP9J1uMJ/XWVzzA== + +"@ant-design/icons-svg@^4.4.0": + version "4.4.2" + resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz" + integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA== + +"@ant-design/icons@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz" + integrity sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg== + dependencies: + "@ant-design/colors" "^7.0.0" + "@ant-design/icons-svg" "^4.4.0" + "@babel/runtime" "^7.24.8" + classnames "^2.2.6" + rc-util "^5.31.1" + +"@ant-design/icons@^6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@ant-design/icons/-/icons-6.1.0.tgz" + integrity sha512-KrWMu1fIg3w/1F2zfn+JlfNDU8dDqILfA5Tg85iqs1lf8ooyGlbkA+TkwfOKKgqpUmAiRY1PTFpuOU2DAIgSUg== + dependencies: + "@ant-design/colors" "^8.0.0" + "@ant-design/icons-svg" "^4.4.0" + "@rc-component/util" "^1.3.0" + clsx "^2.1.1" + +"@ant-design/react-slick@~1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz" + integrity sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA== + dependencies: + "@babel/runtime" "^7.10.4" + classnames "^2.2.5" + json2mq "^0.2.0" + resize-observer-polyfill "^1.5.1" + throttle-debounce "^5.0.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + dependencies: + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/compat-data@^7.27.2": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz" + integrity sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA== + +"@babel/core@^7.21.3", "@babel/core@^7.23.9", "@babel/core@^7.27.4", "@babel/core@^7.28.5": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz" + integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.5" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-module-transforms" "^7.28.3" + "@babel/helpers" "^7.28.4" + "@babel/parser" "^7.28.5" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.28.5" + "@babel/types" "^7.28.5" + "@jridgewell/remapping" "^2.3.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.27.5", "@babel/generator@^7.28.5": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz" + integrity sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ== + dependencies: + "@babel/parser" "^7.28.5" + "@babel/types" "^7.28.5" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-transforms@^7.28.3": + version "7.28.3" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz" + integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.28.3" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.27.1", "@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helpers@^7.28.4": + version "7.28.4" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz" + integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== + dependencies: + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.4" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.27.2", "@babel/parser@^7.28.5": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz" + integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== + dependencies: + "@babel/types" "^7.28.5" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz" + integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-react-jsx-self@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz" + integrity sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-react-jsx-source@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz" + integrity sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.7", "@babel/runtime@^7.24.8", "@babel/runtime@^7.25.7", "@babel/runtime@^7.26.0": + version "7.28.4" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz" + integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== + +"@babel/template@^7.27.2": + version "7.27.2" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + +"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.5": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz" + integrity sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.5" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.5" + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.5" + debug "^4.3.1" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.28.5": + version "7.28.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz" + integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@develar/schema-utils@~2.6.5": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" + integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +"@electron/asar@3.2.18": + version "3.2.18" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.18.tgz#fa607f829209bab8b9e0ce6658d3fe81b2cba517" + integrity sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg== + dependencies: + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + +"@electron/asar@^3.2.7": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.4.1.tgz#4e9196a4b54fba18c56cd8d5cac67c5bdc588065" + integrity sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA== + dependencies: + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + +"@electron/fuses@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@electron/fuses/-/fuses-1.8.0.tgz#ad34d3cc4703b1258b83f6989917052cfc1490a0" + integrity sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw== + dependencies: + chalk "^4.1.1" + fs-extra "^9.0.1" + minimist "^1.2.5" + +"@electron/get@^2.0.0": + version "2.0.3" + resolved "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz" + integrity sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ== + 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" + optionalDependencies: + global-agent "^3.0.0" + +"@electron/node-gyp@git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2": + version "10.2.0-electron.1" + resolved "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2" + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^8.1.0" + graceful-fs "^4.2.6" + make-fetch-happen "^10.2.1" + nopt "^6.0.0" + proc-log "^2.0.1" + semver "^7.3.5" + tar "^6.2.1" + which "^2.0.2" + +"@electron/notarize@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-2.5.0.tgz#d4d25356adfa29df4a76bd64a8bd347237cd251e" + integrity sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.1" + promise-retry "^2.0.1" + +"@electron/osx-sign@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.3.1.tgz#faf7eeca7ca004a6be541dc4cf7a1bd59ec59b1c" + integrity sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw== + 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" + +"@electron/rebuild@3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.7.0.tgz#82e20c467ddedbb295d7f641592c52e68c141e9f" + integrity sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw== + dependencies: + "@electron/node-gyp" "https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2" + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.1.1" + detect-libc "^2.0.1" + fs-extra "^10.0.0" + got "^11.7.0" + node-abi "^3.45.0" + node-api-version "^0.2.0" + ora "^5.1.0" + read-binary-file-arch "^1.0.6" + semver "^7.3.5" + tar "^6.0.5" + yargs "^17.0.1" + +"@electron/rebuild@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@electron/rebuild/-/rebuild-4.0.1.tgz" + integrity sha512-iMGXb6Ib7H/Q3v+BKZJoETgF9g6KMNZVbsO4b7Dmpgb5qTFqyFTzqW9F3TOSHdybv2vKYKzSS9OiZL+dcJb+1Q== + dependencies: + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.1.1" + detect-libc "^2.0.1" + got "^11.7.0" + graceful-fs "^4.2.11" + node-abi "^4.2.0" + node-api-version "^0.2.1" + node-gyp "^11.2.0" + ora "^5.1.0" + read-binary-file-arch "^1.0.6" + semver "^7.3.5" + tar "^6.0.5" + yargs "^17.0.1" + +"@electron/universal@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-2.0.1.tgz#7b070ab355e02957388f3dbd68e2c3cd08c448ae" + integrity sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA== + dependencies: + "@electron/asar" "^3.2.7" + "@malept/cross-spawn-promise" "^2.0.0" + debug "^4.3.1" + dir-compare "^4.2.0" + fs-extra "^11.1.1" + minimatch "^9.0.3" + plist "^3.1.0" + +"@emnapi/core@^1.4.3": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.7.1.tgz#3a79a02dbc84f45884a1806ebb98e5746bdfaac4" + integrity sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg== + dependencies: + "@emnapi/wasi-threads" "1.1.0" + tslib "^2.4.0" + +"@emnapi/runtime@^1.4.3", "@emnapi/runtime@^1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.7.1.tgz#a73784e23f5d57287369c808197288b52276b791" + integrity sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" + integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ== + dependencies: + tslib "^2.4.0" + +"@emotion/hash@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== + +"@emotion/unitless@^0.7.5": + version "0.7.5" + resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@epic-web/invariant@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@epic-web/invariant/-/invariant-1.0.0.tgz#1073e5dee6dd540410784990eb73e4acd25c9813" + integrity sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA== + +"@esbuild/aix-ppc64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c" + integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA== + +"@esbuild/android-arm64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752" + integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg== + +"@esbuild/android-arm@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a" + integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg== + +"@esbuild/android-x64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16" + integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg== + +"@esbuild/darwin-arm64@0.25.12": + version "0.25.12" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz" + integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg== + +"@esbuild/darwin-x64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e" + integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA== + +"@esbuild/freebsd-arm64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe" + integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg== + +"@esbuild/freebsd-x64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3" + integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ== + +"@esbuild/linux-arm64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977" + integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ== + +"@esbuild/linux-arm@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9" + integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw== + +"@esbuild/linux-ia32@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0" + integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA== + +"@esbuild/linux-loong64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0" + integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng== + +"@esbuild/linux-mips64el@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd" + integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw== + +"@esbuild/linux-ppc64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869" + integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA== + +"@esbuild/linux-riscv64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6" + integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w== + +"@esbuild/linux-s390x@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663" + integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg== + +"@esbuild/linux-x64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306" + integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw== + +"@esbuild/netbsd-arm64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4" + integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg== + +"@esbuild/netbsd-x64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076" + integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ== + +"@esbuild/openbsd-arm64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd" + integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A== + +"@esbuild/openbsd-x64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679" + integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw== + +"@esbuild/openharmony-arm64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d" + integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg== + +"@esbuild/sunos-x64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6" + integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w== + +"@esbuild/win32-arm64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323" + integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg== + +"@esbuild/win32-ia32@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267" + integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ== + +"@esbuild/win32-x64@0.25.12": + version "0.25.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5" + integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA== + +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@grpc/grpc-js@^1.8.20": + version "1.14.1" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.1.tgz" + integrity sha512-sPxgEWtPUR3EnRJCEtbGZG2iX8LQDUls2wUS3o27jg07KqJFMq6YDeWvMo1wfpmy3rqRdS0rivpLwhqQtEyCuQ== + dependencies: + "@grpc/proto-loader" "^0.8.0" + "@js-sdsl/ordered-map" "^4.4.2" + +"@grpc/proto-loader@^0.7.8": + version "0.7.15" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz" + integrity sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.5" + yargs "^17.7.2" + +"@grpc/proto-loader@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.0.tgz" + integrity sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.5.3" + yargs "^17.7.2" + +"@img/colour@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz" + integrity sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw== + +"@img/sharp-darwin-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz" + integrity sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.2.4" + +"@img/sharp-darwin-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz#19bc1dd6eba6d5a96283498b9c9f401180ee9c7b" + integrity sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.2.4" + +"@img/sharp-libvips-darwin-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz" + integrity sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g== + +"@img/sharp-libvips-darwin-x64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz#e63681f4539a94af9cd17246ed8881734386f8cc" + integrity sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg== + +"@img/sharp-libvips-linux-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz#b1b288b36864b3bce545ad91fa6dadcf1a4ad318" + integrity sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw== + +"@img/sharp-libvips-linux-arm@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz#b9260dd1ebe6f9e3bdbcbdcac9d2ac125f35852d" + integrity sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A== + +"@img/sharp-libvips-linux-ppc64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz#4b83ecf2a829057222b38848c7b022e7b4d07aa7" + integrity sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA== + +"@img/sharp-libvips-linux-riscv64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz#880b4678009e5a2080af192332b00b0aaf8a48de" + integrity sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA== + +"@img/sharp-libvips-linux-s390x@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz#74f343c8e10fad821b38f75ced30488939dc59ec" + integrity sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ== + +"@img/sharp-libvips-linux-x64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz#df4183e8bd8410f7d61b66859a35edeab0a531ce" + integrity sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw== + +"@img/sharp-libvips-linuxmusl-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz#c8d6b48211df67137541007ee8d1b7b1f8ca8e06" + integrity sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw== + +"@img/sharp-libvips-linuxmusl-x64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz#be11c75bee5b080cbee31a153a8779448f919f75" + integrity sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg== + +"@img/sharp-linux-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz#7aa7764ef9c001f15e610546d42fce56911790cc" + integrity sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.2.4" + +"@img/sharp-linux-arm@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz#5fb0c3695dd12522d39c3ff7a6bc816461780a0d" + integrity sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.2.4" + +"@img/sharp-linux-ppc64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz#9c213a81520a20caf66978f3d4c07456ff2e0813" + integrity sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA== + optionalDependencies: + "@img/sharp-libvips-linux-ppc64" "1.2.4" + +"@img/sharp-linux-riscv64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz#cdd28182774eadbe04f62675a16aabbccb833f60" + integrity sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw== + optionalDependencies: + "@img/sharp-libvips-linux-riscv64" "1.2.4" + +"@img/sharp-linux-s390x@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz#93eac601b9f329bb27917e0e19098c722d630df7" + integrity sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.2.4" + +"@img/sharp-linux-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz#55abc7cd754ffca5002b6c2b719abdfc846819a8" + integrity sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.2.4" + +"@img/sharp-linuxmusl-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz#d6515ee971bb62f73001a4829b9d865a11b77086" + integrity sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" + +"@img/sharp-linuxmusl-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz#d97978aec7c5212f999714f2f5b736457e12ee9f" + integrity sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.2.4" + +"@img/sharp-wasm32@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz#2f15803aa626f8c59dd7c9d0bbc766f1ab52cfa0" + integrity sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw== + dependencies: + "@emnapi/runtime" "^1.7.0" + +"@img/sharp-win32-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz#3706e9e3ac35fddfc1c87f94e849f1b75307ce0a" + integrity sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g== + +"@img/sharp-win32-ia32@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz#0b71166599b049e032f085fb9263e02f4e4788de" + integrity sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg== + +"@img/sharp-win32-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz#a81ffb00e69267cd0a1d626eaedb8a8430b2b2f8" + integrity sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw== + +"@isaacs/balanced-match@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz" + integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ== + +"@isaacs/brace-expansion@^5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz" + integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA== + dependencies: + "@isaacs/balanced-match" "^4.0.1" + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + 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" + +"@isaacs/fs-minipass@^4.0.0": + version "4.0.1" + resolved "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz" + integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== + dependencies: + minipass "^7.0.4" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz" + integrity sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ== + dependencies: + "@jest/types" "30.2.0" + "@types/node" "*" + chalk "^4.1.2" + jest-message-util "30.2.0" + jest-util "30.2.0" + slash "^3.0.0" + +"@jest/core@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz" + integrity sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ== + dependencies: + "@jest/console" "30.2.0" + "@jest/pattern" "30.0.1" + "@jest/reporters" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + ci-info "^4.2.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-changed-files "30.2.0" + jest-config "30.2.0" + jest-haste-map "30.2.0" + jest-message-util "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-resolve-dependencies "30.2.0" + jest-runner "30.2.0" + jest-runtime "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + jest-watcher "30.2.0" + micromatch "^4.0.8" + pretty-format "30.2.0" + slash "^3.0.0" + +"@jest/diff-sequences@30.0.1": + version "30.0.1" + resolved "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz" + integrity sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== + +"@jest/environment@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz" + integrity sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g== + dependencies: + "@jest/fake-timers" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + jest-mock "30.2.0" + +"@jest/expect-utils@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz" + integrity sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA== + dependencies: + "@jest/get-type" "30.1.0" + +"@jest/expect@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz" + integrity sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA== + dependencies: + expect "30.2.0" + jest-snapshot "30.2.0" + +"@jest/fake-timers@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz" + integrity sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw== + dependencies: + "@jest/types" "30.2.0" + "@sinonjs/fake-timers" "^13.0.0" + "@types/node" "*" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-util "30.2.0" + +"@jest/get-type@30.1.0": + version "30.1.0" + resolved "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz" + integrity sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA== + +"@jest/globals@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz" + integrity sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw== + dependencies: + "@jest/environment" "30.2.0" + "@jest/expect" "30.2.0" + "@jest/types" "30.2.0" + jest-mock "30.2.0" + +"@jest/pattern@30.0.1": + version "30.0.1" + resolved "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz" + integrity sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA== + dependencies: + "@types/node" "*" + jest-regex-util "30.0.1" + +"@jest/reporters@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz" + integrity sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + "@jridgewell/trace-mapping" "^0.3.25" + "@types/node" "*" + chalk "^4.1.2" + collect-v8-coverage "^1.0.2" + exit-x "^0.2.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^5.0.0" + istanbul-reports "^3.1.3" + jest-message-util "30.2.0" + jest-util "30.2.0" + jest-worker "30.2.0" + slash "^3.0.0" + string-length "^4.0.2" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@30.0.5": + version "30.0.5" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz" + integrity sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA== + dependencies: + "@sinclair/typebox" "^0.34.0" + +"@jest/snapshot-utils@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz" + integrity sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug== + dependencies: + "@jest/types" "30.2.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" + natural-compare "^1.4.0" + +"@jest/source-map@30.0.1": + version "30.0.1" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz" + integrity sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + callsites "^3.1.0" + graceful-fs "^4.2.11" + +"@jest/test-result@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz" + integrity sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg== + dependencies: + "@jest/console" "30.2.0" + "@jest/types" "30.2.0" + "@types/istanbul-lib-coverage" "^2.0.6" + collect-v8-coverage "^1.0.2" + +"@jest/test-sequencer@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz" + integrity sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q== + dependencies: + "@jest/test-result" "30.2.0" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + slash "^3.0.0" + +"@jest/transform@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz" + integrity sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA== + dependencies: + "@babel/core" "^7.27.4" + "@jest/types" "30.2.0" + "@jridgewell/trace-mapping" "^0.3.25" + babel-plugin-istanbul "^7.0.1" + chalk "^4.1.2" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-regex-util "30.0.1" + jest-util "30.2.0" + micromatch "^4.0.8" + pirates "^4.0.7" + slash "^3.0.0" + write-file-atomic "^5.0.1" + +"@jest/types@30.2.0": + version "30.2.0" + resolved "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz" + integrity sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg== + dependencies: + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.5" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" + "@types/node" "*" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" + +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + 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== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.5" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@js-sdsl/ordered-map@^4.4.2": + version "4.4.2" + resolved "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz" + integrity sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw== + +"@malept/cross-spawn-promise@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz" + integrity sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg== + dependencies: + cross-spawn "^7.0.1" + +"@malept/flatpak-bundler@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858" + integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.0" + lodash "^4.17.15" + tmp-promise "^3.0.2" + +"@mongodb-js/saslprep@^1.3.0": + version "1.3.2" + resolved "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.3.2.tgz" + integrity sha512-QgA5AySqB27cGTXBFmnpifAi7HxoGUeezwo6p9dI03MuDB6Pp33zgclqVb6oVK3j6I9Vesg0+oojW2XxB59SGg== + dependencies: + sparse-bitfield "^3.0.3" + +"@napi-rs/canvas-android-arm64@0.1.83": + version "0.1.83" + resolved "https://registry.yarnpkg.com/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.83.tgz#6a56f6d0f1fa7cfbaf25810cf0e1ca7e3d0dd46d" + integrity sha512-TbKM2fh9zXjqFIU8bgMfzG7rkrIYdLKMafgPhFoPwKrpWk1glGbWP7LEu8Y/WrMDqTGFdRqUmuX89yQEzZbkiw== + +"@napi-rs/canvas-darwin-arm64@0.1.83": + version "0.1.83" + resolved "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.83.tgz" + integrity sha512-gp8IDVUloPUmkepHly4xRUOfUJSFNvA4jR7ZRF5nk3YcGzegSFGeICiT4PnYyPgSKEhYAFe1Y2XNy0Mp6Tu8mQ== + +"@napi-rs/canvas-darwin-x64@0.1.83": + version "0.1.83" + resolved "https://registry.yarnpkg.com/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.83.tgz#6f032a99e90e7ccd7bffa008666d844a11262ba9" + integrity sha512-r4ZJxiP9OgUbdGZhPDEXD3hQ0aIPcVaywtcTXvamYxTU/SWKAbKVhFNTtpRe1J30oQ25gWyxTkUKSBgUkNzdnw== + +"@napi-rs/canvas-linux-arm-gnueabihf@0.1.83": + version "0.1.83" + resolved "https://registry.yarnpkg.com/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.83.tgz#aa352e65e0a326c2049f65a3cd292f61ef3c206c" + integrity sha512-Uc6aSB05qH1r+9GUDxIE6F5ZF7L0nTFyyzq8ublWUZhw8fEGK8iy931ff1ByGFT04+xHJad1kBcL4R1ZEV8z7Q== + +"@napi-rs/canvas-linux-arm64-gnu@0.1.83": + version "0.1.83" + resolved "https://registry.yarnpkg.com/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.83.tgz#9b05785b6b486680b8bdfc028de5f80838d6099c" + integrity sha512-eEeaJA7V5KOFq7W0GtoRVbd3ak8UZpK+XLkCgUiFGtlunNw+ZZW9Cr/92MXflGe7o3SqqMUg+f975LPxO/vsOQ== + +"@napi-rs/canvas-linux-arm64-musl@0.1.83": + version "0.1.83" + resolved "https://registry.yarnpkg.com/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.83.tgz#928182679cc2f3f4cdd2353e1a23a067072812b2" + integrity sha512-cAvonp5XpbatVGegF9lMQNchs3z5RH6EtamRVnQvtoRtwbzOMcdzwuLBqDBQxQF79MFbuZNkWj3YRJjZCjHVzw== + +"@napi-rs/canvas-linux-riscv64-gnu@0.1.83": + version "0.1.83" + resolved "https://registry.yarnpkg.com/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.83.tgz#5491b2dcd4485d4185189df0d65154d8a7f3bafb" + integrity sha512-WFUPQ9qZy31vmLxIJ3MfmHw+R2g/mLCgk8zmh7maJW8snV3vLPA7pZfIS65Dc61EVDp1vaBskwQ2RqPPzwkaew== + +"@napi-rs/canvas-linux-x64-gnu@0.1.83": + version "0.1.83" + resolved "https://registry.yarnpkg.com/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.83.tgz#67c43f1d8f6de4ae7a8233a6c183ce50670957f3" + integrity sha512-X9YwIjsuy50WwOyYeNhEHjKHO8rrfH9M4U8vNqLuGmqsZdKua/GrUhdQGdjq7lTgdY3g4+Ta5jF8MzAa7UAs/g== + +"@napi-rs/canvas-linux-x64-musl@0.1.83": + version "0.1.83" + resolved "https://registry.yarnpkg.com/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.83.tgz#fc09adf824331e5ceb8349aa0808063e6fe44120" + integrity sha512-Vv2pLWQS8EnlSM1bstJ7vVhKA+mL4+my4sKUIn/bgIxB5O90dqiDhQjUDLP+5xn9ZMestRWDt3tdQEkGAmzq/A== + +"@napi-rs/canvas-win32-x64-msvc@0.1.83": + version "0.1.83" + resolved "https://registry.yarnpkg.com/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.83.tgz#47160323ee0c7c52acc48b467a5ec613cb38e60e" + integrity sha512-K1TtjbScfRNYhq8dengLLufXGbtEtWdUXPV505uLFPovyGHzDUGXLFP/zUJzj6xWXwgUjHNLgEPIt7mye0zr6Q== + +"@napi-rs/canvas@^0.1.81": + version "0.1.83" + resolved "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.83.tgz" + integrity sha512-f9GVB9VNc9vn/nroc9epXRNkVpvNPZh69+qzLJIm9DfruxFqX0/jsXG46OGWAJgkO4mN0HvFHjRROMXKVmPszg== + optionalDependencies: + "@napi-rs/canvas-android-arm64" "0.1.83" + "@napi-rs/canvas-darwin-arm64" "0.1.83" + "@napi-rs/canvas-darwin-x64" "0.1.83" + "@napi-rs/canvas-linux-arm-gnueabihf" "0.1.83" + "@napi-rs/canvas-linux-arm64-gnu" "0.1.83" + "@napi-rs/canvas-linux-arm64-musl" "0.1.83" + "@napi-rs/canvas-linux-riscv64-gnu" "0.1.83" + "@napi-rs/canvas-linux-x64-gnu" "0.1.83" + "@napi-rs/canvas-linux-x64-musl" "0.1.83" + "@napi-rs/canvas-win32-x64-msvc" "0.1.83" + +"@napi-rs/wasm-runtime@^0.2.11": + version "0.2.12" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz#3e78a8b96e6c33a6c517e1894efbd5385a7cb6f2" + integrity sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ== + dependencies: + "@emnapi/core" "^1.4.3" + "@emnapi/runtime" "^1.4.3" + "@tybys/wasm-util" "^0.10.0" + +"@noble/hashes@^1.1.5": + version "1.8.0" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz" + integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== + +"@npmcli/agent@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz" + integrity sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.3" + +"@npmcli/fs@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/fs@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz" + integrity sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q== + dependencies: + semver "^7.3.5" + +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@paralleldrive/cuid2@^2.2.2": + version "2.3.1" + resolved "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz" + integrity sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw== + dependencies: + "@noble/hashes" "^1.1.5" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.2.9": + version "0.2.9" + resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz" + integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@rc-component/async-validator@^5.0.3": + version "5.0.4" + resolved "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz" + integrity sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg== + dependencies: + "@babel/runtime" "^7.24.4" + +"@rc-component/color-picker@~2.0.1": + version "2.0.1" + resolved "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz" + integrity sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q== + dependencies: + "@ant-design/fast-color" "^2.0.6" + "@babel/runtime" "^7.23.6" + classnames "^2.2.6" + rc-util "^5.38.1" + +"@rc-component/context@^1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz" + integrity sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w== + dependencies: + "@babel/runtime" "^7.10.1" + rc-util "^5.27.0" + +"@rc-component/mini-decimal@^1.0.1": + version "1.1.0" + resolved "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz" + integrity sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ== + dependencies: + "@babel/runtime" "^7.18.0" + +"@rc-component/mutate-observer@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz" + integrity sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw== + dependencies: + "@babel/runtime" "^7.18.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.0.2", "@rc-component/portal@^1.1.0", "@rc-component/portal@^1.1.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz" + integrity sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg== + dependencies: + "@babel/runtime" "^7.18.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/qrcode@~1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.1.0.tgz" + integrity sha512-ABA80Yer0c6I2+moqNY0kF3Y1NxIT6wDP/EINIqbiRbfZKP1HtHpKMh8WuTXLgVGYsoWG2g9/n0PgM8KdnJb4Q== + dependencies: + "@babel/runtime" "^7.24.7" + classnames "^2.3.2" + +"@rc-component/tour@~1.15.1": + version "1.15.1" + resolved "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz" + integrity sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ== + dependencies: + "@babel/runtime" "^7.18.0" + "@rc-component/portal" "^1.0.0-9" + "@rc-component/trigger" "^2.0.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/trigger@^2.0.0", "@rc-component/trigger@^2.1.1", "@rc-component/trigger@^2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.0.tgz" + integrity sha512-iwaxZyzOuK0D7lS+0AQEtW52zUWxoGqTGkke3dRyb8pYiShmRpCjB/8TzPI4R6YySCH7Vm9BZj/31VPiiQTLBg== + dependencies: + "@babel/runtime" "^7.23.2" + "@rc-component/portal" "^1.1.0" + classnames "^2.3.2" + rc-motion "^2.0.0" + rc-resize-observer "^1.3.1" + rc-util "^5.44.0" + +"@rc-component/util@^1.3.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@rc-component/util/-/util-1.4.0.tgz" + integrity sha512-LQlShcJKu0p3JUTAenKrWtqVW0+c4PJKedOqEaef9gTVL70O3cG4xZJ7VXfm0blGzORKFEkd3oQGalaUBNZ3Lg== + dependencies: + is-mobile "^5.0.0" + react-is "^18.2.0" + +"@rolldown/pluginutils@1.0.0-beta.47": + version "1.0.0-beta.47" + resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.47.tgz" + integrity sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw== + +"@rollup/pluginutils@^5.2.0": + version "5.3.0" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz" + integrity sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^4.0.2" + +"@rollup/rollup-android-arm-eabi@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz#7e478b66180c5330429dd161bf84dad66b59c8eb" + integrity sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w== + +"@rollup/rollup-android-arm64@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz#2b025510c53a5e3962d3edade91fba9368c9d71c" + integrity sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w== + +"@rollup/rollup-darwin-arm64@4.53.3": + version "4.53.3" + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz" + integrity sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA== + +"@rollup/rollup-darwin-x64@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz#2bf5f2520a1f3b551723d274b9669ba5b75ed69c" + integrity sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ== + +"@rollup/rollup-freebsd-arm64@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz#4bb9cc80252564c158efc0710153c71633f1927c" + integrity sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w== + +"@rollup/rollup-freebsd-x64@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz#2301289094d49415a380cf942219ae9d8b127440" + integrity sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q== + +"@rollup/rollup-linux-arm-gnueabihf@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz#1d03d776f2065e09fc141df7d143476e94acca88" + integrity sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw== + +"@rollup/rollup-linux-arm-musleabihf@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz#8623de0e040b2fd52a541c602688228f51f96701" + integrity sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg== + +"@rollup/rollup-linux-arm64-gnu@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz#ce2d1999bc166277935dde0301cde3dd0417fb6e" + integrity sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w== + +"@rollup/rollup-linux-arm64-musl@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz#88c2523778444da952651a2219026416564a4899" + integrity sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A== + +"@rollup/rollup-linux-loong64-gnu@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz#578ca2220a200ac4226c536c10c8cc6e4f276714" + integrity sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g== + +"@rollup/rollup-linux-ppc64-gnu@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz#aa338d3effd4168a20a5023834a74ba2c3081293" + integrity sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw== + +"@rollup/rollup-linux-riscv64-gnu@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz#16ba582f9f6cff58119aa242782209b1557a1508" + integrity sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g== + +"@rollup/rollup-linux-riscv64-musl@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz#e404a77ebd6378483888b8064c703adb011340ab" + integrity sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A== + +"@rollup/rollup-linux-s390x-gnu@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz#92ad52d306227c56bec43d96ad2164495437ffe6" + integrity sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg== + +"@rollup/rollup-linux-x64-gnu@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz#fd0dea3bb9aa07e7083579f25e1c2285a46cb9fa" + integrity sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w== + +"@rollup/rollup-linux-x64-musl@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz#37a3efb09f18d555f8afc490e1f0444885de8951" + integrity sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q== + +"@rollup/rollup-openharmony-arm64@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz#c489bec9f4f8320d42c9b324cca220c90091c1f7" + integrity sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw== + +"@rollup/rollup-win32-arm64-msvc@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz#152832b5f79dc22d1606fac3db946283601b7080" + integrity sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw== + +"@rollup/rollup-win32-ia32-msvc@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz#54d91b2bb3bf3e9f30d32b72065a4e52b3a172a5" + integrity sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA== + +"@rollup/rollup-win32-x64-gnu@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz#df9df03e61a003873efec8decd2034e7f135c71e" + integrity sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg== + +"@rollup/rollup-win32-x64-msvc@4.53.3": + version "4.53.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz#38ae84f4c04226c1d56a3b17296ef1e0460ecdfe" + integrity sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ== + +"@sinclair/typebox@^0.34.0": + version "0.34.41" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz" + integrity sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g== + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sinonjs/commons@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^13.0.0": + version "13.0.5" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz" + integrity sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw== + dependencies: + "@sinonjs/commons" "^3.0.1" + +"@socket.io/component-emitter@~3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== + +"@svgr/babel-plugin-add-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz" + integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== + +"@svgr/babel-plugin-remove-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz" + integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== + +"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz" + integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz" + integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== + +"@svgr/babel-plugin-svg-dynamic-title@8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz" + integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== + +"@svgr/babel-plugin-svg-em-dimensions@8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz" + integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== + +"@svgr/babel-plugin-transform-react-native-svg@8.1.0": + version "8.1.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz" + integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== + +"@svgr/babel-plugin-transform-svg-component@8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz" + integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== + +"@svgr/babel-preset@8.1.0": + version "8.1.0" + resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz" + integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "8.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "8.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" + "@svgr/babel-plugin-transform-svg-component" "8.0.0" + +"@svgr/core@^8.1.0": + version "8.1.0" + resolved "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz" + integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + camelcase "^6.2.0" + cosmiconfig "^8.1.3" + snake-case "^3.0.4" + +"@svgr/hast-util-to-babel-ast@8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz" + integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== + dependencies: + "@babel/types" "^7.21.3" + entities "^4.4.0" + +"@svgr/plugin-jsx@^8.1.0": + version "8.1.0" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz" + integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + "@svgr/hast-util-to-babel-ast" "8.0.0" + svg-parser "^2.0.4" + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@testim/chrome-version@^1.1.4": + version "1.1.4" + resolved "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.4.tgz" + integrity sha512-kIhULpw9TrGYnHp/8VfdcneIcxKnLixmADtukQRtJUmsVlMg0niMkwV0xZmi8hqa57xqilIHjWFA0GKvEjVU5g== + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@tootallnate/quickjs-emscripten@^0.23.0": + version "0.23.0" + resolved "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz" + integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@tybys/wasm-util@^0.10.0": + version "0.10.1" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414" + integrity sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg== + dependencies: + tslib "^2.4.0" + +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.27.0" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.28.0" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz" + integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== + dependencies: + "@babel/types" "^7.28.2" + +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + +"@types/cors@^2.8.12": + version "2.8.19" + resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz" + integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg== + dependencies: + "@types/node" "*" + +"@types/debug@^4.1.6": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/estree@1.0.8", "@types/estree@^1.0.0": + version "1.0.8" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== + +"@types/fs-extra@9.0.13", "@types/fs-extra@^9.0.11": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@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== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1", "@types/istanbul-lib-coverage@^2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.4": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/ms@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== + +"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=13.7.0": + version "24.10.1" + resolved "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz" + integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== + dependencies: + undici-types "~7.16.0" + +"@types/node@^22.7.7": + version "22.19.1" + resolved "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz" + integrity sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ== + dependencies: + undici-types "~6.21.0" + +"@types/plist@^3.0.1": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.5.tgz#9a0c49c0f9886c8c8696a7904dd703f6284036e0" + integrity sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA== + dependencies: + "@types/node" "*" + xmlbuilder ">=11.0.1" + +"@types/responselike@^1.0.0": + version "1.0.3" + resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== + dependencies: + "@types/node" "*" + +"@types/stack-utils@^2.0.3": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/verror@^1.10.3": + version "1.10.11" + resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.11.tgz#d3d6b418978c8aa202d41e5bb3483227b6ecc1bb" + integrity sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg== + +"@types/webidl-conversions@*": + version "7.0.3" + resolved "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz" + integrity sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA== + +"@types/whatwg-url@^13.0.0": + version "13.0.0" + resolved "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz" + integrity sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q== + dependencies: + "@types/webidl-conversions" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.33": + version "17.0.35" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz" + integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.10.3" + resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz" + integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== + dependencies: + "@types/node" "*" + +"@ungap/structured-clone@^1.3.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@unrs/resolver-binding-android-arm-eabi@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz#9f5b04503088e6a354295e8ea8fe3cb99e43af81" + integrity sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw== + +"@unrs/resolver-binding-android-arm64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz#7414885431bd7178b989aedc4d25cccb3865bc9f" + integrity sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g== + +"@unrs/resolver-binding-darwin-arm64@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz" + integrity sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g== + +"@unrs/resolver-binding-darwin-x64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz#fd4d81257b13f4d1a083890a6a17c00de571f0dc" + integrity sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ== + +"@unrs/resolver-binding-freebsd-x64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz#d2513084d0f37c407757e22f32bd924a78cfd99b" + integrity sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw== + +"@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz#844d2605d057488d77fab09705f2866b86164e0a" + integrity sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw== + +"@unrs/resolver-binding-linux-arm-musleabihf@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz#204892995cefb6bd1d017d52d097193bc61ddad3" + integrity sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw== + +"@unrs/resolver-binding-linux-arm64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz#023eb0c3aac46066a10be7a3f362e7b34f3bdf9d" + integrity sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ== + +"@unrs/resolver-binding-linux-arm64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz#9e6f9abb06424e3140a60ac996139786f5d99be0" + integrity sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w== + +"@unrs/resolver-binding-linux-ppc64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz#b111417f17c9d1b02efbec8e08398f0c5527bb44" + integrity sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA== + +"@unrs/resolver-binding-linux-riscv64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz#92ffbf02748af3e99873945c9a8a5ead01d508a9" + integrity sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ== + +"@unrs/resolver-binding-linux-riscv64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz#0bec6f1258fc390e6b305e9ff44256cb207de165" + integrity sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew== + +"@unrs/resolver-binding-linux-s390x-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz#577843a084c5952f5906770633ccfb89dac9bc94" + integrity sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg== + +"@unrs/resolver-binding-linux-x64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz#36fb318eebdd690f6da32ac5e0499a76fa881935" + integrity sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w== + +"@unrs/resolver-binding-linux-x64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz#bfb9af75f783f98f6a22c4244214efe4df1853d6" + integrity sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA== + +"@unrs/resolver-binding-wasm32-wasi@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz#752c359dd875684b27429500d88226d7cc72f71d" + integrity sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ== + dependencies: + "@napi-rs/wasm-runtime" "^0.2.11" + +"@unrs/resolver-binding-win32-arm64-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz#ce5735e600e4c2fbb409cd051b3b7da4a399af35" + integrity sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw== + +"@unrs/resolver-binding-win32-ia32-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz#72fc57bc7c64ec5c3de0d64ee0d1810317bc60a6" + integrity sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ== + +"@unrs/resolver-binding-win32-x64-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz#538b1e103bf8d9864e7b85cc96fa8d6fb6c40777" + integrity sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g== + +"@vitejs/plugin-react@^5.1.1": + version "5.1.1" + resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.1.tgz" + integrity sha512-WQfkSw0QbQ5aJ2CHYw23ZGkqnRwqKHD/KYsMeTkZzPT4Jcf0DcBxBtwMJxnu6E7oxw5+JC6ZAiePgh28uJ1HBA== + dependencies: + "@babel/core" "^7.28.5" + "@babel/plugin-transform-react-jsx-self" "^7.27.1" + "@babel/plugin-transform-react-jsx-source" "^7.27.1" + "@rolldown/pluginutils" "1.0.0-beta.47" + "@types/babel__core" "^7.20.5" + react-refresh "^0.18.0" + +"@xmldom/xmldom@^0.8.8": + version "0.8.11" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.11.tgz#b79de2d67389734c57c52595f7a7305e30c2d608" + integrity sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw== + +abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abbrev@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz" + integrity sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg== + +accepts@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz" + integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng== + dependencies: + mime-types "^3.0.0" + negotiator "^1.0.0" + +accepts@~1.3.4: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agent-base@^7.1.0, agent-base@^7.1.2: + version "7.1.4" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz" + integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== + +agentkeepalive@^4.2.1: + version "4.6.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" + integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.10.0, ajv@^6.12.0: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + 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" + +ansi-escapes@^4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.2.2" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== + +ant-design@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/ant-design/-/ant-design-1.0.0.tgz" + integrity sha512-EiN9oXroImi01yz1xwpDzExb1U5ddi4MYiCTaTLVl8SA3QHXYClJn0BikAYS2IMPzmpmAYhwOgGA2HE/sL/c9g== + +antd@^5.28.0: + version "5.29.1" + resolved "https://registry.npmjs.org/antd/-/antd-5.29.1.tgz" + integrity sha512-TTFVbpKbyL6cPfEoKq6Ya3BIjTUr7uDW9+7Z+1oysRv1gpcN7kQ4luH8r/+rXXwz4n6BIz1iBJ1ezKCdsdNW0w== + dependencies: + "@ant-design/colors" "^7.2.1" + "@ant-design/cssinjs" "^1.23.0" + "@ant-design/cssinjs-utils" "^1.1.3" + "@ant-design/fast-color" "^2.0.6" + "@ant-design/icons" "^5.6.1" + "@ant-design/react-slick" "~1.1.2" + "@babel/runtime" "^7.26.0" + "@rc-component/color-picker" "~2.0.1" + "@rc-component/mutate-observer" "^1.1.0" + "@rc-component/qrcode" "~1.1.0" + "@rc-component/tour" "~1.15.1" + "@rc-component/trigger" "^2.3.0" + classnames "^2.5.1" + copy-to-clipboard "^3.3.3" + dayjs "^1.11.11" + rc-cascader "~3.34.0" + rc-checkbox "~3.5.0" + rc-collapse "~3.9.0" + rc-dialog "~9.6.0" + rc-drawer "~7.3.0" + rc-dropdown "~4.2.1" + rc-field-form "~2.7.1" + rc-image "~7.12.0" + rc-input "~1.8.0" + rc-input-number "~9.5.0" + rc-mentions "~2.20.0" + rc-menu "~9.16.1" + rc-motion "^2.9.5" + rc-notification "~5.6.4" + rc-pagination "~5.1.0" + rc-picker "~4.11.3" + rc-progress "~4.0.0" + rc-rate "~2.13.1" + rc-resize-observer "^1.4.3" + rc-segmented "~2.7.0" + rc-select "~14.16.8" + rc-slider "~11.1.9" + rc-steps "~6.0.1" + rc-switch "~4.1.0" + rc-table "~7.54.0" + rc-tabs "~15.7.0" + rc-textarea "~1.10.2" + rc-tooltip "~6.4.0" + rc-tree "~5.13.1" + rc-tree-select "~5.27.0" + rc-upload "~4.11.0" + rc-util "^5.44.4" + scroll-into-view-if-needed "^3.1.0" + throttle-debounce "^5.0.2" + +anymatch@^3.1.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-builder-bin@5.0.0-alpha.12: + version "5.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-5.0.0-alpha.12.tgz#2daf82f8badc698e0adcc95ba36af4ff0650dc80" + integrity sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w== + +app-builder-lib@26.0.12: + version "26.0.12" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-26.0.12.tgz#2e33df936e0f78d4266b058ece90308ea981eefb" + integrity sha512-+/CEPH1fVKf6HowBUs6LcAIoRcjeqgvAeoSE+cl7Y7LndyQ9ViGPYibNk7wmhMHzNgHIuIbw4nWADPO+4mjgWw== + dependencies: + "@develar/schema-utils" "~2.6.5" + "@electron/asar" "3.2.18" + "@electron/fuses" "^1.8.0" + "@electron/notarize" "2.5.0" + "@electron/osx-sign" "1.3.1" + "@electron/rebuild" "3.7.0" + "@electron/universal" "2.0.1" + "@malept/flatpak-bundler" "^0.4.0" + "@types/fs-extra" "9.0.13" + async-exit-hook "^2.0.1" + builder-util "26.0.11" + builder-util-runtime "9.3.1" + chromium-pickle-js "^0.2.0" + config-file-ts "0.2.8-rc1" + debug "^4.3.4" + dotenv "^16.4.5" + dotenv-expand "^11.0.6" + ejs "^3.1.8" + electron-publish "26.0.11" + fs-extra "^10.1.0" + hosted-git-info "^4.1.0" + is-ci "^3.0.0" + isbinaryfile "^5.0.0" + js-yaml "^4.1.0" + json5 "^2.2.3" + lazy-val "^1.0.5" + minimatch "^10.0.0" + plist "3.1.0" + resedit "^1.7.0" + semver "^7.3.8" + tar "^6.1.12" + temp-file "^3.4.0" + tiny-async-pool "1.3.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1.js@^5.3.0: + version "5.4.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +ast-types@^0.13.4: + version "0.13.4" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== + dependencies: + tslib "^2.0.1" + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +axios@^1.12.0, axios@^1.13.2: + version "1.13.2" + resolved "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz" + integrity sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.4" + proxy-from-env "^1.1.0" + +babel-jest@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz" + integrity sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw== + dependencies: + "@jest/transform" "30.2.0" + "@types/babel__core" "^7.20.5" + babel-plugin-istanbul "^7.0.1" + babel-preset-jest "30.2.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" + slash "^3.0.0" + +babel-plugin-istanbul@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz" + integrity sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-instrument "^6.0.2" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz" + integrity sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA== + dependencies: + "@types/babel__core" "^7.20.5" + +babel-preset-current-node-syntax@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz" + integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + +babel-preset-jest@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz" + integrity sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ== + dependencies: + babel-plugin-jest-hoist "30.2.0" + babel-preset-current-node-syntax "^1.2.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@2.0.0, base64id@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +baseline-browser-mapping@^2.8.25: + version "2.8.31" + resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.31.tgz" + integrity sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw== + +basic-ftp@^5.0.2: + version "5.0.5" + resolved "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz" + integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg== + +bignumber.js@^9.1.1: + version "9.3.1" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz" + integrity sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bn.js@^4.0.0, bn.js@^4.11.9: + version "4.12.2" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz" + integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw== + +body-parser@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz" + integrity sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg== + dependencies: + bytes "^3.1.2" + content-type "^1.0.5" + debug "^4.4.0" + http-errors "^2.0.0" + iconv-lite "^0.6.3" + on-finished "^2.4.1" + qs "^6.14.0" + raw-body "^3.0.0" + type-is "^2.0.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boolean@^3.0.1: + version "3.2.0" + resolved "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + +brace-expansion@^1.1.7: + version "1.1.12" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browserslist@^4.24.0: + version "4.28.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz" + integrity sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ== + dependencies: + baseline-browser-mapping "^2.8.25" + caniuse-lite "^1.0.30001754" + electron-to-chromium "^1.5.249" + node-releases "^2.0.27" + update-browserslist-db "^1.1.4" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +bson@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/bson/-/bson-7.0.0.tgz" + integrity sha512-Kwc6Wh4lQ5OmkqqKhYGKIuELXl+EPYSCObVE6bWsp1T/cGkOCBN0I8wF/T44BiuhHyNi1mmKVPXk60d41xZ7kw== + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-equal-constant-time@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.1.0, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builder-util-runtime@9.3.1: + version "9.3.1" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.3.1.tgz#0daedde0f6d381f2a00a50a407b166fe7dca1a67" + integrity sha512-2/egrNDDnRaxVwK3A+cJq6UOlqOdedGA7JPqCeJjN2Zjk1/QB/6QUi3b714ScIGS7HafFXTyzJEOr5b44I3kvQ== + dependencies: + debug "^4.3.4" + sax "^1.2.4" + +builder-util@26.0.11: + version "26.0.11" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-26.0.11.tgz#ad85b92c93f2b976b973e1d87337e0c6813fcb8f" + integrity sha512-xNjXfsldUEe153h1DraD0XvDOpqGR0L5eKFkdReB7eFW5HqysDZFfly4rckda6y9dF39N3pkPlOblcfHKGw+uA== + dependencies: + "7zip-bin" "~5.2.0" + "@types/debug" "^4.1.6" + app-builder-bin "5.0.0-alpha.12" + builder-util-runtime "9.3.1" + chalk "^4.1.2" + cross-spawn "^7.0.6" + debug "^4.3.4" + fs-extra "^10.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + is-ci "^3.0.0" + js-yaml "^4.1.0" + sanitize-filename "^1.6.3" + source-map-support "^0.5.19" + stat-mode "^1.0.0" + temp-file "^3.4.0" + tiny-async-pool "1.3.0" + +bytes@^3.1.2, bytes@~3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^16.1.0: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" + +cacache@^19.0.1: + version "19.0.1" + resolved "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz" + integrity sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ== + dependencies: + "@npmcli/fs" "^4.0.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^7.0.2" + ssri "^12.0.0" + tar "^7.4.3" + unique-filename "^4.0.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== + 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" + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + 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== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bound@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + +callsites@^3.0.0, callsites@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0, camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001754: + version "1.0.30001756" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz" + integrity sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A== + +canvas@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/canvas/-/canvas-3.2.0.tgz" + integrity sha512-jk0GxrLtUEmW/TmFsk2WghvgHe8B0pxGilqCL21y8lHkPUGa6FTsnCNtHPOzT8O3y+N+m3espawV80bbBlgfTA== + dependencies: + node-addon-api "^7.0.0" + prebuild-install "^7.1.3" + +chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chokidar@^3.5.2: + version "3.6.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chownr@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz" + integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== + +chromedriver@latest: + version "142.0.3" + resolved "https://registry.npmjs.org/chromedriver/-/chromedriver-142.0.3.tgz" + integrity sha512-1Ibm/tuJRTaIpRfGi6M3IEb61CAlPirkFHvfiLiiu3h8OEtJFKat/FSr8Rn8pBsJlCCRlb5UWdj+nZeAmRLQUg== + dependencies: + "@testim/chrome-version" "^1.1.4" + axios "^1.12.0" + compare-versions "^6.1.0" + extract-zip "^2.0.1" + proxy-agent "^6.4.0" + proxy-from-env "^1.1.0" + tcp-port-used "^1.0.2" + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +ci-info@^4.2.0: + version "4.3.1" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz" + integrity sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA== + +cjs-module-lexer@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz" + integrity sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ== + +classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1, classnames@^2.3.2, classnames@^2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cliui@^8.0.1: + 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== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +clone@2.x: + version "2.1.2" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +cockatiel@^3.1.1: + version "3.2.1" + resolved "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz" + integrity sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q== + +collect-v8-coverage@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz" + integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw== + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +compare-version@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== + +compare-versions@^6.1.0: + version "6.1.1" + resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz" + integrity sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg== + +component-emitter@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + +compute-scroll-into-view@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz" + integrity sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concurrently@^9.2.1: + version "9.2.1" + resolved "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz" + integrity sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng== + dependencies: + chalk "4.1.2" + rxjs "7.8.2" + shell-quote "1.8.3" + supports-color "8.1.1" + tree-kill "1.2.2" + yargs "17.7.2" + +config-file-ts@0.2.8-rc1: + version "0.2.8-rc1" + resolved "https://registry.yarnpkg.com/config-file-ts/-/config-file-ts-0.2.8-rc1.tgz#fb7fc6ccb2e313f69dbeb78f1db0b00038049de0" + integrity sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg== + dependencies: + glob "^10.3.12" + typescript "^5.4.3" + +content-disposition@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz" + integrity sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q== + +content-type@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz" + integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg== + +cookie@^0.7.1, cookie@~0.7.2: + version "0.7.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== + +cookiejar@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz" + integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== + +copy-to-clipboard@^3.3.3: + version "3.3.3" + resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== + dependencies: + toggle-selection "^1.0.6" + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +cors@~2.8.5: + version "2.8.5" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^8.1.3: + version "8.3.6" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +cross-env@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-10.1.0.tgz#cfd2a6200df9ed75bfb9cb3d7ce609c13ea21783" + integrity sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw== + dependencies: + "@epic-web/invariant" "^1.0.0" + cross-spawn "^7.0.6" + +cross-spawn@^7.0.1, cross-spawn@^7.0.3, cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-select@^5.1.0: + version "5.2.2" + resolved "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz" + integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.2.2" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz" + integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.1.3: + version "3.2.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" + integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== + +dank-do-while@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/dank-do-while/-/dank-do-while-0.1.2.tgz" + integrity sha512-pyMrgXfugjvdernLCcXNixYqGijUZzYxrb+hAeED2EBpNbctCCxdA/O6NIQXn6vIjwzY1IMmV29d2Y6vaayrwQ== + +data-uri-to-buffer@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz" + integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== + +date-format@^4.0.14: + version "4.0.14" + resolved "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz" + integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== + +dayjs@^1.11.11: + version "1.11.19" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz" + integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== + +debug@4, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@^4.3.7, debug@^4.4.0: + version "4.4.3" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + +debug@4.3.1: + version "4.3.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: + version "4.3.7" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +dedent@^1.6.0: + version "1.7.0" + resolved "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz" + integrity sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ== + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + 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== + +deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-data-property@^1.0.1: + 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== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +degenerator@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz" + integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ== + dependencies: + ast-types "^0.13.4" + escodegen "^2.1.0" + esprima "^4.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@^2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +detect-libc@^2.0.0, detect-libc@^2.0.1, detect-libc@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== + +detect-newline@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +dezalgo@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== + dependencies: + asap "^2.0.0" + wrappy "1" + +dir-compare@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-4.2.0.tgz#d1d4999c14fbf55281071fdae4293b3b9ce86f19" + integrity sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ== + dependencies: + minimatch "^3.0.5" + p-limit "^3.1.0 " + +dmg-builder@26.0.12: + version "26.0.12" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-26.0.12.tgz#6996ad0bab80a861c9a7b33ee9734d4f60566b46" + integrity sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w== + dependencies: + app-builder-lib "26.0.12" + builder-util "26.0.11" + builder-util-runtime "9.3.1" + fs-extra "^10.1.0" + iconv-lite "^0.6.2" + js-yaml "^4.1.0" + optionalDependencies: + dmg-license "^1.0.11" + +dmg-license@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.11.tgz#7b3bc3745d1b52be7506b4ee80cb61df6e4cd79a" + integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q== + 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" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.2.2" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dotenv-expand@^11.0.6: + version "11.0.7" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-11.0.7.tgz#af695aea007d6fdc84c86cd8d0ad7beb40a0bd08" + integrity sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA== + dependencies: + dotenv "^16.4.5" + +dotenv@^16.4.5: + version "16.6.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020" + integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^3.1.8: + version "3.1.10" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + +electron-builder@^26.0.12: + version "26.0.12" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-26.0.12.tgz#797af2e70efdd96c9ea5d8a8164b8728c90d65ff" + integrity sha512-cD1kz5g2sgPTMFHjLxfMjUK5JABq3//J4jPswi93tOPFz6btzXYtK5NrDt717NRbukCUDOrrvmYVOWERlqoiXA== + dependencies: + app-builder-lib "26.0.12" + builder-util "26.0.11" + builder-util-runtime "9.3.1" + chalk "^4.1.2" + dmg-builder "26.0.12" + fs-extra "^10.1.0" + is-ci "^3.0.0" + lazy-val "^1.0.5" + simple-update-notifier "2.0.0" + yargs "^17.6.2" + +electron-publish@26.0.11: + version "26.0.11" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-26.0.11.tgz#92c9329a101af2836d9d228c82966eca1eee9a7b" + integrity sha512-a8QRH0rAPIWH9WyyS5LbNvW9Ark6qe63/LqDB7vu2JXYpi0Gma5Q60Dh4tmTqhOBQt0xsrzD8qE7C+D7j+B24A== + dependencies: + "@types/fs-extra" "^9.0.11" + builder-util "26.0.11" + builder-util-runtime "9.3.1" + chalk "^4.1.2" + form-data "^4.0.0" + fs-extra "^10.1.0" + lazy-val "^1.0.5" + mime "^2.5.2" + +electron-to-chromium@^1.5.249: + version "1.5.259" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.259.tgz" + integrity sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ== + +electron@^38.7.1: + version "38.7.1" + resolved "https://registry.npmjs.org/electron/-/electron-38.7.1.tgz" + integrity sha512-mdFVpL80nZvIvajtl1Xz+2Q/a9tFGVnPO0YW/N+MqQUyZG8D9r3wrWoaEVBXTc1jI+Vkg77Eqqwh5FLiaYRI+A== + dependencies: + "@electron/get" "^2.0.0" + "@types/node" "^22.7.7" + extract-zip "^2.0.1" + +elliptic@^6.6.1: + version "6.6.1" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encodeurl@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + 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== + dependencies: + once "^1.4.0" + +engine.io-client@~6.6.1: + version "6.6.3" + resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz" + integrity sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.2.1" + ws "~8.17.1" + xmlhttprequest-ssl "~2.1.1" + +engine.io-parser@~5.2.1: + version "5.2.3" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz" + integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== + +engine.io@~6.6.0: + version "6.6.4" + resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz" + integrity sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g== + dependencies: + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.7.2" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~5.2.1" + ws "~8.17.1" + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + 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== + +error-ex@^1.3.1: + version "1.3.4" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz" + integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + 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== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + 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== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +esbuild@^0.25.0: + version "0.25.12" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz" + integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.25.12" + "@esbuild/android-arm" "0.25.12" + "@esbuild/android-arm64" "0.25.12" + "@esbuild/android-x64" "0.25.12" + "@esbuild/darwin-arm64" "0.25.12" + "@esbuild/darwin-x64" "0.25.12" + "@esbuild/freebsd-arm64" "0.25.12" + "@esbuild/freebsd-x64" "0.25.12" + "@esbuild/linux-arm" "0.25.12" + "@esbuild/linux-arm64" "0.25.12" + "@esbuild/linux-ia32" "0.25.12" + "@esbuild/linux-loong64" "0.25.12" + "@esbuild/linux-mips64el" "0.25.12" + "@esbuild/linux-ppc64" "0.25.12" + "@esbuild/linux-riscv64" "0.25.12" + "@esbuild/linux-s390x" "0.25.12" + "@esbuild/linux-x64" "0.25.12" + "@esbuild/netbsd-arm64" "0.25.12" + "@esbuild/netbsd-x64" "0.25.12" + "@esbuild/openbsd-arm64" "0.25.12" + "@esbuild/openbsd-x64" "0.25.12" + "@esbuild/openharmony-arm64" "0.25.12" + "@esbuild/sunos-x64" "0.25.12" + "@esbuild/win32-arm64" "0.25.12" + "@esbuild/win32-ia32" "0.25.12" + "@esbuild/win32-x64" "0.25.12" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-html@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@^1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +etcd3@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/etcd3/-/etcd3-1.1.2.tgz" + integrity sha512-YIampCz1/OmrVo/tR3QltAVUtYCQQOSFoqmHKKeoHbalm+WdXe3l4rhLIylklu8EzR/I3PBiOF4dC847dDskKg== + dependencies: + "@grpc/grpc-js" "^1.8.20" + "@grpc/proto-loader" "^0.7.8" + bignumber.js "^9.1.1" + cockatiel "^3.1.1" + +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-x@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz" + integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== + +expand-template@^2.0.3: + 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== + +expect@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz" + integrity sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw== + dependencies: + "@jest/expect-utils" "30.2.0" + "@jest/get-type" "30.1.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-util "30.2.0" + +exponential-backoff@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz" + integrity sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA== + +express@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/express/-/express-5.1.0.tgz" + integrity sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA== + dependencies: + accepts "^2.0.0" + body-parser "^2.2.0" + content-disposition "^1.0.0" + content-type "^1.0.5" + cookie "^0.7.1" + cookie-signature "^1.2.1" + debug "^4.4.0" + encodeurl "^2.0.0" + escape-html "^1.0.3" + etag "^1.8.1" + finalhandler "^2.1.0" + fresh "^2.0.0" + http-errors "^2.0.0" + merge-descriptors "^2.0.0" + mime-types "^3.0.0" + on-finished "^2.4.1" + once "^1.4.0" + parseurl "^1.3.3" + proxy-addr "^2.0.7" + qs "^6.14.0" + range-parser "^1.2.1" + router "^2.2.0" + send "^1.1.0" + serve-static "^2.2.0" + statuses "^2.0.1" + type-is "^2.0.1" + vary "^1.1.2" + +extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + 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== + +fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fb-watchman@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz" + integrity sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q== + dependencies: + debug "^4.4.0" + encodeurl "^2.0.0" + escape-html "^1.0.3" + on-finished "^2.4.1" + parseurl "^1.3.3" + statuses "^2.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flatted@^3.2.7: + version "3.3.3" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== + +follow-redirects@^1.15.6: + version "1.15.11" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + +form-data@^4.0.0, form-data@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== + 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" + +formidable@^3.5.4: + version "3.5.4" + resolved "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz" + integrity sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug== + dependencies: + "@paralleldrive/cuid2" "^2.2.2" + dezalgo "^1.0.4" + once "^1.4.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz" + integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== + +fs-constants@^1.0.0: + 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== + +fs-extra@^10.0.0, fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^11.1.1: + version "11.3.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.3.tgz#a27da23b72524e81ac6c3815cc0179b8c74c59ee" + integrity sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0, fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.3, fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + 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" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-uri@^6.0.1: + version "6.0.5" + resolved "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz" + integrity sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg== + dependencies: + basic-ftp "^5.0.2" + data-uri-to-buffer "^6.0.2" + debug "^4.3.4" + +github-from-package@0.0.0: + 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== + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^10.2.2, glob@^10.3.10, glob@^10.3.12: + version "10.5.0" + resolved "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== + 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" + +glob@^13.0.0: + version "13.0.0" + resolved "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz" + integrity sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA== + dependencies: + minimatch "^10.1.1" + minipass "^7.1.2" + path-scurry "^2.0.0" + +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +glob@^8.0.1, glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz" + integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== + 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" + +globalthis@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +got@^11.7.0, got@^11.8.5: + version "11.8.6" + resolved "https://registry.npmjs.org/got/-/got-11.8.6.tgz" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + 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" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6: + 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== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hosted-git-info@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: + version "4.2.0" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz" + integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== + +http-errors@^2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== + dependencies: + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: + version "7.0.2" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1, https-proxy-agent@^7.0.6: + version "7.0.6" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== + dependencies: + agent-base "^7.1.2" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +iconv-corefoundation@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz#31065e6ab2c9272154c8b0821151e2c88f1b002a" + integrity sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ== + dependencies: + cli-truncate "^2.1.0" + node-addon-api "^1.6.3" + +iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iconv-lite@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz" + integrity sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + +import-fresh@^3.3.0: + version "3.3.1" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +ip-address@^10.0.1: + version "10.1.0" + resolved "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz" + integrity sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q== + +ip-regex@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipp@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/ipp/-/ipp-2.0.1.tgz" + integrity sha512-p5dO2BXAVDnkv6IhUBupwydkq5/uw+DE+MGXnYzziNK1AtuLgbT9dFfJ3f8pA+J21n43TYipm6et/hTDEFJU/A== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-ci@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + 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== + +is-generator-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-mobile@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/is-mobile/-/is-mobile-5.0.0.tgz" + integrity sha512-Tz/yndySvLAEXh+Uk8liFCxOwVH6YutuR74utvOcu7I9Di+DwM0mtdPVZNaVvvBUM2OXxne/NhOs1zAO7riusQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz" + integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is2@^2.0.6: + version "2.0.9" + resolved "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz" + integrity sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g== + dependencies: + deep-is "^0.1.3" + ip-regex "^4.1.0" + is-url "^1.2.4" + +isbinaryfile@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +isbinaryfile@^5.0.0: + version "5.0.7" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.7.tgz#19a73f2281b7368dca9d3b3ac8a0434074670979" + integrity sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^5.0.0: + version "5.0.6" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz" + integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== + dependencies: + "@jridgewell/trace-mapping" "^0.3.23" + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + +istanbul-reports@^3.1.3: + version "3.2.0" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz" + integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jake@^10.8.5: + version "10.9.4" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.4.tgz#d626da108c63d5cfb00ab5c25fadc7e0084af8e6" + integrity sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA== + dependencies: + async "^3.2.6" + filelist "^1.0.4" + picocolors "^1.1.1" + +jest-changed-files@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz" + integrity sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ== + dependencies: + execa "^5.1.1" + jest-util "30.2.0" + p-limit "^3.1.0" + +jest-circus@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz" + integrity sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg== + dependencies: + "@jest/environment" "30.2.0" + "@jest/expect" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + chalk "^4.1.2" + co "^4.6.0" + dedent "^1.6.0" + is-generator-fn "^2.1.0" + jest-each "30.2.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-runtime "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" + p-limit "^3.1.0" + pretty-format "30.2.0" + pure-rand "^7.0.0" + slash "^3.0.0" + stack-utils "^2.0.6" + +jest-cli@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz" + integrity sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA== + dependencies: + "@jest/core" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + exit-x "^0.2.2" + import-local "^3.2.0" + jest-config "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + yargs "^17.7.2" + +jest-config@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz" + integrity sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA== + dependencies: + "@babel/core" "^7.27.4" + "@jest/get-type" "30.1.0" + "@jest/pattern" "30.0.1" + "@jest/test-sequencer" "30.2.0" + "@jest/types" "30.2.0" + babel-jest "30.2.0" + chalk "^4.1.2" + ci-info "^4.2.0" + deepmerge "^4.3.1" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-circus "30.2.0" + jest-docblock "30.2.0" + jest-environment-node "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-runner "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + micromatch "^4.0.8" + parse-json "^5.2.0" + pretty-format "30.2.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz" + integrity sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A== + dependencies: + "@jest/diff-sequences" "30.0.1" + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + pretty-format "30.2.0" + +jest-docblock@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz" + integrity sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA== + dependencies: + detect-newline "^3.1.0" + +jest-each@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz" + integrity sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ== + dependencies: + "@jest/get-type" "30.1.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + jest-util "30.2.0" + pretty-format "30.2.0" + +jest-environment-node@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz" + integrity sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA== + dependencies: + "@jest/environment" "30.2.0" + "@jest/fake-timers" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + jest-mock "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + +jest-haste-map@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz" + integrity sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw== + dependencies: + "@jest/types" "30.2.0" + "@types/node" "*" + anymatch "^3.1.3" + fb-watchman "^2.0.2" + graceful-fs "^4.2.11" + jest-regex-util "30.0.1" + jest-util "30.2.0" + jest-worker "30.2.0" + micromatch "^4.0.8" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.3" + +jest-leak-detector@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz" + integrity sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ== + dependencies: + "@jest/get-type" "30.1.0" + pretty-format "30.2.0" + +jest-matcher-utils@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz" + integrity sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg== + dependencies: + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + jest-diff "30.2.0" + pretty-format "30.2.0" + +jest-message-util@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz" + integrity sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@jest/types" "30.2.0" + "@types/stack-utils" "^2.0.3" + chalk "^4.1.2" + graceful-fs "^4.2.11" + micromatch "^4.0.8" + pretty-format "30.2.0" + slash "^3.0.0" + stack-utils "^2.0.6" + +jest-mock@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz" + integrity sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw== + dependencies: + "@jest/types" "30.2.0" + "@types/node" "*" + jest-util "30.2.0" + +jest-pnp-resolver@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@30.0.1: + version "30.0.1" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz" + integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== + +jest-resolve-dependencies@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz" + integrity sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w== + dependencies: + jest-regex-util "30.0.1" + jest-snapshot "30.2.0" + +jest-resolve@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz" + integrity sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A== + dependencies: + chalk "^4.1.2" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-pnp-resolver "^1.2.3" + jest-util "30.2.0" + jest-validate "30.2.0" + slash "^3.0.0" + unrs-resolver "^1.7.11" + +jest-runner@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz" + integrity sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ== + dependencies: + "@jest/console" "30.2.0" + "@jest/environment" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + chalk "^4.1.2" + emittery "^0.13.1" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-docblock "30.2.0" + jest-environment-node "30.2.0" + jest-haste-map "30.2.0" + jest-leak-detector "30.2.0" + jest-message-util "30.2.0" + jest-resolve "30.2.0" + jest-runtime "30.2.0" + jest-util "30.2.0" + jest-watcher "30.2.0" + jest-worker "30.2.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz" + integrity sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg== + dependencies: + "@jest/environment" "30.2.0" + "@jest/fake-timers" "30.2.0" + "@jest/globals" "30.2.0" + "@jest/source-map" "30.0.1" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + chalk "^4.1.2" + cjs-module-lexer "^2.1.0" + collect-v8-coverage "^1.0.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz" + integrity sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA== + dependencies: + "@babel/core" "^7.27.4" + "@babel/generator" "^7.27.5" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + "@babel/types" "^7.27.3" + "@jest/expect-utils" "30.2.0" + "@jest/get-type" "30.1.0" + "@jest/snapshot-utils" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + babel-preset-current-node-syntax "^1.2.0" + chalk "^4.1.2" + expect "30.2.0" + graceful-fs "^4.2.11" + jest-diff "30.2.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-util "30.2.0" + pretty-format "30.2.0" + semver "^7.7.2" + synckit "^0.11.8" + +jest-util@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz" + integrity sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA== + dependencies: + "@jest/types" "30.2.0" + "@types/node" "*" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" + +jest-validate@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz" + integrity sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw== + dependencies: + "@jest/get-type" "30.1.0" + "@jest/types" "30.2.0" + camelcase "^6.3.0" + chalk "^4.1.2" + leven "^3.1.0" + pretty-format "30.2.0" + +jest-watcher@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz" + integrity sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg== + dependencies: + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + emittery "^0.13.1" + jest-util "30.2.0" + string-length "^4.0.2" + +jest-worker@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz" + integrity sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g== + dependencies: + "@types/node" "*" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.2.0" + merge-stream "^2.0.0" + supports-color "^8.1.1" + +jest@^30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz" + integrity sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A== + dependencies: + "@jest/core" "30.2.0" + "@jest/types" "30.2.0" + import-local "^3.2.0" + jest-cli "30.2.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.2" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz" + integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== + dependencies: + argparse "^2.0.1" + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0: + 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== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz" + integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== + dependencies: + string-convert "^0.2.0" + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^9.0.2: + version "9.0.2" + resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^7.5.4" + +jwa@^1.4.1: + version "1.4.2" + resolved "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz" + integrity sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw== + dependencies: + buffer-equal-constant-time "^1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jwk-to-pem@^2.0.0: + version "2.0.7" + resolved "https://registry.npmjs.org/jwk-to-pem/-/jwk-to-pem-2.0.7.tgz" + integrity sha512-cSVphrmWr6reVchuKQZdfSs4U9c5Y4hwZggPoz6cbVnTpAVgGRpEuQng86IyqLeGZlhTh+c4MAreB6KbdQDKHQ== + dependencies: + asn1.js "^5.3.0" + elliptic "^6.6.1" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +kareem@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/kareem/-/kareem-3.0.0.tgz" + integrity sha512-RKhaOBSPN8L7y4yAgNhDT2602G5FD6QbOIISbjN9D6mjHPeqeg7K+EB5IGSU5o81/X2Gzm3ICnAvQW3x3OP8HA== + +keycloak-connect@^26.1.1: + version "26.1.1" + resolved "https://registry.npmjs.org/keycloak-connect/-/keycloak-connect-26.1.1.tgz" + integrity sha512-2wvNJXldB9Em+mp6liJ+AnftcJovFEvNhUgv3hblNDmVihBoBqn4zFlwLIN41lo0H8CicB2T86xZ5U2MiQ9FFA== + dependencies: + jwk-to-pem "^2.0.0" + optionalDependencies: + chromedriver latest + +keyv@^4.0.0: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +lazy-val@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" + integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash@^4.17.15, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log4js@^6.9.1: + version "6.9.1" + resolved "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz" + integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + flatted "^3.2.7" + rfdc "^1.3.0" + streamroller "^3.1.5" + +long@^5.0.0: + version "5.3.2" + resolved "https://registry.npmjs.org/long/-/long-5.3.2.tgz" + integrity sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA== + +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^10.0.1, lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^11.0.0: + version "11.2.2" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz" + integrity sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-cache@^7.14.1, lru-cache@^7.7.1: + version "7.18.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-fetch-happen@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + +make-fetch-happen@^14.0.3: + version "14.0.3" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz" + integrity sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ== + dependencies: + "@npmcli/agent" "^3.0.0" + cacache "^19.0.1" + http-cache-semantics "^4.1.1" + minipass "^7.0.2" + minipass-fetch "^4.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^1.0.0" + proc-log "^5.0.0" + promise-retry "^2.0.1" + ssri "^12.0.0" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz" + integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== + +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + +merge-descriptors@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz" + integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +methods@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-db@^1.54.0: + version "1.54.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + +mime-types@^2.1.12, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@^3.0.0, mime-types@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz" + integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A== + dependencies: + mime-db "^1.54.0" + +mime@2.6.0, mime@^2.5.2: + version "2.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + 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== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@^10.0.0, minimatch@^10.1.1: + version "10.1.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz" + integrity sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ== + dependencies: + "@isaacs/brace-expansion" "^5.0.0" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.3, minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== + dependencies: + minipass "^7.0.3" + +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-fetch@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz" + integrity sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^3.0.1" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: + version "3.3.6" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.0.4, minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +minizlib@^3.0.1, minizlib@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz" + integrity sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw== + dependencies: + minipass "^7.1.2" + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mongodb-connection-string-url@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-7.0.0.tgz" + integrity sha512-irhhjRVLE20hbkRl4zpAYLnDMM+zIZnp0IDB9akAFFUZp/3XdOfwwddc7y6cNvF2WCEtfTYRwYbIfYa2kVY0og== + dependencies: + "@types/whatwg-url" "^13.0.0" + whatwg-url "^14.1.0" + +mongodb@~7.0: + version "7.0.0" + resolved "https://registry.npmjs.org/mongodb/-/mongodb-7.0.0.tgz" + integrity sha512-vG/A5cQrvGGvZm2mTnCSz1LUcbOPl83hfB6bxULKQ8oFZauyox/2xbZOoGNl+64m8VBrETkdGCDBdOsCr3F3jg== + dependencies: + "@mongodb-js/saslprep" "^1.3.0" + bson "^7.0.0" + mongodb-connection-string-url "^7.0.0" + +mongoose@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/mongoose/-/mongoose-9.0.0.tgz" + integrity sha512-J6wTGC8/hSFpy9K6kPbKDnBNoUcX4iOGCasUrRzlSKdwdVNxdscLA4oHKOQwJlHqh/TxDNg+Uzg6koCyCKP0wA== + dependencies: + kareem "3.0.0" + mongodb "~7.0" + mpath "0.9.0" + mquery "6.0.0" + ms "2.1.3" + sift "17.1.3" + +mpath@0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz" + integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== + +mquery@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/mquery/-/mquery-6.0.0.tgz" + integrity sha512-b2KQNsmgtkscfeDgkYMcWGn9vZI9YoXh802VDEwE6qc50zxBFQ0Oo8ROkawbPAsXCY1/Z1yp0MagqsZStPWJjw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== + +napi-build-utils@^2.0.0: + 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== + +napi-postinstall@^0.3.0: + version "0.3.4" + resolved "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz" + integrity sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +negotiator@^0.6.3: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +negotiator@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz" + integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== + +netmask@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^3.3.0, node-abi@^3.45.0: + version "3.85.0" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.85.0.tgz" + integrity sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg== + dependencies: + semver "^7.3.5" + +node-abi@^4.2.0: + version "4.24.0" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-4.24.0.tgz" + integrity sha512-u2EC1CeNe25uVtX3EZbdQ275c74zdZmmpzrHEQh2aIYqoVjlglfUpOX9YY85x1nlBydEKDVaSmMNhR7N82Qj8A== + dependencies: + semver "^7.6.3" + +node-addon-api@^1.6.3: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + +node-api-version@^0.2.0, node-api-version@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.1.tgz" + integrity sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q== + dependencies: + semver "^7.3.5" + +node-cache@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz" + integrity sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg== + dependencies: + clone "2.x" + +node-gyp@^11.2.0: + version "11.5.0" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-11.5.0.tgz" + integrity sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + graceful-fs "^4.2.6" + make-fetch-happen "^14.0.3" + nopt "^8.0.0" + proc-log "^5.0.0" + semver "^7.3.5" + tar "^7.4.3" + tinyglobby "^0.2.12" + which "^5.0.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.27: + version "2.0.27" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== + +node-thermal-printer@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/node-thermal-printer/-/node-thermal-printer-4.5.0.tgz" + integrity sha512-HJVyfq9Lr5+t1rDXlz9AgeNEqK1xsRzK5bP3DGmx60QVe5pmihrD18tyuM9xx4Eq5HqmQKyEqAK09Z4+9gyAcg== + dependencies: + iconv-lite "0.6.3" + pngjs "7.0.0" + unorm "1.6.0" + write-file-queue "0.0.1" + +nodemon@^3.1.11: + version "3.1.11" + resolved "https://registry.npmjs.org/nodemon/-/nodemon-3.1.11.tgz" + integrity sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g== + dependencies: + chokidar "^3.5.2" + debug "^4" + ignore-by-default "^1.0.1" + minimatch "^3.1.2" + pstree.remy "^1.1.8" + semver "^7.5.3" + simple-update-notifier "^2.0.0" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +nopt@^8.0.0: + version "8.1.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz" + integrity sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A== + dependencies: + abbrev "^3.0.0" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +on-finished@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +ora@^5.1.0: + version "5.4.1" + resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.1.0, "p-limit@^3.1.0 ": + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz" + integrity sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pac-proxy-agent@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz" + integrity sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA== + dependencies: + "@tootallnate/quickjs-emscripten" "^0.23.0" + agent-base "^7.1.2" + debug "^4.3.4" + get-uri "^6.0.1" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.6" + pac-resolver "^7.0.1" + socks-proxy-agent "^8.0.5" + +pac-resolver@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz" + integrity sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg== + dependencies: + degenerator "^5.0.0" + netmask "^2.0.2" + +package-json-from-dist@^1.0.0, package-json-from-dist@^1.0.1: + 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== + +parent-module@^1.0.0: + 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== + dependencies: + callsites "^3.0.0" + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + 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" + +parseurl@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-scurry@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz" + integrity sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + +path-to-regexp@^8.0.0: + version "8.3.0" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz" + integrity sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pdf-to-img@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/pdf-to-img/-/pdf-to-img-5.0.0.tgz" + integrity sha512-QJy7P2Qbk86lntPPIC3HVZAyw/CvM+CP592UbO7grborOJ74Icspb8A2sdHO33MDb/WHwHZpSJxd771rQTlZKA== + dependencies: + pdfjs-dist "~5.4.0" + +pdfjs-dist@~5.4.0: + version "5.4.394" + resolved "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.394.tgz" + integrity sha512-9ariAYGqUJzx+V/1W4jHyiyCep6IZALmDzoaTLZ6VNu8q9LWi1/ukhzHgE2Xsx96AZi0mbZuK4/ttIbqSbLypg== + optionalDependencies: + "@napi-rs/canvas" "^0.1.81" + +pe-library@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/pe-library/-/pe-library-0.4.1.tgz#e269be0340dcb13aa6949d743da7d658c3e2fbea" + integrity sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +picocolors@^1.0.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^4.0.2, picomatch@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + +pirates@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +plist@3.1.0, plist@^3.0.4, plist@^3.0.5, plist@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" + integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== + dependencies: + "@xmldom/xmldom" "^0.8.8" + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + +pngjs@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz" + integrity sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow== + +postcss@^8.5.6: + version "8.5.6" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== + dependencies: + nanoid "^3.3.11" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +prebuild-install@^7.1.3: + version "7.1.3" + resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz" + integrity sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug== + 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" + +pretty-format@30.2.0: + version "30.2.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz" + integrity sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA== + dependencies: + "@jest/schemas" "30.0.5" + ansi-styles "^5.2.0" + react-is "^18.3.1" + +proc-log@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" + integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== + +proc-log@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz" + integrity sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ== + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +protobufjs@^7.2.5, protobufjs@^7.5.3: + version "7.5.4" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz" + integrity sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +proxy-addr@^2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-agent@^6.4.0: + version "6.5.0" + resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz" + integrity sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A== + dependencies: + agent-base "^7.1.2" + debug "^4.3.4" + http-proxy-agent "^7.0.1" + https-proxy-agent "^7.0.6" + lru-cache "^7.14.1" + pac-proxy-agent "^7.1.0" + proxy-from-env "^1.1.0" + socks-proxy-agent "^8.0.5" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +pump@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz" + integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pure-rand@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz" + integrity sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ== + +qs@^6.11.2, qs@^6.14.0: + version "6.14.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz" + integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== + dependencies: + side-channel "^1.1.0" + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +range-parser@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz" + integrity sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA== + dependencies: + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.7.0" + unpipe "~1.0.0" + +rc-cascader@~3.34.0: + version "3.34.0" + resolved "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz" + integrity sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag== + dependencies: + "@babel/runtime" "^7.25.7" + classnames "^2.3.1" + rc-select "~14.16.2" + rc-tree "~5.13.0" + rc-util "^5.43.0" + +rc-checkbox@~3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz" + integrity sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.3.2" + rc-util "^5.25.2" + +rc-collapse@~3.9.0: + version "3.9.0" + resolved "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz" + integrity sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.3.4" + rc-util "^5.27.0" + +rc-dialog@~9.6.0: + version "9.6.0" + resolved "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz" + integrity sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/portal" "^1.0.0-8" + classnames "^2.2.6" + rc-motion "^2.3.0" + rc-util "^5.21.0" + +rc-drawer@~7.3.0: + version "7.3.0" + resolved "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.3.0.tgz" + integrity sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg== + dependencies: + "@babel/runtime" "^7.23.9" + "@rc-component/portal" "^1.1.1" + classnames "^2.2.6" + rc-motion "^2.6.1" + rc-util "^5.38.1" + +rc-dropdown@~4.2.0, rc-dropdown@~4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz" + integrity sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA== + dependencies: + "@babel/runtime" "^7.18.3" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.6" + rc-util "^5.44.1" + +rc-field-form@~2.7.1: + version "2.7.1" + resolved "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.1.tgz" + integrity sha512-vKeSifSJ6HoLaAB+B8aq/Qgm8a3dyxROzCtKNCsBQgiverpc4kWDQihoUwzUj+zNWJOykwSY4dNX3QrGwtVb9A== + dependencies: + "@babel/runtime" "^7.18.0" + "@rc-component/async-validator" "^5.0.3" + rc-util "^5.32.2" + +rc-image@~7.12.0: + version "7.12.0" + resolved "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz" + integrity sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q== + dependencies: + "@babel/runtime" "^7.11.2" + "@rc-component/portal" "^1.0.2" + classnames "^2.2.6" + rc-dialog "~9.6.0" + rc-motion "^2.6.2" + rc-util "^5.34.1" + +rc-input-number@~9.5.0: + version "9.5.0" + resolved "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz" + integrity sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/mini-decimal" "^1.0.1" + classnames "^2.2.5" + rc-input "~1.8.0" + rc-util "^5.40.1" + +rc-input@~1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz" + integrity sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.18.1" + +rc-mentions@~2.20.0: + version "2.20.0" + resolved "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz" + integrity sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ== + dependencies: + "@babel/runtime" "^7.22.5" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.6" + rc-input "~1.8.0" + rc-menu "~9.16.0" + rc-textarea "~1.10.0" + rc-util "^5.34.1" + +rc-menu@~9.16.0, rc-menu@~9.16.1: + version "9.16.1" + resolved "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz" + integrity sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^2.0.0" + classnames "2.x" + rc-motion "^2.4.3" + rc-overflow "^1.3.1" + rc-util "^5.27.0" + +rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.6.1, rc-motion@^2.6.2, rc-motion@^2.9.0, rc-motion@^2.9.5: + version "2.9.5" + resolved "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz" + integrity sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.44.0" + +rc-notification@~5.6.4: + version "5.6.4" + resolved "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz" + integrity sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.9.0" + rc-util "^5.20.1" + +rc-overflow@^1.3.1, rc-overflow@^1.3.2: + version "1.5.0" + resolved "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.5.0.tgz" + integrity sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-resize-observer "^1.0.0" + rc-util "^5.37.0" + +rc-pagination@~5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz" + integrity sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.3.2" + rc-util "^5.38.0" + +rc-picker@~4.11.3: + version "4.11.3" + resolved "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz" + integrity sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg== + dependencies: + "@babel/runtime" "^7.24.7" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.1" + rc-overflow "^1.3.2" + rc-resize-observer "^1.4.0" + rc-util "^5.43.0" + +rc-progress@~4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz" + integrity sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.6" + rc-util "^5.16.1" + +rc-rate@~2.13.1: + version "2.13.1" + resolved "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz" + integrity sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.0.1" + +rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.3.1, rc-resize-observer@^1.4.0, rc-resize-observer@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz" + integrity sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ== + dependencies: + "@babel/runtime" "^7.20.7" + classnames "^2.2.1" + rc-util "^5.44.1" + resize-observer-polyfill "^1.5.1" + +rc-segmented@~2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz" + integrity sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-motion "^2.4.4" + rc-util "^5.17.0" + +rc-select@~14.16.2, rc-select@~14.16.8: + version "14.16.8" + resolved "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz" + integrity sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^2.1.1" + classnames "2.x" + rc-motion "^2.0.1" + rc-overflow "^1.3.1" + rc-util "^5.16.1" + rc-virtual-list "^3.5.2" + +rc-slider@~11.1.9: + version "11.1.9" + resolved "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.9.tgz" + integrity sha512-h8IknhzSh3FEM9u8ivkskh+Ef4Yo4JRIY2nj7MrH6GQmrwV6mcpJf5/4KgH5JaVI1H3E52yCdpOlVyGZIeph5A== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.36.0" + +rc-steps@~6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz" + integrity sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g== + dependencies: + "@babel/runtime" "^7.16.7" + classnames "^2.2.3" + rc-util "^5.16.1" + +rc-switch@~4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz" + integrity sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg== + dependencies: + "@babel/runtime" "^7.21.0" + classnames "^2.2.1" + rc-util "^5.30.0" + +rc-table@~7.54.0: + version "7.54.0" + resolved "https://registry.npmjs.org/rc-table/-/rc-table-7.54.0.tgz" + integrity sha512-/wDTkki6wBTjwylwAGjpLKYklKo9YgjZwAU77+7ME5mBoS32Q4nAwoqhA2lSge6fobLW3Tap6uc5xfwaL2p0Sw== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/context" "^1.4.0" + classnames "^2.2.5" + rc-resize-observer "^1.1.0" + rc-util "^5.44.3" + rc-virtual-list "^3.14.2" + +rc-tabs@~15.7.0: + version "15.7.0" + resolved "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.7.0.tgz" + integrity sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA== + dependencies: + "@babel/runtime" "^7.11.2" + classnames "2.x" + rc-dropdown "~4.2.0" + rc-menu "~9.16.0" + rc-motion "^2.6.2" + rc-resize-observer "^1.0.0" + rc-util "^5.34.1" + +rc-textarea@~1.10.0, rc-textarea@~1.10.2: + version "1.10.2" + resolved "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.2.tgz" + integrity sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.1" + rc-input "~1.8.0" + rc-resize-observer "^1.0.0" + rc-util "^5.27.0" + +rc-tooltip@~6.4.0: + version "6.4.0" + resolved "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz" + integrity sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g== + dependencies: + "@babel/runtime" "^7.11.2" + "@rc-component/trigger" "^2.0.0" + classnames "^2.3.1" + rc-util "^5.44.3" + +rc-tree-select@~5.27.0: + version "5.27.0" + resolved "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz" + integrity sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww== + dependencies: + "@babel/runtime" "^7.25.7" + classnames "2.x" + rc-select "~14.16.2" + rc-tree "~5.13.0" + rc-util "^5.43.0" + +rc-tree@~5.13.0, rc-tree@~5.13.1: + version "5.13.1" + resolved "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz" + integrity sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.0.1" + rc-util "^5.16.1" + rc-virtual-list "^3.5.1" + +rc-upload@~4.11.0: + version "4.11.0" + resolved "https://registry.npmjs.org/rc-upload/-/rc-upload-4.11.0.tgz" + integrity sha512-ZUyT//2JAehfHzjWowqROcwYJKnZkIUGWaTE/VogVrepSl7AFNbQf4+zGfX4zl9Vrj/Jm8scLO0R6UlPDKK4wA== + dependencies: + "@babel/runtime" "^7.18.3" + classnames "^2.2.5" + rc-util "^5.2.0" + +rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.40.1, rc-util@^5.43.0, rc-util@^5.44.0, rc-util@^5.44.1, rc-util@^5.44.3, rc-util@^5.44.4: + version "5.44.4" + resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz" + integrity sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w== + dependencies: + "@babel/runtime" "^7.18.3" + react-is "^18.2.0" + +rc-virtual-list@^3.14.2, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: + version "3.19.2" + resolved "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.2.tgz" + integrity sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA== + dependencies: + "@babel/runtime" "^7.20.0" + classnames "^2.2.6" + rc-resize-observer "^1.0.0" + rc-util "^5.36.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dom@^19.2.0: + version "19.2.0" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz" + integrity sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ== + dependencies: + scheduler "^0.27.0" + +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^18.2.0, react-is@^18.3.1: + version "18.3.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-refresh@^0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz" + integrity sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw== + +react@^19.2.0: + version "19.2.0" + resolved "https://registry.npmjs.org/react/-/react-19.2.0.tgz" + integrity sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ== + +read-binary-file-arch@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz" + integrity sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg== + dependencies: + debug "^4.3.4" + +readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +require-directory@^2.1.1: + 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== + +resedit@^1.7.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/resedit/-/resedit-1.7.2.tgz#b1041170b99811710c13f949c7d225871de4cc78" + integrity sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA== + dependencies: + pe-library "^0.4.1" + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +rfdc@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-6.1.2.tgz" + integrity sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g== + dependencies: + glob "^13.0.0" + package-json-from-dist "^1.0.1" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + 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" + +rollup@^4.43.0: + version "4.53.3" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz" + integrity sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA== + dependencies: + "@types/estree" "1.0.8" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.53.3" + "@rollup/rollup-android-arm64" "4.53.3" + "@rollup/rollup-darwin-arm64" "4.53.3" + "@rollup/rollup-darwin-x64" "4.53.3" + "@rollup/rollup-freebsd-arm64" "4.53.3" + "@rollup/rollup-freebsd-x64" "4.53.3" + "@rollup/rollup-linux-arm-gnueabihf" "4.53.3" + "@rollup/rollup-linux-arm-musleabihf" "4.53.3" + "@rollup/rollup-linux-arm64-gnu" "4.53.3" + "@rollup/rollup-linux-arm64-musl" "4.53.3" + "@rollup/rollup-linux-loong64-gnu" "4.53.3" + "@rollup/rollup-linux-ppc64-gnu" "4.53.3" + "@rollup/rollup-linux-riscv64-gnu" "4.53.3" + "@rollup/rollup-linux-riscv64-musl" "4.53.3" + "@rollup/rollup-linux-s390x-gnu" "4.53.3" + "@rollup/rollup-linux-x64-gnu" "4.53.3" + "@rollup/rollup-linux-x64-musl" "4.53.3" + "@rollup/rollup-openharmony-arm64" "4.53.3" + "@rollup/rollup-win32-arm64-msvc" "4.53.3" + "@rollup/rollup-win32-ia32-msvc" "4.53.3" + "@rollup/rollup-win32-x64-gnu" "4.53.3" + "@rollup/rollup-win32-x64-msvc" "4.53.3" + fsevents "~2.3.2" + +router@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/router/-/router-2.2.0.tgz" + integrity sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ== + dependencies: + debug "^4.4.0" + depd "^2.0.0" + is-promise "^4.0.0" + parseurl "^1.3.3" + path-to-regexp "^8.0.0" + +rxjs@7.8.2: + version "7.8.2" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== + dependencies: + tslib "^2.1.0" + +safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +sax@^1.2.4: + version "1.4.3" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.3.tgz#fcebae3b756cdc8428321805f4b70f16ec0ab5db" + integrity sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ== + +scheduler@^0.27.0: + version "0.27.0" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz" + integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== + +scroll-into-view-if-needed@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz" + integrity sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ== + dependencies: + compute-scroll-into-view "^3.0.2" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +semver@^5.5.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.2.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.2, semver@^7.3.5, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3, semver@^7.7.2, semver@^7.7.3: + version "7.7.3" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== + +send@^1.1.0, send@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/send/-/send-1.2.0.tgz" + integrity sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw== + dependencies: + debug "^4.3.5" + encodeurl "^2.0.0" + escape-html "^1.0.3" + etag "^1.8.1" + fresh "^2.0.0" + http-errors "^2.0.0" + mime-types "^3.0.1" + ms "^2.1.3" + on-finished "^2.4.1" + range-parser "^1.2.1" + statuses "^2.0.1" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +serve-static@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz" + integrity sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ== + dependencies: + encodeurl "^2.0.0" + escape-html "^1.0.3" + parseurl "^1.3.3" + send "^1.2.0" + +setprototypeof@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sharp@^0.34.5: + version "0.34.5" + resolved "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz" + integrity sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg== + dependencies: + "@img/colour" "^1.0.0" + detect-libc "^2.1.2" + semver "^7.7.3" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.34.5" + "@img/sharp-darwin-x64" "0.34.5" + "@img/sharp-libvips-darwin-arm64" "1.2.4" + "@img/sharp-libvips-darwin-x64" "1.2.4" + "@img/sharp-libvips-linux-arm" "1.2.4" + "@img/sharp-libvips-linux-arm64" "1.2.4" + "@img/sharp-libvips-linux-ppc64" "1.2.4" + "@img/sharp-libvips-linux-riscv64" "1.2.4" + "@img/sharp-libvips-linux-s390x" "1.2.4" + "@img/sharp-libvips-linux-x64" "1.2.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" + "@img/sharp-libvips-linuxmusl-x64" "1.2.4" + "@img/sharp-linux-arm" "0.34.5" + "@img/sharp-linux-arm64" "0.34.5" + "@img/sharp-linux-ppc64" "0.34.5" + "@img/sharp-linux-riscv64" "0.34.5" + "@img/sharp-linux-s390x" "0.34.5" + "@img/sharp-linux-x64" "0.34.5" + "@img/sharp-linuxmusl-arm64" "0.34.5" + "@img/sharp-linuxmusl-x64" "0.34.5" + "@img/sharp-wasm32" "0.34.5" + "@img/sharp-win32-arm64" "0.34.5" + "@img/sharp-win32-ia32" "0.34.5" + "@img/sharp-win32-x64" "0.34.5" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.8.3: + version "1.8.3" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== + +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +sift@17.1.3: + version "17.1.3" + resolved "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz" + integrity sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ== + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-update-notifier@2.0.0, simple-update-notifier@^2.0.0: + 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== + dependencies: + semver "^7.5.3" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.0.2, smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +socket.io-adapter@~2.5.2: + version "2.5.5" + resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz" + integrity sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg== + dependencies: + debug "~4.3.4" + ws "~8.17.1" + +socket.io-client@^4.8.1: + version "4.8.1" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz" + integrity sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.2" + engine.io-client "~6.6.1" + socket.io-parser "~4.2.4" + +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +socket.io@^4.8.1: + version "4.8.1" + resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz" + integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg== + dependencies: + accepts "~1.3.4" + base64id "~2.0.0" + cors "~2.8.5" + debug "~4.3.2" + engine.io "~6.6.0" + socket.io-adapter "~2.5.2" + socket.io-parser "~4.2.4" + +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks-proxy-agent@^8.0.3, socks-proxy-agent@^8.0.5: + version "8.0.5" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz" + integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw== + dependencies: + agent-base "^7.1.2" + debug "^4.3.4" + socks "^2.8.3" + +socks@^2.6.2, socks@^2.8.3: + version "2.8.7" + resolved "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz" + integrity sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A== + dependencies: + ip-address "^10.0.1" + smart-buffer "^4.2.0" + +source-map-js@^1.0.1, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@^0.5.19: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz" + integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== + dependencies: + memory-pager "^1.0.2" + +sprintf-js@^1.1.2: + 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== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +ssri@^12.0.0: + version "12.0.0" + resolved "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz" + integrity sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ== + dependencies: + minipass "^7.0.3" + +ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" + +stack-utils@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stat-mode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" + integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== + +statuses@^2.0.1, statuses@~2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== + +streamroller@^3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz" + integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + fs-extra "^8.1.0" + +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz" + integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== + +string-length@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + 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== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.2" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +stylis@^4.3.4: + version "4.3.6" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz" + integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ== + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +superagent@^10.2.3: + version "10.2.3" + resolved "https://registry.npmjs.org/superagent/-/superagent-10.2.3.tgz" + integrity sha512-y/hkYGeXAj7wUMjxRbB21g/l6aAEituGXM9Rwl4o20+SX3e8YOSV6BxFXl+dL3Uk0mjSL3kCbNkwURm8/gEDig== + dependencies: + component-emitter "^1.3.1" + cookiejar "^2.1.4" + debug "^4.3.7" + fast-safe-stringify "^2.1.1" + form-data "^4.0.4" + formidable "^3.5.4" + methods "^1.1.2" + mime "2.6.0" + qs "^6.11.2" + +supertest@^7.1.4: + version "7.1.4" + resolved "https://registry.npmjs.org/supertest/-/supertest-7.1.4.tgz" + integrity sha512-tjLPs7dVyqgItVFirHYqe2T+MfWc2VOBQ8QFKKbWTA3PU7liZR8zoSpAi/C1k1ilm9RsXIKYf197oap9wXGVYg== + dependencies: + methods "^1.1.2" + superagent "^10.2.3" + +supports-color@8.1.1, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +svg-parser@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + +synckit@^0.11.8: + version "0.11.11" + resolved "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz" + integrity sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw== + dependencies: + "@pkgr/core" "^0.2.9" + +tar-fs@^2.0.0: + version "2.1.4" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz" + integrity sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + 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" + +tar@^6.0.5, tar@^6.1.11, tar@^6.1.12, tar@^6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + 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" + +tar@^7.4.3: + version "7.5.2" + resolved "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz" + integrity sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg== + dependencies: + "@isaacs/fs-minipass" "^4.0.0" + chownr "^3.0.0" + minipass "^7.1.2" + minizlib "^3.1.0" + yallist "^5.0.0" + +tcp-port-used@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz" + integrity sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA== + dependencies: + debug "4.3.1" + is2 "^2.0.6" + +temp-file@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" + integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== + dependencies: + async-exit-hook "^2.0.1" + fs-extra "^10.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +throttle-debounce@^5.0.0, throttle-debounce@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz" + integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A== + +tiny-async-pool@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz#c013e1b369095e7005db5595f95e646cca6ef8a5" + integrity sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA== + dependencies: + semver "^5.5.0" + +tinyglobby@^0.2.12, tinyglobby@^0.2.15: + version "0.2.15" + resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" + integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== + dependencies: + fdir "^6.5.0" + picomatch "^4.0.3" + +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0: + version "0.2.5" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" + integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-regex-range@^5.0.1: + 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== + dependencies: + is-number "^7.0.0" + +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz" + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== + +toidentifier@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +touch@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz" + integrity sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA== + +tr46@^5.1.0: + version "5.1.1" + resolved "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz" + integrity sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw== + dependencies: + punycode "^2.3.1" + +tree-kill@1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + +tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: + version "2.8.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-is@^2.0.0, type-is@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz" + integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw== + dependencies: + content-type "^1.0.5" + media-typer "^1.1.0" + mime-types "^3.0.0" + +typescript@^5.4.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== + +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== + +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + +unique-filename@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz" + integrity sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ== + dependencies: + unique-slug "^5.0.0" + +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + +unique-slug@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz" + integrity sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unorm@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz" + integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unrs-resolver@^1.7.11: + version "1.11.1" + resolved "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz" + integrity sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg== + dependencies: + napi-postinstall "^0.3.0" + optionalDependencies: + "@unrs/resolver-binding-android-arm-eabi" "1.11.1" + "@unrs/resolver-binding-android-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-x64" "1.11.1" + "@unrs/resolver-binding-freebsd-x64" "1.11.1" + "@unrs/resolver-binding-linux-arm-gnueabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm-musleabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-arm64-musl" "1.11.1" + "@unrs/resolver-binding-linux-ppc64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-musl" "1.11.1" + "@unrs/resolver-binding-linux-s390x-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-musl" "1.11.1" + "@unrs/resolver-binding-wasm32-wasi" "1.11.1" + "@unrs/resolver-binding-win32-arm64-msvc" "1.11.1" + "@unrs/resolver-binding-win32-ia32-msvc" "1.11.1" + "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" + +update-browserslist-db@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz" + integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +utf8-byte-length@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz#f9f63910d15536ee2b2d5dd4665389715eac5c1e" + integrity sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +v8-to-istanbul@^9.0.1: + version "9.3.0" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz" + integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + +vary@^1, vary@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +verror@^1.10.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb" + integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vite-plugin-svgo@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/vite-plugin-svgo/-/vite-plugin-svgo-2.0.0.tgz" + integrity sha512-WaiOUlmt1fKw1w/WWJnx9gVk42D1BASKZmGCPpy6iTLE5iIemN2lim3MwI7Rffyt3aQnPrLfLSLnI8ZUJ9s49g== + dependencies: + svgo "3.3.2" + +vite-plugin-svgr@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.5.0.tgz" + integrity sha512-W+uoSpmVkSmNOGPSsDCWVW/DDAyv+9fap9AZXBvWiQqrboJ08j2vh0tFxTD/LjwqwAd3yYSVJgm54S/1GhbdnA== + dependencies: + "@rollup/pluginutils" "^5.2.0" + "@svgr/core" "^8.1.0" + "@svgr/plugin-jsx" "^8.1.0" + +vite@^7.2.4: + version "7.2.4" + resolved "https://registry.npmjs.org/vite/-/vite-7.2.4.tgz" + integrity sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w== + dependencies: + esbuild "^0.25.0" + fdir "^6.5.0" + picomatch "^4.0.3" + postcss "^8.5.6" + rollup "^4.43.0" + tinyglobby "^0.2.15" + optionalDependencies: + fsevents "~2.3.3" + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +whatwg-url@^14.1.0: + version "14.2.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz" + integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw== + dependencies: + tr46 "^5.1.0" + webidl-conversions "^7.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/which/-/which-5.0.0.tgz" + integrity sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ== + dependencies: + isexe "^3.1.1" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + +write-file-queue@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/write-file-queue/-/write-file-queue-0.0.1.tgz" + integrity sha512-uUInKYzJjhvZ5UJA27tsqbw6s9EEpwe6r4mdpN95t2E4aKzJEJbZg2EvIleTGaja+xtZYx376Jd2WWu5LEQP0w== + dependencies: + dank-do-while "^0.1.2" + +ws@^8.18.3: + version "8.18.3" + resolved "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz" + integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== + +ws@~8.17.1: + version "8.17.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + +xmlhttprequest-ssl@~2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz" + integrity sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yallist@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz" + integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@17.7.2, yargs@^17.0.1, yargs@^17.6.2, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + 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" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==