diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 5807910..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "extends": [ - "eslint:recommended", - "plugin:ava/recommended", - "plugin:@typescript-eslint/recommended", - "plugin:import/errors", - "plugin:import/warnings", - "plugin:import/typescript", - "prettier" - ], - "plugins": ["ava", "import", "@typescript-eslint"], - "settings": { - "import/resolver": { - "node": { - "paths": ["src"] - } - } - }, - "rules": { - "import/no-unresolved": "off", - "padding-line-between-statements": [ - "error", - { "blankLine": "always", "prev": "*", "next": "block" }, - { "blankLine": "always", "prev": "block", "next": "*" }, - { "blankLine": "always", "prev": "*", "next": "block-like" }, - { "blankLine": "always", "prev": "block-like", "next": "*" } - ], - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_", - "caughtErrorsIgnorePattern": "^_" - } - ], - "@typescript-eslint/naming-convention": [ - "error", - { - "selector": ["parameter", "variable"], - "leadingUnderscore": "forbid", - "filter": { - "regex": "_*", - "match": false - }, - "format": null - }, - { - "selector": "parameter", - "leadingUnderscore": "require", - "format": null, - "modifiers": ["unused"] - } - ], - "no-constant-condition": "off", - "ava/assertion-arguments": "off" - } -} diff --git a/package.json b/package.json index 36d801a..39a3d71 100644 --- a/package.json +++ b/package.json @@ -18,16 +18,23 @@ }, "scripts": { "build": "pnpm tsc", + "postbuild": "pnpm copy-files-from-to", "lint": "concurrently \"pnpm exec prettier --check .\" \"pnpm exec eslint . --max-warnings=0\"", "prettier": "pnpm exec prettier -w ." }, + "copyFiles": [ + { + "from": "src/tokens.yml", + "to": "dist/tokens.yml" + } + ], "resolutions": { "@harmoniclabs/crypto": "^0.3.0-dev0" }, "dependencies": { - "@inquirer/prompts": "^7.5.3", + "@inquirer/prompts": "^7.6.0", "@lucid-evolution/lucid": "^0.4.29", - "@mysten/sui": "^1.34.0", + "@mysten/sui": "^1.35.0", "@webbuf/blake3": "^1.0.127", "@webbuf/webbuf": "^1.0.127", "arktype": "^2.1.20", @@ -36,26 +43,31 @@ "bs58": "^6.0.0", "commander": "^14.0.0", "conf": "^14.0.0", - "inquirer": "^12.6.3", + "decimal.js": "^10.6.0", + "inquirer": "^12.7.0", "js-sha3": "^0.9.3", + "ky": "^1.8.1", "node-machine-id": "^1.1.12", "ts-handling": "^0.2.5", - "web3-utils": "^4.3.3" + "web3-utils": "^4.3.3", + "yaml": "^2.8.0" }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "^9.30.0", + "@eslint/js": "^9.30.1", "@ianvs/prettier-plugin-sort-imports": "^4.4.2", - "@types/node": "^24.0.8", - "@typescript-eslint/eslint-plugin": "^8.35.1", - "@typescript-eslint/parser": "^8.35.1", + "@types/node": "^24.0.10", + "@typescript-eslint/eslint-plugin": "^8.36.0", + "@typescript-eslint/parser": "^8.36.0", "concurrently": "^9.2.0", - "eslint": "^9.30.0", + "copy-files-from-to": "^3.12.1", + "eslint": "^9.30.1", "eslint-config-prettier": "^10.1.5", "eslint-import-resolver-node": "^0.3.9", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-import": "^2.32.0", "prettier": "^3.6.2", - "tsx": "^4.20.3" + "tsx": "^4.20.3", + "typescript": "^5.8.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 27caab2..dd959d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,14 +11,14 @@ importers: .: dependencies: "@inquirer/prompts": - specifier: ^7.5.3 - version: 7.5.3(@types/node@24.0.8) + specifier: ^7.6.0 + version: 7.6.0(@types/node@24.0.10) "@lucid-evolution/lucid": specifier: ^0.4.29 version: 0.4.29(@harmoniclabs/bytestring@1.0.0)(@harmoniclabs/cbor@1.6.6)(@harmoniclabs/crypto@0.3.0)(@harmoniclabs/pair@1.0.0)(fast-check@3.23.2)(rxjs@7.8.2) "@mysten/sui": - specifier: ^1.34.0 - version: 1.34.0(typescript@5.8.3) + specifier: ^1.35.0 + version: 1.35.0(typescript@5.8.3) "@webbuf/blake3": specifier: ^1.0.127 version: 1.0.127(@webbuf/fixedbuf@1.0.127(@webbuf/webbuf@1.0.127))(@webbuf/webbuf@1.0.127) @@ -43,12 +43,18 @@ importers: conf: specifier: ^14.0.0 version: 14.0.0 + decimal.js: + specifier: ^10.6.0 + version: 10.6.0 inquirer: - specifier: ^12.6.3 - version: 12.6.3(@types/node@24.0.8) + specifier: ^12.7.0 + version: 12.7.0(@types/node@24.0.10) js-sha3: specifier: ^0.9.3 version: 0.9.3 + ky: + specifier: ^1.8.1 + version: 1.8.1 node-machine-id: specifier: ^1.1.12 version: 1.1.12 @@ -58,49 +64,58 @@ importers: web3-utils: specifier: ^4.3.3 version: 4.3.3 + yaml: + specifier: ^2.8.0 + version: 2.8.0 devDependencies: "@eslint/eslintrc": specifier: ^3.3.1 version: 3.3.1 "@eslint/js": - specifier: ^9.30.0 - version: 9.30.0 + specifier: ^9.30.1 + version: 9.30.1 "@ianvs/prettier-plugin-sort-imports": specifier: ^4.4.2 version: 4.4.2(prettier@3.6.2) "@types/node": - specifier: ^24.0.8 - version: 24.0.8 + specifier: ^24.0.10 + version: 24.0.10 "@typescript-eslint/eslint-plugin": - specifier: ^8.35.1 - version: 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3))(eslint@9.30.0)(typescript@5.8.3) + specifier: ^8.36.0 + version: 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1)(typescript@5.8.3))(eslint@9.30.1)(typescript@5.8.3) "@typescript-eslint/parser": - specifier: ^8.35.1 - version: 8.35.1(eslint@9.30.0)(typescript@5.8.3) + specifier: ^8.36.0 + version: 8.36.0(eslint@9.30.1)(typescript@5.8.3) concurrently: specifier: ^9.2.0 version: 9.2.0 + copy-files-from-to: + specifier: ^3.12.1 + version: 3.12.1 eslint: - specifier: ^9.30.0 - version: 9.30.0 + specifier: ^9.30.1 + version: 9.30.1 eslint-config-prettier: specifier: ^10.1.5 - version: 10.1.5(eslint@9.30.0) + version: 10.1.5(eslint@9.30.1) eslint-import-resolver-node: specifier: ^0.3.9 version: 0.3.9 eslint-import-resolver-typescript: specifier: ^4.4.4 - version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.30.0) + version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.30.1) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.0) + version: 2.32.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.1) prettier: specifier: ^3.6.2 version: 3.6.2 tsx: specifier: ^4.20.3 version: 4.20.3 + typescript: + specifier: ^5.8.3 + version: 5.8.3 packages: "@0no-co/graphql.web@1.1.2": @@ -673,10 +688,10 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@eslint/js@9.30.0": + "@eslint/js@9.30.1": resolution: { - integrity: sha512-Wzw3wQwPvc9sHM+NjakWTcPx11mbZyiYHuwWa/QfZ7cIRX7WK54PSk7bdyXDaoaopUcMatv1zaQvOAAO8hCdww==, + integrity: sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -856,10 +871,10 @@ packages: "@vue/compiler-sfc": optional: true - "@inquirer/checkbox@4.1.8": + "@inquirer/checkbox@4.1.9": resolution: { - integrity: sha512-d/QAsnwuHX2OPolxvYcgSj7A9DO9H6gVOy2DvBTx+P2LH2iRTo/RSGV3iwCzW024nP9hw98KIuDmdyhZQj1UQg==, + integrity: sha512-DBJBkzI5Wx4jFaYm221LHvAhpKYkhVS0k9plqHwaHhofGNxvYB7J3Bz8w+bFJ05zaMb0sZNHo4KdmENQFlNTuQ==, } engines: { node: ">=18" } peerDependencies: @@ -868,10 +883,10 @@ packages: "@types/node": optional: true - "@inquirer/confirm@5.1.12": + "@inquirer/confirm@5.1.13": resolution: { - integrity: sha512-dpq+ielV9/bqgXRUbNH//KsY6WEw9DrGPmipkpmgC1Y46cwuBTNx7PXFWTjc3MQ+urcc0QxoVHcMI0FW4Ok0hg==, + integrity: sha512-EkCtvp67ICIVVzjsquUiVSd+V5HRGOGQfsqA4E4vMWhYnB7InUL0pa0TIWt1i+OfP16Gkds8CdIu6yGZwOM1Yw==, } engines: { node: ">=18" } peerDependencies: @@ -880,10 +895,10 @@ packages: "@types/node": optional: true - "@inquirer/core@10.1.13": + "@inquirer/core@10.1.14": resolution: { - integrity: sha512-1viSxebkYN2nJULlzCxES6G9/stgHSepZ9LqqfdIGPHj5OHhiBUXVS0a6R0bEC2A+VL4D9w6QB66ebCr6HGllA==, + integrity: sha512-Ma+ZpOJPewtIYl6HZHZckeX1STvDnHTCB2GVINNUlSEn2Am6LddWwfPkIGY0IUFVjUUrr/93XlBwTK6mfLjf0A==, } engines: { node: ">=18" } peerDependencies: @@ -892,10 +907,10 @@ packages: "@types/node": optional: true - "@inquirer/editor@4.2.13": + "@inquirer/editor@4.2.14": resolution: { - integrity: sha512-WbicD9SUQt/K8O5Vyk9iC2ojq5RHoCLK6itpp2fHsWe44VxxcA9z3GTWlvjSTGmMQpZr+lbVmrxdHcumJoLbMA==, + integrity: sha512-yd2qtLl4QIIax9DTMZ1ZN2pFrrj+yL3kgIWxm34SS6uwCr0sIhsNyudUjAo5q3TqI03xx4SEBkUJqZuAInp9uA==, } engines: { node: ">=18" } peerDependencies: @@ -904,10 +919,10 @@ packages: "@types/node": optional: true - "@inquirer/expand@4.0.15": + "@inquirer/expand@4.0.16": resolution: { - integrity: sha512-4Y+pbr/U9Qcvf+N/goHzPEXiHH8680lM3Dr3Y9h9FFw4gHS+zVpbj8LfbKWIb/jayIB4aSO4pWiBTrBYWkvi5A==, + integrity: sha512-oiDqafWzMtofeJyyGkb1CTPaxUkjIcSxePHHQCfif8t3HV9pHcw1Kgdw3/uGpDvaFfeTluwQtWiqzPVjAqS3zA==, } engines: { node: ">=18" } peerDependencies: @@ -923,10 +938,10 @@ packages: } engines: { node: ">=18" } - "@inquirer/input@4.1.12": + "@inquirer/input@4.2.0": resolution: { - integrity: sha512-xJ6PFZpDjC+tC1P8ImGprgcsrzQRsUh9aH3IZixm1lAZFK49UGHxM3ltFfuInN2kPYNfyoPRh+tU4ftsjPLKqQ==, + integrity: sha512-opqpHPB1NjAmDISi3uvZOTrjEEU5CWVu/HBkDby8t93+6UxYX0Z7Ps0Ltjm5sZiEbWenjubwUkivAEYQmy9xHw==, } engines: { node: ">=18" } peerDependencies: @@ -935,10 +950,10 @@ packages: "@types/node": optional: true - "@inquirer/number@3.0.15": + "@inquirer/number@3.0.16": resolution: { - integrity: sha512-xWg+iYfqdhRiM55MvqiTCleHzszpoigUpN5+t1OMcRkJrUrw7va3AzXaxvS+Ak7Gny0j2mFSTv2JJj8sMtbV2g==, + integrity: sha512-kMrXAaKGavBEoBYUCgualbwA9jWUx2TjMA46ek+pEKy38+LFpL9QHlTd8PO2kWPUgI/KB+qi02o4y2rwXbzr3Q==, } engines: { node: ">=18" } peerDependencies: @@ -947,10 +962,10 @@ packages: "@types/node": optional: true - "@inquirer/password@4.0.15": + "@inquirer/password@4.0.16": resolution: { - integrity: sha512-75CT2p43DGEnfGTaqFpbDC2p2EEMrq0S+IRrf9iJvYreMy5mAWj087+mdKyLHapUEPLjN10mNvABpGbk8Wdraw==, + integrity: sha512-g8BVNBj5Zeb5/Y3cSN+hDUL7CsIFDIuVxb9EPty3lkxBaYpjL5BNRKSYOF9yOLe+JOcKFd+TSVeADQ4iSY7rbg==, } engines: { node: ">=18" } peerDependencies: @@ -959,10 +974,10 @@ packages: "@types/node": optional: true - "@inquirer/prompts@7.5.3": + "@inquirer/prompts@7.6.0": resolution: { - integrity: sha512-8YL0WiV7J86hVAxrh3fE5mDCzcTDe1670unmJRz6ArDgN+DBK1a0+rbnNWp4DUB5rPMwqD5ZP6YHl9KK1mbZRg==, + integrity: sha512-jAhL7tyMxB3Gfwn4HIJ0yuJ5pvcB5maYUcouGcgd/ub79f9MqZ+aVnBtuFf+VC2GTkCBF+R+eo7Vi63w5VZlzw==, } engines: { node: ">=18" } peerDependencies: @@ -971,10 +986,10 @@ packages: "@types/node": optional: true - "@inquirer/rawlist@4.1.3": + "@inquirer/rawlist@4.1.4": resolution: { - integrity: sha512-7XrV//6kwYumNDSsvJIPeAqa8+p7GJh7H5kRuxirct2cgOcSWwwNGoXDRgpNFbY/MG2vQ4ccIWCi8+IXXyFMZA==, + integrity: sha512-5GGvxVpXXMmfZNtvWw4IsHpR7RzqAR624xtkPd1NxxlV5M+pShMqzL4oRddRkg8rVEOK9fKdJp1jjVML2Lr7TQ==, } engines: { node: ">=18" } peerDependencies: @@ -983,10 +998,10 @@ packages: "@types/node": optional: true - "@inquirer/search@3.0.15": + "@inquirer/search@3.0.16": resolution: { - integrity: sha512-YBMwPxYBrADqyvP4nNItpwkBnGGglAvCLVW8u4pRmmvOsHUtCAUIMbUrLX5B3tFL1/WsLGdQ2HNzkqswMs5Uaw==, + integrity: sha512-POCmXo+j97kTGU6aeRjsPyuCpQQfKcMXdeTMw708ZMtWrj5aykZvlUxH4Qgz3+Y1L/cAVZsSpA+UgZCu2GMOMg==, } engines: { node: ">=18" } peerDependencies: @@ -995,10 +1010,10 @@ packages: "@types/node": optional: true - "@inquirer/select@4.2.3": + "@inquirer/select@4.2.4": resolution: { - integrity: sha512-OAGhXU0Cvh0PhLz9xTF/kx6g6x+sP+PcyTiLvCrewI99P3BBeexD+VbuwkNDvqGkk3y2h5ZiWLeRP7BFlhkUDg==, + integrity: sha512-unTppUcTjmnbl/q+h8XeQDhAqIOmwWYWNyiiP2e3orXrg6tOaa5DHXja9PChCSbChOsktyKgOieRZFnajzxoBg==, } engines: { node: ">=18" } peerDependencies: @@ -1040,6 +1055,12 @@ packages: } engines: { node: ">=6.0.0" } + "@jridgewell/source-map@0.3.10": + resolution: + { + integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==, + } + "@jridgewell/sourcemap-codec@1.5.0": resolution: { @@ -1142,10 +1163,10 @@ packages: integrity: sha512-QQ6u0U7a4+/o6rZ9tALTeGYMdf6V5z/HkRI/mhD5/fSr80DJoGzOWpFszcN/fhJpKb36vBaSQUMpS7yNQ10xBQ==, } - "@mysten/sui@1.34.0": + "@mysten/sui@1.35.0": resolution: { - integrity: sha512-Btf2Tq5VPXqABOXqtw9hV13DskepggP7MpeGb7OnRNF2grh1nHyWj9J0Y2UmkhZUEdTWpnVRnl/ufIZ6VmU1kg==, + integrity: sha512-za0+SiEFtjAjk0sJ8P9Q/X/m2E/YrXQ/UNsotEwb/eCqPyGS8A9Mrxkhm/iIgR1+AAl1OWUWCrqgJVe7u2i61A==, } engines: { node: ">=18" } @@ -1209,6 +1230,70 @@ packages: } engines: { node: ">= 8" } + "@oxlint/darwin-arm64@1.6.0": + resolution: + { + integrity: sha512-m3wyqBh1TOHjpr/dXeIZY7OoX+MQazb+bMHQdDtwUvefrafUx+5YHRvulYh1sZSQ449nQ3nk3qj5qj535vZRjg==, + } + cpu: [arm64] + os: [darwin] + + "@oxlint/darwin-x64@1.6.0": + resolution: + { + integrity: sha512-75fJfF/9xNypr7cnOYoZBhfmG1yP7ex3pUOeYGakmtZRffO9z1i1quLYhjZsmaDXsAIZ3drMhenYHMmFKS3SRg==, + } + cpu: [x64] + os: [darwin] + + "@oxlint/linux-arm64-gnu@1.6.0": + resolution: + { + integrity: sha512-YhXGf0FXa72bEt4F7eTVKx5X3zWpbAOPnaA/dZ6/g8tGhw1m9IFjrabVHFjzcx3dQny4MgA59EhyElkDvpUe8A==, + } + cpu: [arm64] + os: [linux] + + "@oxlint/linux-arm64-musl@1.6.0": + resolution: + { + integrity: sha512-T3JDhx8mjGjvh5INsPZJrlKHmZsecgDYvtvussKRdkc1Nnn7WC+jH9sh5qlmYvwzvmetlPVNezAoNvmGO9vtMg==, + } + cpu: [arm64] + os: [linux] + + "@oxlint/linux-x64-gnu@1.6.0": + resolution: + { + integrity: sha512-Dx7ghtAl8aXBdqofJpi338At6lkeCtTfoinTYQXd9/TEJx+f+zCGNlQO6nJz3ydJBX48FDuOFKkNC+lUlWrd8w==, + } + cpu: [x64] + os: [linux] + + "@oxlint/linux-x64-musl@1.6.0": + resolution: + { + integrity: sha512-7KvMGdWmAZtAtg6IjoEJHKxTXdAcrHnUnqfgs0JpXst7trquV2mxBeRZusQXwxpu4HCSomKMvJfsp1qKaqSFDg==, + } + cpu: [x64] + os: [linux] + + "@oxlint/win32-arm64@1.6.0": + resolution: + { + integrity: sha512-iSGC9RwX+dl7o5KFr5aH7Gq3nFbkq/3Gda6mxNPMvNkWrgXdIyiINxpyD8hJu566M+QSv1wEAu934BZotFDyoQ==, + } + cpu: [arm64] + os: [win32] + + "@oxlint/win32-x64@1.6.0": + resolution: + { + integrity: sha512-jOj3L/gfLc0IwgOTkZMiZ5c673i/hbAmidlaylT0gE6H18hln9HxPgp5GCf4E4y6mwEJlW8QC5hQi221+9otdA==, + } + cpu: [x64] + os: [win32] + "@rtsao/scc@1.1.0": resolution: { @@ -1299,98 +1384,98 @@ packages: integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, } - "@types/node@24.0.8": + "@types/node@24.0.10": resolution: { - integrity: sha512-WytNrFSgWO/esSH9NbpWUfTMGQwCGIKfCmNlmFDNiI5gGhgMmEA+V1AEvKLeBNvvtBnailJtkrEa2OIISwrVAA==, + integrity: sha512-ENHwaH+JIRTDIEEbDK6QSQntAYGtbvdDXnMXnZaZ6k13Du1dPMmprkEHIL7ok2Wl2aZevetwTAb5S+7yIF+enA==, } - "@typescript-eslint/eslint-plugin@8.35.1": + "@typescript-eslint/eslint-plugin@8.36.0": resolution: { - integrity: sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==, + integrity: sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - "@typescript-eslint/parser": ^8.35.1 + "@typescript-eslint/parser": ^8.36.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/parser@8.35.1": + "@typescript-eslint/parser@8.36.0": resolution: { - integrity: sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==, + integrity: sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/project-service@8.35.1": + "@typescript-eslint/project-service@8.36.0": resolution: { - integrity: sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==, + integrity: sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/scope-manager@8.35.1": + "@typescript-eslint/scope-manager@8.36.0": resolution: { - integrity: sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==, + integrity: sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@typescript-eslint/tsconfig-utils@8.35.1": + "@typescript-eslint/tsconfig-utils@8.36.0": resolution: { - integrity: sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==, + integrity: sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/type-utils@8.35.1": + "@typescript-eslint/type-utils@8.36.0": resolution: { - integrity: sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==, + integrity: sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/types@8.35.1": + "@typescript-eslint/types@8.36.0": resolution: { - integrity: sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==, + integrity: sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@typescript-eslint/typescript-estree@8.35.1": + "@typescript-eslint/typescript-estree@8.36.0": resolution: { - integrity: sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==, + integrity: sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/utils@8.35.1": + "@typescript-eslint/utils@8.36.0": resolution: { - integrity: sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==, + integrity: sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/visitor-keys@8.35.1": + "@typescript-eslint/visitor-keys@8.36.0": resolution: { - integrity: sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==, + integrity: sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -1699,6 +1784,18 @@ packages: } engines: { node: ">= 0.4" } + async@3.2.6: + resolution: + { + integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==, + } + + asynckit@0.4.0: + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } + atomically@2.0.3: resolution: { @@ -1712,6 +1809,12 @@ packages: } engines: { node: ">= 0.4" } + axios@1.10.0: + resolution: + { + integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==, + } + b4a@1.6.7: resolution: { @@ -1798,6 +1901,12 @@ packages: integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==, } + buffer-from@1.1.2: + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } + buffer@6.0.3: resolution: { @@ -1858,6 +1967,12 @@ packages: integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, } + charenc@0.0.2: + resolution: + { + integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==, + } + cipher-base@1.0.6: resolution: { @@ -1865,6 +1980,13 @@ packages: } engines: { node: ">= 0.10" } + cjson@0.5.0: + resolution: + { + integrity: sha512-D3CKJU9YnZNyerUQ1IzNUvMnToP3MGC2XbIAPi/7yqunJJW3rBwCVapousoFtaR9IbejeEM0KIshxC1n4HQcXw==, + } + engines: { node: ">= 0.3.0" } + cli-width@4.1.0: resolution: { @@ -1892,6 +2014,13 @@ packages: integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, } + combined-stream@1.0.8: + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: ">= 0.8" } + commander@14.0.0: resolution: { @@ -1899,6 +2028,12 @@ packages: } engines: { node: ">=20" } + commander@2.20.3: + resolution: + { + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, + } + concat-map@0.0.1: resolution: { @@ -1920,6 +2055,14 @@ packages: } engines: { node: ">=20" } + copy-files-from-to@3.12.1: + resolution: + { + integrity: sha512-ubEtQb/tX5cCxmfij1YVzO2uX+QoNg0kh8wje3AhyIjLxFHRoQLfIuYYUPz+O47t9UbB5cjG/CxF5oz8AZoBCg==, + } + engines: { node: ">=18" } + hasBin: true + create-hash@1.2.0: resolution: { @@ -1945,6 +2088,12 @@ packages: } engines: { node: ">= 8" } + crypt@0.0.2: + resolution: + { + integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==, + } + data-view-buffer@1.0.2: resolution: { @@ -1996,6 +2145,12 @@ packages: supports-color: optional: true + decimal.js@10.6.0: + resolution: + { + integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==, + } + deep-is@0.1.4: resolution: { @@ -2016,6 +2171,13 @@ packages: } engines: { node: ">= 0.4" } + delayed-stream@1.0.0: + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: ">=0.4.0" } + detect-libc@2.0.4: resolution: { @@ -2242,10 +2404,10 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - eslint@9.30.0: + eslint@9.30.1: resolution: { - integrity: sha512-iN/SiPxmQu6EVkf+m1qpBxzUhE12YqFLOSySuOyVLJLEF9nzTf+h/1AJYc1JWzCnktggeNrjvQGLngDzXirU6g==, + integrity: sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } hasBin: true @@ -2404,6 +2566,18 @@ packages: integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==, } + follow-redirects@1.15.9: + resolution: + { + integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==, + } + engines: { node: ">=4.0" } + peerDependencies: + debug: "*" + peerDependenciesMeta: + debug: + optional: true + for-each@0.3.5: resolution: { @@ -2411,6 +2585,13 @@ packages: } engines: { node: ">= 0.4" } + form-data@4.0.3: + resolution: + { + integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==, + } + engines: { node: ">= 6" } + fraction.js@4.0.1: resolution: { @@ -2657,10 +2838,10 @@ packages: integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, } - inquirer@12.6.3: + inquirer@12.7.0: resolution: { - integrity: sha512-eX9beYAjr1MqYsIjx1vAheXsRk1jbZRvHLcBu5nA9wX0rXR1IfCZLnVLp4Ym4mrhqmh7AuANwcdtgQ291fZDfQ==, + integrity: sha512-KKFRc++IONSyE2UYw9CJ1V0IWx5yQKomwB+pp3cWomWs+v2+ZsG11G2OVfAjFS6WWCppKw+RfKmpqGfSzD5QBQ==, } engines: { node: ">=18" } peerDependencies: @@ -2718,6 +2899,12 @@ packages: } engines: { node: ">= 0.4" } + is-buffer@1.1.6: + resolution: + { + integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, + } + is-bun-module@2.0.0: resolution: { @@ -2857,6 +3044,12 @@ packages: } engines: { node: ">= 0.4" } + is-utf8@0.2.1: + resolution: + { + integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==, + } + is-weakmap@2.0.2: resolution: { @@ -2905,6 +3098,12 @@ packages: peerDependencies: ws: "*" + jju@1.4.0: + resolution: + { + integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==, + } + js-sha3@0.9.3: resolution: { @@ -2944,6 +3143,12 @@ packages: integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, } + json-parse-helpfulerror@1.0.3: + resolution: + { + integrity: sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==, + } + json-schema-traverse@0.4.1: resolution: { @@ -2981,6 +3186,13 @@ packages: integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, } + ky@1.8.1: + resolution: + { + integrity: sha512-7Bp3TpsE+L+TARSnnDpk3xg8Idi8RwSLdj6CMbNWoOARIrGrbuLGusV0dYwbZOm4bB3jHNxSw8Wk/ByDqJEnDw==, + } + engines: { node: ">=18" } + levn@0.4.1: resolution: { @@ -3032,6 +3244,12 @@ packages: integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==, } + md5@2.3.0: + resolution: + { + integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==, + } + merge2@1.4.1: resolution: { @@ -3046,6 +3264,20 @@ packages: } engines: { node: ">=8.6" } + mime-db@1.52.0: + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: ">= 0.6" } + + mime-types@2.1.35: + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: ">= 0.6" } + mimic-function@5.0.1: resolution: { @@ -3072,6 +3304,14 @@ packages: integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, } + mkdirp@3.0.1: + resolution: + { + integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==, + } + engines: { node: ">=10" } + hasBin: true + ms@2.1.3: resolution: { @@ -3150,6 +3390,20 @@ packages: integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==, } + normalize-path@2.1.1: + resolution: + { + integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==, + } + engines: { node: ">=0.10.0" } + + note-down@1.0.2: + resolution: + { + integrity: sha512-TvLvdM5FJN3Lw9S09sNfcFnfFGioih49btr87VdCecHQAjOhtcRaqducIWDGnP/VJOEv5IxNxD6pmakGg9aAww==, + } + engines: { node: ">=14" } + npm@9.9.4: resolution: { @@ -3292,6 +3546,14 @@ packages: } engines: { node: ">= 0.4" } + oxlint@1.6.0: + resolution: + { + integrity: sha512-jtaD65PqzIa1udvSxxscTKBxYKuZoFXyKGLiU1Qjo1ulq3uv/fQDtoV1yey1FrQZrQjACGPi1Widsy1TucC7Jg==, + } + engines: { node: ">=8.*" } + hasBin: true + p-limit@3.1.0: resolution: { @@ -3408,6 +3670,12 @@ packages: integrity: sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==, } + proxy-from-env@1.1.0: + resolution: + { + integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, + } + punycode@2.3.1: resolution: { @@ -3448,6 +3716,12 @@ packages: } engines: { node: ">= 0.4" } + remove-trailing-separator@1.1.0: + resolution: + { + integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==, + } + require-directory@2.1.1: resolution: { @@ -3496,10 +3770,10 @@ packages: integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, } - run-async@3.0.0: + run-async@4.0.4: resolution: { - integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==, + integrity: sha512-2cgeRHnV11lSXBEhq7sN7a5UVjTKm9JTb9x8ApIT//16D7QL96AgnNeWSGoB4gIHc0iYw/Ha0Z+waBaCYZVNhg==, } engines: { node: ">=0.12.0" } @@ -3654,6 +3928,19 @@ packages: } engines: { node: ">=14" } + source-map-support@0.5.21: + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } + + source-map@0.6.1: + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: ">=0.10.0" } + sprintf-js@1.1.3: resolution: { @@ -3763,6 +4050,14 @@ packages: } engines: { node: ">= 0.4" } + terser@5.43.1: + resolution: + { + integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==, + } + engines: { node: ">=10" } + hasBin: true + tinyglobby@0.2.14: resolution: { @@ -3955,6 +4250,13 @@ packages: integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==, } + unixify@1.0.0: + resolution: + { + integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==, + } + engines: { node: ">=0.10.0" } + unrs-resolver@1.9.0: resolution: { @@ -4116,6 +4418,14 @@ packages: } engines: { node: ">=10" } + yaml@2.8.0: + resolution: + { + integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==, + } + engines: { node: ">= 14.6" } + hasBin: true + yargs-parser@21.1.1: resolution: { @@ -4432,9 +4742,9 @@ snapshots: "@esbuild/win32-x64@0.25.5": optional: true - "@eslint-community/eslint-utils@4.7.0(eslint@9.30.0)": + "@eslint-community/eslint-utils@4.7.0(eslint@9.30.1)": dependencies: - eslint: 9.30.0 + eslint: 9.30.1 eslint-visitor-keys: 3.4.3 "@eslint-community/regexpp@4.12.1": {} @@ -4471,7 +4781,7 @@ snapshots: transitivePeerDependencies: - supports-color - "@eslint/js@9.30.0": {} + "@eslint/js@9.30.1": {} "@eslint/object-schema@2.1.6": {} @@ -4572,27 +4882,27 @@ snapshots: transitivePeerDependencies: - supports-color - "@inquirer/checkbox@4.1.8(@types/node@24.0.8)": + "@inquirer/checkbox@4.1.9(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) "@inquirer/figures": 1.0.12 - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/type": 3.0.7(@types/node@24.0.10) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/confirm@5.1.12(@types/node@24.0.8)": + "@inquirer/confirm@5.1.13(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) + "@inquirer/type": 3.0.7(@types/node@24.0.10) optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/core@10.1.13(@types/node@24.0.8)": + "@inquirer/core@10.1.14(@types/node@24.0.10)": dependencies: "@inquirer/figures": 1.0.12 - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/type": 3.0.7(@types/node@24.0.10) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -4600,93 +4910,93 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/editor@4.2.13(@types/node@24.0.8)": + "@inquirer/editor@4.2.14(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) + "@inquirer/type": 3.0.7(@types/node@24.0.10) external-editor: 3.1.0 optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/expand@4.0.15(@types/node@24.0.8)": + "@inquirer/expand@4.0.16(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) + "@inquirer/type": 3.0.7(@types/node@24.0.10) yoctocolors-cjs: 2.1.2 optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 "@inquirer/figures@1.0.12": {} - "@inquirer/input@4.1.12(@types/node@24.0.8)": + "@inquirer/input@4.2.0(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) + "@inquirer/type": 3.0.7(@types/node@24.0.10) optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/number@3.0.15(@types/node@24.0.8)": + "@inquirer/number@3.0.16(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) + "@inquirer/type": 3.0.7(@types/node@24.0.10) optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/password@4.0.15(@types/node@24.0.8)": + "@inquirer/password@4.0.16(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) + "@inquirer/type": 3.0.7(@types/node@24.0.10) ansi-escapes: 4.3.2 optionalDependencies: - "@types/node": 24.0.8 - - "@inquirer/prompts@7.5.3(@types/node@24.0.8)": - dependencies: - "@inquirer/checkbox": 4.1.8(@types/node@24.0.8) - "@inquirer/confirm": 5.1.12(@types/node@24.0.8) - "@inquirer/editor": 4.2.13(@types/node@24.0.8) - "@inquirer/expand": 4.0.15(@types/node@24.0.8) - "@inquirer/input": 4.1.12(@types/node@24.0.8) - "@inquirer/number": 3.0.15(@types/node@24.0.8) - "@inquirer/password": 4.0.15(@types/node@24.0.8) - "@inquirer/rawlist": 4.1.3(@types/node@24.0.8) - "@inquirer/search": 3.0.15(@types/node@24.0.8) - "@inquirer/select": 4.2.3(@types/node@24.0.8) + "@types/node": 24.0.10 + + "@inquirer/prompts@7.6.0(@types/node@24.0.10)": + dependencies: + "@inquirer/checkbox": 4.1.9(@types/node@24.0.10) + "@inquirer/confirm": 5.1.13(@types/node@24.0.10) + "@inquirer/editor": 4.2.14(@types/node@24.0.10) + "@inquirer/expand": 4.0.16(@types/node@24.0.10) + "@inquirer/input": 4.2.0(@types/node@24.0.10) + "@inquirer/number": 3.0.16(@types/node@24.0.10) + "@inquirer/password": 4.0.16(@types/node@24.0.10) + "@inquirer/rawlist": 4.1.4(@types/node@24.0.10) + "@inquirer/search": 3.0.16(@types/node@24.0.10) + "@inquirer/select": 4.2.4(@types/node@24.0.10) optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/rawlist@4.1.3(@types/node@24.0.8)": + "@inquirer/rawlist@4.1.4(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) + "@inquirer/type": 3.0.7(@types/node@24.0.10) yoctocolors-cjs: 2.1.2 optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/search@3.0.15(@types/node@24.0.8)": + "@inquirer/search@3.0.16(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) "@inquirer/figures": 1.0.12 - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/type": 3.0.7(@types/node@24.0.10) yoctocolors-cjs: 2.1.2 optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/select@4.2.3(@types/node@24.0.8)": + "@inquirer/select@4.2.4(@types/node@24.0.10)": dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) "@inquirer/figures": 1.0.12 - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/type": 3.0.7(@types/node@24.0.10) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 - "@inquirer/type@3.0.7(@types/node@24.0.8)": + "@inquirer/type@3.0.7(@types/node@24.0.10)": optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 "@jridgewell/gen-mapping@0.3.8": dependencies: @@ -4698,6 +5008,11 @@ snapshots: "@jridgewell/set-array@1.2.1": {} + "@jridgewell/source-map@0.3.10": + dependencies: + "@jridgewell/gen-mapping": 0.3.8 + "@jridgewell/trace-mapping": 0.3.25 + "@jridgewell/sourcemap-codec@1.5.0": {} "@jridgewell/trace-mapping@0.3.25": @@ -4870,7 +5185,7 @@ snapshots: "@mysten/utils": 0.1.0 "@scure/base": 1.2.6 - "@mysten/sui@1.34.0(typescript@5.8.3)": + "@mysten/sui@1.35.0(typescript@5.8.3)": dependencies: "@graphql-typed-document-node/core": 3.2.0(graphql@16.11.0) "@mysten/bcs": 1.6.3 @@ -4924,6 +5239,30 @@ snapshots: "@nodelib/fs.scandir": 2.1.5 fastq: 1.19.1 + "@oxlint/darwin-arm64@1.6.0": + optional: true + + "@oxlint/darwin-x64@1.6.0": + optional: true + + "@oxlint/linux-arm64-gnu@1.6.0": + optional: true + + "@oxlint/linux-arm64-musl@1.6.0": + optional: true + + "@oxlint/linux-x64-gnu@1.6.0": + optional: true + + "@oxlint/linux-x64-musl@1.6.0": + optional: true + + "@oxlint/win32-arm64@1.6.0": + optional: true + + "@oxlint/win32-x64@1.6.0": + optional: true + "@rtsao/scc@1.1.0": {} "@scure/base@1.1.9": {} @@ -4963,7 +5302,7 @@ snapshots: "@types/dns-packet@5.6.5": dependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 "@types/estree@1.0.8": {} @@ -4973,19 +5312,19 @@ snapshots: "@types/json5@0.0.29": {} - "@types/node@24.0.8": + "@types/node@24.0.10": dependencies: undici-types: 7.8.0 - "@typescript-eslint/eslint-plugin@8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3))(eslint@9.30.0)(typescript@5.8.3)": + "@typescript-eslint/eslint-plugin@8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1)(typescript@5.8.3))(eslint@9.30.1)(typescript@5.8.3)": dependencies: "@eslint-community/regexpp": 4.12.1 - "@typescript-eslint/parser": 8.35.1(eslint@9.30.0)(typescript@5.8.3) - "@typescript-eslint/scope-manager": 8.35.1 - "@typescript-eslint/type-utils": 8.35.1(eslint@9.30.0)(typescript@5.8.3) - "@typescript-eslint/utils": 8.35.1(eslint@9.30.0)(typescript@5.8.3) - "@typescript-eslint/visitor-keys": 8.35.1 - eslint: 9.30.0 + "@typescript-eslint/parser": 8.36.0(eslint@9.30.1)(typescript@5.8.3) + "@typescript-eslint/scope-manager": 8.36.0 + "@typescript-eslint/type-utils": 8.36.0(eslint@9.30.1)(typescript@5.8.3) + "@typescript-eslint/utils": 8.36.0(eslint@9.30.1)(typescript@5.8.3) + "@typescript-eslint/visitor-keys": 8.36.0 + eslint: 9.30.1 graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -4994,55 +5333,55 @@ snapshots: transitivePeerDependencies: - supports-color - "@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3)": + "@typescript-eslint/parser@8.36.0(eslint@9.30.1)(typescript@5.8.3)": dependencies: - "@typescript-eslint/scope-manager": 8.35.1 - "@typescript-eslint/types": 8.35.1 - "@typescript-eslint/typescript-estree": 8.35.1(typescript@5.8.3) - "@typescript-eslint/visitor-keys": 8.35.1 + "@typescript-eslint/scope-manager": 8.36.0 + "@typescript-eslint/types": 8.36.0 + "@typescript-eslint/typescript-estree": 8.36.0(typescript@5.8.3) + "@typescript-eslint/visitor-keys": 8.36.0 debug: 4.4.1 - eslint: 9.30.0 + eslint: 9.30.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/project-service@8.35.1(typescript@5.8.3)": + "@typescript-eslint/project-service@8.36.0(typescript@5.8.3)": dependencies: - "@typescript-eslint/tsconfig-utils": 8.35.1(typescript@5.8.3) - "@typescript-eslint/types": 8.35.1 + "@typescript-eslint/tsconfig-utils": 8.36.0(typescript@5.8.3) + "@typescript-eslint/types": 8.36.0 debug: 4.4.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/scope-manager@8.35.1": + "@typescript-eslint/scope-manager@8.36.0": dependencies: - "@typescript-eslint/types": 8.35.1 - "@typescript-eslint/visitor-keys": 8.35.1 + "@typescript-eslint/types": 8.36.0 + "@typescript-eslint/visitor-keys": 8.36.0 - "@typescript-eslint/tsconfig-utils@8.35.1(typescript@5.8.3)": + "@typescript-eslint/tsconfig-utils@8.36.0(typescript@5.8.3)": dependencies: typescript: 5.8.3 - "@typescript-eslint/type-utils@8.35.1(eslint@9.30.0)(typescript@5.8.3)": + "@typescript-eslint/type-utils@8.36.0(eslint@9.30.1)(typescript@5.8.3)": dependencies: - "@typescript-eslint/typescript-estree": 8.35.1(typescript@5.8.3) - "@typescript-eslint/utils": 8.35.1(eslint@9.30.0)(typescript@5.8.3) + "@typescript-eslint/typescript-estree": 8.36.0(typescript@5.8.3) + "@typescript-eslint/utils": 8.36.0(eslint@9.30.1)(typescript@5.8.3) debug: 4.4.1 - eslint: 9.30.0 + eslint: 9.30.1 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/types@8.35.1": {} + "@typescript-eslint/types@8.36.0": {} - "@typescript-eslint/typescript-estree@8.35.1(typescript@5.8.3)": + "@typescript-eslint/typescript-estree@8.36.0(typescript@5.8.3)": dependencies: - "@typescript-eslint/project-service": 8.35.1(typescript@5.8.3) - "@typescript-eslint/tsconfig-utils": 8.35.1(typescript@5.8.3) - "@typescript-eslint/types": 8.35.1 - "@typescript-eslint/visitor-keys": 8.35.1 + "@typescript-eslint/project-service": 8.36.0(typescript@5.8.3) + "@typescript-eslint/tsconfig-utils": 8.36.0(typescript@5.8.3) + "@typescript-eslint/types": 8.36.0 + "@typescript-eslint/visitor-keys": 8.36.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -5053,20 +5392,20 @@ snapshots: transitivePeerDependencies: - supports-color - "@typescript-eslint/utils@8.35.1(eslint@9.30.0)(typescript@5.8.3)": + "@typescript-eslint/utils@8.36.0(eslint@9.30.1)(typescript@5.8.3)": dependencies: - "@eslint-community/eslint-utils": 4.7.0(eslint@9.30.0) - "@typescript-eslint/scope-manager": 8.35.1 - "@typescript-eslint/types": 8.35.1 - "@typescript-eslint/typescript-estree": 8.35.1(typescript@5.8.3) - eslint: 9.30.0 + "@eslint-community/eslint-utils": 4.7.0(eslint@9.30.1) + "@typescript-eslint/scope-manager": 8.36.0 + "@typescript-eslint/types": 8.36.0 + "@typescript-eslint/typescript-estree": 8.36.0(typescript@5.8.3) + eslint: 9.30.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/visitor-keys@8.35.1": + "@typescript-eslint/visitor-keys@8.36.0": dependencies: - "@typescript-eslint/types": 8.35.1 + "@typescript-eslint/types": 8.36.0 eslint-visitor-keys: 4.2.1 "@unrs/resolver-binding-android-arm-eabi@1.9.0": @@ -5235,6 +5574,10 @@ snapshots: async-function@1.0.0: {} + async@3.2.6: {} + + asynckit@0.4.0: {} + atomically@2.0.3: dependencies: stubborn-fs: 1.2.5 @@ -5244,6 +5587,14 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 + axios@1.10.0: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.3 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + b4a@1.6.7: {} balanced-match@1.0.2: {} @@ -5289,6 +5640,8 @@ snapshots: dependencies: base-x: 5.0.1 + buffer-from@1.1.2: {} + buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -5336,11 +5689,17 @@ snapshots: chardet@0.7.0: {} + charenc@0.0.2: {} + cipher-base@1.0.6: dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 + cjson@0.5.0: + dependencies: + json-parse-helpfulerror: 1.0.3 + cli-width@4.1.0: {} cliui@8.0.1: @@ -5355,8 +5714,14 @@ snapshots: color-name@1.1.4: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + commander@14.0.0: {} + commander@2.20.3: {} + concat-map@0.0.1: {} concurrently@9.2.0: @@ -5381,6 +5746,26 @@ snapshots: semver: 7.7.2 uint8array-extras: 1.4.0 + copy-files-from-to@3.12.1: + dependencies: + async: 3.2.6 + axios: 1.10.0 + chalk: 4.1.2 + cjson: 0.5.0 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + is-utf8: 0.2.1 + lodash: 4.17.21 + md5: 2.3.0 + mkdirp: 3.0.1 + note-down: 1.0.2 + terser: 5.43.1 + unixify: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - debug + create-hash@1.2.0: dependencies: cipher-base: 1.0.6 @@ -5410,6 +5795,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crypt@0.0.2: {} + data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4 @@ -5440,6 +5827,8 @@ snapshots: dependencies: ms: 2.1.3 + decimal.js@10.6.0: {} + deep-is@0.1.4: {} define-data-property@1.1.4: @@ -5454,6 +5843,8 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + delayed-stream@1.0.0: {} + detect-libc@2.0.4: optional: true @@ -5598,9 +5989,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.5(eslint@9.30.0): + eslint-config-prettier@10.1.5(eslint@9.30.1): dependencies: - eslint: 9.30.0 + eslint: 9.30.1 eslint-import-context@0.1.8(unrs-resolver@1.9.0): dependencies: @@ -5617,10 +6008,10 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.30.0): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.30.1): dependencies: debug: 4.4.1 - eslint: 9.30.0 + eslint: 9.30.1 eslint-import-context: 0.1.8(unrs-resolver@1.9.0) get-tsconfig: 4.10.1 is-bun-module: 2.0.0 @@ -5628,22 +6019,22 @@ snapshots: tinyglobby: 0.2.14 unrs-resolver: 1.9.0 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.36.0(eslint@9.30.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.1): dependencies: debug: 3.2.7 optionalDependencies: - "@typescript-eslint/parser": 8.35.1(eslint@9.30.0)(typescript@5.8.3) - eslint: 9.30.0 + "@typescript-eslint/parser": 8.36.0(eslint@9.30.1)(typescript@5.8.3) + eslint: 9.30.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.30.0) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.30.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1)(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.1): dependencies: "@rtsao/scc": 1.1.0 array-includes: 3.1.9 @@ -5652,9 +6043,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.30.0 + eslint: 9.30.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.36.0(eslint@9.30.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.30.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -5666,7 +6057,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - "@typescript-eslint/parser": 8.35.1(eslint@9.30.0)(typescript@5.8.3) + "@typescript-eslint/parser": 8.36.0(eslint@9.30.1)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -5681,15 +6072,15 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.30.0: + eslint@9.30.1: dependencies: - "@eslint-community/eslint-utils": 4.7.0(eslint@9.30.0) + "@eslint-community/eslint-utils": 4.7.0(eslint@9.30.1) "@eslint-community/regexpp": 4.12.1 "@eslint/config-array": 0.21.0 "@eslint/config-helpers": 0.3.0 "@eslint/core": 0.14.0 "@eslint/eslintrc": 3.3.1 - "@eslint/js": 9.30.0 + "@eslint/js": 9.30.1 "@eslint/plugin-kit": 0.3.2 "@humanfs/node": 0.16.6 "@humanwhocodes/module-importer": 1.0.1 @@ -5804,10 +6195,20 @@ snapshots: flatted@3.3.3: {} + follow-redirects@1.15.9: {} + for-each@0.3.5: dependencies: is-callable: 1.2.7 + form-data@4.0.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + fraction.js@4.0.1: {} fsevents@2.3.3: @@ -5942,17 +6343,17 @@ snapshots: inherits@2.0.4: {} - inquirer@12.6.3(@types/node@24.0.8): + inquirer@12.7.0(@types/node@24.0.10): dependencies: - "@inquirer/core": 10.1.13(@types/node@24.0.8) - "@inquirer/prompts": 7.5.3(@types/node@24.0.8) - "@inquirer/type": 3.0.7(@types/node@24.0.8) + "@inquirer/core": 10.1.14(@types/node@24.0.10) + "@inquirer/prompts": 7.6.0(@types/node@24.0.10) + "@inquirer/type": 3.0.7(@types/node@24.0.10) ansi-escapes: 4.3.2 mute-stream: 2.0.0 - run-async: 3.0.0 + run-async: 4.0.4 rxjs: 7.8.2 optionalDependencies: - "@types/node": 24.0.8 + "@types/node": 24.0.10 internal-slot@1.1.0: dependencies: @@ -5993,6 +6394,8 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-buffer@1.1.6: {} + is-bun-module@2.0.0: dependencies: semver: 7.7.2 @@ -6072,6 +6475,8 @@ snapshots: dependencies: which-typed-array: 1.1.19 + is-utf8@0.2.1: {} + is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -6093,6 +6498,8 @@ snapshots: dependencies: ws: 7.5.10 + jju@1.4.0: {} + js-sha3@0.9.3: {} js-tokens@4.0.0: {} @@ -6107,6 +6514,10 @@ snapshots: json-buffer@3.0.1: {} + json-parse-helpfulerror@1.0.3: + dependencies: + jju: 1.4.0 + json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} @@ -6123,6 +6534,8 @@ snapshots: dependencies: json-buffer: 3.0.1 + ky@1.8.1: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -6150,6 +6563,12 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + merge2@1.4.1: {} micromatch@4.0.8: @@ -6157,6 +6576,12 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + mimic-function@5.0.1: {} minimatch@3.1.2: @@ -6169,6 +6594,8 @@ snapshots: minimist@1.2.8: {} + mkdirp@3.0.1: {} + ms@2.1.3: {} multiformats@13.3.7: {} @@ -6196,6 +6623,14 @@ snapshots: node-machine-id@1.1.12: {} + normalize-path@2.1.1: + dependencies: + remove-trailing-separator: 1.1.0 + + note-down@1.0.2: + dependencies: + chalk: 4.1.2 + npm@9.9.4: {} object-inspect@1.13.4: {} @@ -6248,6 +6683,17 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + oxlint@1.6.0: + optionalDependencies: + "@oxlint/darwin-arm64": 1.6.0 + "@oxlint/darwin-x64": 1.6.0 + "@oxlint/linux-arm64-gnu": 1.6.0 + "@oxlint/linux-arm64-musl": 1.6.0 + "@oxlint/linux-x64-gnu": 1.6.0 + "@oxlint/linux-x64-musl": 1.6.0 + "@oxlint/win32-arm64": 1.6.0 + "@oxlint/win32-x64": 1.6.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -6297,6 +6743,8 @@ snapshots: progress-events@1.0.1: {} + proxy-from-env@1.1.0: {} + punycode@2.3.1: {} pure-rand@6.1.0: {} @@ -6329,6 +6777,8 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 + remove-trailing-separator@1.1.0: {} + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -6350,7 +6800,10 @@ snapshots: hash-base: 3.1.0 inherits: 2.0.4 - run-async@3.0.0: {} + run-async@4.0.4: + dependencies: + oxlint: 1.6.0 + prettier: 3.6.2 run-parallel@1.2.0: dependencies: @@ -6456,6 +6909,13 @@ snapshots: signal-exit@4.1.0: {} + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + sprintf-js@1.1.3: {} stable-hash-x@0.1.1: {} @@ -6520,6 +6980,13 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + terser@5.43.1: + dependencies: + "@jridgewell/source-map": 0.3.10 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + tinyglobby@0.2.14: dependencies: fdir: 6.4.6(picomatch@4.0.2) @@ -6636,6 +7103,10 @@ snapshots: undici-types@7.8.0: {} + unixify@1.0.0: + dependencies: + normalize-path: 2.1.1 + unrs-resolver@1.9.0: dependencies: napi-postinstall: 0.2.4 @@ -6776,6 +7247,8 @@ snapshots: y18n@5.0.8: {} + yaml@2.8.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4bccfd5..05ae0d1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,5 @@ onlyBuiltDependencies: + - cbor-extract - esbuild - secp256k1 - unrs-resolver diff --git a/src/balances.ts b/src/balances.ts new file mode 100644 index 0000000..5afd662 --- /dev/null +++ b/src/balances.ts @@ -0,0 +1,78 @@ +import { scope, type } from "arktype"; +import { Decimal as $Decimal } from "decimal.js"; +import ky from "ky"; +import groups from "./tokens.js"; + +type Network = "mainnet" | "testnet"; +type Params = { address: string } | { address: string; network: string }; + +const coins = ["ADA", "ETH", "SOL", "SUI", "TRX"]; + +const Decimal = type("string.numeric | number") + .pipe((v) => $Decimal(v)) + .narrow((v, ctx) => v.gte(0) || ctx.mustBe("positive")); +type Decimal = $Decimal; + +const Tokens = scope({ + Token: "string", + Decimal, + Tokens: "Record", +}).export().Tokens; + +const Balance = type({ + contents: { + coin: Decimal, + tokens: Tokens, + }, +}).pipe((v) => v.contents); + +const endpoint = { + mainnet: "https://www.mynth.ai/api/address/balance", + testnet: "https://preview.mynth.ai/api/address/balance", +}; + +const getBalance = async ( + address: string, + network: Network, + coin: string, + blockchain?: string, +): Promise> => { + const searchParams: Params = blockchain + ? { address, network: blockchain } + : { address }; + const json = await ky.get(endpoint[network], { searchParams }).json(); + const balance = Balance.assert(json); + return { ...balance.tokens, [coin]: balance.coin }; +}; + +const getBalances = async ( + cardano: string, + ethereum: string, + solana: string, + sui: string, + tron: string, + network: Network, +) => { + const group = groups(network); + const balances = await Promise.all([ + getBalance(cardano, network, "ADA"), + getBalance(ethereum, network, "ETH", "base"), + getBalance(solana, network, "SOL"), + getBalance(sui, network, "SUI"), + getBalance(tron, network, "TRX"), + ]); + return balances.reduce((balances, balance) => { + Object.entries(balance).forEach(([token, amount]) => { + if (amount.isZero()) return; + if (group.mnt.includes(token)) + balances.MNT = (balances.MNT || Decimal(0)).add(amount); + if (group.usd.includes(token)) + balances.USD = (balances.USD || Decimal(0)).add(amount); + if (coins.includes(token)) + balances[token] = (balances[token] || Decimal(0)).add(amount); + }); + return balances; + }, {}); +}; + +export { getBalances }; diff --git a/src/commands/wallet.ts b/src/commands/wallet.ts index 7658ae4..77d447c 100644 --- a/src/commands/wallet.ts +++ b/src/commands/wallet.ts @@ -1,6 +1,7 @@ import { confirm } from "@inquirer/prompts"; import { entropyToMnemonic } from "bip39"; import { toAddresses } from "../addresses/index.js"; +import { getBalances } from "../balances.js"; import { getSavedSeed, saveNewSeed, saveRandomSeed } from "../seed.js"; import { exit, program } from "./cli.js"; @@ -60,3 +61,30 @@ program for (const [blockchain, address] of Object.entries(addresses)) console.log(`${blockchain}: ${address}`); }); + +program + .command("balances") + .description("Outputs the wallet balances") + .option("--testnet", "Set flag to check balance for testnet wallet") + .action(async (options: { testnet: boolean }) => { + const seed = getSavedSeed(); + if (!seed) return exit("No seed saved. Create a new wallet first."); + + const network: "mainnet" | "testnet" = options.testnet + ? "testnet" + : "mainnet"; + const addresses = toAddresses(seed, network).assert(); + const balances = await getBalances( + addresses.cardano, + addresses.ethereum, + addresses.solana, + addresses.sui, + addresses.tron, + network, + ); + + if (!Object.keys(balances).length) console.debug("Wallet is empty"); + + for (const [token, amount] of Object.entries(balances)) + console.log(`${token}: ${amount}`); + }); diff --git a/src/tokens.ts b/src/tokens.ts new file mode 100644 index 0000000..7e97499 --- /dev/null +++ b/src/tokens.ts @@ -0,0 +1,26 @@ +import { readFileSync } from "fs"; +import { type } from "arktype"; +import { parse } from "yaml"; + +const Tokens = type({ + mainnet: { + mnt: "string[]", + usd: "string[]", + }, + testnet: { + mnt: "string[]", + usd: "string[]", + }, +}); + +const $load = () => { + const path = new URL("./tokens.yml", import.meta.url); + const contents = readFileSync(path, "utf8"); + return Tokens.assert(parse(contents)); +}; + +const tokens = $load(); + +const get = (network: "mainnet" | "testnet") => tokens[network]; + +export default get; diff --git a/src/tokens.yml b/src/tokens.yml new file mode 100644 index 0000000..1fac506 --- /dev/null +++ b/src/tokens.yml @@ -0,0 +1,31 @@ +mainnet: + mnt: + - "0x26D3C0D9F4cc4c130097b6aFdebe4F5e497E6Bdf" + - 43b07d4037f0d75ee10f9863097463fc02ff3c0b8b705ae61d9c75bf4d796e746820546f6b656e + - EQCjZD8oZl_0uzLmQawDmhcctlLKWKO0HameErlnDz_Mynth + - MynthbcejYyY3yg8fzgPv2Y7NZrF2S4Y13wdGzAZPMv + - TNzfB1nvRPusCn5UhQLxUbZaX7DFuWkxR4 + usd: + - "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359" + - "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + - "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + - "0xaf88d065e77c8cc2239327c5edb3a432268e5831" + - "0xdac17f958d2ee523a2206206994597c13d831ec7" + - 0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC + - 25c5de5f5b286073c593edfd77b48abc7a48e5a4f3d4cd9d428ff93555534443 + - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v + - Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB + - TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t + - USDC:0x6d1e7cde53ba9467b783cb7c530ce054 +testnet: + mnt: + - "0xF5Fde3456E047003dF4d5Df15E482997696F33a0" + - b8794febdb27730a6f0476efe6736fb04fb24cd4f9bf02db150701df4d796e746820546f6b656e + - MYnTHHL2mKXvhCFhNwzGp1dwSkNznZenBk2bbARAmCG + usd: + - "0x7D8Fa6A1c14f9cCb5D61747d4D7a590005c13b16" + - 0x41703e1027f2f2172769e88d369fa917e9a5ed839687b33996466cf629ed46e5::tdsu::TDSU + - 3h2KKhmNPdPo8zsytmbMhGj6oDA1TCdEUKzSYg2q12MA + - 9d269c864e7adfeeda6b54d6c792a2d5a6881f75bfb4a37364c7d54a69555344 + - TKWgY8QLishTDCAECcKKyUmkkyE9eS9nVc + - USDC:0xeb62eee3685fc4c43992febcd9e75443