diff --git a/package-lock.json b/package-lock.json index b9144db..2bcc94e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,10 +12,11 @@ "@microlabs/otel-cf-workers": "^1.0.0-rc.48", "@opentelemetry/api": "^1.9.0", "@opentelemetry/sdk-trace-base": "^1.27.0", + "@storacha/indexing-service-client": "^2.0.0", "@ucanto/client": "^9.0.1", "@ucanto/principal": "^9.0.1", "@ucanto/transport": "^9.1.1", - "@web3-storage/blob-fetcher": "^2.3.1", + "@web3-storage/blob-fetcher": "^2.4.3", "@web3-storage/capabilities": "^17.4.1", "@web3-storage/gateway-lib": "^5.1.2", "dagula": "^8.0.0", @@ -25,6 +26,8 @@ }, "devDependencies": { "@cloudflare/workers-types": "^4.20231218.0", + "@storacha/cli": "^1.0.1", + "@storacha/client": "^1.0.5", "@types/chai": "^5.0.0", "@types/mocha": "^10.0.9", "@types/node-fetch": "^2.6.11", @@ -32,10 +35,9 @@ "@web3-storage/content-claims": "^5.0.0", "@web3-storage/public-bucket": "^1.1.0", "@web3-storage/upload-client": "^16.1.1", - "@web3-storage/w3cli": "^7.8.2", "carstream": "^2.1.0", "chai": "^5.1.1", - "esbuild": "^0.18.20", + "esbuild": "^0.24.0", "files-from-path": "^0.2.6", "miniflare": "^3.20240909.5", "mocha": "^10.7.3", @@ -44,9 +46,12 @@ "standard": "^17.1.0", "tree-kill": "^1.2.2", "typescript": "^5.6.3", - "wrangler": "^3.86.1" + "wrangler": "^3.90.0" } }, + "../upload-service/packages/w3up-blob-fetcher": { + "extraneous": true + }, "node_modules/@achingbrain/ip-address": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@achingbrain/ip-address/-/ip-address-8.1.0.tgz", @@ -363,10 +368,11 @@ } }, "node_modules/@cloudflare/workers-shared": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workers-shared/-/workers-shared-0.7.1.tgz", - "integrity": "sha512-46cP5FCrl3TrvHeoHLb5SRuiDMKH5kc9Yvo36SAfzt8dqJI/qJRoY1GP3ioHn/gP7v2QIoUOTAzIl7Ml7MnfrA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-shared/-/workers-shared-0.9.0.tgz", + "integrity": "sha512-eP6Ir45uPbKnpADVzUCtkRUYxYxjB1Ew6n/whTJvHu8H4m93USHAceCMm736VBZdlxuhXXUjEP3fCUxKPn+cfw==", "dev": true, + "license": "MIT OR Apache-2.0", "dependencies": { "mime": "^3.0.0", "zod": "^3.22.3" @@ -426,473 +432,569 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", "cpu": [ - "x64" + "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ - "linux" + "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=18" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=14" - } - }, - "node_modules/@handlebars/parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@handlebars/parser/-/parser-1.1.0.tgz", - "integrity": "sha512-rR7tJoSwJ2eooOpYGxGGW95sLq6GXUaS1UtWvN7pei6n2/okYvCGld9vsUTvkl2migxbkszsycwtMf/GEc1k1A==" - }, - "node_modules/@httpland/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@httpland/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha512-8hOuBe2Jyatrmj060orVaRwU5lh5NPzqk5w8L4hraztr3fqurSY4seILUzt8nxYlwp33skVADoEi95LMuo8WQw==", - "dependencies": { - "@miyauci/isx": "1.1.1", - "@miyauci/prelude": "1.0.0" + "node": ">=18" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=10.10.0" + "node": ">=18" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=18" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true - }, - "node_modules/@inquirer/checkbox": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.5.2.tgz", - "integrity": "sha512-CifrkgQjDkUkWexmgYYNyB5603HhTHI91vLFeQXh6qrTKiCMVASol01Rs1cv6LP/A2WccZSRlJKZhbaBIs/9ZA==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@inquirer/core": "^6.0.0", - "@inquirer/type": "^1.1.6", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "figures": "^3.2.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.18.0" + "node": ">=18" } }, - "node_modules/@inquirer/checkbox/node_modules/@inquirer/core": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", - "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@inquirer/type": "^1.1.6", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.10.7", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.18.0" + "node": ">=18" } }, - "node_modules/@inquirer/checkbox/node_modules/@types/node": { - "version": "20.17.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", - "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], "dev": true, - "dependencies": { - "undici-types": "~6.19.2" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@inquirer/checkbox/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==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/@inquirer/checkbox/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18" } }, - "node_modules/@inquirer/checkbox/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==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@inquirer/checkbox/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==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/@inquirer/confirm": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-2.0.17.tgz", - "integrity": "sha512-EqzhGryzmGpy2aJf6LxJVhndxYmFs+m8cxXzf8nejb1DE3sabf6mUgBcp4J0jAUEiAcYzqmkqRr7LPFh/WdnXA==", + "node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@inquirer/core": "^6.0.0", - "@inquirer/type": "^1.1.6", - "chalk": "^4.1.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.18.0" + "node": ">=18" } }, - "node_modules/@inquirer/confirm/node_modules/@inquirer/core": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", - "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@inquirer/type": "^1.1.6", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.10.7", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/confirm/node_modules/@types/node": { - "version": "20.17.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", - "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", - "dev": true, - "dependencies": { - "undici-types": "~6.19.2" + "node": ">=18" } }, - "node_modules/@inquirer/confirm/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==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/@inquirer/confirm/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18" } }, - "node_modules/@inquirer/confirm/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==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@inquirer/confirm/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==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/@inquirer/core": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-5.1.2.tgz", - "integrity": "sha512-w3PMZH5rahrukn8/I7P9Ihil+twgLTUHDZtJlJyBbUKyPaOSSQjLZkb0PpncVhin1gCaMgOFXy6iNPgcZUoo2w==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@inquirer/type": "^1.1.6", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.10.7", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=14.18.0" + "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/@types/node": { - "version": "20.17.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", - "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", + "node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "undici-types": "~6.19.2" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@inquirer/core/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==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "dependencies": { - "type-fest": "^0.21.3" + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@inquirer/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@inquirer/core/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==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@inquirer/core/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==", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@handlebars/parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@handlebars/parser/-/parser-1.1.0.tgz", + "integrity": "sha512-rR7tJoSwJ2eooOpYGxGGW95sLq6GXUaS1UtWvN7pei6n2/okYvCGld9vsUTvkl2migxbkszsycwtMf/GEc1k1A==" + }, + "node_modules/@httpland/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@httpland/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-8hOuBe2Jyatrmj060orVaRwU5lh5NPzqk5w8L4hraztr3fqurSY4seILUzt8nxYlwp33skVADoEi95LMuo8WQw==", + "dependencies": { + "@miyauci/isx": "1.1.1", + "@miyauci/prelude": "1.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@inquirer/editor": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-1.2.15.tgz", - "integrity": "sha512-gQ77Ls09x5vKLVNMH9q/7xvYPT6sIs5f7URksw+a2iJZ0j48tVS6crLqm2ugG33tgXHIwiEqkytY60Zyh5GkJQ==", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@inquirer/checkbox": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.5.2.tgz", + "integrity": "sha512-CifrkgQjDkUkWexmgYYNyB5603HhTHI91vLFeQXh6qrTKiCMVASol01Rs1cv6LP/A2WccZSRlJKZhbaBIs/9ZA==", "dev": true, "dependencies": { "@inquirer/core": "^6.0.0", "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", - "external-editor": "^3.1.0" + "figures": "^3.2.0" }, "engines": { "node": ">=14.18.0" } }, - "node_modules/@inquirer/editor/node_modules/@inquirer/core": { + "node_modules/@inquirer/checkbox/node_modules/@inquirer/core": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", @@ -917,7 +1019,7 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/editor/node_modules/@types/node": { + "node_modules/@inquirer/checkbox/node_modules/@types/node": { "version": "20.17.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", @@ -926,7 +1028,7 @@ "undici-types": "~6.19.2" } }, - "node_modules/@inquirer/editor/node_modules/ansi-escapes": { + "node_modules/@inquirer/checkbox/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==", @@ -941,7 +1043,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/editor/node_modules/chalk": { + "node_modules/@inquirer/checkbox/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -957,7 +1059,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@inquirer/editor/node_modules/supports-color": { + "node_modules/@inquirer/checkbox/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==", @@ -969,7 +1071,7 @@ "node": ">=8" } }, - "node_modules/@inquirer/editor/node_modules/type-fest": { + "node_modules/@inquirer/checkbox/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==", @@ -981,22 +1083,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/expand": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-1.1.16.tgz", - "integrity": "sha512-TGLU9egcuo+s7PxphKUCnJnpCIVY32/EwPCLLuu+gTvYiD8hZgx8Z2niNQD36sa6xcfpdLY6xXDBiL/+g1r2XQ==", + "node_modules/@inquirer/confirm": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-2.0.17.tgz", + "integrity": "sha512-EqzhGryzmGpy2aJf6LxJVhndxYmFs+m8cxXzf8nejb1DE3sabf6mUgBcp4J0jAUEiAcYzqmkqRr7LPFh/WdnXA==", "dev": true, "dependencies": { "@inquirer/core": "^6.0.0", "@inquirer/type": "^1.1.6", - "chalk": "^4.1.2", - "figures": "^3.2.0" + "chalk": "^4.1.2" }, "engines": { "node": ">=14.18.0" } }, - "node_modules/@inquirer/expand/node_modules/@inquirer/core": { + "node_modules/@inquirer/confirm/node_modules/@inquirer/core": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", @@ -1021,7 +1122,7 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/expand/node_modules/@types/node": { + "node_modules/@inquirer/confirm/node_modules/@types/node": { "version": "20.17.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", @@ -1030,7 +1131,7 @@ "undici-types": "~6.19.2" } }, - "node_modules/@inquirer/expand/node_modules/ansi-escapes": { + "node_modules/@inquirer/confirm/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==", @@ -1045,7 +1146,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/expand/node_modules/chalk": { + "node_modules/@inquirer/confirm/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -1061,7 +1162,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@inquirer/expand/node_modules/supports-color": { + "node_modules/@inquirer/confirm/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==", @@ -1073,7 +1174,7 @@ "node": ">=8" } }, - "node_modules/@inquirer/expand/node_modules/type-fest": { + "node_modules/@inquirer/confirm/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==", @@ -1085,24 +1186,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/input": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.2.16.tgz", - "integrity": "sha512-Ou0LaSWvj1ni+egnyQ+NBtfM1885UwhRCMtsRt2bBO47DoC1dwtCa+ZUNgrxlnCHHF0IXsbQHYtIIjFGAavI4g==", - "dev": true, - "dependencies": { - "@inquirer/core": "^6.0.0", - "@inquirer/type": "^1.1.6", - "chalk": "^4.1.2" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/input/node_modules/@inquirer/core": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", - "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", + "node_modules/@inquirer/core": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-5.1.2.tgz", + "integrity": "sha512-w3PMZH5rahrukn8/I7P9Ihil+twgLTUHDZtJlJyBbUKyPaOSSQjLZkb0PpncVhin1gCaMgOFXy6iNPgcZUoo2w==", "dev": true, "dependencies": { "@inquirer/type": "^1.1.6", @@ -1124,7 +1211,7 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/input/node_modules/@types/node": { + "node_modules/@inquirer/core/node_modules/@types/node": { "version": "20.17.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", @@ -1133,7 +1220,7 @@ "undici-types": "~6.19.2" } }, - "node_modules/@inquirer/input/node_modules/ansi-escapes": { + "node_modules/@inquirer/core/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==", @@ -1148,7 +1235,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/input/node_modules/chalk": { + "node_modules/@inquirer/core/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -1164,7 +1251,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@inquirer/input/node_modules/supports-color": { + "node_modules/@inquirer/core/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==", @@ -1176,7 +1263,7 @@ "node": ">=8" } }, - "node_modules/@inquirer/input/node_modules/type-fest": { + "node_modules/@inquirer/core/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==", @@ -1188,22 +1275,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/password": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.1.16.tgz", - "integrity": "sha512-aZYZVHLUXZ2gbBot+i+zOJrks1WaiI95lvZCn1sKfcw6MtSSlYC8uDX8sTzQvAsQ8epHoP84UNvAIT0KVGOGqw==", + "node_modules/@inquirer/editor": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-1.2.15.tgz", + "integrity": "sha512-gQ77Ls09x5vKLVNMH9q/7xvYPT6sIs5f7URksw+a2iJZ0j48tVS6crLqm2ugG33tgXHIwiEqkytY60Zyh5GkJQ==", "dev": true, "dependencies": { "@inquirer/core": "^6.0.0", "@inquirer/type": "^1.1.6", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2" + "chalk": "^4.1.2", + "external-editor": "^3.1.0" }, "engines": { "node": ">=14.18.0" } }, - "node_modules/@inquirer/password/node_modules/@inquirer/core": { + "node_modules/@inquirer/editor/node_modules/@inquirer/core": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", @@ -1228,7 +1315,7 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/password/node_modules/@types/node": { + "node_modules/@inquirer/editor/node_modules/@types/node": { "version": "20.17.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", @@ -1237,7 +1324,7 @@ "undici-types": "~6.19.2" } }, - "node_modules/@inquirer/password/node_modules/ansi-escapes": { + "node_modules/@inquirer/editor/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==", @@ -1252,7 +1339,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/password/node_modules/chalk": { + "node_modules/@inquirer/editor/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -1268,7 +1355,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@inquirer/password/node_modules/supports-color": { + "node_modules/@inquirer/editor/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==", @@ -1280,7 +1367,7 @@ "node": ">=8" } }, - "node_modules/@inquirer/password/node_modules/type-fest": { + "node_modules/@inquirer/editor/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==", @@ -1292,27 +1379,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/prompts": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-3.3.2.tgz", - "integrity": "sha512-k52mOMRvTUejrqyF1h8Z07chC+sbaoaUYzzr1KrJXyj7yaX7Nrh0a9vktv8TuocRwIJOQMaj5oZEmkspEcJFYQ==", + "node_modules/@inquirer/expand": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-1.1.16.tgz", + "integrity": "sha512-TGLU9egcuo+s7PxphKUCnJnpCIVY32/EwPCLLuu+gTvYiD8hZgx8Z2niNQD36sa6xcfpdLY6xXDBiL/+g1r2XQ==", "dev": true, "dependencies": { - "@inquirer/checkbox": "^1.5.2", - "@inquirer/confirm": "^2.0.17", "@inquirer/core": "^6.0.0", - "@inquirer/editor": "^1.2.15", - "@inquirer/expand": "^1.1.16", - "@inquirer/input": "^1.2.16", - "@inquirer/password": "^1.1.16", - "@inquirer/rawlist": "^1.2.16", - "@inquirer/select": "^1.3.3" + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2", + "figures": "^3.2.0" }, "engines": { "node": ">=14.18.0" } }, - "node_modules/@inquirer/prompts/node_modules/@inquirer/core": { + "node_modules/@inquirer/expand/node_modules/@inquirer/core": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", @@ -1337,7 +1419,7 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/prompts/node_modules/@types/node": { + "node_modules/@inquirer/expand/node_modules/@types/node": { "version": "20.17.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", @@ -1346,7 +1428,7 @@ "undici-types": "~6.19.2" } }, - "node_modules/@inquirer/prompts/node_modules/ansi-escapes": { + "node_modules/@inquirer/expand/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==", @@ -1361,7 +1443,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/prompts/node_modules/chalk": { + "node_modules/@inquirer/expand/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -1377,7 +1459,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@inquirer/prompts/node_modules/supports-color": { + "node_modules/@inquirer/expand/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==", @@ -1389,7 +1471,7 @@ "node": ">=8" } }, - "node_modules/@inquirer/prompts/node_modules/type-fest": { + "node_modules/@inquirer/expand/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==", @@ -1401,10 +1483,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/rawlist": { + "node_modules/@inquirer/input": { "version": "1.2.16", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-1.2.16.tgz", - "integrity": "sha512-pZ6TRg2qMwZAOZAV6TvghCtkr53dGnK29GMNQ3vMZXSNguvGqtOVc4j/h1T8kqGJFagjyfBZhUPGwNS55O5qPQ==", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.2.16.tgz", + "integrity": "sha512-Ou0LaSWvj1ni+egnyQ+NBtfM1885UwhRCMtsRt2bBO47DoC1dwtCa+ZUNgrxlnCHHF0IXsbQHYtIIjFGAavI4g==", "dev": true, "dependencies": { "@inquirer/core": "^6.0.0", @@ -1415,7 +1497,7 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/rawlist/node_modules/@inquirer/core": { + "node_modules/@inquirer/input/node_modules/@inquirer/core": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", @@ -1440,7 +1522,7 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/rawlist/node_modules/@types/node": { + "node_modules/@inquirer/input/node_modules/@types/node": { "version": "20.17.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", @@ -1449,7 +1531,7 @@ "undici-types": "~6.19.2" } }, - "node_modules/@inquirer/rawlist/node_modules/ansi-escapes": { + "node_modules/@inquirer/input/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==", @@ -1464,7 +1546,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/rawlist/node_modules/chalk": { + "node_modules/@inquirer/input/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -1480,7 +1562,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@inquirer/rawlist/node_modules/supports-color": { + "node_modules/@inquirer/input/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==", @@ -1492,7 +1574,7 @@ "node": ">=8" } }, - "node_modules/@inquirer/rawlist/node_modules/type-fest": { + "node_modules/@inquirer/input/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==", @@ -1504,23 +1586,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/select": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-1.3.3.tgz", - "integrity": "sha512-RzlRISXWqIKEf83FDC9ZtJ3JvuK1l7aGpretf41BCWYrvla2wU8W8MTRNMiPrPJ+1SIqrRC1nZdZ60hD9hRXLg==", + "node_modules/@inquirer/password": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.1.16.tgz", + "integrity": "sha512-aZYZVHLUXZ2gbBot+i+zOJrks1WaiI95lvZCn1sKfcw6MtSSlYC8uDX8sTzQvAsQ8epHoP84UNvAIT0KVGOGqw==", "dev": true, "dependencies": { "@inquirer/core": "^6.0.0", "@inquirer/type": "^1.1.6", "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "figures": "^3.2.0" + "chalk": "^4.1.2" }, "engines": { "node": ">=14.18.0" } }, - "node_modules/@inquirer/select/node_modules/@inquirer/core": { + "node_modules/@inquirer/password/node_modules/@inquirer/core": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", @@ -1545,7 +1626,7 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/select/node_modules/@types/node": { + "node_modules/@inquirer/password/node_modules/@types/node": { "version": "20.17.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", @@ -1554,7 +1635,7 @@ "undici-types": "~6.19.2" } }, - "node_modules/@inquirer/select/node_modules/ansi-escapes": { + "node_modules/@inquirer/password/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==", @@ -1569,7 +1650,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/select/node_modules/chalk": { + "node_modules/@inquirer/password/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -1585,7 +1666,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@inquirer/select/node_modules/supports-color": { + "node_modules/@inquirer/password/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==", @@ -1597,7 +1678,7 @@ "node": ">=8" } }, - "node_modules/@inquirer/select/node_modules/type-fest": { + "node_modules/@inquirer/password/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==", @@ -1609,316 +1690,633 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/type": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", - "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "node_modules/@inquirer/prompts": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-3.3.2.tgz", + "integrity": "sha512-k52mOMRvTUejrqyF1h8Z07chC+sbaoaUYzzr1KrJXyj7yaX7Nrh0a9vktv8TuocRwIJOQMaj5oZEmkspEcJFYQ==", "dev": true, "dependencies": { - "mute-stream": "^1.0.0" + "@inquirer/checkbox": "^1.5.2", + "@inquirer/confirm": "^2.0.17", + "@inquirer/core": "^6.0.0", + "@inquirer/editor": "^1.2.15", + "@inquirer/expand": "^1.1.16", + "@inquirer/input": "^1.2.16", + "@inquirer/password": "^1.1.16", + "@inquirer/rawlist": "^1.2.16", + "@inquirer/select": "^1.3.3" }, "engines": { - "node": ">=18" + "node": ">=14.18.0" } }, - "node_modules/@ipld/car": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@ipld/car/-/car-5.3.3.tgz", - "integrity": "sha512-4vgV5Ml4HCJ2iTx7vYhu0ui+Xxo1HQTtVeYgD+JKd5Wij8TlOFZnxOSickqpLcuf1fdGEStgqVItx15UWfzDYA==", + "node_modules/@inquirer/prompts/node_modules/@inquirer/core": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", + "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", + "dev": true, "dependencies": { - "@ipld/dag-cbor": "^9.0.7", - "cborg": "^4.0.5", - "multiformats": "^13.0.0", - "varint": "^6.0.0" + "@inquirer/type": "^1.1.6", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.10.7", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=14.18.0" } }, - "node_modules/@ipld/dag-cbor": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.2.2.tgz", - "integrity": "sha512-uIEOuruCqKTP50OBWwgz4Js2+LhiBQaxc57cnP71f45b1mHEAo1OCR1Zn/TbvSW/mV1x+JqhacIktkKyaYqhCw==", + "node_modules/@inquirer/prompts/node_modules/@types/node": { + "version": "20.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", + "dev": true, "dependencies": { - "cborg": "^4.0.0", - "multiformats": "^13.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "undici-types": "~6.19.2" } }, - "node_modules/@ipld/dag-json": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.2.3.tgz", - "integrity": "sha512-itacv1j1hvYgLox2B42Msn70QLzcr0MEo5yGIENuw2SM/lQzq9bmBiMky+kDsIrsqqblKTXcHBZnnmK7D4a6ZQ==", + "node_modules/@inquirer/prompts/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, "dependencies": { - "cborg": "^4.0.0", - "multiformats": "^13.1.0" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@ipld/dag-pb": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.1.3.tgz", - "integrity": "sha512-ueULCaaSCcD+dQga6nKiRr+RSeVgdiYiEPKVUu5iQMNYDN+9osd0KpR3UDd9uQQ+6RWuv9L34SchfEwj7YIbOA==", + "node_modules/@inquirer/prompts/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, "dependencies": { - "multiformats": "^13.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@ipld/dag-ucan": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-ucan/-/dag-ucan-3.4.0.tgz", - "integrity": "sha512-sW4R43w3DbEdoGWWJZCwsblwXa600HCanG9p2w1MJPVBNTNjhvqc3XI0uEqKhT2oqKWrND7uInVtcPmZme7hhA==", + "node_modules/@inquirer/prompts/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, "dependencies": { - "@ipld/dag-cbor": "^9.0.0", - "@ipld/dag-json": "^10.0.0", - "multiformats": "^11.0.0" - } - }, - "node_modules/@ipld/dag-ucan/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=8" } }, - "node_modules/@ipld/unixfs": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ipld/unixfs/-/unixfs-2.2.0.tgz", - "integrity": "sha512-lDQ2eRhJlbFaBoO3bhOmDVCLmpOnhwtwbilqUgAAhbhoPSmLrnv7gsBuToZjXOdPaEGSL7apkmm6nFrcU6zh4Q==", + "node_modules/@inquirer/prompts/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, - "dependencies": { - "@ipld/dag-pb": "^4.0.0", - "@multiformats/murmur3": "^2.1.3", - "@perma/map": "^1.0.2", - "actor": "^2.3.1", - "multiformats": "^11.0.1", - "protobufjs": "^7.1.2", - "rabin-rs": "^2.1.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@ipld/unixfs/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", + "node_modules/@inquirer/rawlist": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-1.2.16.tgz", + "integrity": "sha512-pZ6TRg2qMwZAOZAV6TvghCtkr53dGnK29GMNQ3vMZXSNguvGqtOVc4j/h1T8kqGJFagjyfBZhUPGwNS55O5qPQ==", "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=14.18.0" } }, - "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==", + "node_modules/@inquirer/rawlist/node_modules/@inquirer/core": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", + "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", "dev": true, + "dependencies": { + "@inquirer/type": "^1.1.6", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.10.7", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=14.18.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 - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@inquirer/rawlist/node_modules/@types/node": { + "version": "20.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "undici-types": "~6.19.2" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" - }, - "node_modules/@libp2p/crypto": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.17.tgz", - "integrity": "sha512-Oeg0Eb/EvAho0gVkOgemXEgrVxWaT3x/DpFgkBdZ9qGxwq75w/E/oPc7souqBz+l1swfz37GWnwV7bIb4Xv5Ag==", + "node_modules/@inquirer/rawlist/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, "dependencies": { - "@libp2p/interface-keys": "^1.0.2", - "@libp2p/interfaces": "^3.2.0", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", - "multiformats": "^11.0.0", - "node-forge": "^1.1.0", - "protons-runtime": "^5.0.0", - "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.2" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@libp2p/crypto/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", + "node_modules/@inquirer/rawlist/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@libp2p/crypto/node_modules/uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "node_modules/@inquirer/rawlist/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, "dependencies": { - "multiformats": "^12.0.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@libp2p/crypto/node_modules/uint8arrays/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", + "node_modules/@inquirer/rawlist/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, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@libp2p/interface": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.2.0.tgz", - "integrity": "sha512-Pn3P5ixDggBjDyuULT0GvwdgD3JA426OqZ0e521mI7ysS+/M9Z9fp4Qcy8JrkJ45bLmIi9cgrNrefuU/Zu+bAQ==", + "node_modules/@inquirer/select": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-1.3.3.tgz", + "integrity": "sha512-RzlRISXWqIKEf83FDC9ZtJ3JvuK1l7aGpretf41BCWYrvla2wU8W8MTRNMiPrPJ+1SIqrRC1nZdZ60hD9hRXLg==", + "dev": true, "dependencies": { - "@multiformats/multiaddr": "^12.2.3", - "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "progress-events": "^1.0.0", - "uint8arraylist": "^2.4.8" + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" } }, - "node_modules/@libp2p/interface-address-manager": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-2.0.5.tgz", - "integrity": "sha512-e2vLstKkYlAG2PZe6SEBpnnP2Y/ej6URue+zAiyjJPuXoOGNzHyLaqcv7MKye171OEf9dg5wv1gFphWcUJJbSA==", + "node_modules/@inquirer/select/node_modules/@inquirer/core": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", + "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", + "dev": true, "dependencies": { - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0" + "@inquirer/type": "^1.1.6", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.10.7", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=14.18.0" } }, - "node_modules/@libp2p/interface-address-manager/node_modules/@multiformats/multiaddr": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.3.1.tgz", - "integrity": "sha512-yoGODQY4nIj41ENJClucS8FtBoe8w682bzbKldEQr9lSlfdHqAsRC+vpJAOBpiMwPps1tHua4kxrDmvprdhoDQ==", + "node_modules/@inquirer/select/node_modules/@types/node": { + "version": "20.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", + "dev": true, "dependencies": { - "@chainsafe/is-ip": "^2.0.1", - "@chainsafe/netmask": "^2.0.0", - "@multiformats/dns": "^1.0.3", - "multiformats": "^13.0.0", - "uint8-varint": "^2.0.1", - "uint8arrays": "^5.0.0" + "undici-types": "~6.19.2" } }, - "node_modules/@libp2p/interface-address-manager/node_modules/uint8-varint": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.4.tgz", - "integrity": "sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==", + "node_modules/@inquirer/select/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, "dependencies": { - "uint8arraylist": "^2.0.0", - "uint8arrays": "^5.0.0" + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@libp2p/interface-connection": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.1.1.tgz", - "integrity": "sha512-+hxfYLv4jf+MruQEJiJeIyo/wI33/53wRL0XJTkxwQQPAkLHfZWCUY4kY9sXALd3+ASjXAENvJj9VvzZTlkRDQ==", + "node_modules/@inquirer/select/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, "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@libp2p/interface-connection-encrypter": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-3.0.6.tgz", - "integrity": "sha512-LwyYBN/aSa3IPCe7gBxffx/vaC0rFxAXlCbx4QGaWGtg6qK80Ouj89LEDWb3HkMbecNVWaV4TEqJIM5WnAAx1Q==", + "node_modules/@inquirer/select/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, "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/select/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "dev": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ipld/car": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@ipld/car/-/car-5.3.3.tgz", + "integrity": "sha512-4vgV5Ml4HCJ2iTx7vYhu0ui+Xxo1HQTtVeYgD+JKd5Wij8TlOFZnxOSickqpLcuf1fdGEStgqVItx15UWfzDYA==", + "dependencies": { + "@ipld/dag-cbor": "^9.0.7", + "cborg": "^4.0.5", + "multiformats": "^13.0.0", + "varint": "^6.0.0" }, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-connection-manager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-1.5.0.tgz", - "integrity": "sha512-luqYVMH3yip12JlSwVmBdo5/qG4YnXQXp2AV4lvxWK0sUhCnI2r3YL4e9ne8o3LAA5CkH3lPqTQ2HSRpmOruFg==", + "node_modules/@ipld/dag-cbor": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.2.2.tgz", + "integrity": "sha512-uIEOuruCqKTP50OBWwgz4Js2+LhiBQaxc57cnP71f45b1mHEAo1OCR1Zn/TbvSW/mV1x+JqhacIktkKyaYqhCw==", "dependencies": { - "@libp2p/interface-connection": "^4.0.0", - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0" + "cborg": "^4.0.0", + "multiformats": "^13.1.0" }, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-connection-manager/node_modules/@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", + "node_modules/@ipld/dag-json": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.2.3.tgz", + "integrity": "sha512-itacv1j1hvYgLox2B42Msn70QLzcr0MEo5yGIENuw2SM/lQzq9bmBiMky+kDsIrsqqblKTXcHBZnnmK7D4a6ZQ==", "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" + "cborg": "^4.0.0", + "multiformats": "^13.1.0" }, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-connection-manager/node_modules/@multiformats/multiaddr": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.3.1.tgz", - "integrity": "sha512-yoGODQY4nIj41ENJClucS8FtBoe8w682bzbKldEQr9lSlfdHqAsRC+vpJAOBpiMwPps1tHua4kxrDmvprdhoDQ==", + "node_modules/@ipld/dag-pb": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.1.3.tgz", + "integrity": "sha512-ueULCaaSCcD+dQga6nKiRr+RSeVgdiYiEPKVUu5iQMNYDN+9osd0KpR3UDd9uQQ+6RWuv9L34SchfEwj7YIbOA==", "dependencies": { - "@chainsafe/is-ip": "^2.0.1", - "@chainsafe/netmask": "^2.0.0", - "@multiformats/dns": "^1.0.3", - "multiformats": "^13.0.0", - "uint8-varint": "^2.0.1", - "uint8arrays": "^5.0.0" + "multiformats": "^13.1.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-connection-manager/node_modules/uint8-varint": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.4.tgz", + "node_modules/@ipld/dag-ucan": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@ipld/dag-ucan/-/dag-ucan-3.4.0.tgz", + "integrity": "sha512-sW4R43w3DbEdoGWWJZCwsblwXa600HCanG9p2w1MJPVBNTNjhvqc3XI0uEqKhT2oqKWrND7uInVtcPmZme7hhA==", + "dependencies": { + "@ipld/dag-cbor": "^9.0.0", + "@ipld/dag-json": "^10.0.0", + "multiformats": "^11.0.0" + } + }, + "node_modules/@ipld/dag-ucan/node_modules/multiformats": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", + "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@ipld/unixfs": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ipld/unixfs/-/unixfs-2.2.0.tgz", + "integrity": "sha512-lDQ2eRhJlbFaBoO3bhOmDVCLmpOnhwtwbilqUgAAhbhoPSmLrnv7gsBuToZjXOdPaEGSL7apkmm6nFrcU6zh4Q==", + "dev": true, + "dependencies": { + "@ipld/dag-pb": "^4.0.0", + "@multiformats/murmur3": "^2.1.3", + "@perma/map": "^1.0.2", + "actor": "^2.3.1", + "multiformats": "^11.0.1", + "protobufjs": "^7.1.2", + "rabin-rs": "^2.1.0" + } + }, + "node_modules/@ipld/unixfs/node_modules/multiformats": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", + "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", + "dev": true, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "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, + "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 + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + }, + "node_modules/@libp2p/crypto": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.17.tgz", + "integrity": "sha512-Oeg0Eb/EvAho0gVkOgemXEgrVxWaT3x/DpFgkBdZ9qGxwq75w/E/oPc7souqBz+l1swfz37GWnwV7bIb4Xv5Ag==", + "dependencies": { + "@libp2p/interface-keys": "^1.0.2", + "@libp2p/interfaces": "^3.2.0", + "@noble/ed25519": "^1.6.0", + "@noble/secp256k1": "^1.5.4", + "multiformats": "^11.0.0", + "node-forge": "^1.1.0", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/crypto/node_modules/multiformats": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", + "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/crypto/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/crypto/node_modules/uint8arrays/node_modules/multiformats": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.2.0.tgz", + "integrity": "sha512-Pn3P5ixDggBjDyuULT0GvwdgD3JA426OqZ0e521mI7ysS+/M9Z9fp4Qcy8JrkJ45bLmIi9cgrNrefuU/Zu+bAQ==", + "dependencies": { + "@multiformats/multiaddr": "^12.2.3", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.1", + "multiformats": "^13.1.0", + "progress-events": "^1.0.0", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/interface-address-manager": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-2.0.5.tgz", + "integrity": "sha512-e2vLstKkYlAG2PZe6SEBpnnP2Y/ej6URue+zAiyjJPuXoOGNzHyLaqcv7MKye171OEf9dg5wv1gFphWcUJJbSA==", + "dependencies": { + "@libp2p/interfaces": "^3.0.0", + "@multiformats/multiaddr": "^12.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-address-manager/node_modules/@multiformats/multiaddr": { + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.3.1.tgz", + "integrity": "sha512-yoGODQY4nIj41ENJClucS8FtBoe8w682bzbKldEQr9lSlfdHqAsRC+vpJAOBpiMwPps1tHua4kxrDmvprdhoDQ==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@multiformats/dns": "^1.0.3", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/interface-address-manager/node_modules/uint8-varint": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.4.tgz", + "integrity": "sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==", + "dependencies": { + "uint8arraylist": "^2.0.0", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/interface-connection": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.1.1.tgz", + "integrity": "sha512-+hxfYLv4jf+MruQEJiJeIyo/wI33/53wRL0XJTkxwQQPAkLHfZWCUY4kY9sXALd3+ASjXAENvJj9VvzZTlkRDQ==", + "dependencies": { + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interfaces": "^3.0.0", + "@multiformats/multiaddr": "^12.0.0", + "it-stream-types": "^1.0.4", + "uint8arraylist": "^2.1.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-connection-encrypter": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-3.0.6.tgz", + "integrity": "sha512-LwyYBN/aSa3IPCe7gBxffx/vaC0rFxAXlCbx4QGaWGtg6qK80Ouj89LEDWb3HkMbecNVWaV4TEqJIM5WnAAx1Q==", + "dependencies": { + "@libp2p/interface-peer-id": "^2.0.0", + "it-stream-types": "^1.0.4", + "uint8arraylist": "^2.1.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-connection-manager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-1.5.0.tgz", + "integrity": "sha512-luqYVMH3yip12JlSwVmBdo5/qG4YnXQXp2AV4lvxWK0sUhCnI2r3YL4e9ne8o3LAA5CkH3lPqTQ2HSRpmOruFg==", + "dependencies": { + "@libp2p/interface-connection": "^4.0.0", + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interfaces": "^3.0.0", + "@multiformats/multiaddr": "^12.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-connection-manager/node_modules/@libp2p/interface-connection": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", + "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", + "dependencies": { + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interfaces": "^3.0.0", + "@multiformats/multiaddr": "^12.0.0", + "it-stream-types": "^1.0.4", + "uint8arraylist": "^2.1.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-connection-manager/node_modules/@multiformats/multiaddr": { + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.3.1.tgz", + "integrity": "sha512-yoGODQY4nIj41ENJClucS8FtBoe8w682bzbKldEQr9lSlfdHqAsRC+vpJAOBpiMwPps1tHua4kxrDmvprdhoDQ==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@multiformats/dns": "^1.0.3", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/interface-connection-manager/node_modules/uint8-varint": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.4.tgz", "integrity": "sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==", "dependencies": { "uint8arraylist": "^2.0.0", @@ -4317,19 +4715,331 @@ "@stablelib/wipe": "^1.0.1" } }, - "node_modules/@storacha/one-webcrypto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@storacha/one-webcrypto/-/one-webcrypto-1.0.1.tgz", - "integrity": "sha512-bD+vWmcgsEBqU0Dz04BR43SA03bBoLTAY29vaKasY9Oe8cb6XIP0/vkm0OS2UwKC13c8uRgFW4rjJUgDCNLejQ==" - }, - "node_modules/@types/chai": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.0.1.tgz", - "integrity": "sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==", + "node_modules/@storacha/access": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@storacha/access/-/access-0.0.0.tgz", + "integrity": "sha512-zXEqfoDpCzDItoubOKp23dYJV5dY6rC1a60JsxvMv3RxpQCxSkFrZX/7rE8NRX/7SImODtdm15lNMdxCh+BezQ==", "dev": true, + "license": "(Apache-2.0 OR MIT)", "dependencies": { - "@types/deep-eql": "*" - } + "@ipld/car": "^5.1.1", + "@ipld/dag-ucan": "^3.4.0", + "@scure/bip39": "^1.2.1", + "@storacha/capabilities": "^0.0.0", + "@storacha/did-mailto": "^1.0.0", + "@storacha/one-webcrypto": "^1.0.1", + "@ucanto/client": "^9.0.1", + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "bigint-mod-arith": "^3.1.2", + "conf": "11.0.2", + "multiformats": "^12.1.2", + "p-defer": "^4.0.0", + "type-fest": "^4.9.0", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@storacha/access/node_modules/multiformats": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@storacha/access/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@storacha/blob-index": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@storacha/blob-index/-/blob-index-0.0.0.tgz", + "integrity": "sha512-sjscFR2aeSTB73LW0fd1Cypd09DjM+EdqNMxinyTttQBhGuzDw+1bnllhdgVNZAIyuablk5zI92MdHel8yCNYQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@ipld/dag-cbor": "^9.0.6", + "@storacha/capabilities": "^0.0.0", + "@storacha/one-webcrypto": "^1.0.1", + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "carstream": "^2.1.0", + "multiformats": "^13.0.1", + "uint8arrays": "^5.0.3" + }, + "engines": { + "node": ">=16.15" + } + }, + "node_modules/@storacha/capabilities": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@storacha/capabilities/-/capabilities-0.0.0.tgz", + "integrity": "sha512-6PINXoAMrcDS0a76H+d/LM5QlrfrDSbdHOoB8YT1AwQipJfMKTDUVFhWgpIaUrNljoJ8JHh7Y0Z/xb/biKwtYg==", + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "@web3-storage/data-segment": "^5.2.0", + "uint8arrays": "^5.0.3" + } + }, + "node_modules/@storacha/cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@storacha/cli/-/cli-1.0.1.tgz", + "integrity": "sha512-k0MtmCGBROaaAEr9IT+ttwGdRj5hKzv5RAWWePthVjYL7qP73E5PWK+g2kYlQ548w7Tdv8+RVJ+e+vPBHv3ptA==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@inquirer/core": "^5.1.1", + "@inquirer/prompts": "^3.3.0", + "@ipld/car": "^5.2.4", + "@ipld/dag-json": "^10.1.5", + "@ipld/dag-ucan": "^3.4.0", + "@storacha/access": "^0.0.0", + "@storacha/client": "^1.0.1", + "@storacha/did-mailto": "^1.0.0", + "@ucanto/client": "^9.0.1", + "@ucanto/core": "^10.0.1", + "@ucanto/transport": "^9.1.1", + "@web3-storage/content-claims": "^5.1.3", + "@web3-storage/data-segment": "^5.0.0", + "ansi-escapes": "^6.2.0", + "chalk": "^5.3.0", + "crypto-random-string": "^5.0.0", + "files-from-path": "^1.0.4", + "fr32-sha2-256-trunc254-padded-binary-tree-multihash": "^3.3.0", + "open": "^9.1.0", + "ora": "^7.0.1", + "pretty-tree": "^1.0.0", + "s-ago": "^2.2.0", + "sade": "^1.8.1", + "update-notifier": "^7.0.0" + }, + "bin": { + "storacha": "bin.js" + } + }, + "node_modules/@storacha/cli/node_modules/files-from-path": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/files-from-path/-/files-from-path-1.1.1.tgz", + "integrity": "sha512-M2JDH/0gHqIsdwTnp8IBMWEYUUiHe9ei0ZMTXLxqKFcGxJF4Ki+nicw2k8HP5KGEzPLTyJ81XwLmP8l8rKa6qg==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "graceful-fs": "^4.2.10" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@storacha/client": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@storacha/client/-/client-1.0.5.tgz", + "integrity": "sha512-+UIthYwm8casRiFTvjImqyF5j8ugeFhxzjgyOv3BJ0Fd9EkaEnzosvtd1NZq7L+8YugdUxOHbpRlExc/cEfT3A==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@ipld/dag-ucan": "^3.4.0", + "@storacha/access": "^0.0.0", + "@storacha/blob-index": "^0.0.0", + "@storacha/capabilities": "^1.1.1", + "@storacha/did-mailto": "^1.0.0", + "@storacha/filecoin-client": "^1.0.0", + "@storacha/upload-client": "^1.0.1", + "@ucanto/client": "^9.0.1", + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@storacha/client/node_modules/@storacha/capabilities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@storacha/capabilities/-/capabilities-1.1.1.tgz", + "integrity": "sha512-f8KDovm0wLWONk0Ehp7aPDeP7nhNymV+snADlQXpaocADE7AvU7jwe+Cnz78uC/VHo15L0ASH7XRf5I2mHDhbg==", + "dev": true, + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "@web3-storage/data-segment": "^5.2.0", + "uint8arrays": "^5.0.3" + } + }, + "node_modules/@storacha/did-mailto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@storacha/did-mailto/-/did-mailto-1.0.0.tgz", + "integrity": "sha512-VDbQoZ80W1QpVv5SjA2S0YQS7GNylrcQjdCaxDM5U4PPDt6BJ+K+3z+C8HbPEowlyiMkLBF3iuWOXa4Ttx1JFQ==", + "dev": true, + "license": "(Apache-2.0 OR MIT)", + "engines": { + "node": ">=16.15" + } + }, + "node_modules/@storacha/filecoin-client": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@storacha/filecoin-client/-/filecoin-client-1.0.0.tgz", + "integrity": "sha512-rpBs1Ag14SBKvPLskdTHtbwuWnlIJaqvNkAjMPFa4bVTZh/+oOJLYwg94OX9AQdus5+LHnzuATce/wDf0KzKgg==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@ipld/dag-ucan": "^3.4.0", + "@storacha/capabilities": "^1.1.1", + "@ucanto/client": "^9.0.1", + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/transport": "^9.1.1" + } + }, + "node_modules/@storacha/filecoin-client/node_modules/@storacha/capabilities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@storacha/capabilities/-/capabilities-1.1.1.tgz", + "integrity": "sha512-f8KDovm0wLWONk0Ehp7aPDeP7nhNymV+snADlQXpaocADE7AvU7jwe+Cnz78uC/VHo15L0ASH7XRf5I2mHDhbg==", + "dev": true, + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "@web3-storage/data-segment": "^5.2.0", + "uint8arrays": "^5.0.3" + } + }, + "node_modules/@storacha/indexing-service-client": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@storacha/indexing-service-client/-/indexing-service-client-2.0.0.tgz", + "integrity": "sha512-PHG1P2yF2uN+n6czJq74etH19xxDXSJO5y5tQAknnofvAOukpSrKDeaVyo2JPaiY6hmviBqbzHeUMvhYfb0bew==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@ipld/dag-cbor": "^9.2.2", + "@storacha/blob-index": "^0.0.0", + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "multiformats": "^13.3.1", + "zod": "^3.23.8" + } + }, + "node_modules/@storacha/one-webcrypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@storacha/one-webcrypto/-/one-webcrypto-1.0.1.tgz", + "integrity": "sha512-bD+vWmcgsEBqU0Dz04BR43SA03bBoLTAY29vaKasY9Oe8cb6XIP0/vkm0OS2UwKC13c8uRgFW4rjJUgDCNLejQ==" + }, + "node_modules/@storacha/upload-client": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@storacha/upload-client/-/upload-client-1.0.1.tgz", + "integrity": "sha512-5BGL36S2Mz3VnvzI/iyhST/8sGYms4KYHj7kyqEC3DfIBLVnjzNhJJH0m2rhO4YlCaEPym2wjNyY+JbJTvyOgw==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@ipld/car": "^5.2.2", + "@ipld/dag-cbor": "^9.0.6", + "@ipld/dag-ucan": "^3.4.0", + "@ipld/unixfs": "^2.1.1", + "@storacha/blob-index": "^0.0.0", + "@storacha/capabilities": "^1.1.1", + "@storacha/filecoin-client": "^0.0.0", + "@ucanto/client": "^9.0.1", + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/transport": "^9.1.1", + "@web3-storage/data-segment": "^5.1.0", + "ipfs-utils": "^9.0.14", + "multiformats": "^12.1.2", + "p-retry": "^5.1.2", + "varint": "^6.0.0" + } + }, + "node_modules/@storacha/upload-client/node_modules/@storacha/capabilities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@storacha/capabilities/-/capabilities-1.1.1.tgz", + "integrity": "sha512-f8KDovm0wLWONk0Ehp7aPDeP7nhNymV+snADlQXpaocADE7AvU7jwe+Cnz78uC/VHo15L0ASH7XRf5I2mHDhbg==", + "dev": true, + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "@web3-storage/data-segment": "^5.2.0", + "uint8arrays": "^5.0.3" + } + }, + "node_modules/@storacha/upload-client/node_modules/@storacha/filecoin-client": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@storacha/filecoin-client/-/filecoin-client-0.0.0.tgz", + "integrity": "sha512-+Ma5eJyJfah4X1NQ3GrEzuqn4QmihKax3Y2cSe7/UuflNC9atSJpDnTGzRscFdi4YN6UzOeEALsMeW/2lxIqUg==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@ipld/dag-ucan": "^3.4.0", + "@storacha/capabilities": "^0.0.0", + "@ucanto/client": "^9.0.1", + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/transport": "^9.1.1" + } + }, + "node_modules/@storacha/upload-client/node_modules/@storacha/filecoin-client/node_modules/@storacha/capabilities": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@storacha/capabilities/-/capabilities-0.0.0.tgz", + "integrity": "sha512-6PINXoAMrcDS0a76H+d/LM5QlrfrDSbdHOoB8YT1AwQipJfMKTDUVFhWgpIaUrNljoJ8JHh7Y0Z/xb/biKwtYg==", + "dev": true, + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "@web3-storage/data-segment": "^5.2.0", + "uint8arrays": "^5.0.3" + } + }, + "node_modules/@storacha/upload-client/node_modules/multiformats": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@storacha/upload-service/packages/w3up-client": { + "extraneous": true + }, + "node_modules/@types/chai": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.0.1.tgz", + "integrity": "sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==", + "dev": true, + "dependencies": { + "@types/deep-eql": "*" + } }, "node_modules/@types/deep-eql": { "version": "4.0.2", @@ -4549,64 +5259,26 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@web3-storage/access": { - "version": "20.1.0", - "resolved": "https://registry.npmjs.org/@web3-storage/access/-/access-20.1.0.tgz", - "integrity": "sha512-IY6ICPRWE8++2jxvy+LzAiFvwAOIHR8cu9eNt+VT5sAFE796o4ma7GSU0eXRCiShmV2n6iSWAwWRT6XD5zIqPA==", - "dev": true, + "node_modules/@web3-storage/blob-fetcher": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@web3-storage/blob-fetcher/-/blob-fetcher-2.4.3.tgz", + "integrity": "sha512-hy+UR6Gxh5spKAs8wdk2dN6K1CL4zhpdtTbB9Xf5YKeSwW5wEZC+m7Us/zaeZ3YGg3oKJLFyDXoHV1KpxV7Ykg==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@ipld/car": "^5.1.1", + "@cloudflare/workers-types": "^4.20241022.0", "@ipld/dag-ucan": "^3.4.0", - "@scure/bip39": "^1.2.1", - "@storacha/one-webcrypto": "^1.0.1", - "@ucanto/client": "^9.0.1", - "@ucanto/core": "^10.0.1", - "@ucanto/interface": "^10.0.1", - "@ucanto/principal": "^9.0.1", - "@ucanto/transport": "^9.1.1", - "@ucanto/validator": "^9.0.2", - "@web3-storage/capabilities": "^17.3.0", - "@web3-storage/did-mailto": "^2.1.0", - "bigint-mod-arith": "^3.1.2", - "conf": "11.0.2", - "multiformats": "^12.1.2", - "p-defer": "^4.0.0", - "type-fest": "^4.9.0", - "uint8arrays": "^4.0.6" - } - }, - "node_modules/@web3-storage/access/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "dev": true, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@web3-storage/access/node_modules/uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", - "dev": true, - "dependencies": { - "multiformats": "^12.0.1" - } - }, - "node_modules/@web3-storage/blob-fetcher": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@web3-storage/blob-fetcher/-/blob-fetcher-2.3.1.tgz", - "integrity": "sha512-yjtj0z+GcQY99smXGvKVcaac7MZFXepWw2VOruUojLMlgW3u1lEx19yqM+xHutMpUQMO51166Qvsm14as8Rlfg==", - "dependencies": { - "@cloudflare/workers-types": "^4.20241022.0", + "@storacha/indexing-service-client": "^2.0.0", "@ucanto/interface": "^10.0.1", "@web3-storage/blob-index": "^1.0.2", "@web3-storage/content-claims": "^5.1.0", "multiformats": "^13.1.0", "multipart-byte-range": "^3.0.1", "p-defer": "^4.0.1", - "p-queue": "^8.0.1" + "p-queue": "^8.0.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=20.11.0" } }, "node_modules/@web3-storage/blob-index": { @@ -4664,15 +5336,6 @@ "sync-multihash-sha2": "^1.0.0" } }, - "node_modules/@web3-storage/did-mailto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@web3-storage/did-mailto/-/did-mailto-2.1.0.tgz", - "integrity": "sha512-TRmfSXj1IhtX3ESurSNOylZSBKi0z/VJNoMLpof+AVRdovgZjjocpiePQTs2pfHKqHTHfJXc9AboWyK4IKTWMw==", - "dev": true, - "engines": { - "node": ">=16.15" - } - }, "node_modules/@web3-storage/filecoin-client": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/@web3-storage/filecoin-client/-/filecoin-client-3.3.4.tgz", @@ -4780,79 +5443,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@web3-storage/w3cli": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/@web3-storage/w3cli/-/w3cli-7.8.2.tgz", - "integrity": "sha512-Ua7qcE0bEL+xKNQN7PSf6IPGIY+IR8oeqkYPyE25m3kY+gwroqz6O+459NsRSPeBBEdQD1lfqnbdxysMpK1GFw==", - "dev": true, - "dependencies": { - "@inquirer/core": "^5.1.1", - "@inquirer/prompts": "^3.3.0", - "@ipld/car": "^5.2.4", - "@ipld/dag-json": "^10.1.5", - "@ipld/dag-ucan": "^3.4.0", - "@ucanto/client": "^9.0.1", - "@ucanto/core": "^10.0.1", - "@ucanto/principal": "^9.0.1", - "@ucanto/transport": "^9.1.1", - "@web3-storage/access": "^20.0.0", - "@web3-storage/capabilities": "^17.2.0", - "@web3-storage/data-segment": "^5.0.0", - "@web3-storage/did-mailto": "^2.1.0", - "@web3-storage/w3up-client": "^14.1.1", - "ansi-escapes": "^6.2.0", - "chalk": "^5.3.0", - "crypto-random-string": "^5.0.0", - "files-from-path": "^1.0.4", - "fr32-sha2-256-trunc254-padded-binary-tree-multihash": "^3.3.0", - "multiformats": "^13.1.3", - "open": "^9.1.0", - "ora": "^7.0.1", - "pretty-tree": "^1.0.0", - "s-ago": "^2.2.0", - "sade": "^1.8.1", - "update-notifier": "^7.0.0" - }, - "bin": { - "w3": "shim.js", - "w3up": "shim.js" - } - }, - "node_modules/@web3-storage/w3cli/node_modules/files-from-path": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/files-from-path/-/files-from-path-1.0.4.tgz", - "integrity": "sha512-sMNIVdpRh1uCSIaat3qnM3E6aA1C5FVn5/B16z8sN3gIMjZPkxtVCorkEL07xTcCIxVwTXzjU1Ota7Wif6RfQQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.10" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@web3-storage/w3up-client": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@web3-storage/w3up-client/-/w3up-client-14.1.1.tgz", - "integrity": "sha512-brBmN1aCJpjtNLwWpz0Jg1OkfsYs7r27m5VMOET9x+j4jy3DCtSqlUkHFIumLYrNhUn5oZrqh0kbWokcaUvrLg==", - "dev": true, - "dependencies": { - "@ipld/dag-ucan": "^3.4.0", - "@ucanto/client": "^9.0.1", - "@ucanto/core": "^10.0.1", - "@ucanto/interface": "^10.0.1", - "@ucanto/principal": "^9.0.1", - "@ucanto/transport": "^9.1.1", - "@web3-storage/access": "^20.0.0", - "@web3-storage/blob-index": "^1.0.3", - "@web3-storage/capabilities": "^17.2.0", - "@web3-storage/did-mailto": "^2.1.0", - "@web3-storage/filecoin-client": "^3.3.3", - "@web3-storage/upload-client": "^16.1.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/abort-error": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/abort-error/-/abort-error-1.0.0.tgz", @@ -6313,7 +6903,8 @@ "version": "6.1.4", "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/delayed-stream": { "version": "1.0.0", @@ -6622,40 +7213,43 @@ } }, "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, "node_modules/escalade": { @@ -9907,10 +10501,11 @@ } }, "node_modules/miniflare": { - "version": "3.20241106.0", - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20241106.0.tgz", - "integrity": "sha512-PjOoJKjUUofCueQskfhXlGvvHxZj36UAJAp1DnquMK88MFF50zCULblh0KXMSNM+bXeQYA94Gj06a7kfmBGxPw==", + "version": "3.20241106.1", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20241106.1.tgz", + "integrity": "sha512-dM3RBlJE8rUFxnqlPCaFCq0E7qQqEQvKbYX7W/APGCK+rLcyLmEBzC4GQR/niXdNM/oV6gdg9AA50ghnn2ALuw==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "0.8.1", "acorn": "^8.8.0", @@ -10336,7 +10931,8 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz", "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/once": { "version": "1.4.0", @@ -10735,7 +11331,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pathval": { "version": "2.0.0", @@ -12426,7 +13023,8 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/uglify-js": { "version": "3.19.3", @@ -12517,10 +13115,11 @@ }, "node_modules/unenv": { "name": "unenv-nightly", - "version": "2.0.0-20241024-111401-d4156ac", - "resolved": "https://registry.npmjs.org/unenv-nightly/-/unenv-nightly-2.0.0-20241024-111401-d4156ac.tgz", - "integrity": "sha512-xJO1hfY+Te+/XnfCYrCbFbRcgu6XEODND1s5wnVbaBCkuQX7JXF7fHEXPrukFE2j8EOH848P8QN19VO47XN8hw==", + "version": "2.0.0-20241121-161142-806b5c0", + "resolved": "https://registry.npmjs.org/unenv-nightly/-/unenv-nightly-2.0.0-20241121-161142-806b5c0.tgz", + "integrity": "sha512-RnFOasE/O0Q55gBkNB1b84OgKttgLEijGO0JCWpbn+O4XxpyCQg89NmcqQ5RGUiy4y+rMIrKzePTquQcLQF5pQ==", "dev": true, + "license": "MIT", "dependencies": { "defu": "^6.1.4", "ohash": "^1.1.4", @@ -12718,204 +13317,578 @@ "which-typed-array": "^1.1.15" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", + "dev": true, + "dependencies": { + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/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, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerd": { + "version": "1.20241106.1", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20241106.1.tgz", + "integrity": "sha512-1GdKl0kDw8rrirr/ThcK66Kbl4/jd4h8uHx5g7YHBrnenY5SX1UPuop2cnCzYUxlg55kPjzIqqYslz1muRFgFw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "workerd": "bin/workerd" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "@cloudflare/workerd-darwin-64": "1.20241106.1", + "@cloudflare/workerd-darwin-arm64": "1.20241106.1", + "@cloudflare/workerd-linux-64": "1.20241106.1", + "@cloudflare/workerd-linux-arm64": "1.20241106.1", + "@cloudflare/workerd-windows-64": "1.20241106.1" + } + }, + "node_modules/workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "dev": true + }, + "node_modules/wrangler": { + "version": "3.91.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.91.0.tgz", + "integrity": "sha512-Hdzn6wbY9cz5kL85ZUvWLwLIH7nPaEVRblfms40jhRf4qQO/Zf74aFlku8rQFbe8/2aVZFaxJVfBd6JQMeMSBQ==", + "dev": true, + "license": "MIT OR Apache-2.0", + "dependencies": { + "@cloudflare/kv-asset-handler": "0.3.4", + "@cloudflare/workers-shared": "0.9.0", + "@esbuild-plugins/node-globals-polyfill": "^0.2.3", + "@esbuild-plugins/node-modules-polyfill": "^0.2.2", + "blake3-wasm": "^2.1.5", + "chokidar": "^4.0.1", + "date-fns": "^4.1.0", + "esbuild": "0.17.19", + "itty-time": "^1.0.6", + "miniflare": "3.20241106.1", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.3.0", + "resolve": "^1.22.8", + "resolve.exports": "^2.0.2", + "selfsigned": "^2.0.1", + "source-map": "^0.6.1", + "unenv": "npm:unenv-nightly@2.0.0-20241121-161142-806b5c0", + "workerd": "1.20241106.1", + "xxhash-wasm": "^1.0.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" + }, + "engines": { + "node": ">=16.17.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@cloudflare/workers-types": "^4.20241106.0" + }, + "peerDependenciesMeta": { + "@cloudflare/workers-types": { + "optional": true + } + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "node_modules/wrangler/node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "node_modules/wrangler/node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/widest-line": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", - "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", + "node_modules/wrangler/node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "string-width": "^7.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "node_modules/wrangler/node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/widest-line/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "node_modules/wrangler/node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/widest-line/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==", + "node_modules/wrangler/node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "node_modules/wrangler/node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/workerd": { - "version": "1.20241106.1", - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20241106.1.tgz", - "integrity": "sha512-1GdKl0kDw8rrirr/ThcK66Kbl4/jd4h8uHx5g7YHBrnenY5SX1UPuop2cnCzYUxlg55kPjzIqqYslz1muRFgFw==", + "node_modules/wrangler/node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], "dev": true, - "hasInstallScript": true, - "bin": { - "workerd": "bin/workerd" - }, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "@cloudflare/workerd-darwin-64": "1.20241106.1", - "@cloudflare/workerd-darwin-arm64": "1.20241106.1", - "@cloudflare/workerd-linux-64": "1.20241106.1", - "@cloudflare/workerd-linux-arm64": "1.20241106.1", - "@cloudflare/workerd-windows-64": "1.20241106.1" + "node": ">=12" } }, - "node_modules/workerpool": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", - "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", - "dev": true + "node_modules/wrangler/node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/wrangler": { - "version": "3.86.1", - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.86.1.tgz", - "integrity": "sha512-ujN74lPQCQRsMcvf48WLLZUqOqUbJJzt5+Xm5T3tGrpRJLW+dTB0ffvT/e2DBBvHZ7R52ZzZdm1akyLPsZmZ9Q==", + "node_modules/wrangler/node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@cloudflare/kv-asset-handler": "0.3.4", - "@cloudflare/workers-shared": "0.7.1", - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", - "blake3-wasm": "^2.1.5", - "chokidar": "^3.5.3", - "date-fns": "^4.1.0", - "esbuild": "0.17.19", - "itty-time": "^1.0.6", - "miniflare": "3.20241106.0", - "nanoid": "^3.3.3", - "path-to-regexp": "^6.3.0", - "resolve": "^1.22.8", - "resolve.exports": "^2.0.2", - "selfsigned": "^2.0.1", - "source-map": "^0.6.1", - "unenv": "npm:unenv-nightly@2.0.0-20241024-111401-d4156ac", - "workerd": "1.20241106.1", - "xxhash-wasm": "^1.0.1" - }, - "bin": { - "wrangler": "bin/wrangler.js", - "wrangler2": "bin/wrangler.js" - }, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=16.17.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@cloudflare/workers-types": "^4.20241106.0" - }, - "peerDependenciesMeta": { - "@cloudflare/workers-types": { - "optional": true - } + "node": ">=12" } }, - "node_modules/wrangler/node_modules/@esbuild/linux-x64": { + "node_modules/wrangler/node_modules/@esbuild/win32-x64": { "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ - "linux" + "win32" ], "engines": { "node": ">=12" } }, + "node_modules/wrangler/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/wrangler/node_modules/esbuild": { "version": "0.17.19", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", @@ -12959,6 +13932,20 @@ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", "dev": true }, + "node_modules/wrangler/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -13164,7 +14151,6 @@ "version": "3.23.8", "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", - "dev": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index 233be57..411f80e 100644 --- a/package.json +++ b/package.json @@ -38,10 +38,11 @@ "@microlabs/otel-cf-workers": "^1.0.0-rc.48", "@opentelemetry/api": "^1.9.0", "@opentelemetry/sdk-trace-base": "^1.27.0", + "@storacha/indexing-service-client": "^2.0.0", "@ucanto/client": "^9.0.1", "@ucanto/principal": "^9.0.1", "@ucanto/transport": "^9.1.1", - "@web3-storage/blob-fetcher": "^2.3.1", + "@web3-storage/blob-fetcher": "^2.4.3", "@web3-storage/capabilities": "^17.4.1", "@web3-storage/gateway-lib": "^5.1.2", "dagula": "^8.0.0", @@ -51,6 +52,8 @@ }, "devDependencies": { "@cloudflare/workers-types": "^4.20231218.0", + "@storacha/cli": "^1.0.1", + "@storacha/client": "^1.0.5", "@types/chai": "^5.0.0", "@types/mocha": "^10.0.9", "@types/node-fetch": "^2.6.11", @@ -58,10 +61,9 @@ "@web3-storage/content-claims": "^5.0.0", "@web3-storage/public-bucket": "^1.1.0", "@web3-storage/upload-client": "^16.1.1", - "@web3-storage/w3cli": "^7.8.2", "carstream": "^2.1.0", "chai": "^5.1.1", - "esbuild": "^0.18.20", + "esbuild": "^0.24.0", "files-from-path": "^0.2.6", "miniflare": "^3.20240909.5", "mocha": "^10.7.3", @@ -70,7 +72,7 @@ "standard": "^17.1.0", "tree-kill": "^1.2.2", "typescript": "^5.6.3", - "wrangler": "^3.86.1" + "wrangler": "^3.90.0" }, "standard": { "ignore": [ diff --git a/scripts/delegate-serve.d.ts b/scripts/delegate-serve.d.ts index 17ca046..affd0b0 100644 --- a/scripts/delegate-serve.d.ts +++ b/scripts/delegate-serve.d.ts @@ -1,4 +1,4 @@ -declare module '@web3-storage/w3cli/lib.js' { - import { Client } from '@web3-storage/w3up-client' +declare module '@storacha/cli/lib.js' { + import { Client } from '@storacha/client' export declare function getClient(): Promise } diff --git a/scripts/delegate-serve.js b/scripts/delegate-serve.js index 705b8d7..76cbe13 100644 --- a/scripts/delegate-serve.js +++ b/scripts/delegate-serve.js @@ -1,73 +1,137 @@ import sade from 'sade' -import { getClient } from '@web3-storage/w3cli/lib.js' +import { Schema } from '@ucanto/core' +import { getClient } from '@storacha/cli/lib.js' import { Space } from '@web3-storage/capabilities' +import * as serve from '../src/capabilities/serve.js' -const cli = sade('delegate-serve.js [space] [token] [accountDID] [gatewayDID]') +const MailtoDID = + /** @type {import('@ucanto/validator').StringSchema<`did:mailto:${string}:${string}`, unknown>} */ ( + Schema.text({ pattern: /^did:mailto:.*:.*$/ }) + ) -cli - .option('--space', 'The space DID to delegate. If not provided, a new space will be created.') - .option('--token', 'The auth token to use. If not provided, the delegation will not be authenticated.') +sade('delegate-serve.js [space]') + .option( + '--token', + 'The auth token to use. If not provided, the delegation will not be authenticated.' + ) .option('--accountDID', 'The account DID to use when creating a new space.') - .option('--gatewayDID', 'The gateway DID to use when delegating the space/content/serve capability. Defaults to did:web:staging.w3s.link.') + .option( + '--gatewayDID', + 'The gateway DID to use when delegating the space/content/serve capability. Defaults to did:web:staging.w3s.link.' + ) .describe( - `Delegates ${Space.contentServe.can} to the Gateway for a test space generated by the script, with an optional auth token. Outputs a base64url string suitable for the stub_delegation query parameter. Pipe the output to pbcopy or similar for the quickest workflow.` + `Delegates ${Space.contentServe.can} to the Gateway for a test space generated by the script, with an optional auth token. Outputs a base64url string suitable for the stub_delegation query parameter.` ) - .action(async (space, token, accountDID, gatewayDID, options) => { - const { space: spaceOption, token: tokenOption, accountDID: accountDIDOption, gatewayDID: gatewayDIDOption } = options - space = spaceOption || undefined - token = tokenOption || undefined - accountDID = accountDIDOption || undefined - gatewayDID = gatewayDIDOption || 'did:web:staging.w3s.link' - const client = await getClient() + .action( + /** + * @param {string} [space] + * @param {object} [options] + * @param {string} [options.token] + * @param {string} [options.accountDID] + * @param {string} [options.gatewayDID] + */ + async ( + space, + { token, accountDID, gatewayDID = 'did:web:staging.w3s.link' } = {} + ) => { + const client = await getClient() + + space ??= await createSpace(client, accountDID) - let spaceDID - let proofs = [] - if (!space) { - const provider = /** @type {`did:web:${string}`} */ (client.defaultProvider()) - const account = client.accounts()[accountDID] - const newSpace = await client.agent.createSpace('test') - const provision = await account.provision(newSpace.did(), { provider }) - if (provision.error) throw provision.error - await newSpace.save() - const authProof = await newSpace.createAuthorization(client.agent) - proofs = [authProof] - spaceDID = newSpace.did() - } else { - client.addSpace(space) - spaceDID = space - proofs = client.proofs([ + if (!Schema.did({}).is(space)) { + throw new Error(`Invalid space DID: ${space}`) + } + + const proofs = client.proofs([ { can: Space.contentServe.can, - with: spaceDID + with: space } ]) - } - /** @type {import('@ucanto/client').Principal<`did:${string}:${string}`>} */ - const gatewayIdentity = { - did: () => gatewayDID - } + if (proofs.length === 0) { + throw new Error( + `No proofs found. Are you authorized to ${serve.star.can} ${space}?` + ) + } + + if (!Schema.did({}).is(gatewayDID)) { + throw new Error(`Invalid gateway DID: ${gatewayDID}`) + } - // @ts-expect-error - The client still needs to be updated to support the capability type - const delegation = await client.createDelegation(gatewayIdentity, [Space.contentServe.can], { - expiration: Infinity, - proofs - }) + const gatewayIdentity = { + did: () => gatewayDID + } - await client.capability.access.delegate({ - delegations: [delegation] - }) + // NOTE: This type assertion is wrong. It's a hack to let us use this + // ability. `client.createDelegation` currently only accepts abilities it + // knows about. That should probably be expanded, but this little script + // isn't going to be the reason to go change that, as it involves updating + // multiple packages. + const ability = /** @type {"*"} */ (Space.contentServe.can) + + client.setCurrentSpace(space) + const delegation = await client.createDelegation( + gatewayIdentity, + [ability], + { + expiration: Infinity, + proofs + } + ) + + await client.capability.access.delegate({ + delegations: [delegation] + }) + + const carResult = await delegation.archive() + if (carResult.error) throw carResult.error + const base64Url = Buffer.from(carResult.ok).toString('base64url') + process.stdout.write( + `Agent Proofs: ${proofs + .flatMap((p) => p.capabilities) + .map((c) => `${c.can} with ${c.with}`) + .join('\n')}\n` + ) + process.stdout.write(`Issuer: ${client.agent.issuer.did()}\n`) + process.stdout.write(`Audience: ${gatewayIdentity.did()}\n`) + process.stdout.write(`Space: ${space}\n`) + process.stdout.write(`Token: ${token ?? 'none'}\n`) + process.stdout.write( + `Delegation: ${delegation.capabilities + .map((c) => `${c.can} with ${c.with}`) + .join('\n')}\n` + ) + process.stdout.write( + `Stubs: stub_space=${space}&stub_delegation=${base64Url}&authToken=${ + token ?? '' + }\n` + ) + } + ) + .parse(process.argv) - const carResult = await delegation.archive() - if (carResult.error) throw carResult.error - const base64Url = Buffer.from(carResult.ok).toString('base64url') - process.stdout.write(`Agent Proofs: ${proofs.flatMap(p => p.capabilities).map(c => `${c.can} with ${c.with}`).join('\n')}\n`) - process.stdout.write(`Issuer: ${client.agent.issuer.did()}\n`) - process.stdout.write(`Audience: ${gatewayIdentity.did()}\n`) - process.stdout.write(`Space: ${spaceDID}\n`) - process.stdout.write(`Token: ${token ?? 'none'}\n`) - process.stdout.write(`Delegation: ${delegation.capabilities.map(c => `${c.can} with ${c.with}`).join('\n')}\n`) - process.stdout.write(`Stubs: stub_space=${spaceDID}&stub_delegation=${base64Url}&authToken=${token ?? ''}\n`) - }) +/** + * @param {import('@storacha/client').Client} client + * @param {string} [accountDID] + */ +async function createSpace (client, accountDID) { + const provider = client.defaultProvider() + if (!Schema.did({ method: 'web' }).is(provider)) { + throw new Error(`Invalid provider DID: ${provider}`) + } + if (!accountDID) { + throw new Error('Must provide an account DID to create a space') + } -cli.parse(process.argv) + if (!MailtoDID.is(accountDID)) { + throw new Error(`Invalid account DID: ${accountDID}`) + } + const account = client.accounts()[accountDID] + const newSpace = await client.agent.createSpace('test') + const provision = await account.provision(newSpace.did(), { provider }) + if (provision.error) throw provision.error + await newSpace.save() + await newSpace.createAuthorization(client.agent) + return newSpace.did() +} diff --git a/src/middleware/withAuthorizedSpace.js b/src/middleware/withAuthorizedSpace.js index 8fde9b5..8e37cea 100644 --- a/src/middleware/withAuthorizedSpace.js +++ b/src/middleware/withAuthorizedSpace.js @@ -5,11 +5,11 @@ import * as serve from '../capabilities/serve.js' /** * @import * as Ucanto from '@ucanto/interface' - * @import { Locator } from '@web3-storage/blob-fetcher' * @import { IpfsUrlContext, Middleware } from '@web3-storage/gateway-lib' * @import { LocatorContext } from './withLocator.types.js' * @import { AuthTokenContext } from './withAuthToken.types.js' - * @import { SpaceContext, DelegationsStorageContext } from './withAuthorizedSpace.types.js' + * @import { SpaceContext, DelegationsStorageContext, DelegationProofsContext } from './withAuthorizedSpace.types.js' + * @import { GatewayIdentityContext } from './withGatewayIdentity.types.js' */ /** @@ -21,9 +21,8 @@ import * as serve from '../capabilities/serve.js' * @throws {Error} If the locator fails in any other way. * @type {( * Middleware< - * LocatorContext & IpfsUrlContext & AuthTokenContext & DelegationsStorageContext & SpaceContext, - * LocatorContext & IpfsUrlContext & AuthTokenContext & DelegationsStorageContext, - * {} + * LocatorContext & IpfsUrlContext & AuthTokenContext & GatewayIdentityContext & DelegationProofsContext & DelegationsStorageContext & SpaceContext, + * LocatorContext & IpfsUrlContext & AuthTokenContext & GatewayIdentityContext & DelegationProofsContext & DelegationsStorageContext * > * )} */ @@ -68,7 +67,7 @@ export function withAuthorizedSpace (handler) { ...ctx, space: selectedSpace, delegationProofs, - locator: spaceScopedLocator(locator, selectedSpace) + locator: locator.scopeToSpaces([selectedSpace]) }) } catch (error) { // If all Spaces failed to authorize, throw the first error. @@ -76,6 +75,15 @@ export function withAuthorizedSpace (handler) { error instanceof AggregateError && error.errors.every((e) => e instanceof Unauthorized) ) { + if (env.DEBUG === 'true') { + console.log( + [ + 'Authorization Failures:', + ...error.errors.map((e) => e.message) + ].join('\n\n') + ) + } + throw new HttpError('Not Found', { status: 404, cause: error }) } else { throw error @@ -90,7 +98,7 @@ export function withAuthorizedSpace (handler) { * {@link DelegationsStorageContext.delegationsStorage}. * * @param {Ucanto.DID} space - * @param {AuthTokenContext & DelegationsStorageContext} ctx + * @param {AuthTokenContext & DelegationsStorageContext & GatewayIdentityContext} ctx * @returns {Promise>} */ const authorize = async (space, ctx) => { @@ -134,26 +142,3 @@ const authorize = async (space, ctx) => { } } } - -/** - * Wraps a {@link Locator} and locates content only from a specific Space. - * - * @param {Locator} locator - * @param {Ucanto.DID} space - * @returns {Locator} - */ -const spaceScopedLocator = (locator, space) => ({ - locate: async (digest) => { - const locateResult = await locator.locate(digest) - if (locateResult.error) { - return locateResult - } else { - return { - ok: { - ...locateResult.ok, - site: locateResult.ok.site.filter((site) => site.space === space) - } - } - } - } -}) diff --git a/src/middleware/withAuthorizedSpace.types.ts b/src/middleware/withAuthorizedSpace.types.ts index 142aaf4..88c69ab 100644 --- a/src/middleware/withAuthorizedSpace.types.ts +++ b/src/middleware/withAuthorizedSpace.types.ts @@ -1,11 +1,11 @@ import * as Ucanto from '@ucanto/interface' import { Context as MiddlewareContext } from '@web3-storage/gateway-lib' -import { GatewayIdentityContext as GatewayIdentityContext } from './withGatewayIdentity.types.js' -export interface DelegationsStorageContext - extends MiddlewareContext, - GatewayIdentityContext { +export interface DelegationsStorageContext extends MiddlewareContext { delegationsStorage: DelegationsStorage +} + +export interface DelegationProofsContext extends MiddlewareContext { /** * The delegation proofs to use for the egress record * The proofs must be valid for the space and the owner of the space diff --git a/src/middleware/withDelegationStubs.js b/src/middleware/withDelegationStubs.js index b9ab550..1261c5e 100644 --- a/src/middleware/withDelegationStubs.js +++ b/src/middleware/withDelegationStubs.js @@ -1,7 +1,6 @@ -import { Delegation } from '@ucanto/core' +import { Delegation, Schema } from '@ucanto/core' /** - * @import * as Ucanto from '@ucanto/interface' * @import { * Middleware, * Context as MiddlewareContext @@ -22,7 +21,7 @@ import { Delegation } from '@ucanto/core' * * @type {( * Middleware< - * MiddlewareContext & LocatorContext & DelegationsStorageContext, + * MiddlewareContext & LocatorContext & GatewayIdentityContext & DelegationsStorageContext, * MiddlewareContext & LocatorContext & GatewayIdentityContext, * {} * > @@ -50,32 +49,9 @@ export const withDelegationStubs = (handler) => async (request, env, ctx) => { return handler(request, env, { ...ctx, delegationsStorage: { find: async () => ({ ok: stubDelegations }) }, - delegationProofs: [], // Delegation proofs are set by withAuthorizedSpace handler locator: - stubSpace && isDIDKey(stubSpace) - ? { - locate: async (digest, options) => { - const locateResult = await ctx.locator.locate(digest, options) - if (locateResult.error) return locateResult - return { - ok: { - ...locateResult.ok, - site: locateResult.ok.site.map((site) => ({ - ...site, - space: stubSpace - })) - } - } - } - } + stubSpace && Schema.did({ method: 'key' }).is(stubSpace) + ? ctx.locator.scopeToSpaces([stubSpace]) : ctx.locator }) } - -/** - * True if the given string is a `key:` DID. - * - * @param {string} did - * @returns {did is Ucanto.DIDKey} - */ -const isDIDKey = (did) => did.startsWith('did:key:') diff --git a/src/middleware/withEgressClient.types.ts b/src/middleware/withEgressClient.types.ts index 0f636bb..2600594 100644 --- a/src/middleware/withEgressClient.types.ts +++ b/src/middleware/withEgressClient.types.ts @@ -1,7 +1,7 @@ import { Environment as MiddlewareEnvironment, Context as MiddlewareContext } from '@web3-storage/gateway-lib' import { DIDKey, UnknownLink } from '@ucanto/principal/ed25519' import { GatewayIdentityContext } from './withGatewayIdentity.types.js' -import { DelegationsStorageContext } from './withAuthorizedSpace.types.js' +import { DelegationsStorageContext, DelegationProofsContext } from './withAuthorizedSpace.types.js' export interface Environment extends MiddlewareEnvironment { FF_EGRESS_TRACKER_ENABLED: string @@ -13,7 +13,8 @@ export interface Environment extends MiddlewareEnvironment { export interface EgressClientContext extends MiddlewareContext, GatewayIdentityContext, - DelegationsStorageContext { + DelegationsStorageContext, + DelegationProofsContext { egressClient: EgressClient } diff --git a/src/middleware/withGatewayIdentity.js b/src/middleware/withGatewayIdentity.js index edad3e3..d3d8ac3 100644 --- a/src/middleware/withGatewayIdentity.js +++ b/src/middleware/withGatewayIdentity.js @@ -1,3 +1,4 @@ +import { Schema } from '@ucanto/core' import { ed25519 } from '@ucanto/principal' /** @@ -17,7 +18,7 @@ export function withGatewayIdentity (handler) { : await ed25519.Signer.generate() const gatewayIdentity = gatewaySigner.withDID( - /** @type {`did:${string}:${string}`} */ (env.GATEWAY_SERVICE_DID) + Schema.DID.from(env.GATEWAY_SERVICE_DID) ) return handler(req, env, { ...ctx, gatewaySigner, gatewayIdentity }) } diff --git a/src/middleware/withLocator.js b/src/middleware/withLocator.js index c5df2a7..867cdfa 100644 --- a/src/middleware/withLocator.js +++ b/src/middleware/withLocator.js @@ -1,4 +1,6 @@ import * as ContentClaimsLocator from '@web3-storage/blob-fetcher/locator/content-claims' +import { IndexingServiceLocator } from '@web3-storage/blob-fetcher/locator/indexing-service' +import { Client } from '@storacha/indexing-service-client' /** * @import { @@ -13,21 +15,34 @@ import * as ContentClaimsLocator from '@web3-storage/blob-fetcher/locator/conten /** * Adds {@link LocatorContext.locator} to the context which connects to the - * {@link Environment.CONTENT_CLAIMS_SERVICE_URL}. + * {@link LocatorEnvironment.INDEXING_SERVICE_URL}. * * @type {Middleware} */ export function withLocator (handler) { return async (request, env, ctx) => { - const locator = ContentClaimsLocator.create({ - serviceURL: env.CONTENT_CLAIMS_SERVICE_URL - ? new URL(env.CONTENT_CLAIMS_SERVICE_URL) - : undefined, - carpark: env.CARPARK, - carparkPublicBucketURL: env.CARPARK_PUBLIC_BUCKET_URL - ? new URL(env.CARPARK_PUBLIC_BUCKET_URL) - : undefined - }) + const useIndexingService = new URL(request.url).searchParams + .getAll('ff') + .includes('indexing-service') + + const locator = useIndexingService + ? new IndexingServiceLocator({ + client: new Client({ + serviceURL: env.INDEXING_SERVICE_URL + ? new URL(env.INDEXING_SERVICE_URL) + : undefined + }) + }) + : ContentClaimsLocator.create({ + serviceURL: env.CONTENT_CLAIMS_SERVICE_URL + ? new URL(env.CONTENT_CLAIMS_SERVICE_URL) + : undefined, + carpark: env.CARPARK, + carparkPublicBucketURL: env.CARPARK_PUBLIC_BUCKET_URL + ? new URL(env.CARPARK_PUBLIC_BUCKET_URL) + : undefined + }) + return handler(request, env, { ...ctx, locator }) } } diff --git a/src/middleware/withLocator.types.ts b/src/middleware/withLocator.types.ts index 8a8f09d..2b24797 100644 --- a/src/middleware/withLocator.types.ts +++ b/src/middleware/withLocator.types.ts @@ -9,6 +9,7 @@ export interface LocatorEnvironment extends MiddlewareEnvironment { CONTENT_CLAIMS_SERVICE_URL?: string CARPARK: R2Bucket CARPARK_PUBLIC_BUCKET_URL?: string + INDEXING_SERVICE_URL?: string } export interface LocatorContext extends MiddlewareContext { diff --git a/test/miniflare/freeway.spec.js b/test/miniflare/freeway.spec.js index 4879030..c0d2e66 100644 --- a/test/miniflare/freeway.spec.js +++ b/test/miniflare/freeway.spec.js @@ -51,7 +51,8 @@ describe('freeway', () => { miniflare = new Miniflare({ bindings: { CONTENT_CLAIMS_SERVICE_URL: claimsService.url.toString(), - CARPARK_PUBLIC_BUCKET_URL: url.toString() + CARPARK_PUBLIC_BUCKET_URL: url.toString(), + GATEWAY_SERVICE_DID: 'did:example:gateway' }, inspectorPort: 9898, scriptPath: 'dist/worker.mjs', diff --git a/test/unit/middleware/withAuthorizedSpace.spec.js b/test/unit/middleware/withAuthorizedSpace.spec.js index a3dac91..a49aa8e 100644 --- a/test/unit/middleware/withAuthorizedSpace.spec.js +++ b/test/unit/middleware/withAuthorizedSpace.spec.js @@ -59,13 +59,42 @@ const context = { searchParams: new URLSearchParams() } +/** + * Returns a {@link Locator} which locates content only from a specific Space, + * by simply filtering the results of another {@link Locator}. + * + * @param {Locator} locator + * @param {Ucanto.DID[]} spaces + * @returns {Locator} + */ +export const spaceScopedLocator = (locator, spaces) => ({ + locate: async (digest) => { + const locateResult = await locator.locate(digest) + if (locateResult.error) { + return locateResult + } else { + return { + ok: { + ...locateResult.ok, + site: locateResult.ok.site.filter( + (site) => site.space && spaces.includes(site.space) + ) + } + } + } + }, + scopeToSpaces (newSpaces) { + return spaceScopedLocator(locator, newSpaces) + } +}) + /** * @param {MultihashDigest} expectedDigest * @param {Awaited>} locateResponse * @returns {Locator} * */ const createLocator = (expectedDigest, locateResponse) => ({ - locate: async (digest) => { + async locate (digest) { if (Digest.equals(digest, expectedDigest)) { return locateResponse } else { @@ -75,13 +104,14 @@ const createLocator = (expectedDigest, locateResponse) => ({ )}` ) } + }, + scopeToSpaces (spaces) { + return spaceScopedLocator(this, spaces) } }) const gatewaySigner = (await ed25519.Signer.generate()).signer -const gatewayIdentity = gatewaySigner.withDID( - 'did:web:test.w3s.link' -) +const gatewayIdentity = gatewaySigner.withDID('did:web:test.w3s.link') /** * @param {Ucanto.Delegation[]} delegations @@ -309,7 +339,12 @@ describe('withAuthorizedSpace', async () => { withAuthorizedSpace(sinon.fake(innerHandler))( request, {}, - { ...ctx, authToken: 'space2-token', delegationProofs: [], gatewaySigner } + { + ...ctx, + authToken: 'space2-token', + delegationProofs: [], + gatewaySigner + } ) ) @@ -370,7 +405,11 @@ describe('withAuthorizedSpace', async () => { const ih = sinon.fake(innerHandler) const errorWithToken = await rejection( - withAuthorizedSpace(ih)(request, {}, { ...ctx, authToken: 'a1b2c3', delegationProofs: [], gatewaySigner }) + withAuthorizedSpace(ih)( + request, + {}, + { ...ctx, authToken: 'a1b2c3', delegationProofs: [], gatewaySigner } + ) ) expect(ih.notCalled).to.be.true @@ -545,7 +584,11 @@ describe('withAuthorizedSpace', async () => { const ih = sinon.fake(innerHandler) const error = await rejection( - withAuthorizedSpace(ih)(request, {}, { ...ctx, authToken: 'a1b2c3', delegationProofs: [], gatewaySigner }) + withAuthorizedSpace(ih)( + request, + {}, + { ...ctx, authToken: 'a1b2c3', delegationProofs: [], gatewaySigner } + ) ) expect(ih.notCalled).to.be.true diff --git a/test/unit/middleware/withEgressTracker.spec.js b/test/unit/middleware/withEgressTracker.spec.js index ea3dcfa..bb53caa 100644 --- a/test/unit/middleware/withEgressTracker.spec.js +++ b/test/unit/middleware/withEgressTracker.spec.js @@ -56,7 +56,13 @@ const ctx = gatewayIdentity, delegationsStorage: { find: async () => ({ ok: stubDelegations }) }, delegationProofs: [], - waitUntil: sinon.stub().returns(undefined), + waitUntil: async (promise) => { + try { + await promise + } catch (error) { + // Ignore errors. + } + }, path: '', searchParams: new URLSearchParams(), egressClient: EgressClient() diff --git a/wrangler.toml b/wrangler.toml index f4e3c99..6f5224d 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -136,6 +136,7 @@ GATEWAY_SERVICE_DID = "did:web:staging.w3s.link" UPLOAD_SERVICE_DID = "did:web:staging.web3.storage" CONTENT_CLAIMS_SERVICE_URL = "https://staging.claims.web3.storage" UPLOAD_API_URL = "https://staging.up.web3.storage" +INDEXING_SERVICE_URL = "https://staging.indexer.storacha.network/" [[env.fforbeck.unsafe.bindings]] name = "RATE_LIMITER" @@ -166,6 +167,43 @@ UPLOAD_SERVICE_DID = "did:web:staging.web3.storage" CONTENT_CLAIMS_SERVICE_URL = "https://claims.web3.storage" CARPARK_PUBLIC_BUCKET_URL = "https://carpark-prod-0.r2.w3s.link" UPLOAD_API_URL = "https://staging.up.web3.storage" +INDEXING_SERVICE_URL = "https://indexer.storacha.network/" + +[env.peeja] +# Custom name for your testing/dev worker +name = "peeja-freeway" +workers_dev = true +# Account Id from step 3 +account_id = "5ad700ac7e44a8bdebb6c5626bc15ecb" +# See step 4.2 to create the R2 Bucket +r2_buckets = [ + { binding = "CARPARK", bucket_name = "carpark-peeja-0", preview_bucket_name = "carpark-peeja-preview-0" }, +] +compatibility_flags = ["nodejs_compat"] +compatibility_date = "2024-11-26" + +[env.peeja.vars] +DEBUG = "true" +FF_RATE_LIMITER_ENABLED = "false" +FF_EGRESS_TRACKER_ENABLED = "true" +FF_TELEMETRY_ENABLED = "false" +GATEWAY_SERVICE_DID = "did:web:staging.w3s.link" +UPLOAD_SERVICE_DID = "did:web:staging.web3.storage" +CONTENT_CLAIMS_SERVICE_URL = "https://staging.claims.web3.storage" +UPLOAD_API_URL = "https://staging.up.web3.storage" +INDEXING_SERVICE_URL = "https://staging.indexer.storacha.network/" + +[[env.peeja.unsafe.bindings]] +name = "RATE_LIMITER" +type = "ratelimit" +namespace_id = "0" +simple = { limit = 100, period = 60 } + +[[env.peeja.kv_namespaces]] +binding = "AUTH_TOKEN_METADATA" +# See step 4.1 to create the KV store +id = "0b44d436a3df48bfbdcfa3eb8b5207ca" + ### Integration Tests Configuration [env.integration] @@ -185,6 +223,7 @@ GATEWAY_SERVICE_DID = "did:web:staging.w3s.link" UPLOAD_SERVICE_DID = "did:web:staging.web3.storage" CONTENT_CLAIMS_SERVICE_URL = "https://staging.claims.web3.storage" UPLOAD_API_URL = "https://staging.up.web3.storage" +INDEXING_SERVICE_URL = "https://staging.indexer.storacha.network/" [[env.integration.unsafe.bindings]] name = "RATE_LIMITER"