From 5152ca2e233585f57b070e6fe86a7e40f9b8f794 Mon Sep 17 00:00:00 2001 From: Suvodip Date: Mon, 23 Dec 2024 19:17:45 +0530 Subject: [PATCH 1/5] gallery 2 api --- output.png | Bin 0 -> 111762 bytes package-lock.json | 2553 +++++++++++++++++++++++++++- package.json | 4 + src/models/getGalleyImage.js | 15 + src/models/imageGallery.js | 10 + src/module/base64ToImageFile.js | 21 + src/routes/api/getGalleryImage.js | 36 + src/routes/api/saveGalleryImage.js | 78 + src/routes/v1/api.route.js | 14 +- 9 files changed, 2729 insertions(+), 2 deletions(-) create mode 100644 output.png create mode 100644 src/models/getGalleyImage.js create mode 100644 src/models/imageGallery.js create mode 100644 src/module/base64ToImageFile.js create mode 100644 src/routes/api/getGalleryImage.js create mode 100644 src/routes/api/saveGalleryImage.js diff --git a/output.png b/output.png new file mode 100644 index 0000000000000000000000000000000000000000..c10ed911b8e5df0468ffe3f4138a0cd795cc1eca GIT binary patch literal 111762 zcmeFZWn7f));EkeC?MbnB8tQiqJ$tN-6BW`(%m5~F~rayp(v$vHw-1xozfvKEz%4P zLk#tv?EP#R_H*z1+xy{tfBTEqrE{Lgxq7YRzt(Ylkbf{&USV=4sv(DPoO=lxj_k-=3w{VWtTC2@r z1az#l_PNevHBO5#UTgGS$Sgipk2ftHi^~ThY_JA4=W`Irry^U;hfeoC)#^+jo=#5> zsn&+1_jkwHmkyYhGO!PP;;={7_RX1+9QW2Px%H0SboD?b)zgp>1pM&Bz{G}l{f9q( z$ux*y8x#{8^Zw^&AbL1ppKo`-!Wh>;|MMRWk(loxWm+n9|J%3TL)QM&`xgs;%fO%t zd>R$;it0bn3NS&1?fM^y0DiEf7sfW|GB#HDUzicbZld_loM2qj#0C5OvQv+_i^
  • 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

    ({tC>LB;^Nqsm#vJUi`w;V(d?fC(dE^N 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

    (Gu1)z{%hZ&`I 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

    ^j*#ufk3qnyO}SD!=;vc}x5l*vQU#_( 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 F{{unwMo|C& literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 5b697d5..6ab1a1d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,15 +21,19 @@ "express-mongo-sanitize": "^2.0.0", "express-rate-limit": "^5.0.0", "form-data": "^4.0.1", + "formdata-node": "^6.0.3", "helmet": "^4.1.0", "http-status": "^1.4.0", + "install": "^0.13.0", "joi": "^17.3.0", "jsonwebtoken": "^8.5.1", "moment": "^2.24.0", "mongoose": "^8.7.1", "morgan": "^1.9.1", "mysql2": "^3.11.0", + "node-fetch": "^3.3.2", "nodemailer": "^6.3.1", + "npm": "^11.0.0", "passport": "^0.4.0", "passport-jwt": "^4.0.0", "pm2": "^5.1.0", @@ -5216,6 +5220,28 @@ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "license": "MIT" }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -5354,7 +5380,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -5364,6 +5389,25 @@ "node": ">= 6" } }, + "node_modules/formdata-node": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-6.0.3.tgz", + "integrity": "sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/formidable": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", @@ -6264,6 +6308,14 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "license": "ISC" }, + "node_modules/install": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz", + "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", @@ -8948,6 +9000,49 @@ "dev": true, "license": "MIT" }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-fetch/node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -9153,6 +9248,154 @@ "node": ">=0.10.0" } }, + "node_modules/npm": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-11.0.0.tgz", + "integrity": "sha512-Ed/ylWXSKXx058WUqXYlgb3pafCqXL5vWzZEvwCKFsBl7OYQlNn/u4ESW+ON+OG6Q+uCRLPTDGHreX6aJEDj7A==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^9.0.0", + "@npmcli/config": "^10.0.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/map-workspaces": "^4.0.2", + "@npmcli/package-json": "^6.1.0", + "@npmcli/promise-spawn": "^8.0.2", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "@sigstore/tuf": "^3.0.0", + "abbrev": "^3.0.0", + "archy": "~1.0.0", + "cacache": "^19.0.1", + "chalk": "^5.3.0", + "ci-info": "^4.1.0", + "cli-columns": "^4.0.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^8.0.2", + "ini": "^5.0.0", + "init-package-json": "^8.0.0", + "is-cidr": "^5.1.0", + "json-parse-even-better-errors": "^4.0.0", + "libnpmaccess": "^10.0.0", + "libnpmdiff": "^8.0.0", + "libnpmexec": "^10.0.0", + "libnpmfund": "^7.0.0", + "libnpmorg": "^8.0.0", + "libnpmpack": "^9.0.0", + "libnpmpublish": "^11.0.0", + "libnpmsearch": "^9.0.0", + "libnpmteam": "^8.0.0", + "libnpmversion": "^8.0.0", + "make-fetch-happen": "^14.0.3", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^11.0.0", + "nopt": "^8.0.0", + "normalize-package-data": "^7.0.0", + "npm-audit-report": "^6.0.0", + "npm-install-checks": "^7.1.1", + "npm-package-arg": "^12.0.1", + "npm-pick-manifest": "^10.0.0", + "npm-profile": "^11.0.1", + "npm-registry-fetch": "^18.0.2", + "npm-user-validate": "^3.0.0", + "p-map": "^7.0.3", + "pacote": "^21.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "qrcode-terminal": "^0.12.0", + "read": "^4.0.0", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "ssri": "^12.0.0", + "supports-color": "^9.4.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^6.0.0", + "which": "^5.0.0" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -9166,6 +9409,2306 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "inBundle": 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/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "inBundle": 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/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "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" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "9.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^9.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^8.0.0", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^21.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "ssri": "^12.0.0", + "treeverse": "^3.0.0", + "walk-up-path": "^4.0.0" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/package-json": "^6.0.1", + "ci-info": "^4.0.0", + "ini": "^5.0.0", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "walk-up-path": "^4.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "6.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "4.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "9.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^21.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "6.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "normalize-package-data": "^7.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.1.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "9.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^11.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "3.0.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "2.0.0", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "3.0.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^14.0.1", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "3.0.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "2.0.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "19.0.1", + "inBundle": true, + "license": "ISC", + "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" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/minizlib": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.1.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "7.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.6", + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.4.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/diff": { + "version": "7.0.0", + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.3.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.4.5", + "inBundle": 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/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.6", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "7.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^6.1.0", + "npm-package-arg": "^12.0.0", + "promzard": "^2.0.0", + "read": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.1.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^4.1.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "3.4.3", + "inBundle": 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/npm/node_modules/jsbn": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "binary-extensions": "^3.0.0", + "diff": "^7.0.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^12.0.0", + "pacote": "^21.0.0", + "tar": "^6.2.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.0", + "@npmcli/run-script": "^9.0.1", + "ci-info": "^4.0.0", + "npm-package-arg": "^12.0.0", + "pacote": "^21.0.0", + "proc-log": "^5.0.0", + "read": "^4.0.0", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "walk-up-path": "^4.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "7.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "9.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.0", + "@npmcli/run-script": "^9.0.1", + "npm-package-arg": "^12.0.0", + "pacote": "^21.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "11.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^7.0.0", + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1", + "proc-log": "^5.0.0", + "semver": "^7.3.7", + "sigstore": "^3.0.0", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "9.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.1", + "@npmcli/run-script": "^9.0.1", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.4.3", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "14.0.3", + "inBundle": true, + "license": "ISC", + "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" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.1.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "11.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "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", + "which": "^5.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minizlib": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/mkdirp": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/tar": { + "version": "7.4.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "8.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/nopt/node_modules/abbrev": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "7.0.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^8.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "7.1.1", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "12.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^7.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "11.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "18.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "3.0.0", + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "7.0.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.1", + "inBundle": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/npm/node_modules/pacote": { + "version": "21.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^10.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.11.1", + "inBundle": 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/npm/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^2.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "5.0.10", + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.3", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "3.0.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^3.0.0", + "@sigstore/tuf": "^3.0.0", + "@sigstore/verify": "^2.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.8.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.20", + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ssri": { + "version": "12.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "inBundle": 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/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "inBundle": 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/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/npm/node_modules/which": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "inBundle": 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/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "inBundle": 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/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "inBundle": 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/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, "node_modules/nssocket": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", @@ -13582,6 +16125,14 @@ "makeerror": "1.0.12" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", diff --git a/package.json b/package.json index 236b74e..1d70592 100644 --- a/package.json +++ b/package.json @@ -60,15 +60,19 @@ "express-mongo-sanitize": "^2.0.0", "express-rate-limit": "^5.0.0", "form-data": "^4.0.1", + "formdata-node": "^6.0.3", "helmet": "^4.1.0", "http-status": "^1.4.0", + "install": "^0.13.0", "joi": "^17.3.0", "jsonwebtoken": "^8.5.1", "moment": "^2.24.0", "mongoose": "^8.7.1", "morgan": "^1.9.1", "mysql2": "^3.11.0", + "node-fetch": "^3.3.2", "nodemailer": "^6.3.1", + "npm": "^11.0.0", "passport": "^0.4.0", "passport-jwt": "^4.0.0", "pm2": "^5.1.0", diff --git a/src/models/getGalleyImage.js b/src/models/getGalleyImage.js new file mode 100644 index 0000000..c8567a5 --- /dev/null +++ b/src/models/getGalleyImage.js @@ -0,0 +1,15 @@ +const mongoose = require('mongoose'); + +// Define the GalleryImage schema +const galleryImageSchema = new mongoose.Schema({ + userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }, // Assuming you have a User model + gameName: { type: String, required: true }, + gameID: { type: String, required: true }, + screenshotUrl: { type: String, required: true }, + message: { type: String, default: 'Image received' }, +}, { timestamps: true }); + +// Check if the model already exists in mongoose.models +const GalleryImage = mongoose.models.GalleryImage || mongoose.model('GalleryImage', galleryImageSchema); + +module.exports = GalleryImage; diff --git a/src/models/imageGallery.js b/src/models/imageGallery.js new file mode 100644 index 0000000..4d05059 --- /dev/null +++ b/src/models/imageGallery.js @@ -0,0 +1,10 @@ +const mongoose = require("mongoose"); + +const galleryImageScema = new mongoose.Schema({ + gameName: { type: String, required: true }, + userId: { type: String, required: true }, + gameID: { type: String, required: true }, + screenshotUrl: { type: String }, +}); + +module.exports = mongoose.model("GalleryImage", galleryImageScema); diff --git a/src/module/base64ToImageFile.js b/src/module/base64ToImageFile.js new file mode 100644 index 0000000..cfae401 --- /dev/null +++ b/src/module/base64ToImageFile.js @@ -0,0 +1,21 @@ +const fs = require('fs'); +const path = require('path'); + +function base64ToImageFile(base64, fileName) { + const matches = base64.match(/^data:(.+);base64,(.+)$/); + if (!matches) { + throw new Error("Invalid Base64 string"); + } + + const mimeType = matches[1]; // e.g., image/png + const base64Data = matches[2]; // Actual base64 string + + const buffer = Buffer.from(base64Data, 'base64'); + const filePath = path.join(__dirname, fileName); + + fs.writeFileSync(filePath, buffer); + + return filePath; +} + +module.exports = { base64ToImageFile }; diff --git a/src/routes/api/getGalleryImage.js b/src/routes/api/getGalleryImage.js new file mode 100644 index 0000000..293dba7 --- /dev/null +++ b/src/routes/api/getGalleryImage.js @@ -0,0 +1,36 @@ +const GalleryImage = require('../../models/getGalleyImage'); + +const getGalleryImage = async (req, res) => { + try { + // Extract query parameters for filtering (if provided) + const { gameName, userId, gameID} = req.query; + + // Build a filter object based on the query parameters + const filter = {}; + + if (gameName) { + filter.gameName = gameName; + } + + if (userId) { + filter.userId = userId; + } + if (gameID) { + filter.gameID = gameID; + } + + // Fetch gallery images with filters and selected fields + const galleryImages = await GalleryImage.find(filter).select('gameName userId gameID screenshotUrl'); // Select only these fields + + if (!galleryImages.length) { + return res.status(404).json({ message: 'No images found' }); + } + + return res.status(200).json(galleryImages); // Return the filtered gallery images with selected fields + } catch (error) { + console.error('Error fetching images:', error.message); + return res.status(500).json({ error: 'Something went wrong' }); + } +}; + +module.exports = getGalleryImage; \ No newline at end of file diff --git a/src/routes/api/saveGalleryImage.js b/src/routes/api/saveGalleryImage.js new file mode 100644 index 0000000..1e35dd8 --- /dev/null +++ b/src/routes/api/saveGalleryImage.js @@ -0,0 +1,78 @@ +const GalleryImage = require('../../models/imageGallery'); +const axios = require('axios'); +const FormData = require('form-data'); // Import form-data for Node.js + +const saveGalleryImage = async (req, res) => { + try { + const { userId, gameName, gameID, screenShot } = req.body; + + // Validate base64 format + const isValidBase64 = validateBase64(screenShot); + if (!isValidBase64) { + return res.status(400).json({ error: 'Invalid base64 image data' }); + } + + // Extract image details + const imageData = extractImageDataFromBase64(screenShot); + const contentType = imageData.contentType || 'image/jpeg'; // Default to JPEG + + // Convert base64 to buffer + const buffer = Buffer.from(screenShot.replace(/^data:image\/(png|jpg|jpeg);base64,/, ''), 'base64'); + + // Create FormData + const formData = new FormData(); + formData.append('file1', buffer, { filename: 'screenshot.jpg', contentType }); + formData.append('folder', 'gameGallery'); + formData.append('bucket', 'polly-bs'); + + // Upload image to external API using axios + const uploadResponse = await axios.post( + 'https://preschool-curriculum.in/api/one/v1/file/upload', + formData, + { + headers: { + ...formData.getHeaders(), // Add form-data headers like Content-Type boundary + // Add any necessary authentication headers if required + }, + } + ); + + if (uploadResponse.status !== 200) { + throw new Error('Image upload failed: ' + uploadResponse.statusText); + } + + // Extract and store the uploaded image URL from the response + const screenshotUrl = uploadResponse.data.urls[0]; + + // Create and save gallery image data + const galleryImageData = new GalleryImage({ + userId, + gameName, + gameID, + screenshotUrl, + message: 'Image received', + }); + await galleryImageData.save(); + + return res.status(200).json(galleryImageData); + } catch (error) { + console.error('Error:', error.message); + return res.status(500).json({ error: 'Something went wrong' }); + } +}; + +// Validate base64 image +function validateBase64(base64String) { + const regex = /^data:image\/(png|jpg|jpeg);base64,/; + return regex.test(base64String); +} + +// Extract image data (like content type) from base64 string +function extractImageDataFromBase64(base64String) { + const matches = base64String.match(/^data:image\/(png|jpg|jpeg);base64,/); + return { + contentType: matches ? `image/${matches[1]}` : 'image/jpeg', + }; +} + +module.exports = saveGalleryImage; diff --git a/src/routes/v1/api.route.js b/src/routes/v1/api.route.js index 0a41445..4cbf3fb 100644 --- a/src/routes/v1/api.route.js +++ b/src/routes/v1/api.route.js @@ -31,6 +31,8 @@ const aiMarkDrawing = require("../api/aiMarkDrawing"); const aiFeedbackOnReportWithFollowup = require("../api/aiFeedbackOnReportWithFollowup"); const aiTextToSpeech = require("../api/aiTextToSpeech"); const aiEvaluateImageToStar = require("../api/aiEvaluateImageToStar"); +const saveGalleryImage = require("../api/saveGalleryImage"); +const getGalleryImage = require("../api/getGalleryImage"); @@ -190,8 +192,18 @@ router.get("/ping", (req, res) => { router.post("/aiEvaluateImageToStar", (req, res) => { aiEvaluateImageToStar(req, res); }); - + +// Save Drawing Game Gallery Image + router.post("/saveGalleryImage", (req, res) => { + saveGalleryImage(req, res); + }); + + // Get Drawing Game Gallery Image + router.get("/getGalleryImage", (req, res) => { + getGalleryImage(req, res); + }); + module.exports = router; From 7dda27e86e2663c34e1261815b55d2ac44be25d9 Mon Sep 17 00:00:00 2001 From: Suvodip Date: Thu, 23 Jan 2025 19:38:46 +0530 Subject: [PATCH 2/5] s2 --- src/routes/v1/api.route.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/routes/v1/api.route.js b/src/routes/v1/api.route.js index 4cbf3fb..ceeef48 100644 --- a/src/routes/v1/api.route.js +++ b/src/routes/v1/api.route.js @@ -31,11 +31,11 @@ const aiMarkDrawing = require("../api/aiMarkDrawing"); const aiFeedbackOnReportWithFollowup = require("../api/aiFeedbackOnReportWithFollowup"); const aiTextToSpeech = require("../api/aiTextToSpeech"); const aiEvaluateImageToStar = require("../api/aiEvaluateImageToStar"); +const getGameInfo = require("../api/getGameInfo"); const saveGalleryImage = require("../api/saveGalleryImage"); const getGalleryImage = require("../api/getGalleryImage"); - const router = express.Router(); /* GET home page. */ router.get("/ping", (req, res) => { @@ -193,8 +193,12 @@ router.get("/ping", (req, res) => { aiEvaluateImageToStar(req, res); }); + // getGameInfo. + router.get("/getGameInfo", (req, res) => { + getGameInfo(req, res); + }); -// Save Drawing Game Gallery Image + // Save Drawing Game Gallery Image router.post("/saveGalleryImage", (req, res) => { saveGalleryImage(req, res); }); @@ -204,6 +208,7 @@ router.get("/ping", (req, res) => { getGalleryImage(req, res); }); + module.exports = router; From c2ee394195b68d4a5f1e57422fb71ff9c845b69c Mon Sep 17 00:00:00 2001 From: Suvodip Date: Fri, 31 Jan 2025 13:16:19 +0530 Subject: [PATCH 3/5] s2 --- src/models/gameModel.js | 8 ++++---- src/routes/api/saveGameScore2.js | 27 ++++++++++++++++++++++++--- src/routes/v1/api.route.js | 8 ++++---- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/models/gameModel.js b/src/models/gameModel.js index ec0b50f..e791642 100644 --- a/src/models/gameModel.js +++ b/src/models/gameModel.js @@ -5,9 +5,9 @@ const gameSchema = new mongoose.Schema({ userId: { type: String, required: true }, gameID: { type: String, required: true }, gameTime: { type: String, required: false }, - score: { type: String}, - gameStar: { type: Number}, - screenshotUrl: { type: String }, // Store the S3 URL of the screenshot -}); + score: { type: String }, + gameStar: { type: Number }, + screenshotUrl: { type: String }, +}, { collection: "gameData" }); module.exports = mongoose.model("Game", gameSchema); diff --git a/src/routes/api/saveGameScore2.js b/src/routes/api/saveGameScore2.js index 944057c..532971e 100644 --- a/src/routes/api/saveGameScore2.js +++ b/src/routes/api/saveGameScore2.js @@ -1,4 +1,5 @@ const AWS = require("aws-sdk"); +const mongoose = require("mongoose"); const Game = require("../../models/gameModel"); const s3 = new AWS.S3({ @@ -7,12 +8,27 @@ const s3 = new AWS.S3({ region: process.env.AWS_REGION, }); +// MongoDB Connection +const mongoURI = process.env.MONGODB_URL; +const dbName = process.env.MONGO_DB_NAME; + +mongoose.connect(mongoURI, { + dbName: dbName, + useNewUrlParser: true, + useUnifiedTopology: true, + }) + .then(() => + console.log("Connected to MongoDB")) + .catch((err) => console.error("MongoDB connection error:", err)); + const saveGameScore2 = async (req, res) => { const { userId, gameName, gameID, gameTime, score, gameStar, screenShot } = req.body; + try { if (!gameName || !userId || !gameID) { return res.status(400).json({ error: "Missing required fields" }); } + const newGame = new Game({ gameName, userId, @@ -21,21 +37,26 @@ const saveGameScore2 = async (req, res) => { score, gameStar, }); + + // Save to MongoDB const result = await newGame.save(); + // Upload screenshot to S3 if provided if (screenShot) { - let base64Image = screenShot.split(";base64,").pop(); - const buffer = Buffer.from(base64Image, 'base64'); - // const buffer = Buffer.from(screenShot, "base64"); + let base64Image = screenShot.split(";base64,").pop(); + const buffer = Buffer.from(base64Image, "base64"); + const uploadParams = { Bucket: process.env.S3_BUCKET_NAME, Key: `images/${result._id}.png`, Body: buffer, ContentType: "image/png", }; + const s3Response = await s3.upload(uploadParams).promise(); newGame.screenshotUrl = s3Response.Location; await newGame.save(); } + res.status(200).json({ message: "Game data saved successfully", data: newGame, diff --git a/src/routes/v1/api.route.js b/src/routes/v1/api.route.js index ceeef48..d2be331 100644 --- a/src/routes/v1/api.route.js +++ b/src/routes/v1/api.route.js @@ -31,7 +31,7 @@ const aiMarkDrawing = require("../api/aiMarkDrawing"); const aiFeedbackOnReportWithFollowup = require("../api/aiFeedbackOnReportWithFollowup"); const aiTextToSpeech = require("../api/aiTextToSpeech"); const aiEvaluateImageToStar = require("../api/aiEvaluateImageToStar"); -const getGameInfo = require("../api/getGameInfo"); +// const getGameInfo = require("../api/getGameInfo"); const saveGalleryImage = require("../api/saveGalleryImage"); const getGalleryImage = require("../api/getGalleryImage"); @@ -194,9 +194,9 @@ router.get("/ping", (req, res) => { }); // getGameInfo. - router.get("/getGameInfo", (req, res) => { - getGameInfo(req, res); - }); + // // router.get("/getGameInfo", (req, res) => { + // // getGameInfo(req, res); + // }); // Save Drawing Game Gallery Image router.post("/saveGalleryImage", (req, res) => { From 02cc60f82404f30a5d43e63723e43dcc95b6c329 Mon Sep 17 00:00:00 2001 From: Suvodip Date: Fri, 31 Jan 2025 13:20:02 +0530 Subject: [PATCH 4/5] s3 --- src/routes/v1/api.route.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/v1/api.route.js b/src/routes/v1/api.route.js index d2be331..ceeef48 100644 --- a/src/routes/v1/api.route.js +++ b/src/routes/v1/api.route.js @@ -31,7 +31,7 @@ const aiMarkDrawing = require("../api/aiMarkDrawing"); const aiFeedbackOnReportWithFollowup = require("../api/aiFeedbackOnReportWithFollowup"); const aiTextToSpeech = require("../api/aiTextToSpeech"); const aiEvaluateImageToStar = require("../api/aiEvaluateImageToStar"); -// const getGameInfo = require("../api/getGameInfo"); +const getGameInfo = require("../api/getGameInfo"); const saveGalleryImage = require("../api/saveGalleryImage"); const getGalleryImage = require("../api/getGalleryImage"); @@ -194,9 +194,9 @@ router.get("/ping", (req, res) => { }); // getGameInfo. - // // router.get("/getGameInfo", (req, res) => { - // // getGameInfo(req, res); - // }); + router.get("/getGameInfo", (req, res) => { + getGameInfo(req, res); + }); // Save Drawing Game Gallery Image router.post("/saveGalleryImage", (req, res) => { From 3b75e915e3ca921e37aba253e24184a4061b9022 Mon Sep 17 00:00:00 2001 From: Suvodip Date: Fri, 31 Jan 2025 13:21:26 +0530 Subject: [PATCH 5/5] s4 --- src/routes/v1/api.route.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/routes/v1/api.route.js b/src/routes/v1/api.route.js index ceeef48..1820763 100644 --- a/src/routes/v1/api.route.js +++ b/src/routes/v1/api.route.js @@ -34,6 +34,7 @@ const aiEvaluateImageToStar = require("../api/aiEvaluateImageToStar"); const getGameInfo = require("../api/getGameInfo"); const saveGalleryImage = require("../api/saveGalleryImage"); const getGalleryImage = require("../api/getGalleryImage"); +const aiTest = require("../api/aiTest"); const router = express.Router(); @@ -197,7 +198,7 @@ router.get("/ping", (req, res) => { router.get("/getGameInfo", (req, res) => { getGameInfo(req, res); }); - + // Save Drawing Game Gallery Image router.post("/saveGalleryImage", (req, res) => { saveGalleryImage(req, res); @@ -207,8 +208,11 @@ router.get("/ping", (req, res) => { router.get("/getGalleryImage", (req, res) => { getGalleryImage(req, res); }); - + // Get Drawing Game Gallery Image + router.post("/aiTest", (req, res) => { + aiTest(req, res); + }); module.exports = router;