diff --git a/invofi/apps/frontend/package-lock.json b/invofi/apps/frontend/package-lock.json index b651648a..6dc161d3 100644 --- a/invofi/apps/frontend/package-lock.json +++ b/invofi/apps/frontend/package-lock.json @@ -46,6 +46,7 @@ "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^14.5.2", "@types/node": "^22.5.4", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", @@ -898,20 +899,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@emurgo/cardano-serialization-lib-browser": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-13.2.1.tgz", - "integrity": "sha512-7RfX1gI16Vj2DgCp/ZoXqyLAakWo6+X95ku/rYGbVzuS/1etrlSiJmdbmdm+eYmszMlGQjrtOJQeVLXoj4L/Ag==", - "license": "MIT", - "peer": true - }, - "node_modules/@emurgo/cardano-serialization-lib-nodejs": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-13.2.0.tgz", - "integrity": "sha512-Bz1zLGEqBQ0BVkqt1OgMxdBOE3BdUWUd7Ly9Ecr/aUwkA8AV1w1XzBMe4xblmJHnB1XXNlPH4SraXCvO+q0Mig==", - "license": "MIT", - "peer": true - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -1366,131 +1353,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@ethereumjs/common": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-10.1.3.tgz", - "integrity": "sha512-ECWwbc4s8Ji7U0mkfZP6gIDy1FxXe0ZyVOTt0adkztPQRzX2DbH2ul7a83DSS8qYAiG6//vVXMkP60TyYOnv8Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "@ethereumjs/util": "^10.1.3", - "eventemitter3": "^5.0.1" - } - }, - "node_modules/@ethereumjs/rlp": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-10.1.3.tgz", - "integrity": "sha512-d795YWkN6O8EJh/PgJ2zZKCdBMl8OlqkuVQESoidH666gaFtUuJ01jDtiuqfyOqTNcTdGhHi8LkQv1WEZzvZZw==", - "license": "MPL-2.0", - "peer": true, - "bin": { - "rlp": "bin/rlp.cjs" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-10.1.3.tgz", - "integrity": "sha512-5uk9qB2MjyF4axL6GGPvYODe3uR/h6k36boDbvjH81WYFphw/JAIrI1thkWQX4BCyF8bi6suxORhi+vDc3lPlg==", - "license": "MPL-2.0", - "peer": true, - "dependencies": { - "@ethereumjs/common": "^10.1.3", - "@ethereumjs/rlp": "^10.1.3", - "@ethereumjs/util": "^10.1.3", - "@noble/curves": "^2.0.1", - "@noble/hashes": "^2.0.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@ethereumjs/tx/node_modules/@noble/curves": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.3.0.tgz", - "integrity": "sha512-v7cY+4oWYPQszRj6ZFGzTVL7uP2TaLo1xMhWHzYC5wj0ZhOXQ5x+sBre8rF3hi8cAoi0bh1qXoovoOkdFtvqEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@noble/hashes": "2.3.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@ethereumjs/tx/node_modules/@noble/hashes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.3.0.tgz", - "integrity": "sha512-oN+QwyX7VSHotibwubG3kpzbwKrfnyR6OOO+3Nk/53ADL7FmgHHz4TgrbaYKvvOw09u6QTx0oiH1cNCIOuN0CQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@ethereumjs/util": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-10.1.3.tgz", - "integrity": "sha512-PhezOVe4DFaC+QLIsnK/tiOaXjpjS2F9AH4Ez0EfWevFw9NWNSg95l7I0dWuHF0B7v9odm2Ijqwo0EnARXtUmA==", - "license": "MPL-2.0", - "peer": true, - "dependencies": { - "@ethereumjs/rlp": "^10.1.3", - "@noble/curves": "^2.0.1", - "@noble/hashes": "^2.0.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@ethereumjs/util/node_modules/@noble/curves": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.3.0.tgz", - "integrity": "sha512-v7cY+4oWYPQszRj6ZFGzTVL7uP2TaLo1xMhWHzYC5wj0ZhOXQ5x+sBre8rF3hi8cAoi0bh1qXoovoOkdFtvqEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@noble/hashes": "2.3.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.3.0.tgz", - "integrity": "sha512-oN+QwyX7VSHotibwubG3kpzbwKrfnyR6OOO+3Nk/53ADL7FmgHHz4TgrbaYKvvOw09u6QTx0oiH1cNCIOuN0CQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@fivebinaries/coin-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@fivebinaries/coin-selection/-/coin-selection-3.0.0.tgz", - "integrity": "sha512-h25Pn1ZA7oqQBQDodGAgIsQt66T2wDge9onBKNqE66WNWL0KJiKJbpij8YOLo5AAlEIg5IS7EB1QjBgDOIg6DQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@emurgo/cardano-serialization-lib-browser": "^13.2.0", - "@emurgo/cardano-serialization-lib-nodejs": "13.2.0" - } - }, "node_modules/@floating-ui/core": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", @@ -1708,17 +1570,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -1825,16 +1676,6 @@ "integrity": "sha512-UpqTprNZBxU5ng5HOFBTMuM+oc5tAk/MU5yt/nzjvD0n/YMkiOYG5ywO8p+OxOP6MgACLrw1wU/BFbvGg9IygQ==", "license": "Apache-2.0" }, - "node_modules/@mobily/ts-belt": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@mobily/ts-belt/-/ts-belt-3.13.1.tgz", - "integrity": "sha512-K5KqIhPI/EoCTbA6CGbrenM9s41OouyK8A03fGJJcla/zKucsgLbz8HNbeseoLarRPgyWJsUyCYqFhI7t3Ra9Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 10.*" - } - }, "node_modules/@msgpack/msgpack": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.2.tgz", @@ -1851,6 +1692,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1882,34 +1724,6 @@ "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" } }, - "node_modules/@near-js/accounts": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@near-js/accounts/-/accounts-1.4.1.tgz", - "integrity": "sha512-ni3QT9H3NdrbVVKyx56yvz93r89Dvpc/vgVtiIK2OdXjkK6jcj+UKMDRQ6F7rd9qJOInLkHZbVBtcR6j1CXLjw==", - "license": "ISC", - "peer": true, - "dependencies": { - "@near-js/crypto": "1.4.2", - "@near-js/providers": "1.0.3", - "@near-js/signers": "0.2.2", - "@near-js/transactions": "1.3.3", - "@near-js/types": "0.3.1", - "@near-js/utils": "1.1.0", - "@noble/hashes": "1.7.1", - "borsh": "1.0.0", - "depd": "2.0.0", - "is-my-json-valid": "^2.20.6", - "lru_map": "0.4.1", - "near-abi": "0.2.0" - } - }, - "node_modules/@near-js/accounts/node_modules/borsh": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-1.0.0.tgz", - "integrity": "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==", - "license": "Apache-2.0", - "peer": true - }, "node_modules/@near-js/crypto": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@near-js/crypto/-/crypto-1.4.2.tgz", @@ -1930,160 +1744,6 @@ "integrity": "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==", "license": "Apache-2.0" }, - "node_modules/@near-js/keystores": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@near-js/keystores/-/keystores-0.2.2.tgz", - "integrity": "sha512-DLhi/3a4qJUY+wgphw2Jl4S+L0AKsUYm1mtU0WxKYV5OBwjOXvbGrXNfdkheYkfh3nHwrQgtjvtszX6LrRXLLw==", - "license": "ISC", - "peer": true, - "dependencies": { - "@near-js/crypto": "1.4.2", - "@near-js/types": "0.3.1" - } - }, - "node_modules/@near-js/keystores-browser": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@near-js/keystores-browser/-/keystores-browser-0.2.2.tgz", - "integrity": "sha512-Pxqm7WGtUu6zj32vGCy9JcEDpZDSB5CCaLQDTQdF3GQyL0flyRv2I/guLAgU5FLoYxU7dJAX9mslJhPW7P2Bfw==", - "license": "ISC", - "peer": true, - "dependencies": { - "@near-js/crypto": "1.4.2", - "@near-js/keystores": "0.2.2" - } - }, - "node_modules/@near-js/keystores-node": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@near-js/keystores-node/-/keystores-node-0.1.2.tgz", - "integrity": "sha512-MWLvTszZOVziiasqIT/LYNhUyWqOJjDGlsthOsY6dTL4ZcXjjmhmzrbFydIIeQr+CcEl5wukTo68ORI9JrHl6g==", - "license": "ISC", - "peer": true, - "dependencies": { - "@near-js/crypto": "1.4.2", - "@near-js/keystores": "0.2.2" - } - }, - "node_modules/@near-js/providers": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@near-js/providers/-/providers-1.0.3.tgz", - "integrity": "sha512-VJMboL14R/+MGKnlhhE3UPXCGYvMd1PpvF9OqZ9yBbulV7QVSIdTMfY4U1NnDfmUC2S3/rhAEr+3rMrIcNS7Fg==", - "license": "ISC", - "peer": true, - "dependencies": { - "@near-js/transactions": "1.3.3", - "@near-js/types": "0.3.1", - "@near-js/utils": "1.1.0", - "borsh": "1.0.0", - "exponential-backoff": "^3.1.2" - }, - "optionalDependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/@near-js/providers/node_modules/borsh": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-1.0.0.tgz", - "integrity": "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==", - "license": "Apache-2.0", - "peer": true - }, - "node_modules/@near-js/providers/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@near-js/providers/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@near-js/providers/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause", - "optional": true, - "peer": true - }, - "node_modules/@near-js/providers/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/@near-js/signers": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@near-js/signers/-/signers-0.2.2.tgz", - "integrity": "sha512-M6ib+af9zXAPRCjH2RyIS0+RhCmd9gxzCeIkQ+I2A3zjgGiEDkBZbYso9aKj8Zh2lPKKSH7h+u8JGymMOSwgyw==", - "license": "ISC", - "peer": true, - "dependencies": { - "@near-js/crypto": "1.4.2", - "@near-js/keystores": "0.2.2", - "@noble/hashes": "1.3.3" - } - }, - "node_modules/@near-js/signers/node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@near-js/transactions": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@near-js/transactions/-/transactions-1.3.3.tgz", - "integrity": "sha512-1AXD+HuxlxYQmRTLQlkVmH+RAmV3HwkAT8dyZDu+I2fK/Ec9BQHXakOJUnOBws3ihF+akQhamIBS5T0EXX/Ylw==", - "license": "ISC", - "peer": true, - "dependencies": { - "@near-js/crypto": "1.4.2", - "@near-js/signers": "0.2.2", - "@near-js/types": "0.3.1", - "@near-js/utils": "1.1.0", - "@noble/hashes": "1.7.1", - "borsh": "1.0.0" - } - }, - "node_modules/@near-js/transactions/node_modules/borsh": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-1.0.0.tgz", - "integrity": "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==", - "license": "Apache-2.0", - "peer": true - }, "node_modules/@near-js/types": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@near-js/types/-/types-0.3.1.tgz", @@ -2102,31 +1762,6 @@ "mustache": "4.0.0" } }, - "node_modules/@near-js/wallet-account": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@near-js/wallet-account/-/wallet-account-1.3.3.tgz", - "integrity": "sha512-GDzg/Kz0GBYF7tQfyQQQZ3vviwV8yD+8F2lYDzsWJiqIln7R1ov0zaXN4Tii86TeS21KPn2hHAsVu3Y4txa8OQ==", - "license": "ISC", - "peer": true, - "dependencies": { - "@near-js/accounts": "1.4.1", - "@near-js/crypto": "1.4.2", - "@near-js/keystores": "0.2.2", - "@near-js/providers": "1.0.3", - "@near-js/signers": "0.2.2", - "@near-js/transactions": "1.3.3", - "@near-js/types": "0.3.1", - "@near-js/utils": "1.1.0", - "borsh": "1.0.0" - } - }, - "node_modules/@near-js/wallet-account/node_modules/borsh": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-1.0.0.tgz", - "integrity": "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==", - "license": "Apache-2.0", - "peer": true - }, "node_modules/@near-wallet-selector/core": { "version": "8.10.2", "resolved": "https://registry.npmjs.org/@near-wallet-selector/core/-/core-8.10.2.tgz", @@ -3355,7 +2990,7 @@ "version": "1.62.1", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.62.1.tgz", "integrity": "sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==", - "devOptional": true, + "dev": true, "license": "Apache-2.0", "dependencies": { "playwright": "1.62.1" @@ -3436,79 +3071,6 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz", - "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz", - "integrity": "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.1.tgz", - "integrity": "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.1" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.2.tgz", - "integrity": "sha512-pa0vFRuws4wkvaXKK1uXZMAwAX4/t8ANaJo45iw/oQHNQ9q5xUzwgFmVJGXiga2BeN+zpX7Vf9vmsiIa2J+MUw==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.2.tgz", - "integrity": "sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==", - "license": "BSD-3-Clause", - "peer": true - }, "node_modules/@radix-ui/number": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.3.tgz", @@ -4531,6 +4093,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4544,6 +4107,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4557,6 +4121,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4570,6 +4135,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4583,6 +4149,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4596,6 +4163,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4609,6 +4177,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4622,6 +4191,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4635,6 +4205,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4648,6 +4219,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4661,6 +4233,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4674,6 +4247,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4687,6 +4261,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4700,6 +4275,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4713,6 +4289,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4726,6 +4303,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4739,6 +4317,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4752,6 +4331,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4765,6 +4345,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4778,6 +4359,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4791,6 +4373,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4804,6 +4387,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4817,6 +4401,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4830,6 +4415,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4843,6 +4429,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5535,13 +5122,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/@sinclair/typebox": { - "version": "0.33.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.33.24.tgz", - "integrity": "sha512-91up4t0BLjfkCZ4Ap/BcgaPrMaX6n0I2YRu+kc03xGhLy9G3N05nbTpnK8q7GXdv0PxwUoxi67A8o3Wr5U7j3w==", - "license": "MIT", - "peer": true - }, "node_modules/@solana-program/system": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@solana-program/system/-/system-0.10.0.tgz", @@ -6699,71 +6279,6 @@ "pnpm": ">=9.0.0" } }, - "node_modules/@stellar/stellar-base": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@stellar/stellar-base/-/stellar-base-14.1.0.tgz", - "integrity": "sha512-A8kFli6QGy22SRF45IjgPAJfUNGjnI+R7g4DF5NZYVsD1kGf7B4ITyc4OPclLV9tqNI4/lXxafGEw0JEUbHixw==", - "deprecated": "This package is now rolled into @stellar/stellar-sdk. Please use @stellar/stellar-sdk to continue receiving updates and support.", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@noble/curves": "^1.9.6", - "@stellar/js-xdr": "^3.1.2", - "base32.js": "^0.1.0", - "bignumber.js": "^9.3.1", - "buffer": "^6.0.3", - "sha.js": "^2.4.12" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@stellar/stellar-base/node_modules/@noble/curves": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", - "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@noble/hashes": "1.8.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@stellar/stellar-base/node_modules/@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", - "license": "MIT", - "peer": true, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@stellar/stellar-base/node_modules/@stellar/js-xdr": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@stellar/js-xdr/-/js-xdr-3.1.2.tgz", - "integrity": "sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==", - "license": "Apache-2.0", - "peer": true - }, - "node_modules/@stellar/stellar-base/node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/@stellar/stellar-sdk": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-16.2.0.tgz", @@ -7313,2431 +6828,206 @@ } } }, - "node_modules/@trezor/analytics": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@trezor/analytics/-/analytics-1.5.0.tgz", - "integrity": "sha512-evILW5XJEmfPlf0TY1duOLtGJ47pdGeSKVE3P75ODEUsRNxtPVqlkOUBPmYpCxPnzS8XDmkatT8lf9/DF0G6nA==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "@trezor/env-utils": "1.5.0", - "@trezor/utils": "9.5.0" + "node_modules/@testing-library/user-event": { + "version": "14.5.2", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", + "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" }, "peerDependencies": { - "tslib": "^2.6.2" + "@testing-library/dom": ">=7.21.4" } }, - "node_modules/@trezor/analytics/node_modules/@trezor/env-utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.5.0.tgz", - "integrity": "sha512-u1TN7dMQ5Qhpbae08Z4JJmI9fQrbbJ4yj8eIAsuzMQn6vb+Sg9vbntl+IDsZ1G9WeI73uHTLu1wWMmAgiujH8w==", - "license": "See LICENSE.md in repo root", - "peer": true, + "node_modules/@trezor/connect-plugin-stellar": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/connect-plugin-stellar/-/connect-plugin-stellar-10.0.0-alpha.1.tgz", + "integrity": "sha512-v4lMnnBPxLoV/Yf8F0WmtkZGNsqurpxK62kqvaDeVoAtn5Ud+l6POQkLeQRiGsJYVm0vSDc4LHb5vLMrZTH/KA==", + "license": "SEE LICENSE IN LICENSE.md", "dependencies": { - "ua-parser-js": "^2.0.4" + "@trezor/utils": "10.0.0-alpha.1" }, "peerDependencies": { - "expo-constants": "*", - "expo-localization": "*", - "react-native": "*", + "@stellar/stellar-sdk": "^13.3.0", + "@trezor/connect": "9.x.x", "tslib": "^2.6.2" - }, - "peerDependenciesMeta": { - "expo-constants": { - "optional": true - }, - "expo-localization": { - "optional": true - }, - "react-native": { - "optional": true - } } }, - "node_modules/@trezor/blockchain-link": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@trezor/blockchain-link/-/blockchain-link-2.6.2.tgz", - "integrity": "sha512-HMz+Dm6nMflqRkaebMqpv3uNnVkRrb6lD2HKTHNBGhjVbqf0wRzJ8JoQ08wn/sF00ljJZz8pGnpcMYHJNxE+wQ==", - "license": "SEE LICENSE IN LICENSE.md", - "peer": true, - "dependencies": { - "@solana-program/compute-budget": "^0.8.0", - "@solana-program/stake": "^0.2.1", - "@solana-program/token": "^0.5.1", - "@solana-program/token-2022": "^0.4.2", - "@solana/kit": "^2.3.0", - "@solana/rpc-types": "^2.3.0", - "@stellar/stellar-sdk": "14.2.0", - "@trezor/blockchain-link-types": "1.5.1", - "@trezor/blockchain-link-utils": "1.5.2", - "@trezor/env-utils": "1.5.0", - "@trezor/utils": "9.5.0", - "@trezor/utxo-lib": "2.5.0", - "@trezor/websocket-client": "1.3.0", - "@types/web": "^0.0.197", - "crypto-browserify": "3.12.0", - "socks-proxy-agent": "8.0.5", - "stream-browserify": "^3.0.0", - "xrpl": "4.4.3" + "node_modules/@trezor/connect-plugin-stellar/node_modules/@trezor/utils": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-10.0.0-alpha.1.tgz", + "integrity": "sha512-A+txzREoeX2MO1AqocDBsMNe+R21jTx5kungXGuzeTRRevARLsYh8MPes0170uMjq4qNSgopBnYZK18WyksOmQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.3.1" }, "peerDependencies": { "tslib": "^2.6.2" } }, - "node_modules/@trezor/blockchain-link-types": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@trezor/blockchain-link-types/-/blockchain-link-types-1.5.1.tgz", - "integrity": "sha512-Idavz6LwLBW8sXc69fh5AJEnl666EDl2Nt3io7updvBgOR0/P12I900DgjNhCKtiWuv66A33/5RE7zLcj3lfnw==", - "license": "See LICENSE.md in repo root", - "peer": true, + "node_modules/@trezor/connect-plugin-stellar/node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/@trezor/connect-web": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/connect-web/-/connect-web-10.0.0-alpha.1.tgz", + "integrity": "sha512-CW1ZXzXNVYrJ2WuYneLK2LznkRAfKxRPB3vJyv1U2gia5Q7hsblImITsutLOztO0C2xO1sfETTCyVzfRkRVJEA==", + "license": "MIT", "dependencies": { - "@trezor/utils": "9.5.0", - "@trezor/utxo-lib": "2.5.0" + "@trezor/connect-common": "10.0.0-alpha.1", + "@trezor/utils": "10.0.0-alpha.1", + "@trezor/websocket-client": "10.0.0-alpha.1" }, "peerDependencies": { "tslib": "^2.6.2" } }, - "node_modules/@trezor/blockchain-link-utils": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@trezor/blockchain-link-utils/-/blockchain-link-utils-1.5.2.tgz", - "integrity": "sha512-OSS5OEE98FMnYfjoEALPjBt7ebjC/FKnq3HOolHdEWXBpVlXZNN2+Vo1R9J6WbZUU087sHuUTJJy/GJYWY13Tg==", - "license": "See LICENSE.md in repo root", - "peer": true, + "node_modules/@trezor/connect-web/node_modules/@sinclair/typebox": { + "version": "0.34.52", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.52.tgz", + "integrity": "sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw==", + "license": "MIT" + }, + "node_modules/@trezor/connect-web/node_modules/@trezor/connect-common": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/connect-common/-/connect-common-10.0.0-alpha.1.tgz", + "integrity": "sha512-tuvM72XHACogT/fkp9D8wyzTE8h4X9emYUhvFs2pdTyIfTFs5RHDbcHQWFsvJgJoTK0H44XSSJb8pORijRfn9A==", + "license": "MIT", "dependencies": { - "@mobily/ts-belt": "^3.13.1", - "@stellar/stellar-sdk": "14.2.0", - "@trezor/env-utils": "1.5.0", - "@trezor/protobuf": "1.5.2", - "@trezor/utils": "9.5.0", - "xrpl": "4.4.3" + "@trezor/device-utils": "10.0.0-alpha.1", + "@trezor/protobuf": "10.0.0-alpha.1", + "@trezor/protocol": "^10.0.0-alpha.1", + "@trezor/schema-utils": "10.0.0-alpha.1", + "@trezor/type-utils": "10.0.0-alpha.1", + "@trezor/utils": "10.0.0-alpha.1" }, "peerDependencies": { "tslib": "^2.6.2" } }, - "node_modules/@trezor/blockchain-link-utils/node_modules/@stellar/stellar-sdk": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-14.2.0.tgz", - "integrity": "sha512-7nh2ogzLRMhfkIC0fGjn1LHUzk3jqVw8tjAuTt5ADWfL9CSGBL18ILucE9igz2L/RU2AZgeAvhujAnW91Ut/oQ==", - "hasInstallScript": true, - "license": "Apache-2.0", - "peer": true, + "node_modules/@trezor/connect-web/node_modules/@trezor/device-utils": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/device-utils/-/device-utils-10.0.0-alpha.1.tgz", + "integrity": "sha512-93LhEqH8uKCZHLtF+62uxd3/PXCfqpK4Z98ztfGu5vrtmoONb9dV8Falha0b3KXPDrQ10TUKasFGKLg570Z/Ew==", + "license": "MIT" + }, + "node_modules/@trezor/connect-web/node_modules/@trezor/protobuf": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/protobuf/-/protobuf-10.0.0-alpha.1.tgz", + "integrity": "sha512-aCUyqAr7Sho9TequaNAjnf27mgae6qzesNrOgB19bUrDrhaDDd/2eyr2SrrY1G4hPYkTyBC0jymvQnozn9f/kA==", + "license": "MIT", "dependencies": { - "@stellar/stellar-base": "^14.0.1", - "axios": "^1.12.2", - "bignumber.js": "^9.3.1", - "eventsource": "^2.0.2", - "feaxios": "^0.0.23", - "randombytes": "^2.1.0", - "toml": "^3.0.0", - "urijs": "^1.19.1" + "@bufbuild/protobuf": "^2.11.0", + "@trezor/schema-utils": "10.0.0-alpha.1" }, - "engines": { - "node": ">=20.0.0" + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/@trezor/blockchain-link-utils/node_modules/@trezor/env-utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.5.0.tgz", - "integrity": "sha512-u1TN7dMQ5Qhpbae08Z4JJmI9fQrbbJ4yj8eIAsuzMQn6vb+Sg9vbntl+IDsZ1G9WeI73uHTLu1wWMmAgiujH8w==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "ua-parser-js": "^2.0.4" - }, + "node_modules/@trezor/connect-web/node_modules/@trezor/protocol": { + "version": "10.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@trezor/protocol/-/protocol-10.0.0-beta.1.tgz", + "integrity": "sha512-kYcnIjSE1mnAkDDQz7roEDEIy3iBS2dkDPtOcd7lI37jpmvXj2Iu4P7jhG+n9SKb0bwu/e69EpmQOrjrwUX0Yw==", + "license": "MIT", "peerDependencies": { - "expo-constants": "*", - "expo-localization": "*", - "react-native": "*", "tslib": "^2.6.2" - }, - "peerDependenciesMeta": { - "expo-constants": { - "optional": true - }, - "expo-localization": { - "optional": true - }, - "react-native": { - "optional": true - } } }, - "node_modules/@trezor/blockchain-link-utils/node_modules/@trezor/protobuf": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@trezor/protobuf/-/protobuf-1.5.2.tgz", - "integrity": "sha512-zViaL1jKue8DUTVEDg0C/lMipqNMd/Z3kr29/+MeZOoupjaXIQ2Lqp3WAMe8hvNTKKX8aNQH9JrbapJ6w9FMXw==", - "license": "See LICENSE.md in repo root", - "peer": true, + "node_modules/@trezor/connect-web/node_modules/@trezor/schema-utils": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/schema-utils/-/schema-utils-10.0.0-alpha.1.tgz", + "integrity": "sha512-0beYv0b0De3Z60sZzM1T+IrYwXeNL+7RKfLokTvqEFDzsQkwxhYrIX47FsBhGsOmGWx9x4+65dxDbnyd4wZT6g==", + "license": "MIT", "dependencies": { - "@trezor/schema-utils": "1.4.0", - "long": "5.2.5", - "protobufjs": "7.4.0" + "@sinclair/typebox": "^0.34.49", + "@trezor/type-utils": "10.0.0-alpha.1", + "ts-mixer": "^6.0.4" }, "peerDependencies": { "tslib": "^2.6.2" } }, - "node_modules/@trezor/blockchain-link-utils/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@trezor/connect-web/node_modules/@trezor/type-utils": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/type-utils/-/type-utils-10.0.0-alpha.1.tgz", + "integrity": "sha512-wK75rrwlyXFgPfdHQFRbeKCoj+orQLXKj7rliMK30z+F1y+rEcfv/MW2VP48Q9mL5pea+ZX1nRnb4hYx1v38Ow==", + "license": "MIT" + }, + "node_modules/@trezor/connect-web/node_modules/@trezor/utils": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-10.0.0-alpha.1.tgz", + "integrity": "sha512-A+txzREoeX2MO1AqocDBsMNe+R21jTx5kungXGuzeTRRevARLsYh8MPes0170uMjq4qNSgopBnYZK18WyksOmQ==", "license": "MIT", - "peer": true, "dependencies": { - "debug": "4" + "bignumber.js": "^9.3.1" }, - "engines": { - "node": ">= 6.0.0" + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/@trezor/blockchain-link-utils/node_modules/axios": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.19.0.tgz", - "integrity": "sha512-ht/iuYZXEjFxLH/Hkezgd7m6JKlHHXEUSneaDz8uZe1Gj5QZtCnpyDsckvAiEnT89OEbCLmnte4R4sn7P0EKFw==", + "node_modules/@trezor/connect-web/node_modules/@trezor/websocket-client": { + "version": "10.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@trezor/websocket-client/-/websocket-client-10.0.0-alpha.1.tgz", + "integrity": "sha512-129Ot1m+fDodRFBvav2d6v8nLxZLAl/udQP5l5W6jxQZcWUuviphDceT/juF8EvNGdw+L6OIu6fH+yCXARpFWQ==", "license": "MIT", - "peer": true, "dependencies": { - "follow-redirects": "^1.16.0", - "form-data": "^4.0.6", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^2.1.0" + "@trezor/utils": "10.0.0-alpha.1", + "ws": "^8.20.0" + }, + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/@trezor/blockchain-link-utils/node_modules/bignumber.js": { + "node_modules/@trezor/connect-web/node_modules/bignumber.js": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", "license": "MIT", - "peer": true, "engines": { "node": "*" } }, - "node_modules/@trezor/blockchain-link-utils/node_modules/eventsource": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", - "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@trezor/blockchain-link-utils/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, "license": "MIT", - "peer": true, + "optional": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" + "tslib": "^2.4.0" } }, - "node_modules/@trezor/blockchain-link-utils/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "license": "MIT", - "peer": true, "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" + "@types/node": "*" } }, - "node_modules/@trezor/blockchain-link-utils/node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana-program/compute-budget": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@solana-program/compute-budget/-/compute-budget-0.8.0.tgz", - "integrity": "sha512-qPKxdxaEsFxebZ4K5RPuy7VQIm/tfJLa1+Nlt3KNA8EYQkz9Xm8htdoEaXVrer9kpgzzp9R3I3Bh6omwCM06tQ==", - "license": "Apache-2.0", - "peer": true, - "peerDependencies": { - "@solana/kit": "^2.1.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana-program/stake": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@solana-program/stake/-/stake-0.2.1.tgz", - "integrity": "sha512-ssNPsJv9XHaA+L7ihzmWGYcm/+XYURQ8UA3wQMKf6ccEHyHOUgoglkkDU/BoA0+wul6HxZUN0tHFymC0qFw6sg==", - "license": "MIT", - "peer": true, - "peerDependencies": { - "@solana/kit": "^2.1.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana-program/token": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@solana-program/token/-/token-0.5.1.tgz", - "integrity": "sha512-bJvynW5q9SFuVOZ5vqGVkmaPGA0MCC+m9jgJj1nk5m20I389/ms69ASnhWGoOPNcie7S9OwBX0gTj2fiyWpfag==", - "license": "Apache-2.0", - "peer": true, - "peerDependencies": { - "@solana/kit": "^2.1.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana-program/token-2022": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@solana-program/token-2022/-/token-2022-0.4.2.tgz", - "integrity": "sha512-zIpR5t4s9qEU3hZKupzIBxJ6nUV5/UVyIT400tu9vT1HMs5JHxaTTsb5GUhYjiiTvNwU0MQavbwc4Dl29L0Xvw==", - "license": "Apache-2.0", - "peer": true, - "peerDependencies": { - "@solana/kit": "^2.1.0", - "@solana/sysvars": "^2.1.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/accounts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/accounts/-/accounts-2.3.0.tgz", - "integrity": "sha512-QgQTj404Z6PXNOyzaOpSzjgMOuGwG8vC66jSDB+3zHaRcEPRVRd2sVSrd1U6sHtnV3aiaS6YyDuPQMheg4K2jw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/rpc-spec": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/addresses": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/addresses/-/addresses-2.3.0.tgz", - "integrity": "sha512-ypTNkY2ZaRFpHLnHAgaW8a83N0/WoqdFvCqf4CQmnMdFsZSdC7qOwcbd7YzdaQn9dy+P2hybewzB+KP7LutxGA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/assertions": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/nominal-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/assertions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/assertions/-/assertions-2.3.0.tgz", - "integrity": "sha512-Ekoet3khNg3XFLN7MIz8W31wPQISpKUGDGTylLptI+JjCDWx3PIa88xjEMqFo02WJ8sBj2NLV64Xg1sBcsHjZQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/codecs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.3.0.tgz", - "integrity": "sha512-JVqGPkzoeyU262hJGdH64kNLH0M+Oew2CIPOa/9tR3++q2pEd4jU2Rxdfye9sd0Ce3XJrR5AIa8ZfbyQXzjh+g==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/codecs-data-structures": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/options": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/codecs-core": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", - "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/codecs-data-structures": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.3.0.tgz", - "integrity": "sha512-qvU5LE5DqEdYMYgELRHv+HMOx73sSoV1ZZkwIrclwUmwTbTaH8QAJURBj0RhQ/zCne7VuLLOZFFGv6jGigWhSw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/codecs-numbers": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", - "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/codecs-strings": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", - "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "fastestsmallesttextencoderdecoder": "^1.0.22", - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/errors": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", - "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "chalk": "^5.4.1", - "commander": "^14.0.0" - }, - "bin": { - "errors": "bin/cli.mjs" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/fast-stable-stringify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-2.3.0.tgz", - "integrity": "sha512-KfJPrMEieUg6D3hfQACoPy0ukrAV8Kio883llt/8chPEG3FVTX9z/Zuf4O01a15xZmBbmQ7toil2Dp0sxMJSxw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/functional": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/functional/-/functional-2.3.0.tgz", - "integrity": "sha512-AgsPh3W3tE+nK3eEw/W9qiSfTGwLYEvl0rWaxHht/lRcuDVwfKRzeSa5G79eioWFFqr+pTtoCr3D3OLkwKz02Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/instructions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/instructions/-/instructions-2.3.0.tgz", - "integrity": "sha512-PLMsmaIKu7hEAzyElrk2T7JJx4D+9eRwebhFZpy2PXziNSmFF929eRHKUsKqBFM3cYR1Yy3m6roBZfA+bGE/oQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/keys": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/keys/-/keys-2.3.0.tgz", - "integrity": "sha512-ZVVdga79pNH+2pVcm6fr2sWz9HTwfopDVhYb0Lh3dh+WBmJjwkabXEIHey2rUES7NjFa/G7sV8lrUn/v8LDCCQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/assertions": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/nominal-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/kit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/kit/-/kit-2.3.0.tgz", - "integrity": "sha512-sb6PgwoW2LjE5oTFu4lhlS/cGt/NB3YrShEyx7JgWFWysfgLdJnhwWThgwy/4HjNsmtMrQGWVls0yVBHcMvlMQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/accounts": "2.3.0", - "@solana/addresses": "2.3.0", - "@solana/codecs": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/instructions": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/programs": "2.3.0", - "@solana/rpc": "2.3.0", - "@solana/rpc-parsed-types": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/rpc-subscriptions": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/signers": "2.3.0", - "@solana/sysvars": "2.3.0", - "@solana/transaction-confirmation": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/nominal-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-2.3.0.tgz", - "integrity": "sha512-uKlMnlP4PWW5UTXlhKM8lcgIaNj8dvd8xO4Y9l+FVvh9RvW2TO0GwUO6JCo7JBzCB0PSqRJdWWaQ8pu1Ti/OkA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/options": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.3.0.tgz", - "integrity": "sha512-PPnnZBRCWWoZQ11exPxf//DRzN2C6AoFsDI/u2AsQfYih434/7Kp4XLpfOMT/XESi+gdBMFNNfbES5zg3wAIkw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/codecs-data-structures": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/programs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/programs/-/programs-2.3.0.tgz", - "integrity": "sha512-UXKujV71VCI5uPs+cFdwxybtHZAIZyQkqDiDnmK+DawtOO9mBn4Nimdb/6RjR2CXT78mzO9ZCZ3qfyX+ydcB7w==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/promises": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/promises/-/promises-2.3.0.tgz", - "integrity": "sha512-GjVgutZKXVuojd9rWy1PuLnfcRfqsaCm7InCiZc8bqmJpoghlyluweNc7ml9Y5yQn1P2IOyzh9+p/77vIyNybQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc/-/rpc-2.3.0.tgz", - "integrity": "sha512-ZWN76iNQAOCpYC7yKfb3UNLIMZf603JckLKOOLTHuy9MZnTN8XV6uwvDFhf42XvhglgUjGCEnbUqWtxQ9pa/pQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/fast-stable-stringify": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/rpc-api": "2.3.0", - "@solana/rpc-spec": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/rpc-transformers": "2.3.0", - "@solana/rpc-transport-http": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-api": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-api/-/rpc-api-2.3.0.tgz", - "integrity": "sha512-UUdiRfWoyYhJL9PPvFeJr4aJ554ob2jXcpn4vKmRVn9ire0sCbpQKYx6K8eEKHZWXKrDW8IDspgTl0gT/aJWVg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/rpc-parsed-types": "2.3.0", - "@solana/rpc-spec": "2.3.0", - "@solana/rpc-transformers": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-parsed-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-2.3.0.tgz", - "integrity": "sha512-B5pHzyEIbBJf9KHej+zdr5ZNAdSvu7WLU2lOUPh81KHdHQs6dEb310LGxcpCc7HVE8IEdO20AbckewDiAN6OCg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-spec": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-2.3.0.tgz", - "integrity": "sha512-fA2LMX4BMixCrNB2n6T83AvjZ3oUQTu7qyPLyt8gHQaoEAXs8k6GZmu6iYcr+FboQCjUmRPgMaABbcr9j2J9Sw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/rpc-spec-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-spec-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-2.3.0.tgz", - "integrity": "sha512-xQsb65lahjr8Wc9dMtP7xa0ZmDS8dOE2ncYjlvfyw/h4mpdXTUdrSMi6RtFwX33/rGuztQ7Hwaid5xLNSLvsFQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-subscriptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions/-/rpc-subscriptions-2.3.0.tgz", - "integrity": "sha512-Uyr10nZKGVzvCOqwCZgwYrzuoDyUdwtgQRefh13pXIrdo4wYjVmoLykH49Omt6abwStB0a4UL5gX9V4mFdDJZg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/fast-stable-stringify": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/promises": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/rpc-subscriptions-api": "2.3.0", - "@solana/rpc-subscriptions-channel-websocket": "2.3.0", - "@solana/rpc-subscriptions-spec": "2.3.0", - "@solana/rpc-transformers": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/subscribable": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-subscriptions-api": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-2.3.0.tgz", - "integrity": "sha512-9mCjVbum2Hg9KGX3LKsrI5Xs0KX390lS+Z8qB80bxhar6MJPugqIPH8uRgLhCW9GN3JprAfjRNl7our8CPvsPQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/rpc-subscriptions-spec": "2.3.0", - "@solana/rpc-transformers": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-subscriptions-channel-websocket": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-2.3.0.tgz", - "integrity": "sha512-2oL6ceFwejIgeWzbNiUHI2tZZnaOxNTSerszcin7wYQwijxtpVgUHiuItM/Y70DQmH9sKhmikQp+dqeGalaJxw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/rpc-subscriptions-spec": "2.3.0", - "@solana/subscribable": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3", - "ws": "^8.18.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-subscriptions-spec": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-2.3.0.tgz", - "integrity": "sha512-rdmVcl4PvNKQeA2l8DorIeALCgJEMSu7U8AXJS1PICeb2lQuMeaR+6cs/iowjvIB0lMVjYN2sFf6Q3dJPu6wWg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/promises": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/subscribable": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-transformers": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-transformers/-/rpc-transformers-2.3.0.tgz", - "integrity": "sha512-UuHYK3XEpo9nMXdjyGKkPCOr7WsZsxs7zLYDO1A5ELH3P3JoehvrDegYRAGzBS2VKsfApZ86ZpJToP0K3PhmMA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/nominal-types": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-transport-http": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-transport-http/-/rpc-transport-http-2.3.0.tgz", - "integrity": "sha512-HFKydmxGw8nAF5N+S0NLnPBDCe5oMDtI2RAmW8DMqP4U3Zxt2XWhvV1SNkAldT5tF0U1vP+is6fHxyhk4xqEvg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/rpc-spec": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "undici-types": "^7.11.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/rpc-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-2.3.0.tgz", - "integrity": "sha512-O09YX2hED2QUyGxrMOxQ9GzH1LlEwwZWu69QbL4oYmIf6P5dzEEHcqRY6L1LsDVqc/dzAdEs/E1FaPrcIaIIPw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/nominal-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/signers": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/signers/-/signers-2.3.0.tgz", - "integrity": "sha512-OSv6fGr/MFRx6J+ZChQMRqKNPGGmdjkqarKkRzkwmv7v8quWsIRnJT5EV8tBy3LI4DLO/A8vKiNSPzvm1TdaiQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/instructions": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/nominal-types": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/subscribable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/subscribable/-/subscribable-2.3.0.tgz", - "integrity": "sha512-DkgohEDbMkdTWiKAoatY02Njr56WXx9e/dKKfmne8/Ad6/2llUIrax78nCdlvZW9quXMaXPTxZvdQqo9N669Og==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/sysvars": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/sysvars/-/sysvars-2.3.0.tgz", - "integrity": "sha512-LvjADZrpZ+CnhlHqfI5cmsRzX9Rpyb1Ox2dMHnbsRNzeKAMhu9w4ZBIaeTdO322zsTr509G1B+k2ABD3whvUBA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/accounts": "2.3.0", - "@solana/codecs": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/transaction-confirmation": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/transaction-confirmation/-/transaction-confirmation-2.3.0.tgz", - "integrity": "sha512-UiEuiHCfAAZEKdfne/XljFNJbsKAe701UQHKXEInYzIgBjRbvaeYZlBmkkqtxwcasgBTOmEaEKT44J14N9VZDw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/promises": "2.3.0", - "@solana/rpc": "2.3.0", - "@solana/rpc-subscriptions": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/transaction-messages": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/transaction-messages/-/transaction-messages-2.3.0.tgz", - "integrity": "sha512-bgqvWuy3MqKS5JdNLH649q+ngiyOu5rGS3DizSnWwYUd76RxZl1kN6CoqHSrrMzFMvis6sck/yPGG3wqrMlAww==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-data-structures": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/instructions": "2.3.0", - "@solana/nominal-types": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@solana/transactions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/transactions/-/transactions-2.3.0.tgz", - "integrity": "sha512-LnTvdi8QnrQtuEZor5Msje61sDpPstTVwKg4y81tNxDhiyomjuvnSNLAq6QsB9gIxUqbNzPZgOG9IU4I4/Uaug==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-data-structures": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/instructions": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/nominal-types": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/transaction-messages": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@stellar/stellar-sdk": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-14.2.0.tgz", - "integrity": "sha512-7nh2ogzLRMhfkIC0fGjn1LHUzk3jqVw8tjAuTt5ADWfL9CSGBL18ILucE9igz2L/RU2AZgeAvhujAnW91Ut/oQ==", - "hasInstallScript": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@stellar/stellar-base": "^14.0.1", - "axios": "^1.12.2", - "bignumber.js": "^9.3.1", - "eventsource": "^2.0.2", - "feaxios": "^0.0.23", - "randombytes": "^2.1.0", - "toml": "^3.0.0", - "urijs": "^1.19.1" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/@trezor/env-utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.5.0.tgz", - "integrity": "sha512-u1TN7dMQ5Qhpbae08Z4JJmI9fQrbbJ4yj8eIAsuzMQn6vb+Sg9vbntl+IDsZ1G9WeI73uHTLu1wWMmAgiujH8w==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "ua-parser-js": "^2.0.4" - }, - "peerDependencies": { - "expo-constants": "*", - "expo-localization": "*", - "react-native": "*", - "tslib": "^2.6.2" - }, - "peerDependenciesMeta": { - "expo-constants": { - "optional": true - }, - "expo-localization": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@trezor/blockchain-link/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/axios": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.19.0.tgz", - "integrity": "sha512-ht/iuYZXEjFxLH/Hkezgd7m6JKlHHXEUSneaDz8uZe1Gj5QZtCnpyDsckvAiEnT89OEbCLmnte4R4sn7P0EKFw==", - "license": "MIT", - "peer": true, - "dependencies": { - "follow-redirects": "^1.16.0", - "form-data": "^4.0.6", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^2.1.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/eventsource": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", - "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@trezor/blockchain-link/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "peer": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@trezor/connect": { - "version": "9.7.3", - "resolved": "https://registry.npmjs.org/@trezor/connect/-/connect-9.7.3.tgz", - "integrity": "sha512-oAOfvJHT8tPqOXTmCOhn8uTZcoqSDuWAiWXQegx7C46tq+NLg+enkYXxUYEHq/9PmfZAOrUT9VMxZDsXM2thkA==", - "license": "SEE LICENSE IN LICENSE.md", - "peer": true, - "dependencies": { - "@ethereumjs/common": "^10.1.0", - "@ethereumjs/tx": "^10.1.0", - "@fivebinaries/coin-selection": "3.0.0", - "@mobily/ts-belt": "^3.13.1", - "@noble/hashes": "^1.6.1", - "@scure/bip39": "^1.5.1", - "@solana-program/compute-budget": "^0.8.0", - "@solana-program/system": "^0.7.0", - "@solana-program/token": "^0.5.1", - "@solana-program/token-2022": "^0.4.2", - "@solana/kit": "^2.3.0", - "@trezor/blockchain-link": "2.6.2", - "@trezor/blockchain-link-types": "1.5.1", - "@trezor/blockchain-link-utils": "1.5.2", - "@trezor/connect-analytics": "1.4.0", - "@trezor/connect-common": "0.5.1", - "@trezor/crypto-utils": "1.2.0", - "@trezor/device-authenticity": "1.1.2", - "@trezor/device-utils": "1.2.0", - "@trezor/env-utils": "^1.5.0", - "@trezor/protobuf": "1.5.3", - "@trezor/protocol": "1.3.1", - "@trezor/schema-utils": "1.4.0", - "@trezor/transport": "1.6.3", - "@trezor/type-utils": "1.2.0", - "@trezor/utils": "9.5.0", - "@trezor/utxo-lib": "2.5.0", - "blakejs": "^1.2.1", - "bs58": "^6.0.0", - "bs58check": "^4.0.0", - "cbor": "^10.0.10", - "cross-fetch": "^4.0.0", - "jws": "^4.0.0" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-analytics": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@trezor/connect-analytics/-/connect-analytics-1.4.0.tgz", - "integrity": "sha512-hy2J2oeIhRC/e1bOWXo5dsVMVnDwO2UKnxhR6FD8PINR3jgM6PWAXc6k33WJsBcyiTzwMP7/xPysLcgNJH5o4w==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "@trezor/analytics": "1.5.0" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-common": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@trezor/connect-common/-/connect-common-0.5.1.tgz", - "integrity": "sha512-wdpVCwdylBh4SBO5Ys40tB/d59UlfjmxgBHDkkLgaR+JcqkthCfiw5VlUrV9wu65lquejAZhA5KQL4mUUUhCow==", - "license": "SEE LICENSE IN LICENSE.md", - "peer": true, - "dependencies": { - "@trezor/env-utils": "1.5.0", - "@trezor/type-utils": "1.2.0", - "@trezor/utils": "9.5.0" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-common/node_modules/@trezor/env-utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.5.0.tgz", - "integrity": "sha512-u1TN7dMQ5Qhpbae08Z4JJmI9fQrbbJ4yj8eIAsuzMQn6vb+Sg9vbntl+IDsZ1G9WeI73uHTLu1wWMmAgiujH8w==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "ua-parser-js": "^2.0.4" - }, - "peerDependencies": { - "expo-constants": "*", - "expo-localization": "*", - "react-native": "*", - "tslib": "^2.6.2" - }, - "peerDependenciesMeta": { - "expo-constants": { - "optional": true - }, - "expo-localization": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@trezor/connect-plugin-stellar": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/connect-plugin-stellar/-/connect-plugin-stellar-10.0.0-alpha.1.tgz", - "integrity": "sha512-v4lMnnBPxLoV/Yf8F0WmtkZGNsqurpxK62kqvaDeVoAtn5Ud+l6POQkLeQRiGsJYVm0vSDc4LHb5vLMrZTH/KA==", - "license": "SEE LICENSE IN LICENSE.md", - "dependencies": { - "@trezor/utils": "10.0.0-alpha.1" - }, - "peerDependencies": { - "@stellar/stellar-sdk": "^13.3.0", - "@trezor/connect": "9.x.x", - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-plugin-stellar/node_modules/@trezor/utils": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-10.0.0-alpha.1.tgz", - "integrity": "sha512-A+txzREoeX2MO1AqocDBsMNe+R21jTx5kungXGuzeTRRevARLsYh8MPes0170uMjq4qNSgopBnYZK18WyksOmQ==", - "license": "MIT", - "dependencies": { - "bignumber.js": "^9.3.1" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-plugin-stellar/node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/@trezor/connect-web": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/connect-web/-/connect-web-10.0.0-alpha.1.tgz", - "integrity": "sha512-CW1ZXzXNVYrJ2WuYneLK2LznkRAfKxRPB3vJyv1U2gia5Q7hsblImITsutLOztO0C2xO1sfETTCyVzfRkRVJEA==", - "license": "MIT", - "dependencies": { - "@trezor/connect-common": "10.0.0-alpha.1", - "@trezor/utils": "10.0.0-alpha.1", - "@trezor/websocket-client": "10.0.0-alpha.1" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-web/node_modules/@sinclair/typebox": { - "version": "0.34.52", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.52.tgz", - "integrity": "sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw==", - "license": "MIT" - }, - "node_modules/@trezor/connect-web/node_modules/@trezor/connect-common": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/connect-common/-/connect-common-10.0.0-alpha.1.tgz", - "integrity": "sha512-tuvM72XHACogT/fkp9D8wyzTE8h4X9emYUhvFs2pdTyIfTFs5RHDbcHQWFsvJgJoTK0H44XSSJb8pORijRfn9A==", - "license": "MIT", - "dependencies": { - "@trezor/device-utils": "10.0.0-alpha.1", - "@trezor/protobuf": "10.0.0-alpha.1", - "@trezor/protocol": "^10.0.0-alpha.1", - "@trezor/schema-utils": "10.0.0-alpha.1", - "@trezor/type-utils": "10.0.0-alpha.1", - "@trezor/utils": "10.0.0-alpha.1" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-web/node_modules/@trezor/device-utils": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/device-utils/-/device-utils-10.0.0-alpha.1.tgz", - "integrity": "sha512-93LhEqH8uKCZHLtF+62uxd3/PXCfqpK4Z98ztfGu5vrtmoONb9dV8Falha0b3KXPDrQ10TUKasFGKLg570Z/Ew==", - "license": "MIT" - }, - "node_modules/@trezor/connect-web/node_modules/@trezor/protobuf": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/protobuf/-/protobuf-10.0.0-alpha.1.tgz", - "integrity": "sha512-aCUyqAr7Sho9TequaNAjnf27mgae6qzesNrOgB19bUrDrhaDDd/2eyr2SrrY1G4hPYkTyBC0jymvQnozn9f/kA==", - "license": "MIT", - "dependencies": { - "@bufbuild/protobuf": "^2.11.0", - "@trezor/schema-utils": "10.0.0-alpha.1" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-web/node_modules/@trezor/protocol": { - "version": "10.0.0-beta.1", - "resolved": "https://registry.npmjs.org/@trezor/protocol/-/protocol-10.0.0-beta.1.tgz", - "integrity": "sha512-kYcnIjSE1mnAkDDQz7roEDEIy3iBS2dkDPtOcd7lI37jpmvXj2Iu4P7jhG+n9SKb0bwu/e69EpmQOrjrwUX0Yw==", - "license": "MIT", - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-web/node_modules/@trezor/schema-utils": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/schema-utils/-/schema-utils-10.0.0-alpha.1.tgz", - "integrity": "sha512-0beYv0b0De3Z60sZzM1T+IrYwXeNL+7RKfLokTvqEFDzsQkwxhYrIX47FsBhGsOmGWx9x4+65dxDbnyd4wZT6g==", - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.34.49", - "@trezor/type-utils": "10.0.0-alpha.1", - "ts-mixer": "^6.0.4" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-web/node_modules/@trezor/type-utils": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/type-utils/-/type-utils-10.0.0-alpha.1.tgz", - "integrity": "sha512-wK75rrwlyXFgPfdHQFRbeKCoj+orQLXKj7rliMK30z+F1y+rEcfv/MW2VP48Q9mL5pea+ZX1nRnb4hYx1v38Ow==", - "license": "MIT" - }, - "node_modules/@trezor/connect-web/node_modules/@trezor/utils": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-10.0.0-alpha.1.tgz", - "integrity": "sha512-A+txzREoeX2MO1AqocDBsMNe+R21jTx5kungXGuzeTRRevARLsYh8MPes0170uMjq4qNSgopBnYZK18WyksOmQ==", - "license": "MIT", - "dependencies": { - "bignumber.js": "^9.3.1" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-web/node_modules/@trezor/websocket-client": { - "version": "10.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@trezor/websocket-client/-/websocket-client-10.0.0-alpha.1.tgz", - "integrity": "sha512-129Ot1m+fDodRFBvav2d6v8nLxZLAl/udQP5l5W6jxQZcWUuviphDceT/juF8EvNGdw+L6OIu6fH+yCXARpFWQ==", - "license": "MIT", - "dependencies": { - "@trezor/utils": "10.0.0-alpha.1", - "ws": "^8.20.0" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/connect-web/node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/@trezor/connect/node_modules/@solana-program/compute-budget": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@solana-program/compute-budget/-/compute-budget-0.8.0.tgz", - "integrity": "sha512-qPKxdxaEsFxebZ4K5RPuy7VQIm/tfJLa1+Nlt3KNA8EYQkz9Xm8htdoEaXVrer9kpgzzp9R3I3Bh6omwCM06tQ==", - "license": "Apache-2.0", - "peer": true, - "peerDependencies": { - "@solana/kit": "^2.1.0" - } - }, - "node_modules/@trezor/connect/node_modules/@solana-program/system": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@solana-program/system/-/system-0.7.0.tgz", - "integrity": "sha512-FKTBsKHpvHHNc1ATRm7SlC5nF/VdJtOSjldhcyfMN9R7xo712Mo2jHIzvBgn8zQO5Kg0DcWuKB7268Kv1ocicw==", - "license": "Apache-2.0", - "peer": true, - "peerDependencies": { - "@solana/kit": "^2.1.0" - } - }, - "node_modules/@trezor/connect/node_modules/@solana-program/token": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@solana-program/token/-/token-0.5.1.tgz", - "integrity": "sha512-bJvynW5q9SFuVOZ5vqGVkmaPGA0MCC+m9jgJj1nk5m20I389/ms69ASnhWGoOPNcie7S9OwBX0gTj2fiyWpfag==", - "license": "Apache-2.0", - "peer": true, - "peerDependencies": { - "@solana/kit": "^2.1.0" - } - }, - "node_modules/@trezor/connect/node_modules/@solana-program/token-2022": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@solana-program/token-2022/-/token-2022-0.4.2.tgz", - "integrity": "sha512-zIpR5t4s9qEU3hZKupzIBxJ6nUV5/UVyIT400tu9vT1HMs5JHxaTTsb5GUhYjiiTvNwU0MQavbwc4Dl29L0Xvw==", - "license": "Apache-2.0", - "peer": true, - "peerDependencies": { - "@solana/kit": "^2.1.0", - "@solana/sysvars": "^2.1.0" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/accounts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/accounts/-/accounts-2.3.0.tgz", - "integrity": "sha512-QgQTj404Z6PXNOyzaOpSzjgMOuGwG8vC66jSDB+3zHaRcEPRVRd2sVSrd1U6sHtnV3aiaS6YyDuPQMheg4K2jw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/rpc-spec": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/addresses": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/addresses/-/addresses-2.3.0.tgz", - "integrity": "sha512-ypTNkY2ZaRFpHLnHAgaW8a83N0/WoqdFvCqf4CQmnMdFsZSdC7qOwcbd7YzdaQn9dy+P2hybewzB+KP7LutxGA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/assertions": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/nominal-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/assertions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/assertions/-/assertions-2.3.0.tgz", - "integrity": "sha512-Ekoet3khNg3XFLN7MIz8W31wPQISpKUGDGTylLptI+JjCDWx3PIa88xjEMqFo02WJ8sBj2NLV64Xg1sBcsHjZQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/codecs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.3.0.tgz", - "integrity": "sha512-JVqGPkzoeyU262hJGdH64kNLH0M+Oew2CIPOa/9tR3++q2pEd4jU2Rxdfye9sd0Ce3XJrR5AIa8ZfbyQXzjh+g==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/codecs-data-structures": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/options": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/codecs-core": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", - "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/codecs-data-structures": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.3.0.tgz", - "integrity": "sha512-qvU5LE5DqEdYMYgELRHv+HMOx73sSoV1ZZkwIrclwUmwTbTaH8QAJURBj0RhQ/zCne7VuLLOZFFGv6jGigWhSw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/codecs-numbers": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", - "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/codecs-strings": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", - "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "fastestsmallesttextencoderdecoder": "^1.0.22", - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/errors": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", - "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "chalk": "^5.4.1", - "commander": "^14.0.0" - }, - "bin": { - "errors": "bin/cli.mjs" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/fast-stable-stringify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-2.3.0.tgz", - "integrity": "sha512-KfJPrMEieUg6D3hfQACoPy0ukrAV8Kio883llt/8chPEG3FVTX9z/Zuf4O01a15xZmBbmQ7toil2Dp0sxMJSxw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/functional": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/functional/-/functional-2.3.0.tgz", - "integrity": "sha512-AgsPh3W3tE+nK3eEw/W9qiSfTGwLYEvl0rWaxHht/lRcuDVwfKRzeSa5G79eioWFFqr+pTtoCr3D3OLkwKz02Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/instructions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/instructions/-/instructions-2.3.0.tgz", - "integrity": "sha512-PLMsmaIKu7hEAzyElrk2T7JJx4D+9eRwebhFZpy2PXziNSmFF929eRHKUsKqBFM3cYR1Yy3m6roBZfA+bGE/oQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/keys": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/keys/-/keys-2.3.0.tgz", - "integrity": "sha512-ZVVdga79pNH+2pVcm6fr2sWz9HTwfopDVhYb0Lh3dh+WBmJjwkabXEIHey2rUES7NjFa/G7sV8lrUn/v8LDCCQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/assertions": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/nominal-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/kit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/kit/-/kit-2.3.0.tgz", - "integrity": "sha512-sb6PgwoW2LjE5oTFu4lhlS/cGt/NB3YrShEyx7JgWFWysfgLdJnhwWThgwy/4HjNsmtMrQGWVls0yVBHcMvlMQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/accounts": "2.3.0", - "@solana/addresses": "2.3.0", - "@solana/codecs": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/instructions": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/programs": "2.3.0", - "@solana/rpc": "2.3.0", - "@solana/rpc-parsed-types": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/rpc-subscriptions": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/signers": "2.3.0", - "@solana/sysvars": "2.3.0", - "@solana/transaction-confirmation": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/nominal-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-2.3.0.tgz", - "integrity": "sha512-uKlMnlP4PWW5UTXlhKM8lcgIaNj8dvd8xO4Y9l+FVvh9RvW2TO0GwUO6JCo7JBzCB0PSqRJdWWaQ8pu1Ti/OkA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/options": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.3.0.tgz", - "integrity": "sha512-PPnnZBRCWWoZQ11exPxf//DRzN2C6AoFsDI/u2AsQfYih434/7Kp4XLpfOMT/XESi+gdBMFNNfbES5zg3wAIkw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/codecs-data-structures": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/programs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/programs/-/programs-2.3.0.tgz", - "integrity": "sha512-UXKujV71VCI5uPs+cFdwxybtHZAIZyQkqDiDnmK+DawtOO9mBn4Nimdb/6RjR2CXT78mzO9ZCZ3qfyX+ydcB7w==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/promises": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/promises/-/promises-2.3.0.tgz", - "integrity": "sha512-GjVgutZKXVuojd9rWy1PuLnfcRfqsaCm7InCiZc8bqmJpoghlyluweNc7ml9Y5yQn1P2IOyzh9+p/77vIyNybQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc/-/rpc-2.3.0.tgz", - "integrity": "sha512-ZWN76iNQAOCpYC7yKfb3UNLIMZf603JckLKOOLTHuy9MZnTN8XV6uwvDFhf42XvhglgUjGCEnbUqWtxQ9pa/pQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/fast-stable-stringify": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/rpc-api": "2.3.0", - "@solana/rpc-spec": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/rpc-transformers": "2.3.0", - "@solana/rpc-transport-http": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-api": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-api/-/rpc-api-2.3.0.tgz", - "integrity": "sha512-UUdiRfWoyYhJL9PPvFeJr4aJ554ob2jXcpn4vKmRVn9ire0sCbpQKYx6K8eEKHZWXKrDW8IDspgTl0gT/aJWVg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/rpc-parsed-types": "2.3.0", - "@solana/rpc-spec": "2.3.0", - "@solana/rpc-transformers": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-parsed-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-2.3.0.tgz", - "integrity": "sha512-B5pHzyEIbBJf9KHej+zdr5ZNAdSvu7WLU2lOUPh81KHdHQs6dEb310LGxcpCc7HVE8IEdO20AbckewDiAN6OCg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-spec": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-2.3.0.tgz", - "integrity": "sha512-fA2LMX4BMixCrNB2n6T83AvjZ3oUQTu7qyPLyt8gHQaoEAXs8k6GZmu6iYcr+FboQCjUmRPgMaABbcr9j2J9Sw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/rpc-spec-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-spec-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-2.3.0.tgz", - "integrity": "sha512-xQsb65lahjr8Wc9dMtP7xa0ZmDS8dOE2ncYjlvfyw/h4mpdXTUdrSMi6RtFwX33/rGuztQ7Hwaid5xLNSLvsFQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-subscriptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions/-/rpc-subscriptions-2.3.0.tgz", - "integrity": "sha512-Uyr10nZKGVzvCOqwCZgwYrzuoDyUdwtgQRefh13pXIrdo4wYjVmoLykH49Omt6abwStB0a4UL5gX9V4mFdDJZg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/fast-stable-stringify": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/promises": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/rpc-subscriptions-api": "2.3.0", - "@solana/rpc-subscriptions-channel-websocket": "2.3.0", - "@solana/rpc-subscriptions-spec": "2.3.0", - "@solana/rpc-transformers": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/subscribable": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-subscriptions-api": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-2.3.0.tgz", - "integrity": "sha512-9mCjVbum2Hg9KGX3LKsrI5Xs0KX390lS+Z8qB80bxhar6MJPugqIPH8uRgLhCW9GN3JprAfjRNl7our8CPvsPQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/rpc-subscriptions-spec": "2.3.0", - "@solana/rpc-transformers": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-subscriptions-channel-websocket": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-2.3.0.tgz", - "integrity": "sha512-2oL6ceFwejIgeWzbNiUHI2tZZnaOxNTSerszcin7wYQwijxtpVgUHiuItM/Y70DQmH9sKhmikQp+dqeGalaJxw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/rpc-subscriptions-spec": "2.3.0", - "@solana/subscribable": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3", - "ws": "^8.18.0" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-subscriptions-spec": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-2.3.0.tgz", - "integrity": "sha512-rdmVcl4PvNKQeA2l8DorIeALCgJEMSu7U8AXJS1PICeb2lQuMeaR+6cs/iowjvIB0lMVjYN2sFf6Q3dJPu6wWg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/promises": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/subscribable": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-transformers": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-transformers/-/rpc-transformers-2.3.0.tgz", - "integrity": "sha512-UuHYK3XEpo9nMXdjyGKkPCOr7WsZsxs7zLYDO1A5ELH3P3JoehvrDegYRAGzBS2VKsfApZ86ZpJToP0K3PhmMA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/nominal-types": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-transport-http": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-transport-http/-/rpc-transport-http-2.3.0.tgz", - "integrity": "sha512-HFKydmxGw8nAF5N+S0NLnPBDCe5oMDtI2RAmW8DMqP4U3Zxt2XWhvV1SNkAldT5tF0U1vP+is6fHxyhk4xqEvg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0", - "@solana/rpc-spec": "2.3.0", - "@solana/rpc-spec-types": "2.3.0", - "undici-types": "^7.11.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/rpc-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-2.3.0.tgz", - "integrity": "sha512-O09YX2hED2QUyGxrMOxQ9GzH1LlEwwZWu69QbL4oYmIf6P5dzEEHcqRY6L1LsDVqc/dzAdEs/E1FaPrcIaIIPw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/nominal-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/signers": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/signers/-/signers-2.3.0.tgz", - "integrity": "sha512-OSv6fGr/MFRx6J+ZChQMRqKNPGGmdjkqarKkRzkwmv7v8quWsIRnJT5EV8tBy3LI4DLO/A8vKiNSPzvm1TdaiQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/instructions": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/nominal-types": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/subscribable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/subscribable/-/subscribable-2.3.0.tgz", - "integrity": "sha512-DkgohEDbMkdTWiKAoatY02Njr56WXx9e/dKKfmne8/Ad6/2llUIrax78nCdlvZW9quXMaXPTxZvdQqo9N669Og==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/sysvars": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/sysvars/-/sysvars-2.3.0.tgz", - "integrity": "sha512-LvjADZrpZ+CnhlHqfI5cmsRzX9Rpyb1Ox2dMHnbsRNzeKAMhu9w4ZBIaeTdO322zsTr509G1B+k2ABD3whvUBA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/accounts": "2.3.0", - "@solana/codecs": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/transaction-confirmation": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/transaction-confirmation/-/transaction-confirmation-2.3.0.tgz", - "integrity": "sha512-UiEuiHCfAAZEKdfne/XljFNJbsKAe701UQHKXEInYzIgBjRbvaeYZlBmkkqtxwcasgBTOmEaEKT44J14N9VZDw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/promises": "2.3.0", - "@solana/rpc": "2.3.0", - "@solana/rpc-subscriptions": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/transaction-messages": "2.3.0", - "@solana/transactions": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/transaction-messages": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/transaction-messages/-/transaction-messages-2.3.0.tgz", - "integrity": "sha512-bgqvWuy3MqKS5JdNLH649q+ngiyOu5rGS3DizSnWwYUd76RxZl1kN6CoqHSrrMzFMvis6sck/yPGG3wqrMlAww==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-data-structures": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/instructions": "2.3.0", - "@solana/nominal-types": "2.3.0", - "@solana/rpc-types": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@solana/transactions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/transactions/-/transactions-2.3.0.tgz", - "integrity": "sha512-LnTvdi8QnrQtuEZor5Msje61sDpPstTVwKg4y81tNxDhiyomjuvnSNLAq6QsB9gIxUqbNzPZgOG9IU4I4/Uaug==", - "license": "MIT", - "peer": true, - "dependencies": { - "@solana/addresses": "2.3.0", - "@solana/codecs-core": "2.3.0", - "@solana/codecs-data-structures": "2.3.0", - "@solana/codecs-numbers": "2.3.0", - "@solana/codecs-strings": "2.3.0", - "@solana/errors": "2.3.0", - "@solana/functional": "2.3.0", - "@solana/instructions": "2.3.0", - "@solana/keys": "2.3.0", - "@solana/nominal-types": "2.3.0", - "@solana/rpc-types": "2.3.0", - "@solana/transaction-messages": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@trezor/connect/node_modules/@trezor/env-utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.5.0.tgz", - "integrity": "sha512-u1TN7dMQ5Qhpbae08Z4JJmI9fQrbbJ4yj8eIAsuzMQn6vb+Sg9vbntl+IDsZ1G9WeI73uHTLu1wWMmAgiujH8w==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "ua-parser-js": "^2.0.4" - }, - "peerDependencies": { - "expo-constants": "*", - "expo-localization": "*", - "react-native": "*", - "tslib": "^2.6.2" - }, - "peerDependenciesMeta": { - "expo-constants": { - "optional": true - }, - "expo-localization": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@trezor/crypto-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@trezor/crypto-utils/-/crypto-utils-1.2.0.tgz", - "integrity": "sha512-9i1NrfW1IE6JO910ut7xrx4u5LxE++GETbpJhWLj4P5xpuGDDSDLEn/MXaYisls2DpE897aOrGPaa1qyt8V6tw==", - "license": "SEE LICENSE IN LICENSE.md", - "peer": true, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/device-authenticity": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@trezor/device-authenticity/-/device-authenticity-1.1.2.tgz", - "integrity": "sha512-313uSXYR4XKDv3CjtCpgHA+yEe9xxqN7EFl/D68FEn70SPsuWI0+2zUvjPPh6TIOh/EcLv7hCO/QTHUAGd7ZWQ==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "@noble/curves": "^2.0.1", - "@trezor/crypto-utils": "1.2.0", - "@trezor/protobuf": "1.5.2", - "@trezor/schema-utils": "1.4.0", - "@trezor/utils": "9.5.0" - } - }, - "node_modules/@trezor/device-authenticity/node_modules/@noble/curves": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.3.0.tgz", - "integrity": "sha512-v7cY+4oWYPQszRj6ZFGzTVL7uP2TaLo1xMhWHzYC5wj0ZhOXQ5x+sBre8rF3hi8cAoi0bh1qXoovoOkdFtvqEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@noble/hashes": "2.3.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@trezor/device-authenticity/node_modules/@noble/hashes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.3.0.tgz", - "integrity": "sha512-oN+QwyX7VSHotibwubG3kpzbwKrfnyR6OOO+3Nk/53ADL7FmgHHz4TgrbaYKvvOw09u6QTx0oiH1cNCIOuN0CQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@trezor/device-authenticity/node_modules/@trezor/protobuf": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@trezor/protobuf/-/protobuf-1.5.2.tgz", - "integrity": "sha512-zViaL1jKue8DUTVEDg0C/lMipqNMd/Z3kr29/+MeZOoupjaXIQ2Lqp3WAMe8hvNTKKX8aNQH9JrbapJ6w9FMXw==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "@trezor/schema-utils": "1.4.0", - "long": "5.2.5", - "protobufjs": "7.4.0" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/device-authenticity/node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@trezor/device-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@trezor/device-utils/-/device-utils-1.2.0.tgz", - "integrity": "sha512-Aqp7pIooFTx21zRUtTI6i1AS4d9Lrx7cclvksh2nJQF9WJvbzuCXshEGkLoOsHwhQrCl3IXfbGuMdA12yDenPA==", - "license": "See LICENSE.md in repo root", - "peer": true - }, - "node_modules/@trezor/protobuf": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@trezor/protobuf/-/protobuf-1.5.3.tgz", - "integrity": "sha512-ZYQtapkT2NaiVrAgb91Zprnk3uhl2Wca0bsnJcWgE7vwzqKegjrSorRnkZLqLTKTbCaT6sgkCYtM2hPl4Hqw5Q==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "@trezor/schema-utils": "1.4.0", - "long": "5.2.5", - "protobufjs": "7.5.5" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/protocol": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@trezor/protocol/-/protocol-1.3.1.tgz", - "integrity": "sha512-uNJ83n38+BM+AJKsWza1ocvQ206d6NXJQ8/g+DelPLTj5c37Rj6hFiY5Nb5zgM7DBnq6T8Aa2K8t4TVCzHT1qg==", - "license": "See LICENSE.md in repo root", - "peer": true, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/schema-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@trezor/schema-utils/-/schema-utils-1.4.0.tgz", - "integrity": "sha512-K7upSeh7VDrORaIC4KAxYVW93XNlohmUnH5if/5GKYmTdQSRp1nBkO6Jm+Z4hzIthdnz/1aLgnbeN3bDxWLRxA==", - "license": "See LICENSE.md in repo root", - "peer": true, - "dependencies": { - "@sinclair/typebox": "^0.33.7", - "ts-mixer": "^6.0.3" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/transport": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@trezor/transport/-/transport-1.6.3.tgz", - "integrity": "sha512-GEi9KfiJsBgT/MCGNDIn9RDeXceLaAPjJT/GCayirXaCr3KnlpZCs6LGYkrjqapxiBm73nxM+BctKBKhpUl2cQ==", - "license": "SEE LICENSE IN LICENSE.md", - "peer": true, - "dependencies": { - "@trezor/protobuf": "1.5.3", - "@trezor/protocol": "1.3.1", - "@trezor/type-utils": "1.2.0", - "@trezor/utils": "9.5.0", - "cross-fetch": "^4.0.0", - "usb": "^2.15.0" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/type-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@trezor/type-utils/-/type-utils-1.2.0.tgz", - "integrity": "sha512-+E2QntxkyQuYfQQyl8RvT01tq2i5Dp/LFUOXuizF+KVOqsZBjBY43j5hewcCO3+MokD7deDiPyekbUEN5/iVlw==", - "license": "See LICENSE.md in repo root", - "peer": true - }, - "node_modules/@trezor/utils": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-9.5.0.tgz", - "integrity": "sha512-kdyMyDbxzvOZmwBNvTjAK+C/kzyOz8T4oUbFvq+KaXn5mBFf1uf8rq5X2HkxgdYRPArtHS3PxLKsfkNCdhCYtQ==", - "license": "SEE LICENSE IN LICENSE.md", - "peer": true, - "dependencies": { - "bignumber.js": "^9.3.1" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/utils/node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/@trezor/utxo-lib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@trezor/utxo-lib/-/utxo-lib-2.5.0.tgz", - "integrity": "sha512-Fa2cZh0037oX6AHNLfpFIj65UR/OoX0ZJTocFuQASe77/1PjZHysf6BvvGfmzuFToKfrAQ+DM/1Sx+P/vnyNmA==", - "license": "SEE LICENSE IN LICENSE.md", - "peer": true, - "dependencies": { - "@trezor/utils": "9.5.0", - "bech32": "^2.0.0", - "bip66": "^2.0.0", - "bitcoin-ops": "^1.4.1", - "blake-hash": "^2.0.0", - "blakejs": "^1.2.1", - "bn.js": "^5.2.2", - "bs58": "^6.0.0", - "bs58check": "^4.0.0", - "cashaddrjs": "0.4.4", - "create-hmac": "^1.1.7", - "int64-buffer": "^1.1.0", - "pushdata-bitcoin": "^1.0.1", - "tiny-secp256k1": "^1.1.7", - "typeforce": "^1.18.0", - "varuint-bitcoin": "2.0.0", - "wif": "^5.0.0" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@trezor/websocket-client": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@trezor/websocket-client/-/websocket-client-1.3.0.tgz", - "integrity": "sha512-9KQSaVc3NtmM6rFFj1e+9bM0C5mVKVidbnxlfzuBJu7G2YMRdIdLPcAXhvmRZjs40uzDuBeApK+p547kODz2ug==", - "license": "SEE LICENSE IN LICENSE.md", - "peer": true, - "dependencies": { - "@trezor/utils": "9.5.0", - "ws": "^8.18.0" - }, - "peerDependencies": { - "tslib": "^2.6.2" - } - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT", - "peer": true + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -9794,14 +7084,14 @@ "version": "15.7.15", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/@types/react": { "version": "18.3.31", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -9812,7 +7102,7 @@ "version": "18.3.7", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", - "devOptional": true, + "dev": true, "license": "MIT", "peerDependencies": { "@types/react": "^18.0.0" @@ -9845,20 +7135,6 @@ "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", "license": "MIT" }, - "node_modules/@types/w3c-web-usb": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@types/w3c-web-usb/-/w3c-web-usb-1.0.14.tgz", - "integrity": "sha512-Qu3Nn6JFuF4+sHKYl+IcX9vYiI40ogleXzFFSxoE1W94rG98o/kXs8uJ0QSfFzuwBCZWlGfUGpPkgwuuX4PchA==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/web": { - "version": "0.0.197", - "resolved": "https://registry.npmjs.org/@types/web/-/web-0.0.197.tgz", - "integrity": "sha512-V4sOroWDADFx9dLodWpKm298NOJ1VJ6zoDVgaP+WBb/utWxqQ6gnMzd9lvVDAr/F3ibiKaxH9i45eS0gQPSTaQ==", - "license": "Apache-2.0", - "peer": true - }, "node_modules/@types/ws": { "version": "7.4.7", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", @@ -12133,220 +9409,6 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "license": "0BSD" }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xrplf/isomorphic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@xrplf/isomorphic/-/isomorphic-1.0.2.tgz", - "integrity": "sha512-ncZUdMXr6VlSXtdoiDi0jTH+gBrgGxwVeEidhoegII3PmyErbQsyj6e+j7acmR4LW/lvBkPkzb9QzRfJH0n3rA==", - "license": "ISC", - "peer": true, - "dependencies": { - "@noble/hashes": "^2.0.1", - "eventemitter3": "5.0.1", - "ws": "^8.20.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@xrplf/isomorphic/node_modules/@noble/hashes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.3.0.tgz", - "integrity": "sha512-oN+QwyX7VSHotibwubG3kpzbwKrfnyR6OOO+3Nk/53ADL7FmgHHz4TgrbaYKvvOw09u6QTx0oiH1cNCIOuN0CQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@xrplf/secret-numbers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@xrplf/secret-numbers/-/secret-numbers-2.0.0.tgz", - "integrity": "sha512-z3AOibRTE9E8MbjgzxqMpG1RNaBhQ1jnfhNCa1cGf2reZUJzPMYs4TggQTc7j8+0WyV3cr7y/U8Oz99SXIkN5Q==", - "license": "ISC", - "peer": true, - "dependencies": { - "@xrplf/isomorphic": "^1.0.1", - "ripple-keypairs": "^2.0.0" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0", - "peer": true - }, "node_modules/abitype": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.6.tgz", @@ -12404,6 +9466,7 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 14" @@ -12438,48 +9501,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "peer": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT", - "peer": true - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -12730,25 +9751,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "license": "MIT", - "peer": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.5", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", - "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", - "license": "MIT", - "peer": true - }, "node_modules/assertion-error": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", @@ -12832,6 +9834,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" @@ -12938,23 +9941,6 @@ "node": ">=6.0.0" } }, - "node_modules/bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==", - "license": "MIT", - "peer": true - }, - "node_modules/big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", - "license": "Unlicense", - "peer": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/big.js": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.2.tgz", @@ -12986,52 +9972,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bip32-path": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/bip32-path/-/bip32-path-0.4.2.tgz", "integrity": "sha512-ZBMCELjJfcNMkz5bDuJ1WrYvjlhEF5k6mQ8vUr4N7MbVRsXei7ZOg8VhhwMfNiW68NWmLkgkc6WvTickrLGprQ==", "license": "MIT" }, - "node_modules/bip66": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-2.0.0.tgz", - "integrity": "sha512-kBG+hSpgvZBrkIm9dt5T1Hd/7xGCPEX2npoxAWZfsK1FvjgaxySEh2WizjyIstWXriKo9K9uJ4u0OnsyLDUPXQ==", - "license": "MIT", - "peer": true - }, - "node_modules/bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==", - "license": "MIT", - "peer": true - }, - "node_modules/blake-hash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/blake-hash/-/blake-hash-2.0.0.tgz", - "integrity": "sha512-Igj8YowDu1PRkRsxZA7NVkdFNxH5rKv5cpLxQ0CVXSIA77pVYwCPRQJ2sMew/oneUpfuYRyjG6r8SmmmnbZb1w==", - "hasInstallScript": true, - "license": "MIT", - "peer": true, - "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/blakejs": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", @@ -13079,129 +10025,6 @@ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "license": "MIT" }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "license": "MIT", - "peer": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "license": "MIT", - "peer": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "license": "MIT", - "peer": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", - "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "bn.js": "^5.2.1", - "randombytes": "^2.1.0", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.6.tgz", - "integrity": "sha512-sd+Q65fjlWCYWtZKXiKfrUc8d+4jtp/8f0W2NkwzLtoW4bI6UDnWusLWIurHnmurW0XShIRxpwiOX4EoPtXUAg==", - "license": "ISC", - "peer": true, - "dependencies": { - "bn.js": "^5.2.3", - "browserify-rsa": "^4.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.6.1", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.9", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/browserify-sign/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT", - "peer": true - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT", - "peer": true - }, - "node_modules/browserify-sign/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT", - "peer": true - }, "node_modules/browserslist": { "version": "4.28.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", @@ -13244,17 +10067,6 @@ "base-x": "^5.0.0" } }, - "node_modules/bs58check": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-4.0.0.tgz", - "integrity": "sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g==", - "license": "MIT", - "peer": true, - "dependencies": { - "@noble/hashes": "^1.2.0", - "bs58": "^6.0.0" - } - }, "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -13279,27 +10091,6 @@ "ieee754": "^1.2.1" } }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT", - "peer": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "license": "MIT", - "peer": true - }, "node_modules/bufferutil": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.1.0.tgz", @@ -13339,6 +10130,7 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -13370,6 +10162,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -13427,32 +10220,9 @@ { "type": "github", "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/cashaddrjs": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.4.4.tgz", - "integrity": "sha512-xZkuWdNOh0uq/mxJIng6vYWfTowZLd9F4GMAlp2DwFHlcCqCm91NtuAc47RuV4L7r4PYcY5p6Cr2OKNb4hnkWA==", - "license": "MIT", - "peer": true, - "dependencies": { - "big-integer": "1.6.36" - } - }, - "node_modules/cbor": { - "version": "10.0.12", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-10.0.12.tgz", - "integrity": "sha512-exQDevYd7ZQLP4moMQcZkKCVZsXLAtUSflObr3xTh4xzFIv/xBCdvCd6L259kQOUP2kcTC0jvC6PpZIf/WmRXA==", - "license": "MIT", - "peer": true, - "dependencies": { - "nofilter": "^3.0.2" - }, - "engines": { - "node": ">=20" - } + } + ], + "license": "CC-BY-4.0" }, "node_modules/chai": { "version": "5.3.3", @@ -13538,16 +10308,6 @@ "node": ">= 6" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/cids": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", @@ -13590,21 +10350,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/cipher-base": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", - "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.2" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/cjs-module-lexer": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", @@ -13781,70 +10526,6 @@ "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==", "license": "MIT" }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT", - "peer": true - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "license": "MIT", - "peer": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.5", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", - "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", - "license": "MIT", - "peer": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "license": "MIT", - "peer": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "license": "MIT", - "peer": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-fetch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", - "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", - "license": "MIT", - "peer": true, - "dependencies": { - "node-fetch": "^2.7.0" - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -13878,29 +10559,6 @@ "node": "*" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "license": "MIT", - "peer": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", @@ -14086,6 +10744,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -14163,17 +10822,6 @@ "node": ">=6" } }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/destr": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", @@ -14186,27 +10834,6 @@ "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", "license": "MIT" }, - "node_modules/detect-europe-js": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/detect-europe-js/-/detect-europe-js-0.1.2.tgz", - "integrity": "sha512-lgdERlL3u0aUdHocoouzT10d9I89VVhk0qNRmll7mXdGfJT1/wqZ2ZLA4oJAjeACPY5fT1wsbq2AT+GkuInsow==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "license": "MIT", - "peer": true - }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -14229,25 +10856,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "license": "MIT", - "peer": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.5", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", - "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", - "license": "MIT", - "peer": true - }, "node_modules/dijkstrajs": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", @@ -14314,16 +10922,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/electron-to-chromium": { "version": "1.5.409", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.409.tgz", @@ -14364,20 +10962,6 @@ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==", "license": "MIT" }, - "node_modules/enhanced-resolve": { - "version": "5.24.5", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", - "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", - "license": "MIT", - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/entities": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", @@ -15123,6 +11707,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -15135,6 +11720,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -15196,17 +11782,6 @@ "node": ">=18.0.0" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "license": "MIT", - "peer": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/expect-type": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", @@ -15217,13 +11792,6 @@ "node": ">=12.0.0" } }, - "node_modules/exponential-backoff": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", - "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", - "license": "Apache-2.0", - "peer": true - }, "node_modules/eyes": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", @@ -15236,6 +11804,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, "node_modules/fast-glob": { @@ -15272,6 +11841,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { @@ -15287,30 +11857,6 @@ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", "license": "MIT" }, - "node_modules/fast-uri": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", - "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/fastestsmallesttextencoderdecoder": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", - "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==", - "license": "CC0-1.0", - "peer": true - }, "node_modules/fastq": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", @@ -15372,13 +11918,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "license": "MIT", - "peer": true - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -15453,6 +11992,7 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.2.7" @@ -15581,26 +12121,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "is-property": "^1.0.2" - } - }, - "node_modules/generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "is-property": "^1.0.0" - } - }, "node_modules/generator-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", @@ -15870,6 +12390,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" @@ -15921,69 +12442,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hash-base": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", - "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/hash-base/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT", - "peer": true - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hash-base/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT", - "peer": true - }, - "node_modules/hash-base/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/hash-base/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT", - "peer": true - }, "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -16058,40 +12516,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "license": "MIT", - "peer": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC", - "peer": true - }, "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", @@ -16275,13 +12699,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, - "node_modules/int64-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-1.1.1.tgz", - "integrity": "sha512-xp/v0/im2q7n7ISFJXcYsr/aVsUdZKPUZS1uYtoM9I9Cfmm5YuAi7SQts2TrEXwAKIE0wyn3KxJbo35goJgvwQ==", - "license": "MIT", - "peer": true - }, "node_modules/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", @@ -16307,16 +12724,6 @@ "@formatjs/icu-messageformat-parser": "3.5.17" } }, - "node_modules/ip-address": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz", - "integrity": "sha512-R5SnVLJmgYYvf2F2ZgwSBnelz5G4q5AxIC277GDfUaNbrZKNANcBC7RHqYYePlszf4kBolVkJauG0ZjHHFh55g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 12" - } - }, "node_modules/ip-regex": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", @@ -16439,6 +12846,7 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -16636,27 +13044,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-my-ip-valid": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.1.tgz", - "integrity": "sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==", - "license": "MIT", - "peer": true - }, - "node_modules/is-my-json-valid": { - "version": "2.20.6", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz", - "integrity": "sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==", - "license": "MIT", - "peer": true, - "dependencies": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "is-my-ip-valid": "^1.0.0", - "jsonpointer": "^5.0.0", - "xtend": "^4.0.0" - } - }, "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", @@ -16713,13 +13100,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", - "license": "MIT", - "peer": true - }, "node_modules/is-reference": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", @@ -16790,27 +13170,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-standalone-pwa": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-standalone-pwa/-/is-standalone-pwa-0.1.1.tgz", - "integrity": "sha512-9Cbovsa52vNQCjdXOzeQq5CnCbAcRk05aU62K20WO372NrTv0NxibLFCK6lQ4/iZEFdEA3p3t2VNOn8AJ53F5g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "license": "MIT", - "peer": true - }, "node_modules/is-string": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", @@ -16850,6 +13209,7 @@ "version": "1.1.15", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, "license": "MIT", "dependencies": { "which-typed-array": "^1.1.16" @@ -16911,6 +13271,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, "license": "MIT" }, "node_modules/isexe": { @@ -17093,37 +13454,6 @@ } } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jiti": { "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", @@ -17271,16 +13601,6 @@ "json5": "lib/cli.js" } }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -17297,29 +13617,6 @@ "node": ">=4.0" } }, - "node_modules/jwa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", - "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", - "license": "MIT", - "peer": true, - "dependencies": { - "buffer-equal-constant-time": "^1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", - "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", - "license": "MIT", - "peer": true, - "dependencies": { - "jwa": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -17440,15 +13737,8 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/long": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.5.tgz", - "integrity": "sha512-e0r9YBBgNCq1D1o5Dp8FMH0N5hsFtXDBiVa0qoJPHpakvZkmDKPRoGffZJII/XsHvj9An9blm+cRJ01yQqU+Dw==", - "license": "Apache-2.0", - "peer": true + "dev": true, + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", @@ -17469,13 +13759,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lru_map": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.4.1.tgz", - "integrity": "sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg==", - "license": "MIT", - "peer": true - }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -17568,25 +13851,6 @@ "is-buffer": "~1.1.6" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "license": "MIT", - "peer": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT", - "peer": true - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -17624,27 +13888,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "license": "MIT", - "peer": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.5", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", - "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", - "license": "MIT", - "peer": true - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -17711,67 +13954,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimizer-webpack-plugin": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz", - "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@minify-html/node": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "@swc/html": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "cssnano": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "html-minifier-terser": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, "node_modules/minipass": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", @@ -18079,13 +14261,6 @@ "thenify-all": "^1.0.0" } }, - "node_modules/nan": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.28.0.tgz", - "integrity": "sha512-fTsDz99OTq2sVePhGdp4qQhggZFtKr64ZNVyVajRKtMOkJxYekplBh577PiJB12v/D3s2E5cGtOI45LWp6rnLQ==", - "license": "MIT", - "peer": true - }, "node_modules/nanoid": { "version": "3.3.18", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", @@ -18127,95 +14302,6 @@ "dev": true, "license": "MIT" }, - "node_modules/near-abi": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/near-abi/-/near-abi-0.2.0.tgz", - "integrity": "sha512-kCwSf/3fraPU2zENK18sh+kKG4uKbEUEQdyWQkmW8ZofmLarObIz2+zAYjA1teDZLeMvEQew3UysnPDXgjneaA==", - "license": "(MIT AND Apache-2.0)", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.11" - } - }, - "node_modules/near-api-js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-5.1.1.tgz", - "integrity": "sha512-h23BGSKxNv8ph+zU6snicstsVK1/CTXsQz4LuGGwoRE24Hj424nSe4+/1tzoiC285Ljf60kPAqRCmsfv9etF2g==", - "license": "(MIT AND Apache-2.0)", - "peer": true, - "dependencies": { - "@near-js/accounts": "1.4.1", - "@near-js/crypto": "1.4.2", - "@near-js/keystores": "0.2.2", - "@near-js/keystores-browser": "0.2.2", - "@near-js/keystores-node": "0.1.2", - "@near-js/providers": "1.0.3", - "@near-js/signers": "0.2.2", - "@near-js/transactions": "1.3.3", - "@near-js/types": "0.3.1", - "@near-js/utils": "1.1.0", - "@near-js/wallet-account": "1.3.3", - "@noble/curves": "1.8.1", - "borsh": "1.0.0", - "depd": "2.0.0", - "http-errors": "1.7.2", - "near-abi": "0.2.0", - "node-fetch": "2.6.7" - } - }, - "node_modules/near-api-js/node_modules/borsh": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-1.0.0.tgz", - "integrity": "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==", - "license": "Apache-2.0", - "peer": true - }, - "node_modules/near-api-js/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/near-api-js/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT", - "peer": true - }, - "node_modules/near-api-js/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause", - "peer": true - }, - "node_modules/near-api-js/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/negotiator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", @@ -18225,13 +14311,6 @@ "node": ">= 0.6" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT", - "peer": true - }, "node_modules/next": { "version": "14.2.35", "resolved": "https://registry.npmjs.org/next/-/next-14.2.35.tgz", @@ -18387,13 +14466,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "license": "MIT", - "peer": true - }, "node_modules/node-exports-info": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", @@ -18497,16 +14569,6 @@ "node": ">=18" } }, - "node_modules/nofilter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", - "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.19" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -18812,23 +14874,6 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz", - "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", - "license": "ISC", - "peer": true, - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "pbkdf2": "^3.1.5", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/parse5": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", @@ -18920,24 +14965,6 @@ "node": ">= 14.16" } }, - "node_modules/pbkdf2": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.6.tgz", - "integrity": "sha512-BT6eelPB1EyGHo8pC0o9Bl6k6SYVhKO1jEbd3lcTrtr7XHdjP8BW1YpfCV3G9Kwkxgattk+S5q2/RvuttCsS1g==", - "license": "MIT", - "peer": true, - "dependencies": { - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "ripemd160": "^2.0.3", - "safe-buffer": "^5.2.1", - "sha.js": "^2.4.12", - "to-buffer": "^1.2.2" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", @@ -19048,7 +15075,7 @@ "version": "1.62.1", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", - "devOptional": true, + "dev": true, "license": "Apache-2.0", "dependencies": { "playwright-core": "1.62.1" @@ -19067,7 +15094,7 @@ "version": "1.62.1", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", - "devOptional": true, + "dev": true, "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" @@ -19095,6 +15122,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -19376,13 +15404,6 @@ "node": ">= 0.6.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT", - "peer": true - }, "node_modules/process-warning": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.1.0.tgz", @@ -19427,31 +15448,6 @@ "dev": true, "license": "MIT" }, - "node_modules/protobufjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.5.tgz", - "integrity": "sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/proxy-compare": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.1.tgz", @@ -19467,28 +15463,6 @@ "node": ">=10" } }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.5", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", - "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", - "license": "MIT", - "peer": true - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -19499,16 +15473,6 @@ "node": ">=6" } }, - "node_modules/pushdata-bitcoin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", - "integrity": "sha512-hw7rcYTJRAl4olM8Owe8x0fBuJJ+WGbMhQuLWOXEMN3PxPCKQHRkhfL+XG0+iXUmSHjkMmb3Ba55Mt21cZc9kQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "bitcoin-ops": "^1.3.0" - } - }, "node_modules/qrcode": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", @@ -19569,17 +15533,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "license": "MIT", - "peer": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -19707,21 +15660,6 @@ "pify": "^2.3.0" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -19822,16 +15760,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-in-the-middle": { "version": "7.5.2", "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz", @@ -19967,86 +15895,11 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ripemd160": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", - "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", - "license": "MIT", - "peer": true, - "dependencies": { - "hash-base": "^3.1.2", - "inherits": "^2.0.4" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ripple-address-codec": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-5.0.1.tgz", - "integrity": "sha512-JQHLKuVJV8lv9Qobmn4aUM2Dpv9WRRLKnNWfM8tN02fAbUtG8mUPsu9q9UYX8P76G4qzytEc5ZKMp/3JggNYmw==", - "license": "ISC", - "peer": true, - "dependencies": { - "@scure/base": "^2.0.0", - "@xrplf/isomorphic": "^1.0.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/ripple-address-codec/node_modules/@scure/base": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.3.0.tgz", - "integrity": "sha512-NsG6Y03tY6R5BUis4FdVtHVkur0U6FOzskgs9ZXNl78CUc9fkZ78HmENUle1nSOkCasDmbubmWD9qwB7mm4PZA==", - "license": "MIT", - "peer": true, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ripple-binary-codec": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-2.9.0.tgz", - "integrity": "sha512-DOv4CPwm2B5mjAJNHE4tfes7tIqefi85iun8BskS7/i1PvLIwVydHIbTV5hbQ7eT69Zg4K5dtO1CzfuvQVAYvQ==", - "license": "ISC", - "peer": true, - "dependencies": { - "@xrplf/isomorphic": "^1.0.2", - "bignumber.js": "^10.0.2", - "ripple-address-codec": "^5.0.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/ripple-binary-codec/node_modules/bignumber.js": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-10.0.2.tgz", - "integrity": "sha512-E8Wp9O06QA6lneJ4aRUXKYf/1GIomqUEmUMwtIOMtDxf1U52ffJY+y7JBk/8wRafA8qOIqLnXQGqonYXZdBnFQ==", - "license": "MIT", - "peer": true - }, - "node_modules/ripple-keypairs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ripple-keypairs/-/ripple-keypairs-2.0.0.tgz", - "integrity": "sha512-b5rfL2EZiffmklqZk1W+dvSy97v3V/C7936WxCCgDynaGPp7GE6R2XO7EU9O2LlM/z95rj870IylYnOQs+1Rag==", - "license": "ISC", - "peer": true, - "dependencies": { - "@noble/curves": "^1.0.0", - "@xrplf/isomorphic": "^1.0.0", - "ripple-address-codec": "^5.0.0" - }, - "engines": { - "node": ">= 16" - } - }, "node_modules/rollup": { "version": "4.62.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.4.tgz", "integrity": "sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@types/estree": "1.0.9" @@ -20286,72 +16139,15 @@ "node": ">=v12.22.7" } }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", - "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" + "loose-envify": "^1.1.0" } }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT", - "peer": true - }, "node_modules/secp256k1": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.1.tgz", @@ -20395,6 +16191,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -20439,34 +16236,6 @@ "node": ">= 0.4" } }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "license": "ISC", - "peer": true - }, - "node_modules/sha.js": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", - "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", - "license": "(MIT AND BSD-3-Clause)", - "peer": true, - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.0" - }, - "bin": { - "sha.js": "bin.js" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/sha1": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", @@ -20611,17 +16380,6 @@ "integrity": "sha512-MseHyi2+E/hBRqdOi5COy6wZ7j7DxXRz9NkseavNYSvvWC06D8a5cidVZX3tcG5eCW3NIyVU4zT63hw0Q486jw==", "license": "MIT" }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/smol-toml": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz", @@ -20634,36 +16392,6 @@ "url": "https://github.com/sponsors/cyyynthia" } }, - "node_modules/socks": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", - "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", - "license": "MIT", - "peer": true, - "dependencies": { - "ip-address": "^10.1.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "peer": true, - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/sonic-boom": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.1.tgz", @@ -20673,16 +16401,6 @@ "atomic-sleep": "^1.0.0" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -20692,17 +16410,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -20747,16 +16454,6 @@ "node": ">=8" } }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/std-env": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", @@ -20778,17 +16475,6 @@ "node": ">= 0.4" } }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, "node_modules/stream-chain": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz", @@ -20812,16 +16498,6 @@ "node": ">=10.0.0" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -21250,46 +16926,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tapable": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", - "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.50.0.tgz", - "integrity": "sha512-CN9BVxWhgS/hRxtUMjtC2uRWSTcSfQFHMDWma6sKKfIivCD91sM+FOPfvwoaRMqCSrUpe1nv3jDamd9eEQ4y+w==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT", - "peer": true - }, "node_modules/test-exclude": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz", @@ -21459,31 +17095,6 @@ "real-require": "^0.2.0" } }, - "node_modules/tiny-secp256k1": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.7.tgz", - "integrity": "sha512-eb+F6NabSnjbLwNoC+2o5ItbmP1kg7HliWue71JgLegQt6A5mTN8YbvTLCazdlg6e5SV6A+r8OGvZYskdlmhqQ==", - "hasInstallScript": true, - "license": "MIT", - "peer": true, - "dependencies": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/tiny-secp256k1/node_modules/bn.js": { - "version": "4.12.5", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.5.tgz", - "integrity": "sha512-3aRg6/JxfffFD+OlOjOFR3Vo79l39ooBTFucxx+MT3dhCtzn3EmiUPQo+6/OZuI2jbXi3YKgmiTFBgChQMwIRQ==", - "license": "MIT", - "peer": true - }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -21565,21 +17176,6 @@ "dev": true, "license": "MIT" }, - "node_modules/to-buffer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", - "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", - "license": "MIT", - "peer": true, - "dependencies": { - "isarray": "^2.0.5", - "safe-buffer": "^5.2.1", - "typed-array-buffer": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -21592,23 +17188,6 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "license": "MIT", - "peer": true - }, "node_modules/tough-cookie": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", @@ -21722,6 +17301,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -21795,17 +17375,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typeforce": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", - "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==", - "license": "MIT", - "peer": true - }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -21815,59 +17389,6 @@ "node": ">=14.17" } }, - "node_modules/ua-is-frozen": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ua-is-frozen/-/ua-is-frozen-0.1.2.tgz", - "integrity": "sha512-RwKDW2p3iyWn4UbaxpP2+VxwqXh0jpvdxsYpZ5j/MLLiQOfbsV5shpgQiw93+KMYQPcteeMQ289MaAFzs3G9pw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "license": "MIT", - "peer": true - }, - "node_modules/ua-parser-js": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-2.0.10.tgz", - "integrity": "sha512-t+3Ktbq0Ies2vaSezfOaWiolH4OigQIO1dk+1xDpOydB1COVPocVYOrEV5rqZ0kFY9XYG1v9LutCyMgYBpABcw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "license": "AGPL-3.0-or-later", - "peer": true, - "dependencies": { - "detect-europe-js": "^0.1.2", - "is-standalone-pwa": "^0.1.1", - "ua-is-frozen": "^0.1.2" - }, - "bin": { - "ua-parser-js": "script/cli.js" - }, - "engines": { - "node": "*" - } - }, "node_modules/ufo": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", @@ -21886,16 +17407,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/uint8array-tools": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/uint8array-tools/-/uint8array-tools-0.0.8.tgz", - "integrity": "sha512-xS6+s8e0Xbx++5/0L+yyexukU7pz//Yg6IHg3BKhXotg1JcYtgxVcUctQ0HxLByiJzpAkNFawz1Nz5Xadzo82g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/uint8arrays": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", @@ -21934,7 +17445,8 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.29.0.tgz", "integrity": "sha512-vamA8dGlzMwhpyYpQp9d8vka3o4D/yn5I7ez7Or+msDA4bZ8Uh+Zy91WvWf3I73gDAkFha9JcYRqm2li0Npfgg==", - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/unplugin": { "version": "1.0.1", @@ -22026,39 +17538,6 @@ "punycode": "^2.1.0" } }, - "node_modules/urijs": { - "version": "1.19.11", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "license": "MIT", - "peer": true - }, - "node_modules/usb": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/usb/-/usb-2.18.0.tgz", - "integrity": "sha512-klAJPUTaSxRvTgrIh7om6UTrgRxdzioD+rJc/MaoiN8+OGdqRzai39tR00asnoCesPNikItWB9zBZoo0pJsWaA==", - "hasInstallScript": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/w3c-web-usb": "^1.0.6", - "node-addon-api": "^8.0.0", - "node-gyp-build": "^4.5.0" - }, - "engines": { - "node": ">=12.22.0 <13.0 || >=14.17.0" - } - }, - "node_modules/usb/node_modules/node-addon-api": { - "version": "8.9.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.9.2.tgz", - "integrity": "sha512-VijLXbi3UACN69I0JVXJsX4tjACjNoQDgv2gTF6sx2wWEi8tkSg2eX8p5gSIFi8z2+DL3oHmY6OyKce38SDolg==", - "license": "MIT", - "peer": true, - "engines": { - "node": "^18 || ^20 || >= 21" - } - }, "node_modules/use-callback-ref": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", @@ -22150,6 +17629,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, "license": "MIT" }, "node_modules/util/node_modules/inherits": { @@ -22204,16 +17684,6 @@ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", "license": "MIT" }, - "node_modules/varuint-bitcoin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-2.0.0.tgz", - "integrity": "sha512-6QZbU/rHO2ZQYpWFDALCDSRsXbAs1VOEmXAxtbtjLtKuMJ/FQ8YbhfxlaiKv5nklci0M6lZtlZyxo9Q+qNnyog==", - "license": "MIT", - "peer": true, - "dependencies": { - "uint8array-tools": "^0.0.8" - } - }, "node_modules/viem": { "version": "2.55.18", "resolved": "https://registry.npmjs.org/viem/-/viem-2.55.18.tgz", @@ -22520,19 +17990,6 @@ "node": ">=18" } }, - "node_modules/watchpack": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", - "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", - "license": "MIT", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -22543,50 +18000,6 @@ "node": ">=12" } }, - "node_modules/webpack": { - "version": "5.109.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.109.2.tgz", - "integrity": "sha512-U9/cvLzxObKNEZ9+TtdqrHM5/9z3lgl2c+c4BzbqGxFQvQvBAq87yql5A8pQ+rrMbS496MZJeF5enVBndIy2hw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/estree": "^1.0.8", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.16.0", - "browserslist": "^4.28.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.24.4", - "es-module-lexer": "^2.1.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "graceful-fs": "^4.2.11", - "mime-db": "^1.54.0", - "minimizer-webpack-plugin": "^5.6.1", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.0", - "watchpack": "^2.5.2", - "webpack-sources": "^3.5.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, "node_modules/webpack-sources": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.1.tgz", @@ -22602,47 +18015,6 @@ "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", "license": "MIT" }, - "node_modules/webpack/node_modules/es-module-lexer": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", - "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", - "license": "MIT", - "peer": true - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/whatwg-encoding": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", @@ -22773,6 +18145,7 @@ "version": "1.1.22", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -22807,16 +18180,6 @@ "node": ">=8" } }, - "node_modules/wif": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/wif/-/wif-5.0.0.tgz", - "integrity": "sha512-iFzrC/9ne740qFbNjTZ2FciSRJlHIXoxqk/Y5EnE08QOXu1WjJyCCswwDTYbohAOEnlCtLaAAQBhyaLRFh2hMA==", - "license": "MIT", - "peer": true, - "dependencies": { - "bs58check": "^4.0.0" - } - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -22989,38 +18352,6 @@ "dev": true, "license": "MIT" }, - "node_modules/xrpl": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-4.4.3.tgz", - "integrity": "sha512-vi2OjuNkiaP8nv1j+nqHp8GZwwEjO6Y8+j/OuVMg6M4LwXEwyHdIj33dlg7cyY1Lw5+jb9HqFOQvABhaywVbTQ==", - "license": "ISC", - "peer": true, - "dependencies": { - "@scure/bip32": "^1.3.1", - "@scure/bip39": "^1.2.1", - "@xrplf/isomorphic": "^1.0.1", - "@xrplf/secret-numbers": "^2.0.0", - "bignumber.js": "^9.0.0", - "eventemitter3": "^5.0.1", - "fast-json-stable-stringify": "^2.1.0", - "ripple-address-codec": "^5.0.0", - "ripple-binary-codec": "^2.5.0", - "ripple-keypairs": "^2.0.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/xrpl/node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/invofi/apps/frontend/package.json b/invofi/apps/frontend/package.json index 6ee9e4aa..dec60345 100644 --- a/invofi/apps/frontend/package.json +++ b/invofi/apps/frontend/package.json @@ -52,6 +52,7 @@ "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^14.5.2", "@types/node": "^22.5.4", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", diff --git a/invofi/apps/frontend/src/app/marketplace/fractions/page.tsx b/invofi/apps/frontend/src/app/marketplace/fractions/page.tsx new file mode 100644 index 00000000..17122d40 --- /dev/null +++ b/invofi/apps/frontend/src/app/marketplace/fractions/page.tsx @@ -0,0 +1,352 @@ +'use client'; + +import { useCallback, useEffect, useState } from 'react'; +import Link from 'next/link'; +import { AlertCircle, Search, Layers, Tag } from 'lucide-react'; + +import { Input } from '@/components/ui/input'; +import { Badge } from '@/components/ui/badge'; +import { Button } from '@/components/ui/button'; +import { Card, CardContent } from '@/components/ui/card'; +import { AuthGuard } from '@/components/auth/AuthGuard'; +import { MarketplaceTabs } from '@/components/marketplace/MarketplaceTabs'; +import { PurchaseFractionModal } from '@/components/securitization/PurchaseFractionModal'; +import { PriceHistoryChart } from '@/components/securitization/PriceHistoryChart'; +import { CardSkeleton } from '@/components/common/LoadingSkeleton'; +import { WalletButton } from '@/components/auth/WalletButton'; +import { supabase } from '@/lib/supabase'; +import { + fetchActiveFractionalizations, + fetchPriceHistoryBatch, +} from '@/lib/securitization'; +import type { Currency } from '@/types'; +import type { FractionalizationRecord, PriceHistoryPoint } from '@/types/securitization'; + +type SortKey = 'newest' | 'price_asc' | 'price_desc' | 'available_desc'; + +const SORT_OPTIONS: { value: SortKey; label: string }[] = [ + { value: 'newest', label: 'Newest first' }, + { value: 'available_desc', label: 'Most available' }, + { value: 'price_asc', label: 'Price: low to high' }, + { value: 'price_desc', label: 'Price: high to low' }, +]; + +// ── Single fractionalization card ───────────────────────────────────────────── + +interface FracCardProps { + record: FractionalizationRecord; + history: PriceHistoryPoint[]; + userId: string | null; + userAddress: string | null; + onPurchased: () => void; +} + +function FracCard({ record, history, userId, userAddress, onPurchased }: FracCardProps) { + const soldPercent = + record.total_fractions > 0 + ? Math.round(((record.total_fractions - record.available_fractions) / record.total_fractions) * 100) + : 0; + + const isOwner = record.originator_id === userId; + + return ( + + + {/* Header */} +
+
+
+ + + {record.token_symbol} + +
+

{record.token_name}

+
+ + {record.status === 'sold_out' ? 'Sold out' : record.status} + +
+ + {/* Economics */} +
+
+ Price / fraction + + {record.price_per_fraction} {record.price_currency} + +
+
+ Available + + {record.available_fractions.toLocaleString()} / {record.total_fractions.toLocaleString()} + +
+ + {/* Progress bar */} +
+
+
+

{soldPercent}% sold

+ + {/* Invoice link */} +

+ Invoice:{' '} + + {record.invoice_id} + +

+ + {record.description && ( +

+ {record.description} +

+ )} +
+ + {/* Sparkline */} + {history.length > 0 && ( + + )} + + {/* CTA */} +
+ {isOwner ? ( + + ) : userId && userAddress ? ( + // Authenticated investor with a linked wallet + + + {record.status === 'sold_out' ? 'Sold out' : 'Buy fractions'} + + } + /> + ) : userId && !userAddress ? ( + // Authenticated but no wallet linked — prompt wallet connection +
+ +
+ ) : ( + // Not authenticated + + )} +
+ + + ); +} + +// ── Page ────────────────────────────────────────────────────────────────────── + +export default function FractionsMarketplacePage() { + const [records, setRecords] = useState([]); + const [historyMap, setHistoryMap] = useState>(new Map()); + const [loading, setLoading] = useState(true); + const [loadError, setLoadError] = useState(null); + const [userId, setUserId] = useState(null); + const [userAddress, setUserAddress] = useState(null); + const [search, setSearch] = useState(''); + const [currencyFilter, setCurrencyFilter] = useState('ALL'); + const [sort, setSort] = useState('newest'); + + const load = useCallback(async () => { + setLoading(true); + setLoadError(null); + try { + const [{ data: { user } }, recs] = await Promise.all([ + supabase.auth.getUser(), + fetchActiveFractionalizations(), + ]); + + if (user) { + setUserId(user.id); + const { data: profile } = await supabase + .from('user_profiles') + .select('wallet_address') + .eq('id', user.id) + .maybeSingle(); + setUserAddress( + (profile as { wallet_address: string | null } | null)?.wallet_address ?? null, + ); + } + + setRecords(recs); + + // Batch-fetch price history for all visible records in one query + if (recs.length > 0) { + const ids = recs.map(r => r.id); + const histMap = await fetchPriceHistoryBatch(ids, 20); + setHistoryMap(histMap); + } + } catch (err) { + setLoadError(err instanceof Error ? err.message : 'Failed to load fractions marketplace'); + } finally { + setLoading(false); + } + }, []); + + useEffect(() => { load(); }, [load]); + + // Filter + sort + const filtered = records.filter(r => { + if (currencyFilter !== 'ALL' && r.price_currency !== currencyFilter) return false; + if (search) { + const q = search.toLowerCase(); + return ( + r.token_symbol.toLowerCase().includes(q) || + r.token_name.toLowerCase().includes(q) || + r.invoice_id.toLowerCase().includes(q) + ); + } + return true; + }); + + const sorted = [...filtered].sort((a, b) => { + switch (sort) { + case 'available_desc': + return b.available_fractions - a.available_fractions; + case 'price_asc': + // Only compare prices when both records share the same currency to + // avoid misleading cross-currency orderings + if (currencyFilter !== 'ALL') { + return parseFloat(a.price_per_fraction) - parseFloat(b.price_per_fraction); + } + return new Date(b.created_at).getTime() - new Date(a.created_at).getTime(); + case 'price_desc': + if (currencyFilter !== 'ALL') { + return parseFloat(b.price_per_fraction) - parseFloat(a.price_per_fraction); + } + return new Date(b.created_at).getTime() - new Date(a.created_at).getTime(); + case 'newest': + default: + return new Date(b.created_at).getTime() - new Date(a.created_at).getTime(); + } + }); + + return ( + +
+
+

Fractional Invoice Tokens

+

+ Buy fractions of financed invoices and earn a proportional share of yield and dividends. +

+
+ + + + {/* Filters */} +
+
+ + setSearch(e.target.value)} + /> +
+ + +
+ + {/* Error state */} + {loadError && ( +
+ +
+

Failed to load marketplace

+

{loadError}

+
+ +
+ )} + + {loading && ( +
+ {[1, 2, 3].map(i => )} +
+ )} + + {!loading && !loadError && sorted.length === 0 && ( +
+ +

No fractionalized invoices yet

+

+ Invoice owners can fractionalize from their dashboard. +

+
+ )} + + {!loading && !loadError && sorted.length > 0 && ( +
+ {sorted.map(rec => ( + + ))} +
+ )} +
+
+ ); +} diff --git a/invofi/apps/frontend/src/app/portfolio/fractions/page.tsx b/invofi/apps/frontend/src/app/portfolio/fractions/page.tsx new file mode 100644 index 00000000..5eac3949 --- /dev/null +++ b/invofi/apps/frontend/src/app/portfolio/fractions/page.tsx @@ -0,0 +1,237 @@ +'use client'; + +import { useEffect, useState } from 'react'; +import Link from 'next/link'; +import { AlertCircle, ArrowLeft, Layers, Loader2 } from 'lucide-react'; + +import { AuthGuard } from '@/components/auth/AuthGuard'; +import { FractionalPositionCard } from '@/components/securitization/FractionalPositionCard'; +import { DividendTracker } from '@/components/securitization/DividendTracker'; +import { PriceHistoryChart } from '@/components/securitization/PriceHistoryChart'; +import { Button } from '@/components/ui/button'; +import { supabase } from '@/lib/supabase'; +import { + fetchFractionalPositions, + buildPositionViews, + fetchPriceHistoryBatch, +} from '@/lib/securitization'; +import type { FractionalPositionView } from '@/types/securitization'; +import type { PriceHistoryPoint } from '@/types/securitization'; +import type { Currency } from '@/types'; + +export default function FractionsPortfolioPage() { + const [views, setViews] = useState([]); + const [loading, setLoading] = useState(true); + const [loadError, setLoadError] = useState(null); + // Map fractionalization_id → price history + const [historyMap, setHistoryMap] = useState>(new Map()); + // Which card is expanded for dividends + const [expanded, setExpanded] = useState(null); + + useEffect(() => { + let cancelled = false; + + (async () => { + setLoading(true); + setLoadError(null); + try { + const { data: { user } } = await supabase.auth.getUser(); + if (!user || cancelled) { setLoading(false); return; } + + const positions = await fetchFractionalPositions(user.id); + if (cancelled) return; + + const built = await buildPositionViews(positions); + if (cancelled) return; + setViews(built); + + // Batch-fetch price history for all unique fractionalizations in one query + const ids = [...new Set(positions.map(p => p.fractionalization_id))]; + if (ids.length > 0) { + const histMap = await fetchPriceHistoryBatch(ids); + if (!cancelled) setHistoryMap(histMap); + } + } catch (err) { + if (!cancelled) { + setLoadError(err instanceof Error ? err.message : 'Failed to load fractional positions'); + } + } finally { + if (!cancelled) setLoading(false); + } + })(); + + return () => { cancelled = true; }; + }, []); + + // ── Aggregate stats grouped by currency ────────────────────────────────── + // Sum values and dividends per currency to avoid mixing USDC and XLM totals. + const statsByCurrency = views.reduce>( + (acc, v) => { + const currency: Currency = v.record?.price_currency ?? v.position.purchase_currency; + const bucket = acc[currency] ?? { value: 0, dividends: 0 }; + bucket.value += parseFloat(v.currentValue); + bucket.dividends += parseFloat(v.totalDividendsEarned); + acc[currency] = bucket; + return acc; + }, + {}, + ); + + const totalFractions = views.reduce((s, v) => s + v.position.fraction_count, 0); + + return ( + +
+ + {/* Back */} + + + Portfolio + + +
+
+

+ + Fractional Positions +

+

+ Your fractional invoice token holdings, dividends, and price history. +

+
+ + Browse fractional marketplace → + +
+ + {/* Error state */} + {loadError && ( +
+ +
+

Failed to load positions

+

{loadError}

+
+ +
+ )} + + {/* Summary stats — per-currency to avoid mixing USDC + XLM */} + {!loading && views.length > 0 && ( +
+ {Object.entries(statsByCurrency).map(([currency, stats]) => ( +
+

Est. value ({currency})

+

+ {stats.value.toFixed(2)} +

+

{currency}

+
+ ))} + {Object.entries(statsByCurrency).map(([currency, stats]) => ( + stats.dividends > 0 ? ( +
+

Dividends ({currency})

+

+ {stats.dividends.toFixed(4)} +

+

earned

+
+ ) : null + ))} +
+

Fractions held

+

+ {totalFractions.toLocaleString()} +

+

+ {views.length} position{views.length !== 1 ? 's' : ''} +

+
+
+ )} + + {/* Loading */} + {loading && ( +
+ + Loading fractional positions… +
+ )} + + {/* Empty */} + {!loading && !loadError && views.length === 0 && ( +
+ +

No fractional positions yet.

+ + Browse fractionalized invoices → + +
+ )} + + {/* Position cards */} + {!loading && views.length > 0 && ( +
+ {views.map(view => ( +
+ + + {/* Price chart for this fractionalization */} + {historyMap.has(view.position.fractionalization_id) && ( + + )} + + {/* Dividend accordion */} + {view.record && ( +
+ + {expanded === view.position.fractionalization_id && ( +
+ +
+ )} +
+ )} +
+ ))} +
+ )} +
+
+ ); +} diff --git a/invofi/apps/frontend/src/app/portfolio/page.tsx b/invofi/apps/frontend/src/app/portfolio/page.tsx index 8b59cd80..dbf15ffa 100644 --- a/invofi/apps/frontend/src/app/portfolio/page.tsx +++ b/invofi/apps/frontend/src/app/portfolio/page.tsx @@ -1,30 +1,24 @@ 'use client'; -import { Suspense, useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { Suspense, useCallback, useEffect, useState } from 'react'; import Link from 'next/link'; import { useSearchParams } from 'next/navigation'; -import { useVirtualizer } from '@tanstack/react-virtual'; -import { TrendingUp, Clock, CheckCircle2, AlertCircle, Download, Copy, Check, Send, RefreshCw, Tag, DollarSign } from 'lucide-react'; +import { TrendingUp, Clock, CheckCircle2, AlertCircle, Download, Copy, Check, Send, RefreshCw, Tag, Layers } from 'lucide-react'; import { Card, CardContent } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { AuthGuard } from '@/components/auth/AuthGuard'; import { useWallet } from '@/components/auth/WalletProvider'; import { TableSkeleton } from '@/components/common/LoadingSkeleton'; +import { supabase } from '@/lib/supabase'; import { useToast } from '@/components/ui/use-toast'; -import { toErrorMessage } from '@/lib/errors'; import { addPositionTrustline, getPositionTokenId, getTokenBalance, getTokenDecimals, hasPositionTrustline, transferPositionToken } from '@/lib/contract'; -import { formatDate, interestRateLabel, durationLabel, OFFER_STATUS_COLORS } from '@/lib/utils'; -import { formatAmount as formatAmountDisplay } from '@/lib/formatters'; +import { formatAmount, formatDate, interestRateLabel, durationLabel, toStroopsBigInt, OFFER_STATUS_COLORS } from '@/lib/utils'; import { STROOPS_PER_XLM } from '@/lib/constants'; import { toCsv, downloadCsv } from '@/lib/csv'; -import { getXlmUsdInfo, stroopsToUsd } from '@/lib/live/prices'; -import { useLivePortfolio } from '@/components/portfolio/LivePortfolioProvider'; -import { ConnectionStatus } from '@/components/portfolio/ConnectionStatus'; -import { RepaymentProgress } from '@/components/portfolio/RepaymentProgress'; -import { PaginationControls } from '@/components/portfolio/PaginationControls'; -import { paginate } from '@/lib/pagination'; -import type { LivePosition } from '@/lib/live/types'; +import { fetchFractionalPositions } from '@/lib/securitization'; +import type { FinancingOffer } from '@/types'; +import { SupabaseUser } from '@/lib/types/supabase-auth'; const NETWORK = process.env.NEXT_PUBLIC_STELLAR_NETWORK === 'mainnet' ? 'mainnet' : 'testnet'; @@ -38,6 +32,11 @@ const STATUS_ICONS = { Defaulted: AlertCircle, } as const; +/** Total repayment due in stroops: principal + simple yield (matches the contract). */ +function offerTotalDue(offer: FinancingOffer): bigint { + return toStroopsBigInt(offer.amount) + (toStroopsBigInt(offer.amount) * BigInt(offer.interest_rate)) / 10_000n; +} + /** Parse a decimal string (e.g. "12.5") into base units for `decimals` places. */ function toBaseUnits(amount: string, decimals: number): bigint | null { if (!/^\d+(\.\d+)?$/.test(amount)) return null; @@ -55,14 +54,6 @@ function isStellarAddress(addr: string): boolean { return /^G[A-Z2-7]{55}$/.test(addr); } -/** Compact "updated Xs ago" for the per-row live timestamp. */ -function relativeUpdate(ts: number): string { - const diff = Date.now() - ts; - if (diff < 1_000) return 'just now'; - if (diff < 60_000) return `${Math.floor(diff / 1000)}s ago`; - return `${Math.floor(diff / 60_000)}m ago`; -} - /** * Task 8: transfer a financed-invoice position token to another wallet. * The token is a standard SEP-41 Stellar asset contract minted to the lender @@ -123,7 +114,7 @@ function TransferPositionCard() { toast({ title: 'Trustline added', description: 'Your wallet can now hold POS position tokens.' }); await refresh(); } catch (err) { - const msg = toErrorMessage(err, 'Trustline setup failed'); + const msg = err instanceof Error ? err.message : 'Trustline setup failed'; toast({ title: 'Trustline failed', description: msg, variant: 'destructive' }); } finally { setAddingTrustline(false); @@ -170,7 +161,7 @@ function TransferPositionCard() { setAmount(''); await refresh(); } catch (err) { - const msg = toErrorMessage(err, 'Transaction failed'); + const msg = err instanceof Error ? err.message : 'Transaction failed'; toast({ title: 'Transfer failed', description: msg, variant: 'destructive' }); } finally { setBusy(false); @@ -286,160 +277,57 @@ function CopyId({ id }: { id: string }) { ); } -/** Live position row: value + yields + streaming repayment progress. */ -function PositionCard({ offer }: { offer: LivePosition }) { - const Icon = STATUS_ICONS[offer.status] ?? Clock; - const active = offer.status === 'Accepted' || offer.status === 'Financed'; - const pct = Math.round(offer.repaymentProgress * 100); - - return ( - - -
-
- -
-
- - - ↗ - -
-

- {interestRateLabel(offer.interest_rate)} · {durationLabel(offer.duration)} - {offer.funded_at > 0 && ` · Funded ${formatDate(offer.funded_at)}`} -

-
-
-
-
-

- {formatAmountDisplay(offer.amount, offer.currency)} -

-

- ≈ ${offer.liveValueUsd.toFixed(2)} USD -

-
- {offer.status} -
-
- - {active && ( - <> -
-
-

APY

-

{offer.apy.toFixed(2)}%

-
-
-

Earned to date

-

- {formatAmountDisplay(offer.earnedToDate, offer.currency)} - - {' '}≈ ${stroopsToUsd(offer.earnedToDate, offer.currency).toFixed(2)} - -

-
-
-

Repayment

-

{pct}% repaid

-
-
-
- -

- {formatAmountDisplay(offer.amount_repaid, offer.currency)} repaid · {formatAmountDisplay(offer.remaining, offer.currency)} remaining ·{' '} - updated {relativeUpdate(offer.updatedAt)} -

-
- - )} -
-
- ); -} - export default function PortfolioPage() { - const { - positions, - loading, - error, - lastUpdatedAt, - refresh, - } = useLivePortfolio(); - - // Client-side pagination (issue #190): the contract layer still returns the - // full list; we slice it for rendering so a wallet with hundreds of - // positions stays smooth. Page size is user-adjustable, and each page is - // virtualized below so even 100-row pages only mount visible cards. - const [page, setPage] = useState(1); - const [pageSize, setPageSize] = useState(10); + const [offers, setOffers] = useState([]); + const [loading, setLoading] = useState(true); + // null = not yet fetched (loading), number = fetched result, 'error' = failed + const [fractionalCount, setFractionalCount] = useState(null); - // Keep the current page valid when the stream shrinks (e.g. repayments move - // positions between buckets or the wallet changes). - const pageCount = Math.max(1, Math.ceil(positions.length / pageSize)); useEffect(() => { - setPage(p => Math.min(p, pageCount)); - }, [pageCount]); - - const pageItems = useMemo( - () => paginate(positions, page, pageSize), - [positions, page, pageSize], - ); - - // Virtualize the current page's rows. Every card uses `measureElement` so - // rows with different heights (active vs repaid) size correctly. - const scrollRef = useRef(null); - const virtualizer = useVirtualizer({ - count: pageItems.length, - getScrollElement: () => scrollRef.current, - estimateSize: () => 148, - overscan: 4, - // Placeholder height is overridden per-row by measureElement below. + supabase.auth.getUser().then(async ({ data }: { data: { user: SupabaseUser | null } }) => { + const { user } = data; + if (!user) { + setLoading(false); + return; + } + const { data: offersData } = await supabase + .from('financing_offers') + .select('*, invoice:invoices(*)') + .eq('lender_id', user.id) + .order('created_at', { ascending: false }); + const rows = (offersData as unknown as FinancingOffer[]) ?? []; + setOffers(rows.map(o => ({ + ...o, + amount: toStroopsBigInt(o.amount), + amount_repaid: toStroopsBigInt(o.amount_repaid), + }))); + // Fractional positions count — set to 0 on success, leave null on error + try { + const fp = await fetchFractionalPositions(user.id); + setFractionalCount(fp.length); + } catch { /* non-fatal — panel stays hidden while null */ } + setLoading(false); }); +}, []); // An offer is active while it is financing an invoice: from acceptance until // it is fully repaid. Partial repayments flip offers to Financed on-chain, // so both statuses count as deployed capital. - const active = positions.filter(o => o.status === 'Accepted' || o.status === 'Financed'); - const repaid = positions.filter(o => o.status === 'Repaid'); - const pending = positions.filter(o => o.status === 'Pending'); - - const totalValueUsd = active.reduce((sum, o) => sum + o.liveValueUsd, 0); + const active = offers.filter(o => o.status === 'Accepted' || o.status === 'Financed'); + const repaid = offers.filter(o => o.status === 'Repaid'); + const pending = offers.filter(o => o.status === 'Pending'); - // Per-currency subtotals (issue #182): portfolios mix XLM and USDC, so show - // each currency's own total plus the USD-equivalent grand total above. All - // conversions use the cached reference rate — never a live oracle — so the - // card is labeled approximate with the rate source and as-of time. - const currencyTotalsUsd = useMemo(() => { - const buckets = new Map(); - for (const o of active) { - buckets.set(o.currency, (buckets.get(o.currency) ?? 0) + o.liveValueUsd); - } - return Array.from(buckets.entries()).sort((a, b) => b[1] - a[1]); - }, [active]); - const xlmUsdInfo = getXlmUsdInfo(); - const totalEarnedToDateUsd = active.reduce( - (sum, o) => sum + stroopsToUsd(o.earnedToDate, o.currency), - 0, - ); - // Repaid positions may be in different currencies — never sum raw yields as - // if they were the same asset. Convert each to USD first. + const totalDeployed = active.reduce((sum, o) => sum + Number(o.amount) / STROOPS_PER_XLM, 0); const totalEarned = repaid.reduce((sum, o) => { - const yield_ = o.totalDue - o.amount; - return sum + stroopsToUsd(yield_, o.currency); + const principal = Number(o.amount) / STROOPS_PER_XLM; + const yield_ = principal * (o.interest_rate / 10000); + return sum + yield_; }, 0); const exportOffersCsv = () => { - const rows = positions.map(o => ({ + const rows = offers.map(o => ({ ...o, amount: Number(o.amount) / STROOPS_PER_XLM, - amount_repaid: Number(o.amount_repaid) / STROOPS_PER_XLM, funded_at: o.funded_at > 0 ? new Date(o.funded_at * 1000).toISOString().slice(0, 10) : '', })); const csv = toCsv(rows, [ @@ -458,38 +346,20 @@ export default function PortfolioPage() { return (
-
+

Your Portfolio

-

- Track your financing offers and returns — updates stream in live - {lastUpdatedAt - ? · updated {relativeUpdate(lastUpdatedAt)} - : null} -

+

Track your financing offers and returns

-
- - - {positions.length > 0 && ( - - )} -
+ )}
- {error && ( -
- -

{error}

-
- )} - {/* Summary stats */} -
+
@@ -513,54 +383,43 @@ export default function PortfolioPage() { - -

${totalValueUsd.toFixed(2)}

-

≈ Portfolio Value (USD)

- {currencyTotalsUsd.length > 0 && ( -
    - {currencyTotalsUsd.map(([currency, usd]) => ( -
  • - {currency} - ≈ ${usd.toFixed(2)} -
  • - ))} -
- )} -

- XLM/USD {xlmUsdInfo.price.toFixed(4)}{' '} - {xlmUsdInfo.source === 'coingecko' - ? '(CoinGecko)' - : xlmUsdInfo.source === 'env' - ? '(env override)' - : '(default)'} - {xlmUsdInfo.updatedAt > 0 - ? ` · as of ${new Date(xlmUsdInfo.updatedAt).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}` - : ''}{' '} - — approximate -

+ +

{totalDeployed.toFixed(2)}

+

Total Deployed

- {/* Live earnings strip */} - {(active.length > 0 || repaid.length > 0) && ( -
- -
+ {/* Fractional positions summary + link + Rendered only after a successful fetch (fractionalCount !== null). + While loading (null) the panel is hidden so the UI never shows a + misleading "0 fractional positions" count. */} + {fractionalCount !== null && ( +
+
+
-

- Est. yield earned to date: ${totalEarnedToDateUsd.toFixed(2)} +

+ {fractionalCount} fractional position{fractionalCount !== 1 ? 's' : ''}

-

Accruing in real time across {active.length} active position{active.length !== 1 ? 's' : ''}

+

Invoice fraction tokens you hold

- {repaid.length > 0 && ( -
-

- Realized yield: ${totalEarned.toFixed(2)} USD -

-

Across {repaid.length} repaid offer{repaid.length !== 1 ? 's' : ''}

-
- )} +
+ + View fractions → + +
+ )} + + {/* Extra earned stat */} + {repaid.length > 0 && ( +
+ +
+

+ Est. yield earned: {totalEarned.toFixed(4)} (across {repaid.length} repaid offer{repaid.length !== 1 ? 's' : ''}) +

+

Based on agreed interest rates

)} @@ -569,7 +428,7 @@ export default function PortfolioPage() { {loading && } {/* Empty state */} - {!loading && positions.length === 0 && ( + {!loading && offers.length === 0 && (

No financing offers yet.

@@ -583,53 +442,52 @@ export default function PortfolioPage() { )}
- {pageItems.length === 0 ? ( -
- No positions on this page. -
- ) : ( -
-
- {virtualizer.getVirtualItems().map(vi => ( -
- + {offers.map(offer => { + const Icon = STATUS_ICONS[offer.status] ?? Clock; + return ( + + +
+ +
+
+ + + ↗ + +
+

+ {interestRateLabel(offer.interest_rate)} · {durationLabel(offer.duration)} + {offer.funded_at > 0 && ` · Funded ${formatDate(offer.funded_at)}`} +

+ {(offer.status === 'Accepted' || offer.status === 'Financed') && + toStroopsBigInt(offer.amount_repaid) > 0n && ( +

+ {formatAmount(toStroopsBigInt(offer.amount_repaid))} repaid ·{' '} + {formatAmount(offerTotalDue(offer) - toStroopsBigInt(offer.amount_repaid))} remaining +

+ )} +
- ))} -
-
- )} +
+
+

+ {formatAmount(offer.amount)} {offer.currency} +

+
+ {offer.status} +
+ + + ); + })}
- {/* Pagination controls (issue #190) */} - {!loading && positions.length > 0 && ( - { - setPageSize(size); - setPage(1); - }} - /> - )} - {/* useSearchParams (the listing hand-off prefill) needs a Suspense boundary. */} @@ -637,4 +495,4 @@ export default function PortfolioPage() {
); -} \ No newline at end of file +} diff --git a/invofi/apps/frontend/src/app/securitize/[invoiceId]/page.tsx b/invofi/apps/frontend/src/app/securitize/[invoiceId]/page.tsx new file mode 100644 index 00000000..51de63b3 --- /dev/null +++ b/invofi/apps/frontend/src/app/securitize/[invoiceId]/page.tsx @@ -0,0 +1,288 @@ +'use client'; + +import { useEffect, useState } from 'react'; +import { useRouter, useParams } from 'next/navigation'; +import Link from 'next/link'; +import { AlertCircle, AlertTriangle, ArrowLeft, Loader2 } from 'lucide-react'; + +import { AuthGuard } from '@/components/auth/AuthGuard'; +import { FractionalizationWizard } from '@/components/securitization/FractionalizationWizard'; +import { PriceHistoryChart } from '@/components/securitization/PriceHistoryChart'; +import { DividendTracker } from '@/components/securitization/DividendTracker'; +import { Button } from '@/components/ui/button'; +import { Badge } from '@/components/ui/badge'; +import { supabase } from '@/lib/supabase'; +import { + fetchFractionalizationRecord, + fetchPriceHistory, + cancelFractionalization, +} from '@/lib/securitization'; +import { formatAmount, INVOICE_STATUS_COLORS } from '@/lib/utils'; +import { useToast } from '@/components/ui/use-toast'; +import type { Invoice } from '@/types'; +import type { FractionalizationRecord, PriceHistoryPoint } from '@/types/securitization'; + +export default function SecuritizePage() { + const params = useParams<{ invoiceId: string }>(); + const router = useRouter(); + const { toast } = useToast(); + + const [invoice, setInvoice] = useState(null); + const [record, setRecord] = useState(null); + const [priceHistory, setPriceHistory] = useState([]); + const [userId, setUserId] = useState(null); + const [walletAddress, setWalletAddress] = useState(null); + const [loading, setLoading] = useState(true); + const [loadError, setLoadError] = useState(null); + const [cancelling, setCancelling] = useState(false); + const [authError, setAuthError] = useState(false); + + const invoiceId = params?.invoiceId ?? ''; + + useEffect(() => { + if (!invoiceId) return; + + let cancelled = false; + + (async () => { + setLoading(true); + setLoadError(null); + setAuthError(false); + try { + // Auth check + const { data: { user } } = await supabase.auth.getUser(); + if (!user || cancelled) { return; } + setUserId(user.id); + + // Profile wallet + const { data: profile } = await supabase + .from('user_profiles') + .select('wallet_address') + .eq('id', user.id) + .maybeSingle(); + const wallet = (profile as { wallet_address: string | null } | null)?.wallet_address ?? null; + if (!cancelled) setWalletAddress(wallet); + + // Fetch invoice + const { data: invData, error: invErr } = await supabase + .from('invoices') + .select('*') + .eq('id', invoiceId) + .single(); + + if (invErr || !invData) { + if (!cancelled) setLoadError(invErr?.message ?? 'Invoice not found'); + return; + } + + const inv = invData as Invoice; + + // Only the originator may access this page + if ((invData as { originator_id?: string }).originator_id !== user.id) { + if (!cancelled) setAuthError(true); + return; + } + + if (!cancelled) setInvoice(inv); + + // Existing fractionalization? + const existing = await fetchFractionalizationRecord(invoiceId); + if (cancelled) return; + setRecord(existing); + + if (existing) { + const ph = await fetchPriceHistory(existing.id); + if (!cancelled) setPriceHistory(ph); + } + } catch (err) { + if (!cancelled) { + setLoadError(err instanceof Error ? err.message : 'Failed to load invoice'); + } + } finally { + if (!cancelled) setLoading(false); + } + })(); + + return () => { cancelled = true; }; + }, [invoiceId]); + + const handleComplete = async (newRecord: FractionalizationRecord) => { + setRecord(newRecord); + try { + const ph = await fetchPriceHistory(newRecord.id); + setPriceHistory(ph); + } catch { /* price history is supplementary */ } + }; + + const handleCancel = async () => { + if (!record) return; + setCancelling(true); + try { + await cancelFractionalization(record.id); + setRecord(prev => prev ? { ...prev, status: 'cancelled' } : prev); + toast({ title: 'Fractionalization cancelled', description: 'No new purchases can be made.' }); + } catch (err) { + toast({ + title: 'Cancel failed', + description: err instanceof Error ? err.message : 'Could not cancel', + variant: 'destructive', + }); + } finally { + setCancelling(false); + } + }; + + // ── Render ────────────────────────────────────────────────────────────────── + + return ( + +
+ {/* Back */} + + + {invoice ? `Invoice ${invoice.id}` : 'Dashboard'} + + + {/* Loading */} + {loading && ( +
+ + Loading invoice… +
+ )} + + {/* Load error */} + {!loading && loadError && ( +
+ +
+

Failed to load invoice

+

{loadError}

+
+
+ )} + + {/* Auth error */} + {!loading && authError && ( +
+ +
+

Access denied

+

+ Only the invoice originator can fractionalize this invoice. +

+
+
+ )} + + {/* Invoice not found (no error but no invoice) */} + {!loading && !authError && !loadError && !invoice && ( +

Invoice not found.

+ )} + + {/* Main content */} + {!loading && !authError && !loadError && invoice && ( + <> + {/* Invoice summary */} +
+
+

Securitize Invoice

+

{invoice.id}

+
+
+

+ {formatAmount(invoice.amount)} {invoice.currency} +

+ {invoice.status} +
+
+ + {/* Active fractionalization banner */} + {record && record.status !== 'cancelled' && ( +
+
+
+

+ {record.token_symbol} · {record.total_fractions.toLocaleString()} fractions +

+

+ {record.available_fractions.toLocaleString()} available ·{' '} + {record.price_per_fraction} {record.price_currency} each +

+
+
+ + {record.status} + + {record.status === 'active' && ( + + )} +
+
+ + {/* Price history chart */} + {priceHistory.length > 0 && ( + + )} + + {/* Dividend tracker */} + {userId && ( + + )} +
+ )} + + {/* Wizard — only show if no active/sold_out fractionalization */} + {(!record || record.status === 'cancelled') && userId && walletAddress && ( + router.push('/marketplace/fractions')} + /> + )} + + {(!record || record.status === 'cancelled') && (!userId || !walletAddress) && ( +
+ Link a Stellar wallet in{' '} + settings{' '} + before fractionalizing — buyers need your on-chain address. +
+ )} + + )} +
+
+ ); +} diff --git a/invofi/apps/frontend/src/components/marketplace/MarketplaceTabs.tsx b/invofi/apps/frontend/src/components/marketplace/MarketplaceTabs.tsx index acfd13de..3cab6887 100644 --- a/invofi/apps/frontend/src/components/marketplace/MarketplaceTabs.tsx +++ b/invofi/apps/frontend/src/components/marketplace/MarketplaceTabs.tsx @@ -5,13 +5,16 @@ import { usePathname } from 'next/navigation'; import { cn } from '@/lib/utils'; const TABS = [ - { href: '/marketplace', label: 'Invoices' }, + { href: '/marketplace', label: 'Invoices' }, { href: '/marketplace/positions', label: 'Positions' }, + { href: '/marketplace/fractions', label: 'Fractions' }, ] as const; /** - * Switches between the two marketplace surfaces: invoices open for financing - * and the secondary-market board for position tokens (ADR-0004). + * Switches between the three marketplace surfaces: + * - Invoices: open for financing + * - Positions: secondary-market position-token board (ADR-0004) + * - Fractions: fractionalized invoice tokens available for purchase */ export function MarketplaceTabs() { const pathname = usePathname(); diff --git a/invofi/apps/frontend/src/components/securitization/DividendTracker.tsx b/invofi/apps/frontend/src/components/securitization/DividendTracker.tsx new file mode 100644 index 00000000..1d30a896 --- /dev/null +++ b/invofi/apps/frontend/src/components/securitization/DividendTracker.tsx @@ -0,0 +1,353 @@ +'use client'; + +/** + * DividendTracker + * + * Shows dividend distribution history for a fractionalization, including: + * - Per-event table (amount, per-fraction, status, date) + * - Summary: total distributed, total earned by this investor (if positionFractions provided) + * - Create dividend form for the originator + */ + +import { useCallback, useEffect, useState } from 'react'; +import { useForm } from 'react-hook-form'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { z } from 'zod'; +import { + BadgeDollarSign, + ChevronDown, + ChevronUp, + Loader2, + PlusCircle, +} from 'lucide-react'; + +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Badge } from '@/components/ui/badge'; +import { Card, CardContent } from '@/components/ui/card'; +import { useToast } from '@/components/ui/use-toast'; +import { fetchDividends, createDividend } from '@/lib/securitization'; +import { toStroopsBigInt } from '@/lib/utils'; +import type { DividendRecord, FractionalizationRecord } from '@/types/securitization'; +import type { Currency } from '@/types'; + +// ── Schema ──────────────────────────────────────────────────────────────────── + +const dividendSchema = z.object({ + totalAmount: z + .string() + .regex(/^\d+(\.\d{1,7})?$/, 'Enter a valid amount (e.g. 100.00)') + .refine(v => toStroopsBigInt(v) > 0n, 'Amount must be greater than zero'), + currency: z.enum(['XLM', 'USDC']), + note: z.string().max(200, 'Max 200 characters'), +}); + +type DividendFormValues = z.infer; + +// ── Status badge colours ────────────────────────────────────────────────────── + +const STATUS_STYLES: Record = { + pending: 'bg-yellow-50 text-yellow-700 border-yellow-200', + distributed: 'bg-green-50 text-green-700 border-green-200', + cancelled: 'bg-gray-50 text-gray-500 border-gray-200', +}; + +// ── Create dividend form (originator only) ──────────────────────────────────── + +interface CreateDividendFormProps { + record: FractionalizationRecord; + originatorId: string; + onCreated: (d: DividendRecord) => void; +} + +function CreateDividendForm({ record, originatorId, onCreated }: CreateDividendFormProps) { + const { toast } = useToast(); + const [open, setOpen] = useState(false); + const [submitting, setSubmitting] = useState(false); + + const { + register, + handleSubmit, + reset, + watch, + formState: { errors }, + } = useForm({ + resolver: zodResolver(dividendSchema), + defaultValues: { totalAmount: '', currency: record.price_currency, note: '' }, + }); + + const totalAmount = watch('totalAmount') || '0'; + const currency = watch('currency'); + + let perFraction = '0'; + try { + const stroops = Number(toStroopsBigInt(totalAmount)); + perFraction = (stroops / record.total_fractions / 1e7).toFixed(7); + } catch { /* ignore */ } + + const onSubmit = async (values: DividendFormValues) => { + setSubmitting(true); + try { + const div = await createDividend( + record.id, + originatorId, + values.totalAmount, + values.currency as Currency, + record.total_fractions, + values.note, + ); + toast({ + title: 'Dividend distributed', + description: `${values.totalAmount} ${values.currency} distributed to ${record.total_fractions.toLocaleString()} fraction holders.`, + }); + reset({ totalAmount: '', currency: record.price_currency, note: '' }); + setOpen(false); + onCreated(div); + } catch (err) { + const msg = err instanceof Error ? err.message : 'Could not create dividend'; + toast({ title: 'Distribution failed', description: msg, variant: 'destructive' }); + } finally { + setSubmitting(false); + } + }; + + return ( +
+ + + {open && ( +
+
+
+ + + {errors.totalAmount && ( +

{errors.totalAmount.message}

+ )} +
+
+ + +
+
+ + {Number(perFraction) > 0 && ( +

+ Per fraction:{' '} + + {perFraction} {currency} + {' '} + × {record.total_fractions.toLocaleString()} holders +

+ )} + +
+ + +
+ +
+ + +
+
+ )} +
+ ); +} + +// ── Main component ──────────────────────────────────────────────────────────── + +interface DividendTrackerProps { + record: FractionalizationRecord; + /** If provided, shows this investor's pro-rata earnings. */ + positionFractions?: number; + /** If the current user is the originator, show the create-dividend form. */ + isOriginator?: boolean; + originatorId?: string; + className?: string; +} + +export function DividendTracker({ + record, + positionFractions, + isOriginator = false, + originatorId, + className, +}: DividendTrackerProps) { + const [dividends, setDividends] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + const load = useCallback(async () => { + setLoading(true); + try { + setDividends(await fetchDividends(record.id)); + } catch { + setError('Could not load dividend history'); + } finally { + setLoading(false); + } + }, [record.id]); + + useEffect(() => { load(); }, [load]); + + const distributed = dividends.filter(d => d.status === 'distributed'); + + // Total distributed in stroops (simple sum) + const totalDistributedStroops = distributed.reduce( + (sum, d) => sum + Number(toStroopsBigInt(d.total_amount)), + 0, + ); + + // Investor's total earned + const myEarnedStroops = positionFractions + ? distributed.reduce( + (sum, d) => sum + Number(toStroopsBigInt(d.per_fraction_amount)) * positionFractions, + 0, + ) + : null; + + return ( +
+
+ +

Dividend history

+
+ + {/* Summary */} +
+
+

Total distributed

+

+ {(totalDistributedStroops / 1e7).toFixed(2)}{' '} + + {dividends[0]?.currency ?? record.price_currency} + +

+

{distributed.length} event{distributed.length !== 1 ? 's' : ''}

+
+ {myEarnedStroops !== null && ( +
+

Your earnings

+

+ {(myEarnedStroops / 1e7).toFixed(4)}{' '} + {dividends[0]?.currency ?? record.price_currency} +

+

{positionFractions} fraction{positionFractions !== 1 ? 's' : ''} held

+
+ )} +
+ + {/* Table */} + {loading && ( +
+ + Loading dividend history… +
+ )} + + {!loading && error && ( +

{error}

+ )} + + {!loading && !error && dividends.length === 0 && ( +

No dividends distributed yet.

+ )} + + {!loading && dividends.length > 0 && ( +
+ + + + + + + {positionFractions && ( + + )} + + + + + {dividends.map(d => { + const myShare = positionFractions + ? (Number(toStroopsBigInt(d.per_fraction_amount)) * positionFractions) / 1e7 + : null; + return ( + + + + + {myShare !== null && ( + + )} + + + ); + })} + +
DateTotalPer fractionYour shareStatus
+ {d.distributed_at + ? new Date(d.distributed_at).toLocaleDateString() + : new Date(d.created_at).toLocaleDateString()} + {d.note && ( + · {d.note.slice(0, 20)}{d.note.length > 20 ? '…' : ''} + )} + + {d.total_amount} {d.currency} + + {d.per_fraction_amount} + + {myShare.toFixed(4)} + + + {d.status} + +
+
+ )} + + {/* Originator: create new dividend */} + {isOriginator && originatorId && ( + setDividends(prev => [div, ...prev])} + /> + )} +
+ ); +} diff --git a/invofi/apps/frontend/src/components/securitization/FractionalPositionCard.tsx b/invofi/apps/frontend/src/components/securitization/FractionalPositionCard.tsx new file mode 100644 index 00000000..f26558ea --- /dev/null +++ b/invofi/apps/frontend/src/components/securitization/FractionalPositionCard.tsx @@ -0,0 +1,153 @@ +'use client'; + +/** + * FractionalPositionCard + * + * Portfolio card for a single fractional position. + * Displays: + * - Token symbol + name + * - Fractions held and ownership % + * - Current estimated value + * - Dividends earned + * - Link to the source invoice + * - Link to the secondary market to list + */ + +import Link from 'next/link'; +import { + ArrowUpRight, + BadgeDollarSign, + ChartLine, + Layers, + Tag, +} from 'lucide-react'; + +import { Card, CardContent } from '@/components/ui/card'; +import { Badge } from '@/components/ui/badge'; +import { Button } from '@/components/ui/button'; +import { cn } from '@/lib/utils'; +import type { FractionalPositionView } from '@/types/securitization'; + +interface FractionalPositionCardProps { + view: FractionalPositionView; + className?: string; +} + +export function FractionalPositionCard({ view, className }: FractionalPositionCardProps) { + const { position, record, currentValue, totalDividendsEarned, ownershipPercent } = view; + + const statusStyles: Record = { + active: 'bg-green-50 text-green-700 border-green-200', + sold_out: 'bg-gray-50 text-gray-500 border-gray-200', + cancelled:'bg-red-50 text-red-700 border-red-200', + }; + + return ( + + + + {/* Header */} +
+
+
+ + + {record?.token_symbol ?? '—'} + +
+

+ {record?.token_name ?? ''} +

+
+ + {record?.status ?? 'active'} + +
+ + {/* Stats grid */} +
+
+
+ + Fractions +
+

+ {position.fraction_count.toLocaleString()} +

+

+ {ownershipPercent.toFixed(2)}% of supply +

+
+ +
+
+ + Est. value +
+

+ {parseFloat(currentValue).toFixed(2)} +

+

+ {position.purchase_currency} +

+
+ +
+
+ + Dividends +
+

+ {parseFloat(totalDividendsEarned).toFixed(4)} +

+

+ {position.purchase_currency} earned +

+
+ +
+ Purchase price +

+ {parseFloat(position.purchase_price_per_fraction).toFixed(4)} +

+

+ {position.purchase_currency} / fraction +

+
+
+ + {/* Invoice link */} + {record?.invoice_id && ( +

+ Invoice:{' '} + + {record.invoice_id} + +

+ )} + + {/* Actions */} +
+ {record?.invoice_id && ( + + )} + +
+
+
+ ); +} diff --git a/invofi/apps/frontend/src/components/securitization/FractionalizationWizard.tsx b/invofi/apps/frontend/src/components/securitization/FractionalizationWizard.tsx new file mode 100644 index 00000000..4a37afcd --- /dev/null +++ b/invofi/apps/frontend/src/components/securitization/FractionalizationWizard.tsx @@ -0,0 +1,451 @@ +'use client'; + +/** + * FractionalizationWizard + * + * Three-step flow for invoice owners to split their invoice into N position + * fraction tokens: + * + * Step 1 — Configure: set N, token metadata, description + * Step 2 — Review: economics summary (price derived, not user-editable), + * confirm before writing + * Step 3 — Done: success state with share link and next actions + * + * The `pricePerFraction` is **derived** as + * `floor(invoice.amount / totalFractions)` using bigint truncating division so + * `pricePerFraction × totalFractions ≤ invoice.amount` — the fractionalization + * never over-promises value. + * + * `createFractionalization()` atomically inserts the record and seeds the first + * price-history point. If the price-history write fails it rolls back the + * record so the caller can retry cleanly. + */ + +import { useCallback, useState } from 'react'; +import { useForm } from 'react-hook-form'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { z } from 'zod'; +import { + ArrowLeft, + ArrowRight, + Check, + Loader2, + Scissors, + Tag, +} from 'lucide-react'; + +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Card, CardContent } from '@/components/ui/card'; +import { useToast } from '@/components/ui/use-toast'; +import { + createFractionalization, + computeTotalCost, + derivePerFractionPrice, +} from '@/lib/securitization'; +import { formatAmount } from '@/lib/utils'; +import type { FractionalizationRecord } from '@/types/securitization'; +import type { Invoice } from '@/types'; + +// ── Wizard-local form schema ────────────────────────────────────────────────── +// pricePerFraction is derived, not user-editable. + +const wizardSchema = z.object({ + totalFractions: z + .number({ invalid_type_error: 'Enter a whole number' }) + .int('Must be a whole number') + .min(2, 'Minimum 2 fractions') + .max(1_000_000, 'Maximum 1 000 000 fractions'), + tokenSymbol: z + .string() + .min(3, 'At least 3 characters') + .max(12, 'Max 12 characters') + .regex(/^[A-Z0-9-]+$/, 'Uppercase letters, digits, and hyphens only'), + tokenName: z.string().min(3, 'At least 3 characters').max(64, 'Max 64 characters'), + description: z.string().max(500, 'Max 500 characters'), +}); + +type WizardDraft = z.infer; + +// ── Sub-components ──────────────────────────────────────────────────────────── + +/** Animated step indicator for the 3-step wizard. */ +interface StepIndicatorProps { + current: number; + total: number; +} + +function StepIndicator({ current, total }: StepIndicatorProps) { + return ( +
+ {Array.from({ length: total }, (_, i) => { + const step = i + 1; + const done = step < current; + const active = step === current; + return ( +
+
+ {done ? : step} +
+ {i < total - 1 && ( +
+ )} +
+ ); + })} +
+ ); +} + +function FieldError({ message }: { message?: string }) { + if (!message) return null; + return

{message}

; +} + +// ── Step 1: Configure ───────────────────────────────────────────────────────── + +interface Step1Props { + invoice: Invoice; + onNext: (data: WizardDraft) => void; + defaultValues?: Partial; +} + +function Step1Configure({ invoice, onNext, defaultValues }: Step1Props) { + const { + register, + handleSubmit, + watch, + formState: { errors }, + } = useForm({ + resolver: zodResolver(wizardSchema), + defaultValues: { + totalFractions: defaultValues?.totalFractions ?? 100, + tokenSymbol: defaultValues?.tokenSymbol ?? `INV-${invoice.id.toUpperCase().slice(-4)}-FRAC`, + tokenName: defaultValues?.tokenName ?? `Invoice ${invoice.id} Fraction`, + description: defaultValues?.description ?? '', + }, + }); + + const totalFractions = watch('totalFractions') || 0; + + // Derive price from invoice amount — display only, not editable + let derivedPrice = ''; + let derivedTotalValue = ''; + try { + if (Number.isInteger(totalFractions) && totalFractions >= 2) { + derivedPrice = derivePerFractionPrice(invoice.amount as unknown as string, totalFractions); + derivedTotalValue = computeTotalCost(derivedPrice, totalFractions); + } + } catch { /* not yet valid */ } + + return ( +
+
+ Fractionalizing invoice{' '} + {invoice.id} + {' '}· {formatAmount(invoice.amount)} {invoice.currency} +
+ +
+ + + +
+ + {/* Derived economics — read-only display */} + {derivedPrice && ( +
+

+ Price / fraction: + + {derivedPrice} {invoice.currency} + +

+

+ Total sale value: + + {derivedTotalValue} {invoice.currency} + +

+

+ Price is derived from the invoice amount to prevent over-promising. +

+
+ )} + +
+
+ + + +
+
+ + + +
+
+ +
+ +