diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 2d7f0ac..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "env": { - "node": true, - "es6": true - }, - "plugins": ["@stylistic"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended" - ], - "parser": "@typescript-eslint/parser", - "rules": { - "@stylistic/semi": ["error", "never"], - "@stylistic/quotes": ["error", "single"], - "@stylistic/block-spacing": ["error", "always"], - "@stylistic/indent": ["error", 2], - "@stylistic/object-curly-spacing": ["error", "always"], - "@stylistic/object-curly-newline": ["error", { - "ExportDeclaration": { "multiline": true, "minProperties": 3 }, - "ObjectExpression": { "multiline": true, "minProperties": 5 } - }], - "@stylistic/comma-spacing": ["error", { - "before": false, - "after": true - }], - "@stylistic/comma-dangle": ["error", "never"], - "array-element-newline": ["error", "never"] - }, - "ignorePatterns": ["dist/"], - "overrides": [ - { - "files": ["*.json"], - "rules": { - "@stylistic/quotes": "off", - "@stylistic/semi": "off" - } - } - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 6cd06f0..da3ccba 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,4 +3,6 @@ "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, + "typescript.tsdk": "node_modules/typescript/lib", + "eslint.experimental.useFlatConfig": true } \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..4ec0cdd --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,30 @@ +import stylistic from '@stylistic/eslint-plugin' +import tsParser from '@typescript-eslint/parser' +import globals from 'globals' +import js from '@eslint/js' + +/** @type {import('eslint').Linter.FlatConfig[]} */ +export default [ + js.configs.recommended, + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + globals: { + ...globals.node, + ...globals[''], + }, + parser: tsParser, + parserOptions: { + config: './tsconfig.json', + ecmaFeatures: { modules: true }, + ecmaVersion: 'latest', + }, + }, + }, + stylistic.configs['recommended-flat'], + { + rules: { + 'no-unused-vars': 'off', + }, + }, +] diff --git a/package.json b/package.json index 55304b2..c6ae334 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,9 @@ "version": "0.1.1", "description": "🌸 Self-custodial decentralized deployments", "type": "module", - "bin": { "blumen": "./dist/cli.js" }, + "bin": { + "blumen": "./dist/cli.js" + }, "exports": "./dist/index.js", "types": "./dist/index.d.ts", "repository": { @@ -18,39 +20,44 @@ "prepublishOnly": "pnpm build" }, "keywords": [ - "ipfs", "filecoin", "deploy", "cli" + "ipfs", + "filecoin", + "deploy", + "cli" ], "files": [ "dist" ], "author": "v1rtl ", - "engines": { "node": ">=16.8" }, + "engines": { + "node": ">=16.8" + }, "license": "MIT", "dependencies": { "@ensdomains/content-hash": "^3.0.0", "@ipld/car": "^5.2.4", "@ipld/dag-cbor": "^9.0.6", "@ipld/unixfs": "^2.1.2", - "@stauro/piggybank": "^0.0.4", + "@stauro/piggybank": "^0.0.5", "ascii-bar": "^1.0.3", "cac": "^6.7.14", "consola": "^3.2.3", - "globby": "^13.2.2", + "globby": "^14.0.0", "multiformats": "^12.1.3", "node-fetch": "^3.3.2", "semver": "^7.5.4", "table": "^6.8.1", "varint": "^6.0.0", - "viem": "^1.18.6" + "viem": "^1.19.3" }, "devDependencies": { - "@stylistic/eslint-plugin": "^1.0.0", - "@types/node": "^20.8.10", - "@types/semver": "^7.5.4", - "@types/varint": "^6.0.2", - "@typescript-eslint/eslint-plugin": "^6.9.1", - "@typescript-eslint/parser": "^6.9.1", - "semantic-release": "^22.0.7", + "@stylistic/eslint-plugin": "^1.4.0", + "@types/node": "^20.9.1", + "@types/semver": "^7.5.5", + "@types/varint": "^6.0.3", + "@typescript-eslint/parser": "^6.11.0", + "globals": "^13.23.0", + "semantic-release": "^22.0.8", "typescript": "^5.2.2" }, "release": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index abb9dfd..763cf8c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ dependencies: specifier: ^2.1.2 version: 2.1.2 '@stauro/piggybank': - specifier: ^0.0.4 - version: 0.0.4(viem@1.18.6) + specifier: ^0.0.5 + version: 0.0.5(viem@1.19.3) ascii-bar: specifier: ^1.0.3 version: 1.0.3 @@ -30,8 +30,8 @@ dependencies: specifier: ^3.2.3 version: 3.2.3 globby: - specifier: ^13.2.2 - version: 13.2.2 + specifier: ^14.0.0 + version: 14.0.0 multiformats: specifier: ^12.1.3 version: 12.1.3 @@ -48,31 +48,31 @@ dependencies: specifier: ^6.0.0 version: 6.0.0 viem: - specifier: ^1.18.6 - version: 1.18.6(typescript@5.2.2) + specifier: ^1.19.3 + version: 1.19.3(typescript@5.2.2) devDependencies: '@stylistic/eslint-plugin': - specifier: ^1.0.0 - version: 1.0.0(eslint@8.53.0)(typescript@5.2.2) + specifier: ^1.4.0 + version: 1.4.0(eslint@8.54.0)(typescript@5.2.2) '@types/node': - specifier: ^20.8.10 - version: 20.8.10 + specifier: ^20.9.1 + version: 20.9.1 '@types/semver': - specifier: ^7.5.4 - version: 7.5.4 + specifier: ^7.5.5 + version: 7.5.5 '@types/varint': - specifier: ^6.0.2 - version: 6.0.2 - '@typescript-eslint/eslint-plugin': - specifier: ^6.9.1 - version: 6.9.1(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2) + specifier: ^6.0.3 + version: 6.0.3 '@typescript-eslint/parser': - specifier: ^6.9.1 - version: 6.9.1(eslint@8.53.0)(typescript@5.2.2) + specifier: ^6.11.0 + version: 6.11.0(eslint@8.54.0)(typescript@5.2.2) + globals: + specifier: ^13.23.0 + version: 13.23.0 semantic-release: - specifier: ^22.0.7 - version: 22.0.7(typescript@5.2.2) + specifier: ^22.0.8 + version: 22.0.8(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -84,8 +84,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@adraffy/ens-normalize@1.9.4: - resolution: {integrity: sha512-UK0bHA7hh9cR39V+4gl2/NnBBjoXIxkuWAPCaY4X7fbH4L/azIi7ilWOCjMUYfpJgraLUAqkRi2BqrjME8Rynw==} + /@adraffy/ens-normalize@1.10.0: + resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==} dev: false /@babel/code-frame@7.22.13: @@ -124,13 +124,13 @@ packages: multiformats: 12.1.3 dev: false - /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.53.0 + eslint: 8.54.0 eslint-visitor-keys: 3.4.3 dev: true @@ -147,7 +147,7 @@ packages: debug: 4.3.4 espree: 9.6.1 globals: 13.23.0 - ignore: 5.2.4 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -156,8 +156,8 @@ packages: - supports-color dev: true - /@eslint/js@8.53.0: - resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -276,7 +276,7 @@ packages: '@octokit/graphql': 7.0.2 '@octokit/request': 8.1.5 '@octokit/request-error': 5.0.1 - '@octokit/types': 12.2.0 + '@octokit/types': 12.3.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 dev: true @@ -285,7 +285,7 @@ packages: resolution: {integrity: sha512-qhKW8YLIi+Kmc92FQUFGr++DYtkx/1fBv+Thua6baqnjnOsgBYJDCvWZR1YcINuHGOEQt416WOfE+A/oG60NBQ==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.2.0 + '@octokit/types': 12.3.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 dev: true @@ -295,7 +295,7 @@ packages: engines: {node: '>= 18'} dependencies: '@octokit/request': 8.1.5 - '@octokit/types': 12.2.0 + '@octokit/types': 12.3.0 universal-user-agent: 6.0.1 dev: true @@ -303,14 +303,14 @@ packages: resolution: {integrity: sha512-8li32fUDUeml/ACRp/njCWTsk5t17cfTM1jp9n08pBrqs5cDFJubtjsSnuz56r5Tad6jdEPJld7LxNp9dNcyjQ==} dev: true - /@octokit/plugin-paginate-rest@9.1.3(@octokit/core@5.0.1): - resolution: {integrity: sha512-gm4KmW+pdAfCO5cXJyRZnNfnPE9r6OGpRG8JZpI0eSo1XVk7LXoRcdS7aP4L9azdV0ncHazsLAI0knKjr+snPg==} + /@octokit/plugin-paginate-rest@9.1.4(@octokit/core@5.0.1): + resolution: {integrity: sha512-MvZx4WvfhBnt7PtH5XE7HORsO7bBk4er1FgRIUr1qJ89NR2I6bWjGyKsxk8z42FPQ34hFQm0Baanh4gzdZR4gQ==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' dependencies: '@octokit/core': 5.0.1 - '@octokit/types': 12.2.0 + '@octokit/types': 12.3.0 dev: true /@octokit/plugin-retry@6.0.1(@octokit/core@5.0.1): @@ -321,18 +321,18 @@ packages: dependencies: '@octokit/core': 5.0.1 '@octokit/request-error': 5.0.1 - '@octokit/types': 12.2.0 + '@octokit/types': 12.3.0 bottleneck: 2.19.5 dev: true - /@octokit/plugin-throttling@8.1.2(@octokit/core@5.0.1): - resolution: {integrity: sha512-oFba+ioR6HGb0fgqxMta7Kpk/MdffUTuUxNY856l1nXPvh7Qggp8w4AksRx1SDA8SGd+4cbrpkY4k1J/Xz8nZQ==} + /@octokit/plugin-throttling@8.1.3(@octokit/core@5.0.1): + resolution: {integrity: sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': ^5.0.0 dependencies: '@octokit/core': 5.0.1 - '@octokit/types': 12.2.0 + '@octokit/types': 12.3.0 bottleneck: 2.19.5 dev: true @@ -340,7 +340,7 @@ packages: resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.2.0 + '@octokit/types': 12.3.0 deprecation: 2.3.1 once: 1.4.0 dev: true @@ -351,13 +351,13 @@ packages: dependencies: '@octokit/endpoint': 9.0.2 '@octokit/request-error': 5.0.1 - '@octokit/types': 12.2.0 + '@octokit/types': 12.3.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.1 dev: true - /@octokit/types@12.2.0: - resolution: {integrity: sha512-ZkdHqHJdifVndN7Pha10+qrgAjy3AcG//Vmjr/o5UFuTiYCcMhqDj39Yr9VM9zJ/42KO2xAYhV7cvLnLI9Kvwg==} + /@octokit/types@12.3.0: + resolution: {integrity: sha512-nJ8X2HRr234q3w/FcovDlA+ttUU4m1eJAourvfUUtwAWeqL8AsyRqfnLvVnYn3NFbUnsmzQCzLNdFerPwdmcDQ==} dependencies: '@octokit/openapi-types': 19.0.2 dev: true @@ -452,7 +452,7 @@ packages: '@scure/base': 1.1.3 dev: false - /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.7): + /@semantic-release/commit-analyzer@11.1.0(semantic-release@22.0.8): resolution: {integrity: sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -462,10 +462,10 @@ packages: conventional-commits-filter: 4.0.0 conventional-commits-parser: 5.0.0 debug: 4.3.4 - import-from-esm: 1.2.1 + import-from-esm: 1.3.1 lodash-es: 4.17.21 micromatch: 4.0.5 - semantic-release: 22.0.7(typescript@5.2.2) + semantic-release: 22.0.8(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: true @@ -475,34 +475,34 @@ packages: engines: {node: '>=18'} dev: true - /@semantic-release/github@9.2.2(semantic-release@22.0.7): - resolution: {integrity: sha512-S9tTms9MSrFnW97inhNhEqQiTNmls1zgE3bCxLbWhom0vClRe43B9N9D5NVepTwbr7wXehXJG+ok8B8neG1bsA==} + /@semantic-release/github@9.2.3(semantic-release@22.0.8): + resolution: {integrity: sha512-FAjXb1F84CVI6IG8fWi+XS9ErYD+s3MHkP03zBa3+GyUrV4kqwYu/WPppIciHxujGFR51SAWPkOY5rnH6ZlrxA==} engines: {node: '>=18'} peerDependencies: semantic-release: '>=20.1.0' dependencies: '@octokit/core': 5.0.1 - '@octokit/plugin-paginate-rest': 9.1.3(@octokit/core@5.0.1) + '@octokit/plugin-paginate-rest': 9.1.4(@octokit/core@5.0.1) '@octokit/plugin-retry': 6.0.1(@octokit/core@5.0.1) - '@octokit/plugin-throttling': 8.1.2(@octokit/core@5.0.1) + '@octokit/plugin-throttling': 8.1.3(@octokit/core@5.0.1) '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 debug: 4.3.4 dir-glob: 3.0.1 - globby: 13.2.2 + globby: 14.0.0 http-proxy-agent: 7.0.0 https-proxy-agent: 7.0.2 issue-parser: 6.0.0 lodash-es: 4.17.21 mime: 3.0.0 p-filter: 3.0.0 - semantic-release: 22.0.7(typescript@5.2.2) + semantic-release: 22.0.8(typescript@5.2.2) url-join: 5.0.0 transitivePeerDependencies: - supports-color dev: true - /@semantic-release/npm@11.0.1(semantic-release@22.0.7): + /@semantic-release/npm@11.0.1(semantic-release@22.0.8): resolution: {integrity: sha512-nFcT0pgVwpXsPkzjqP3ObH+pILeN1AbYscCDuYwgZEPZukL+RsGhrtdT4HA1Gjb/y1bVbE90JNtMIcgRi5z/Fg==} engines: {node: ^18.17 || >=20} peerDependencies: @@ -515,16 +515,16 @@ packages: lodash-es: 4.17.21 nerf-dart: 1.0.0 normalize-url: 8.0.0 - npm: 10.2.3 + npm: 10.2.4 rc: 1.2.8 - read-pkg: 9.0.0 + read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 22.0.7(typescript@5.2.2) + semantic-release: 22.0.8(typescript@5.2.2) semver: 7.5.4 tempy: 3.1.0 dev: true - /@semantic-release/release-notes-generator@12.1.0(semantic-release@22.0.7): + /@semantic-release/release-notes-generator@12.1.0(semantic-release@22.0.8): resolution: {integrity: sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: @@ -536,11 +536,11 @@ packages: conventional-commits-parser: 5.0.0 debug: 4.3.4 get-stream: 7.0.1 - import-from-esm: 1.2.1 + import-from-esm: 1.3.1 into-stream: 7.0.0 lodash-es: 4.17.21 read-pkg-up: 11.0.0 - semantic-release: 22.0.7(typescript@5.2.2) + semantic-release: 22.0.8(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: true @@ -550,75 +550,70 @@ packages: engines: {node: '>=10'} dev: true - /@stauro/piggybank@0.0.4(viem@1.18.6): - resolution: {integrity: sha512-jfjJhnBkhZe7vy1JTI15HrgTdUadm0BFdob32297QvmpYgaaJA3gheJtEMzMar2bCQf+7q2+rCuFpTTPQ4ObBg==} + /@sindresorhus/merge-streams@1.0.0: + resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} + engines: {node: '>=18'} + + /@stauro/piggybank@0.0.5(viem@1.19.3): + resolution: {integrity: sha512-bt8Va4uO9IEuMdFqAfezCDI/g1BpSyTLhIV+O0zE1crVTgdvrHUfHT0P4Q90GvsZ79yH0Ax57Y4qUQ4JtUYEfQ==} peerDependencies: viem: '>=1.16' dependencies: semver: 7.5.4 - viem: 1.18.6(typescript@5.2.2) + viem: 1.19.3(typescript@5.2.2) dev: false - /@stylistic/eslint-plugin-js@1.0.0(eslint@8.53.0): - resolution: {integrity: sha512-xxvjyYnUEgjBTnXKYMk6JbU0LHkf269d6y4IgW69bK/VwHrqLfdgE6mYvft42U7KVpp6Tbf6Z64tLRYD/rYd/A==} + /@stylistic/eslint-plugin-js@1.4.0: + resolution: {integrity: sha512-cANyn4ECWu8kxPmBM4K/Q4WocD3JbA0POmGbA2lJ4tynPE8jGyKpfP8SZj6BIidXV0pkyqvxEfaKppB4D16UsA==} dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) acorn: 8.11.2 escape-string-regexp: 4.0.0 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esutils: 2.0.3 graphemer: 1.4.0 - transitivePeerDependencies: - - eslint dev: true - /@stylistic/eslint-plugin-jsx@1.0.0(eslint@8.53.0): - resolution: {integrity: sha512-waUm7dcTFAI4d/3luf06RRNt89gSGaofHJ4BiuqKnpyu3yxn1lKbholjGQrw0xPjAciUe+ZSF6BKlBA9P2aV4Q==} + /@stylistic/eslint-plugin-jsx@1.4.0: + resolution: {integrity: sha512-MB5MW8HnRm0nAeUpgVzr4NOzLtxWYBIBtW9iDXopykl1ZJOm/0LlSFlsw9wsXd4Zqarkow6IrV18HcZ0Hc06yQ==} dependencies: - '@stylistic/eslint-plugin-js': 1.0.0(eslint@8.53.0) + '@stylistic/eslint-plugin-js': 1.4.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - transitivePeerDependencies: - - eslint dev: true - /@stylistic/eslint-plugin-ts@1.0.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-qQKXYWJzovSNsPq1954t6DNbDA7+1c4ximVH4CuubPV+3I8qCeO33vF6wSpyP27LgxXAx0mHIDw/YaaoM7dQoQ==} + /@stylistic/eslint-plugin-ts@1.4.0(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-eNEC0MufXfe2v9fW+g5yDzMMcws80cn1gKIt9CaLVjUuWnwCdY4SG1hUtDfEpBCTNBZgG/LKKls15dSa1x++0g==} peerDependencies: eslint: '*' dependencies: - '@stylistic/eslint-plugin-js': 1.0.0(eslint@8.53.0) - '@typescript-eslint/scope-manager': 6.9.1 - '@typescript-eslint/type-utils': 6.9.1(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.9.1(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 + '@stylistic/eslint-plugin-js': 1.4.0 + '@typescript-eslint/utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 graphemer: 1.4.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@stylistic/eslint-plugin@1.0.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-kh4q2O2r55uKTXIQlVxnr9Pkjaemv/pn0lQ6bVRBD/ETq0hwhIvXR/54NRs3X8bS4IGIO2SGjFxnjySfUYJ3tQ==} + /@stylistic/eslint-plugin@1.4.0(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-DtPiS4jr7m+A2nlcn8Ls4LEsOj1KC8x+KvAmoUI+nTcnin4Hkb8/I9Vteuu2CFLyVmlnKIQhrL5JC/xUEMyE9w==} peerDependencies: eslint: '*' dependencies: - '@stylistic/eslint-plugin-js': 1.0.0(eslint@8.53.0) - '@stylistic/eslint-plugin-jsx': 1.0.0(eslint@8.53.0) - '@stylistic/eslint-plugin-ts': 1.0.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 + '@stylistic/eslint-plugin-js': 1.4.0 + '@stylistic/eslint-plugin-jsx': 1.4.0 + '@stylistic/eslint-plugin-ts': 1.4.0(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@types/json-schema@7.0.14: - resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/node@20.8.10: - resolution: {integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==} + /@types/node@20.9.1: + resolution: {integrity: sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==} dependencies: undici-types: 5.26.5 @@ -626,110 +621,61 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/semver@7.5.4: - resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} + /@types/semver@7.5.5: + resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} dev: true - /@types/varint@6.0.2: - resolution: {integrity: sha512-gBTZgG13ulb81tQwk//LnPwpl8hue2SJ9peL3i8ZVA3ZXU6Y7gT9S7MHcunzDbG07yXiT1+m1LkQjPYb+PCNWQ==} + /@types/varint@6.0.3: + resolution: {integrity: sha512-DHukoGWdJ2aYkveZJTB2rN2lp6m7APzVsoJQ7j/qy1fQxyamJTPD5xQzCMoJ2Qtgn0mE3wWeNOpbTyBFvF+dyA==} dependencies: - '@types/node': 20.8.10 + '@types/node': 20.9.1 dev: true - /@typescript-eslint/eslint-plugin@6.9.1(@typescript-eslint/parser@6.9.1)(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-w0tiiRc9I4S5XSXXrMHOWgHgxbrBn1Ro+PmiYhSg2ZVdxrAJtQgzU5o2m1BfP6UOn7Vxcc6152vFjQfmZR4xEg==} + /@typescript-eslint/parser@6.11.0(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.9.1(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.9.1 - '@typescript-eslint/type-utils': 6.9.1(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.9.1(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.9.1 + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 - eslint: 8.53.0 - graphemer: 1.4.0 - ignore: 5.2.4 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) + eslint: 8.54.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.9.1(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==} + /@typescript-eslint/scope-manager@6.11.0: + resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true dependencies: - '@typescript-eslint/scope-manager': 6.9.1 - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.9.1 - debug: 4.3.4 - eslint: 8.53.0 - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 dev: true - /@typescript-eslint/scope-manager@6.9.1: - resolution: {integrity: sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==} + /@typescript-eslint/types@6.11.0: + resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/visitor-keys': 6.9.1 dev: true - /@typescript-eslint/type-utils@6.9.1(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-eh2oHaUKCK58qIeYp19F5V5TbpM52680sB4zNSz29VBQPTWIlE/hCj5P5B1AChxECe/fmZlspAWFuRniep1Skg==} + /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): + resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) - '@typescript-eslint/utils': 6.9.1(eslint@8.53.0)(typescript@5.2.2) - debug: 4.3.4 - eslint: 8.53.0 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types@6.9.1: - resolution: {integrity: sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/typescript-estree@6.9.1(typescript@5.2.2): - resolution: {integrity: sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/visitor-keys': 6.9.1 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -740,30 +686,30 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.9.1(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-L1T0A5nFdQrMVunpZgzqPL6y2wVreSyHhKGZryS6jrEN7bD9NplVAyMryUhXsQ4TWLnZmxc2ekar/lSGIlprCA==} + /@typescript-eslint/utils@6.11.0(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 - '@typescript-eslint/scope-manager': 6.9.1 - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) - eslint: 8.53.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.5 + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.9.1: - resolution: {integrity: sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==} + /@typescript-eslint/visitor-keys@6.11.0: + resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.9.1 + '@typescript-eslint/types': 6.11.0 eslint-visitor-keys: 3.4.3 dev: true @@ -896,56 +842,15 @@ packages: resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} dev: true - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 - dev: true - /array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-string: 1.0.7 - dev: true - /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - dev: true - - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 - dev: true - /ascii-bar@1.0.3: resolution: {integrity: sha512-03/Or+57cC3kGc7oOS4ASt/HPmApUfEs+pGd+W2Z878Y2CpZ76xKiNxTxwdLFlFXFBnJNFM1c6kO8fuYwwzYlg==} dev: false @@ -955,11 +860,6 @@ packages: engines: {node: '>=8'} dev: false - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - dev: true - /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true @@ -990,14 +890,6 @@ packages: engines: {node: '>=8'} dev: false - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 - dev: true - /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1215,24 +1107,6 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - dev: true - - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 - object-keys: 1.1.1 - dev: true - /deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} dev: true @@ -1242,6 +1116,7 @@ packages: engines: {node: '>=8'} dependencies: path-type: 4.0.0 + dev: true /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} @@ -1284,75 +1159,6 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 - dev: true - - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 - dev: true - - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - dependencies: - hasown: 2.0.0 - dev: true - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -1386,15 +1192,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.53.0: - resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.53.0 + '@eslint/js': 8.54.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -1416,7 +1222,7 @@ packages: glob-parent: 6.0.2 globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -1490,8 +1296,8 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1539,7 +1345,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.1.1 + flat-cache: 3.2.0 dev: true /fill-range@7.0.1: @@ -1575,9 +1381,9 @@ packages: semver-regex: 4.0.5 dev: true - /flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.2.9 keyv: 4.5.4 @@ -1588,12 +1394,6 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true - /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -1625,34 +1425,11 @@ packages: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - functions-have-names: 1.2.3 - dev: true - - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} - dependencies: - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - dev: true - /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -1668,14 +1445,6 @@ packages: engines: {node: '>=16'} dev: true - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - dev: true - /git-log-parser@1.2.0: resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} dependencies: @@ -1718,40 +1487,28 @@ packages: type-fest: 0.20.2 dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - dev: true - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: true - /globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 4.0.0 - - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + /globby@14.0.0: + resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} + engines: {node: '>=18'} dependencies: - get-intrinsic: 1.2.2 - dev: true + '@sindresorhus/merge-streams': 1.0.0 + fast-glob: 3.3.2 + ignore: 5.3.0 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -1778,10 +1535,6 @@ packages: uglify-js: 3.17.4 dev: true - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -1792,29 +1545,6 @@ packages: engines: {node: '>=8'} dev: true - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - dependencies: - get-intrinsic: 1.2.2 - dev: true - - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - dev: true - - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: true - - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} @@ -1831,7 +1561,7 @@ packages: resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - lru-cache: 10.0.1 + lru-cache: 10.0.2 dev: true /http-proxy-agent@7.0.0: @@ -1859,8 +1589,8 @@ packages: engines: {node: '>=16.17.0'} dev: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} /import-fresh@3.3.0: @@ -1871,11 +1601,14 @@ packages: resolve-from: 4.0.0 dev: true - /import-from-esm@1.2.1: - resolution: {integrity: sha512-Nly5Ab75rWZmOwtMa0B0NQNnHGcHOQ2zkU/bVENwK2lbPq+kamPDqNKNJ0hF7w7lR/ETD5nGgJq0XbofsZpYCA==} + /import-from-esm@1.3.1: + resolution: {integrity: sha512-YltaeDglQ6wDZOC8ZAY2I8vK1Ag4XVbs4GhlvNALWz0ee5V+CMkcBhAKbs1iuJZ3fmfgrKFCDRwliM3OxyQMLA==} engines: {node: '>=16.20'} dependencies: + debug: 4.3.4 import-meta-resolve: 4.0.0 + transitivePeerDependencies: + - supports-color dev: true /import-meta-resolve@4.0.0: @@ -1912,15 +1645,6 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 - dev: true - /into-stream@7.0.0: resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} engines: {node: '>=12'} @@ -1929,50 +1653,16 @@ packages: p-is-promise: 3.0.0 dev: true - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - dev: true - /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 - dev: true - - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: true - - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true - /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: hasown: 2.0.0 dev: true - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -1987,18 +1677,6 @@ packages: dependencies: is-extglob: 2.1.1 - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true - - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -2018,39 +1696,11 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: true - - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - dependencies: - call-bind: 1.0.5 - dev: true - /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - /is-text-path@2.0.0: resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} engines: {node: '>=8'} @@ -2058,32 +1708,15 @@ packages: text-extensions: 2.4.0 dev: true - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.13 - dev: true - /is-unicode-supported@2.0.0: resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} engines: {node: '>=18'} dev: true - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.5 - dev: true - /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true @@ -2173,16 +1806,6 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 - object.assign: 4.1.4 - object.values: 1.1.7 - dev: true - /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: @@ -2262,9 +1885,11 @@ packages: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} dev: false - /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + /lru-cache@10.0.2: + resolution: {integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==} engines: {node: 14 || >=16.14} + dependencies: + semver: 7.5.4 dev: true /lru-cache@6.0.0: @@ -2273,23 +1898,23 @@ packages: dependencies: yallist: 4.0.0 - /marked-terminal@6.0.0(marked@9.1.5): - resolution: {integrity: sha512-6rruICvqRfA4N+Mvdc0UyDbLA0A0nI5omtARIlin3P2F+aNc3EbW91Rd9HTuD0v9qWyHmNIu8Bt40gAnPfldsg==} + /marked-terminal@6.1.0(marked@9.1.6): + resolution: {integrity: sha512-QaCSF6NV82oo6K0szEnmc65ooDeW0T/Adcyf0fcW+Hto2GT1VADFg8dn1zaeHqzj65fqDH1hMNChGNRaC/lbkA==} engines: {node: '>=16.0.0'} peerDependencies: - marked: '>=1 <10' + marked: '>=1 <11' dependencies: ansi-escapes: 6.2.0 cardinal: 2.1.1 chalk: 5.3.0 cli-table3: 0.6.3 - marked: 9.1.5 + marked: 9.1.6 node-emoji: 2.1.0 supports-hyperlinks: 3.0.0 dev: true - /marked@9.1.5: - resolution: {integrity: sha512-14QG3shv8Kg/xc0Yh6TNkMj90wXH9mmldi5941I2OevfJ/FQAFLEwtwU2/FfgSAOMlWHrEukWSGQf8MiVYNG2A==} + /marked@9.1.6: + resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} engines: {node: '>= 16'} hasBin: true dev: true @@ -2415,8 +2040,8 @@ packages: path-key: 4.0.0 dev: true - /npm@10.2.3: - resolution: {integrity: sha512-GbUui/rHTl0mW8HhJSn4A0Xg89yCR3I9otgJT1i0z1QBPOVlgbh6rlcUTpHT8Gut9O1SJjWRUU0nEcAymhG2tQ==} + /npm@10.2.4: + resolution: {integrity: sha512-umEuYneVEYO9KoEEI8n2sSGmNQeqco/3BSeacRlqIkCzw4E7XGtYSWMeJobxzr6hZ2n9cM+u5TsMTcC5bAgoWA==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true dev: true @@ -2493,34 +2118,6 @@ packages: - which - write-file-atomic - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true - - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true - - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -2640,7 +2237,7 @@ packages: '@babel/code-frame': 7.22.13 index-to-position: 0.1.2 json-parse-even-better-errors: 3.0.0 - type-fest: 4.7.1 + type-fest: 4.8.1 dev: true /path-exists@3.0.0: @@ -2671,6 +2268,11 @@ packages: /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + dev: true + + /path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2717,7 +2319,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.8.10 + '@types/node': 20.9.1 long: 5.2.3 dev: false @@ -2748,18 +2350,19 @@ packages: deprecated: Renamed to read-package-up dependencies: find-up-simple: 1.0.0 - read-pkg: 9.0.0 - type-fest: 4.7.1 + read-pkg: 9.0.1 + type-fest: 4.8.1 dev: true - /read-pkg@9.0.0: - resolution: {integrity: sha512-SBoBio4xhJmlF4xs9IBliWZGSbDAnrOfQkLGL7xB+RYEUZNAN2LlNkzO45B7gc7c2dLMX987bhHAaJ/LG3efeQ==} + /read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} engines: {node: '>=18'} dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.0 parse-json: 8.0.1 - type-fest: 4.7.1 + type-fest: 4.8.1 + unicorn-magic: 0.1.0 dev: true /readable-stream@2.3.8: @@ -2780,15 +2383,6 @@ packages: esprima: 4.0.1 dev: true - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - set-function-name: 2.0.1 - dev: true - /registry-auth-token@5.0.2: resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} @@ -2832,38 +2426,20 @@ packages: dependencies: queue-microtask: 1.2.3 - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - isarray: 2.0.5 - dev: true - /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-regex: 1.1.4 - dev: true - - /semantic-release@22.0.7(typescript@5.2.2): - resolution: {integrity: sha512-Stx23Hjn7iU8GOAlhG3pHlR7AoNEahj9q7lKBP0rdK2BasGtJ4AWYh3zm1u3SCMuFiA8y4CE/Gu4RGKau1WiaQ==} + /semantic-release@22.0.8(typescript@5.2.2): + resolution: {integrity: sha512-55rb31jygqIYsGU/rY+gXXm2fnxBIWo9azOjxbqKsPnq7p70zwZ5v+xnD7TxJC+zvS3sy1eHLGXYWCaX3WI76A==} engines: {node: ^18.17 || >=20.6.1} hasBin: true dependencies: - '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.7) + '@semantic-release/commit-analyzer': 11.1.0(semantic-release@22.0.8) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 9.2.2(semantic-release@22.0.7) - '@semantic-release/npm': 11.0.1(semantic-release@22.0.7) - '@semantic-release/release-notes-generator': 12.1.0(semantic-release@22.0.7) + '@semantic-release/github': 9.2.3(semantic-release@22.0.8) + '@semantic-release/npm': 11.0.1(semantic-release@22.0.8) + '@semantic-release/release-notes-generator': 12.1.0(semantic-release@22.0.8) aggregate-error: 5.0.0 cosmiconfig: 8.3.6(typescript@5.2.2) debug: 4.3.4 @@ -2875,9 +2451,10 @@ packages: git-log-parser: 1.2.0 hook-std: 3.0.0 hosted-git-info: 7.0.1 + import-from-esm: 1.3.1 lodash-es: 4.17.21 - marked: 9.1.5 - marked-terminal: 6.0.0(marked@9.1.5) + marked: 9.1.6 + marked-terminal: 6.1.0(marked@9.1.6) micromatch: 4.0.5 p-each-series: 3.0.0 p-reduce: 3.0.0 @@ -2911,25 +2488,6 @@ packages: dependencies: lru-cache: 6.0.0 - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - dev: true - - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 - dev: true - /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -2942,14 +2500,6 @@ packages: engines: {node: '>=8'} dev: true - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 - dev: true - /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -2976,9 +2526,9 @@ packages: engines: {node: '>=8'} dev: true - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} + /slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} /slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} @@ -3046,31 +2596,6 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -3217,49 +2742,11 @@ packages: engines: {node: '>=14.16'} dev: true - /type-fest@4.7.1: - resolution: {integrity: sha512-iWr8RUmzAJRfhZugX9O7nZE6pCxDU8CZ3QxsLuTnGcBLJpCaP2ll3s4eMTBoFnU/CeXY/5rfQSuAEsTGJO4y8A==} + /type-fest@4.8.1: + resolution: {integrity: sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q==} engines: {node: '>=16'} dev: true - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - dev: true - - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - is-typed-array: 1.1.12 - dev: true - /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} @@ -3273,15 +2760,6 @@ packages: dev: true optional: true - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - dependencies: - call-bind: 1.0.5 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: true - /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -3290,6 +2768,10 @@ packages: engines: {node: '>=4'} dev: true + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + /unique-string@3.0.0: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} engines: {node: '>=12'} @@ -3331,15 +2813,15 @@ packages: resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} dev: false - /viem@1.18.6(typescript@5.2.2): - resolution: {integrity: sha512-oKkrxF2aqxjJ4pmm0ko7j+ZFRekP6VGIknSroV+6+dF+T31bscltPZwJ0fOJDxCOVhoVtxrKFRTkkasEVDblUA==} + /viem@1.19.3(typescript@5.2.2): + resolution: {integrity: sha512-SymIbCO0nIq2ucna8R3XV4f/lEshKGLuhYU2f6O+OAbmE2ugBxBKx2axMKQrQML87nE0jb2qqqtRJka5SO/7MA==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true dependencies: - '@adraffy/ens-normalize': 1.9.4 + '@adraffy/ens-normalize': 1.10.0 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.2 '@scure/bip32': 1.3.2 @@ -3359,27 +2841,6 @@ packages: engines: {node: '>= 8'} dev: false - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - dev: true - - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - dev: true - /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} diff --git a/src/actions/deploy.ts b/src/actions/deploy.ts index 8279115..5134796 100644 --- a/src/actions/deploy.ts +++ b/src/actions/deploy.ts @@ -14,7 +14,7 @@ const AsciiBar = mod.default export const deployAction = async ( dir: string, - { strict, ens, chain, safe, name, dist }: { strict: boolean; chain: ChainName; ens: string; safe: Address, name?: string; dist?: string }, + { strict, ens, chain, safe, name, dist }: { strict: boolean, chain: ChainName, ens: string, safe: Address, name?: string, dist?: string }, ) => { if (!dir) { if (await exists('dist')) dir = 'dist' @@ -40,7 +40,7 @@ export const deployAction = async ( if (!providers.length) throw new NoProvidersError() logger.info(`Deploying with providers: ${providers.join(', ')}`) - + let total = 0 const bar = process.stdout.isTTY @@ -49,7 +49,7 @@ export const deployAction = async ( formatString: '#spinner #bar #message', hideCursor: false, enableSpinner: true, - width: process.stdout.columns - 30 + width: process.stdout.columns - 30, }) : undefined @@ -67,13 +67,15 @@ export const deployAction = async ( name, car: blob, token, - accessKey: apiTokens.get('GW3_ACCESS_KEY') + accessKey: apiTokens.get('GW3_ACCESS_KEY'), }) - } catch (e) { + } + catch (e) { if (strict) throw e else errors.push(e as Error) } - } else { + } + else { bar?.update(total++, `Pinning to ${provider}`) try { @@ -81,9 +83,10 @@ export const deployAction = async ( name, cid: rootCID.toString(), token, - accessKey: apiTokens.get('GW3_ACCESS_KEY') + accessKey: apiTokens.get('GW3_ACCESS_KEY'), }) - } catch (e) { + } + catch (e) { if (strict) throw e else errors.push(e as Error) } @@ -93,16 +96,15 @@ export const deployAction = async ( if (errors.length === providers.length) { logger.error('Deploy failed') - errors.forEach((e) => logger.error(e)) + errors.forEach(e => logger.error(e)) return } else if (errors.length) { logger.warn('There were some problems with deploying') - errors.forEach((e) => logger.error(e)) + errors.forEach(e => logger.error(e)) } else logger.success('Deployed across all providers') - console.log( `\nOpen in a browser:\n${colors.bold('IPFS')}: ${colors.underline( `https://${cid}.ipfs.dweb.link`, diff --git a/src/actions/ens.ts b/src/actions/ens.ts index f38b5b2..e8bece0 100644 --- a/src/actions/ens.ts +++ b/src/actions/ens.ts @@ -6,7 +6,7 @@ import { http, createPublicClient, Hex, - encodeFunctionData + encodeFunctionData, } from 'viem' import { MissingKeyError } from '../errors.js' import { PUBLIC_RESOLVER_ADDRESS, prepareUpdateEnsArgs, abi } from '../utils/ens.js' @@ -25,13 +25,13 @@ export const ensAction = async ( cid: string, domain: string, { - chain: chainName, safe: safeAddress, rpcUrl - }: { chain: ChainName; } & Partial<{ safe: Address | EIP3770Address, rpcUrl:string }>, + chain: chainName, safe: safeAddress, rpcUrl, + }: { chain: ChainName } & Partial<{ safe: Address | EIP3770Address, rpcUrl: string }>, ) => { const chain = chainName === 'mainnet' ? mainnet : goerli const publicClient = createPublicClient({ transport: http(rpcUrl ?? chain.id === 1 ? 'https://rpc.ankr.com/eth' : 'https://rpc.ankr.com/eth_goerli'), - chain + chain, }) const pk = process.env.BLUMEN_PK @@ -43,21 +43,23 @@ export const ensAction = async ( const walletClient = createWalletClient({ transport: http(), chain, - account + account, }) - let contentHash ='', + let contentHash = '', node: Hex = '0x' try { const result = await prepareUpdateEnsArgs({ cid, domain }) contentHash = result.contentHash node = result.node - } catch (e) { + } + catch (e) { if ((e as Error).message.includes('disallowed character')) logger.error(`Invalid ENS domain: ${domain}`, e) else if ((e as Error).message.includes('Incorrect length')) { logger.error(`Invalid IPFS CID: ${cid}`, e) - } else { + } + else { logger.error(e) } return @@ -74,8 +76,8 @@ export const ensAction = async ( data: encodeFunctionData({ functionName: 'setContenthash', abi, - args: [node, `0x${contentHash}`] - }) + args: [node, `0x${contentHash}`], + }), }) if (safeAddress) { @@ -91,7 +93,7 @@ export const ensAction = async ( to: request.to as Address, operation: OperationType.Call, gasPrice: request.gasPrice ?? 0n, - nonce + nonce, } const safeTxGas = await safePublicClient.estimateSafeTransactionGas(txData) @@ -105,12 +107,12 @@ export const ensAction = async ( const senderSignature = await safeWalletClient.generateSafeTransactionSignature({ ...txData, safeTxGas, - baseGas + baseGas, }) logger.info('Proposing a Safe transaction') - const apiClient = new ApiClient({ url: chainIdToSafeApiUrl(chain.id), safeAddress, chainId:chain.id }) + const apiClient = new ApiClient({ url: chainIdToSafeApiUrl(chain.id), safeAddress, chainId: chain.id }) try { await apiClient.proposeTransaction({ @@ -119,37 +121,41 @@ export const ensAction = async ( safeTxHash, senderSignature, chainId: chain.id, - origin: 'Piggybank' + origin: 'Piggybank', }) logger.success(`Transaction proposed to a Safe wallet.\nOpen in a browser: ${colors.underline(`https://app.safe.global/transactions/queue?safe=${safeAddress}`)}`) - } catch (e) { + } + catch (e) { logger.error('Failed to propose a transaction', e) return } - - } else { + } + else { let hash: Hash = '0x' try { hash = await walletClient.sendTransaction(request) - } catch (e) { + } + catch (e) { if (e instanceof TransactionExecutionError) { if (e.details?.includes('insufficient funds')) { logger.error('Insufficient funds', e) - } else { + } + else { logger.error('Transaction failed', e) } - } else { + } + else { logger.error(e) } return } logger.info(`Transaction pending: ${chain.blockExplorers.etherscan.url}/tx/${hash}`) - + const receipt = await publicClient.waitForTransactionReceipt({ hash, - timeout: 1000 * 60 * 30 // 30 minutes + timeout: 1000 * 60 * 30, // 30 minutes }) if (receipt.status === 'reverted') return logger.error('Transaction reverted') diff --git a/src/actions/status.ts b/src/actions/status.ts index 3c9144b..db37335 100644 --- a/src/actions/status.ts +++ b/src/actions/status.ts @@ -1,10 +1,9 @@ - import { CID } from 'multiformats' import { PROVIDERS } from '../constants.js' import { InvalidCIDError, UnknownProviderError, - NoProvidersError + NoProvidersError, } from '../errors.js' import { parseTokensFromEnv, findEnvVarProviderName } from '../index.js' import { pinStatus } from '../utils/pin.js' @@ -16,7 +15,8 @@ export const statusAction = async ( // Validate CID try { CID.parse(cid) - } catch { + } + catch { throw new InvalidCIDError(cid) } @@ -26,7 +26,7 @@ export const statusAction = async ( for (const option of env.keys()) tokens.push(option) if (providersOptionList) { - for (const option of providersOptionList.split(',').map((s) => s.trim())) { + for (const option of providersOptionList.split(',').map(s => s.trim())) { const tokenName = findEnvVarProviderName(option) if (tokenName) tokens.push(tokenName) else throw new UnknownProviderError(option) @@ -40,7 +40,7 @@ export const statusAction = async ( if (provider?.status) { const { pin, deals } = await provider.status(cid, { accessKey: env.get('GW3_ACCESS_KEY'), - token: env.get(token) + token: env.get(token), }) pinStatus(provider.name, pin, deals) } diff --git a/src/constants.ts b/src/constants.ts index f4cbd79..cb92a51 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -5,7 +5,7 @@ import type { StatusFunction, UploadFunction } from './types.js' export const PROVIDERS: Record< string, -{ name: string; upload: UploadFunction; status?: StatusFunction } +{ name: string, upload: UploadFunction, status?: StatusFunction } > = { // ESTUARY_TOKEN: { // name: 'Estuary', @@ -14,11 +14,11 @@ string, W3S_TOKEN: { name: 'web3.storage', upload: uploadOnW3S, - status: statusOnW3S + status: statusOnW3S, }, GW3_TOKEN: { name: 'Gateway3', upload: uploadOnGW3, - status: statusOnGW3 - } -} \ No newline at end of file + status: statusOnGW3, + }, +} diff --git a/src/ipfs-car/car.ts b/src/ipfs-car/car.ts index 4b2575d..fe20cb0 100644 --- a/src/ipfs-car/car.ts +++ b/src/ipfs-car/car.ts @@ -28,11 +28,11 @@ export class CAREncoderStream extends TransformStream { finalBlock: Block | null constructor(roots: UnknownLink[] = []) { super({ - start: (controller) => controller.enqueue(encodeHeader(roots)), + start: controller => controller.enqueue(encodeHeader(roots)), transform: (block, controller) => { controller.enqueue(encodeBlock(block)) this.finalBlock = block - } + }, }) this.finalBlock = null } diff --git a/src/ipfs-car/unixfs.ts b/src/ipfs-car/unixfs.ts index 440cf96..36a8c9b 100644 --- a/src/ipfs-car/unixfs.ts +++ b/src/ipfs-car/unixfs.ts @@ -5,7 +5,7 @@ import { TransformStream, ReadableStream, QueuingStrategy, - WritableStream + WritableStream, } from 'node:stream/web' import { BlobLike, FileLike } from '../types.js' @@ -15,18 +15,17 @@ const queuingStrategy = UnixFS.withCapacity() const defaultSettings = UnixFS.configure({ fileChunkEncoder: raw, - smallFileEncoder: raw + smallFileEncoder: raw, }) class UnixFSDirectoryBuilder { entries = new Map() async finalize(writer: View) { - const dirWriter = - this.entries.size <= SHARD_THRESHOLD + const dirWriter + = this.entries.size <= SHARD_THRESHOLD ? UnixFS.createDirectoryWriter(writer) - : /* c8 ignore next */ - UnixFS.createShardedDirectoryWriter(writer) + : UnixFS.createShardedDirectoryWriter(writer) for (const [name, entry] of this.entries) { const link = await entry.finalize(writer) dirWriter.set(name, link) @@ -47,7 +46,7 @@ class UnixFsFileBuilder { new WritableStream({ async write(chunk) { await unixfsFileWriter.write(chunk) - } + }, }), ) return unixfsFileWriter.close() diff --git a/src/polyfills/toWeb.ts b/src/polyfills/toWeb.ts index 2477e0e..90fe2c9 100644 --- a/src/polyfills/toWeb.ts +++ b/src/polyfills/toWeb.ts @@ -1,12 +1,10 @@ -/* eslint-disable @typescript-eslint/ban-ts-comment */ -/* eslint-disable @typescript-eslint/no-explicit-any */ import { Readable, Writable, finished } from 'node:stream' import { type WritableStreamDefaultController, type ReadableStreamDefaultController, WritableStream, ReadableStream, - CountQueuingStrategy + CountQueuingStrategy, } from 'node:stream/web' import { Buffer } from 'node:buffer' @@ -104,7 +102,7 @@ export function writableToWeb(streamWritable: Writable) { controller = undefined return Promise.resolve() - } + }, }, strategy, ) @@ -156,7 +154,7 @@ export function readableToWeb(streamReadable: Readable) { }, pull() { streamReadable.resume() - } + }, }, strategy, ) diff --git a/src/providers/estuary.ts b/src/providers/estuary.ts index 9c9ce37..a4564ed 100644 --- a/src/providers/estuary.ts +++ b/src/providers/estuary.ts @@ -8,22 +8,22 @@ export const uploadOnEstuary: UploadFunction = async ({ token, car, cid, - name + name, }) => { const res = await fetch( new URL( cid ? '/pinning/pins' : `/content/add-car?filename=${name}`, - baseURL + baseURL, ), { method: 'POST', headers: { 'Content-Type': 'application/json', - Accept: 'application/json', - Authorization: `Bearer ${token}` + 'Accept': 'application/json', + 'Authorization': `Bearer ${token}`, }, - body: cid ? JSON.stringify({ cid, name }) : car as Blob - } + body: cid ? JSON.stringify({ cid, name }) : car as Blob, + }, ) if ([502, 504].includes(res.status)) diff --git a/src/providers/gw3.ts b/src/providers/gw3.ts index aa01894..534c30b 100644 --- a/src/providers/gw3.ts +++ b/src/providers/gw3.ts @@ -2,7 +2,7 @@ import type { PinStatus, StatusFunction, UploadFunction } from '../types.js' import { DeployError, MissingKeyError, - UploadNotSupportedError + UploadNotSupportedError, } from '../errors.js' type GW3PinStatus = 'pinned' | 'unpinning' | 'failure' | 'pinning' @@ -27,7 +27,7 @@ export const uploadOnGW3: UploadFunction = async ({ token, car, cid, - accessKey + accessKey, }) => { if (car) throw new UploadNotSupportedError(providerName) if (!accessKey) throw new MissingKeyError('GW3_ACCESS_KEY') @@ -38,19 +38,19 @@ export const uploadOnGW3: UploadFunction = async ({ method: 'POST', headers: { 'Content-Type': 'application/json', - Accept: 'application/json', + 'Accept': 'application/json', 'X-Access-Key': accessKey, - 'X-Access-Secret': token + 'X-Access-Secret': token, }, - body: car - } + body: car, + }, ) if (!res.ok) { const json = await res.text() throw new DeployError( providerName, - (JSON.parse(json) as { msg: string }).msg + (JSON.parse(json) as { msg: string }).msg, ) } @@ -66,11 +66,11 @@ export const statusOnGW3: StatusFunction = async (cid, auth) => { { headers: { 'Content-Type': 'application/json', - Accept: 'application/json', + 'Accept': 'application/json', 'X-Access-Key': auth?.accessKey, - 'X-Access-Secret': auth?.token - } - } + 'X-Access-Secret': auth?.token, + }, + }, ) const json = (await res.json()) as { code: number @@ -82,7 +82,7 @@ export const statusOnGW3: StatusFunction = async (cid, auth) => { if (json.code !== 200) return { pin: 'unknown' } - const pin = json.data.find((pin) => pin.cid === cid) + const pin = json.data.find(pin => pin.cid === cid) if (!pin) return { pin: 'unknown' } return { pin: mapGw3StatusToGenericStatus(pin.status) } diff --git a/src/providers/w3s.ts b/src/providers/w3s.ts index 4cf1621..f7468fc 100644 --- a/src/providers/w3s.ts +++ b/src/providers/w3s.ts @@ -8,7 +8,7 @@ export const uploadOnW3S: UploadFunction = async ({ token, car, cid, - name + name, }) => { if (cid) throw new PinningNotSupportedError(providerName) @@ -16,18 +16,18 @@ export const uploadOnW3S: UploadFunction = async ({ method: 'POST', headers: { 'Content-Type': 'application/json', - Accept: 'application/json', - Authorization: `Bearer ${token}`, - ...(name ? { 'X-NAME': encodeURIComponent(name) } : {}) + 'Accept': 'application/json', + 'Authorization': `Bearer ${token}`, + ...(name ? { 'X-NAME': encodeURIComponent(name) } : {}), }, - body: car as Blob + body: car as Blob, }) const json = await res.json() if (!res.ok) { throw new DeployError( providerName, - (json as { message: string; code: string }).message, + (json as { message: string, code: string }).message, ) } @@ -38,13 +38,13 @@ export const statusOnW3S: StatusFunction = async (cid) => { const res = await fetch(new URL(`/status/${cid}`, baseURL)) const json = (await res.json()) as { pins: [{ status: string }] - deals: { dealId: string; status: string }[] + deals: { dealId: string, status: string }[] } return res.ok ? { - pin: json.pins[0].status.toLowerCase() as PinStatus, - deal: { id: json.deals } - } + pin: json.pins[0].status.toLowerCase() as PinStatus, + deal: { id: json.deals }, + } : { pin: 'unknown' } } diff --git a/src/types.ts b/src/types.ts index bccc8b9..4674601 100644 --- a/src/types.ts +++ b/src/types.ts @@ -50,7 +50,7 @@ export type Supported = 'upload' | 'pin' export type PinStatus = 'queued' | 'pinned' | 'failed' | 'unpinning' | 'unknown' -export type FilecoinDeal = { status: string; dealId: string } +export type FilecoinDeal = { status: string, dealId: string } export type StatusFunction = ( cid: string, diff --git a/src/utils/ens.ts b/src/utils/ens.ts index 6ccb23f..84e4cea 100644 --- a/src/utils/ens.ts +++ b/src/utils/ens.ts @@ -2,9 +2,9 @@ import { encode } from '@ensdomains/content-hash' import { parseAbi } from 'viem/abi' import { namehash, normalize } from 'viem/ens' -export const prepareUpdateEnsArgs = async ({ cid, domain }: { cid: string; domain: string }) => { +export const prepareUpdateEnsArgs = async ({ cid, domain }: { cid: string, domain: string }) => { const contentHash = encode('ipfs', cid) - + const node = namehash(normalize(domain)) return { contentHash, node } @@ -14,5 +14,5 @@ export const abi = parseAbi(['function setContenthash(bytes32 node, bytes callda export const PUBLIC_RESOLVER_ADDRESS = { 1: '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41', - 5: '0xd7a4F6473f32aC2Af804B3686AE8F1932bC35750' + 5: '0xd7a4F6473f32aC2Af804B3686AE8F1932bC35750', } as const diff --git a/src/utils/fs.ts b/src/utils/fs.ts index 5660f97..b88526c 100644 --- a/src/utils/fs.ts +++ b/src/utils/fs.ts @@ -6,7 +6,7 @@ import { globby } from 'globby' import { readableToWeb } from '../polyfills/toWeb.js' import { Readable } from 'node:stream' -const toWeb = typeof Readable['toWeb'] === 'undefined' ? readableToWeb : Readable['toWeb'] +const toWeb = typeof Readable['toWeb'] === 'undefined' ? readableToWeb : Readable['toWeb'] export const walk = async (dir: string) => { let total = 0 @@ -17,7 +17,7 @@ export const walk = async (dir: string) => { files.push({ name: dir === '.' ? path : path.replace(dir, ''), size, - stream: () => toWeb(createReadStream(path)) + stream: () => toWeb(createReadStream(path)), }) } @@ -28,7 +28,8 @@ export const exists = async (file: string) => { try { await access(file, constants.F_OK) return true - } catch { + } + catch { return false } } @@ -48,8 +49,8 @@ export function fileSize(bytes: number, digits = 1): string { bytes /= thresh ++u } while ( - Math.round(Math.abs(bytes) * r) / r >= thresh && - u < units.length - 1 + Math.round(Math.abs(bytes) * r) / r >= thresh + && u < units.length - 1 ) return bytes.toFixed(digits) + units[u] diff --git a/src/utils/ipfs.ts b/src/utils/ipfs.ts index b5d0951..8175384 100644 --- a/src/utils/ipfs.ts +++ b/src/utils/ipfs.ts @@ -13,7 +13,7 @@ import { Blob } from 'node:buffer' const tmp = tmpdir() -const toWeb = typeof Writable['toWeb'] === 'undefined' ? writableToWeb : Writable['toWeb'] +const toWeb = typeof Writable['toWeb'] === 'undefined' ? writableToWeb : Writable['toWeb'] export const packCAR = async (files: FileEntry[], name: string, dir = tmp) => { const output = `${dir}/${name}.car` @@ -29,7 +29,7 @@ export const packCAR = async (files: FileEntry[], name: string, dir = tmp) => { transform(block, controller) { rootCID = block.cid as CID controller.enqueue(block) - } + }, }), ) .pipeThrough(new CAREncoderStream([placeholderCID])) diff --git a/src/utils/pin.ts b/src/utils/pin.ts index e8ade1f..b349f08 100644 --- a/src/utils/pin.ts +++ b/src/utils/pin.ts @@ -8,7 +8,7 @@ export const pinStatus = ( deals?: FilecoinDeal[], ) => { let statusText: string - + switch (status) { case 'pinned': statusText = colors.green(status) @@ -21,15 +21,15 @@ export const pinStatus = ( statusText = colors.gray(status || 'unknown') break } - + console.log(`${colors.cyan(provider)}: ${colors.bold(statusText)}`) - + if (deals) { table( deals.map(({ - dealId, status + dealId, status, }) => [dealId, status]), { header: { alignment: 'left', content: 'Filecoin deals' } }, ) } -} \ No newline at end of file +} diff --git a/src/utils/safe.ts b/src/utils/safe.ts index 2a1eed4..582a35d 100644 --- a/src/utils/safe.ts +++ b/src/utils/safe.ts @@ -7,4 +7,4 @@ export const chainIdToSafeApiUrl = (chainId: 1 | 5) => { default: throw new Error('Unsupported chain') } -} \ No newline at end of file +} diff --git a/tsconfig.json b/tsconfig.json index 81844dd..a7a4587 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,19 +1,16 @@ { "compilerOptions": { - "lib": ["es2023", "DOM"], "module": "Node16", "target": "es2022", "strict": true, "esModuleInterop": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, "moduleResolution": "node16", "allowJs": false, "outDir": "dist", "declaration": true, "declarationDir": "dist", "isolatedModules": true, - "resolveJsonModule": true }, "exclude": ["node_modules", "**/node_modules/*"], "include": ["src"]