diff --git a/config/wallet-config.json b/config/wallet-config.json index e04bdddd932..8cba9fa5566 100644 --- a/config/wallet-config.json +++ b/config/wallet-config.json @@ -91,5 +91,22 @@ }, "recoverUninscribedTaprootUtxosFeatureEnabled": true, "runesEnabled": true, - "swapsEnabled": true + "swapsEnabled": true, + "tokensEnabledByDefault": [ + "DOGGOTOTHEMOON", + "RSICGENESISRUNE", + "PUPSWORLDPEACE", + "UNCOMMONGOODS", + "SP3NE50GEXFG9SZGTT51P40X2CKYSZ5CC4ZTZ7A2G.welshcorgicoin-token::welshcorgicoin", + "SP1AY6K3PQV5MRT6R4S671NWW2FRVPKM0BR162CT6.leo-token::leo", + "SP466FNC0P7JWTNM2R9T199QRZN1MYEDTAR0KP27.miamicoin-token::miamicoin", + "SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc::aeusdc", + "SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK.token-abtc::bridged-btc", + "SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK.token-susdt::bridged-usdt", + "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex::alex", + "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.token-lqstx::lqstx", + "SP1Y5YSTAHZ88XYK1VPDH24GY0HPX5J4JECTMY4A1.velar-token::velar", + "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.ststx-token::ststx", + "SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.arkadiko-token::diko" + ] } diff --git a/package.json b/package.json index 4b67bf7874c..9259591f6f3 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,7 @@ "@leather.io/constants": "0.12.1", "@leather.io/crypto": "1.6.2", "@leather.io/models": "0.17.0", - "@leather.io/query": "2.13.1", + "@leather.io/query": "2.14.1", "@leather.io/stacks": "1.1.5", "@leather.io/tokens": "0.9.0", "@leather.io/ui": "1.27.1", @@ -222,7 +222,6 @@ "micro-packed": "0.3.2", "object-hash": "3.0.0", "os-browserify": "0.3.0", - "p-queue": "8.0.1", "pino": "8.19.0", "postcss-preset-env": "10.0.5", "prism-react-renderer": "2.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac2c7ea1aec..312a7234254 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ importers: version: 0.7.0(encoding@0.1.13) '@coinbase/cbpay-js': specifier: 2.1.0 - version: 2.1.0(regenerator-runtime@0.14.1) + version: 2.1.0(regenerator-runtime@0.13.11) '@fungible-systems/zone-file': specifier: 2.0.0 version: 2.0.0 @@ -51,8 +51,8 @@ importers: specifier: 0.17.0 version: 0.17.0 '@leather.io/query': - specifier: 2.13.1 - version: 2.13.1(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1) + specifier: 2.14.1 + version: 2.14.1(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1) '@leather.io/stacks': specifier: 1.1.5 version: 1.1.5(encoding@0.1.13) @@ -61,7 +61,7 @@ importers: version: 0.9.0 '@leather.io/ui': specifier: 1.27.1 - version: 1.27.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@emotion/is-prop-valid@1.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.10)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)) + version: 1.27.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@emotion/is-prop-valid@1.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.10)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)) '@leather.io/utils': specifier: 0.15.0 version: 0.15.0 @@ -281,9 +281,6 @@ importers: os-browserify: specifier: 0.3.0 version: 0.3.0 - p-queue: - specifier: 8.0.1 - version: 8.0.1 pino: specifier: 8.19.0 version: 8.19.0 @@ -328,7 +325,7 @@ importers: version: 1.2.4(react@18.3.1) react-qr-code: specifier: 2.0.12 - version: 2.0.12(react-native-svg@15.7.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react@18.3.1) + version: 2.0.12(react-native-svg@15.7.1(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react@18.3.1) react-redux: specifier: 9.1.2 version: 9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1) @@ -422,10 +419,10 @@ importers: version: 0.5.13(@types/webpack@5.28.5(@swc/core@1.7.18)(esbuild@0.24.0)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.94.0)))(react-refresh@0.14.2)(type-fest@4.26.1)(webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.94.0))(webpack-hot-middleware@2.26.1)(webpack@5.94.0(@swc/core@1.7.18)(esbuild@0.24.0)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.94.0))) '@redux-devtools/cli': specifier: 4.0.0 - version: 4.0.0(@babel/core@7.25.2)(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0)) + version: 4.0.0(@babel/core@7.25.7)(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0)) '@redux-devtools/remote': specifier: 0.9.3 - version: 0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.7)(redux@5.0.1) + version: 0.9.3(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(immutable@4.3.7)(redux@5.0.1) '@schemastore/web-manifest': specifier: 0.0.6 version: 0.0.6 @@ -2808,7 +2805,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {node: '>=0.10.0'} + engines: {'0': node >=0.10.0} '@expo/cli@0.18.28': resolution: {integrity: sha512-fvbVPId6s6etindzP6Nzos/CS1NurMVy4JKozjebArHr63tBid5i/UY5Pp+4wTCAM20gB2SjRdwcwoL6HFC4Iw==} @@ -3056,15 +3053,24 @@ packages: '@leather.io/bitcoin@0.13.2': resolution: {integrity: sha512-Hr5d9bykLGczYNl5HfFLpnE1OueUiAJrce6/8OGhB7lSdDNr2FRO+aNkW2vNUdIryx4wNW9D8SbxycH+d7V6nQ==} + '@leather.io/bitcoin@0.13.3': + resolution: {integrity: sha512-/++eoyx/y9WD3Vyvt4Ei8+De7EX6zw3gvTcK2V4Jse0ggGW3tRWZrUy6IGRxWs95AoiDRWFVR+rO0op1QvXlpw==} + '@leather.io/constants@0.10.0': resolution: {integrity: sha512-27hhcBMkojJSWpelFdq2sgvSQnsB1oo5yaI9k1AdGRjiYRnhpHN6rHtflZZa+6g+AutDaUuysOaUdY5JTtSuJQ==} '@leather.io/constants@0.12.1': resolution: {integrity: sha512-09VrMmzGCsjWRn8xzdxDWjmL+2aMsTbUIzdfkRUCVPgPiIz06LUmPoCEKDxr8wuDS40+mdRLHZ79a9oEFdWYAg==} + '@leather.io/constants@0.12.2': + resolution: {integrity: sha512-5RImb0CLRuivFYG3v6OAvOvsqwx0+ufhrDyyWzlHlDhrjyebIvb1PkGSIWBGkGu919zCU6WzdXKRz8SReAnPiA==} + '@leather.io/crypto@1.6.2': resolution: {integrity: sha512-GBJF0iWNCRBG2qFT6tIEOrDJdpCnscj5MJDMahPaPMUPGocWS9xTnU6Htk0iPvF3P8VboEUQjiGfaYfPzF9X6Q==} + '@leather.io/crypto@1.6.3': + resolution: {integrity: sha512-aaegu7texpEJ8iB7Fhh/052qhK8lSCUt4n3YS6iRxTfwaK2oSHjLsHiuUF0XLwjRArHcwm5LPzEcMcusabnjtg==} + '@leather.io/eslint-config@0.7.0': resolution: {integrity: sha512-4K7olfSC+mJnG90TSaLIlytp14yDprGXwe1+oP9TLQbuPFpJai3/+g5Bp/FeUC4NZ23UVbAlGXFCav2amBb77w==} @@ -3080,8 +3086,8 @@ packages: '@leather.io/prettier-config@0.6.0': resolution: {integrity: sha512-QBKtLanfxFxXBlR58U/j8a6lBI0xzJzqqi36fXpGVp+9mJoEf6Ro6xrtFrixjW6seY6EOva4OApVnnPBsvOC/w==} - '@leather.io/query@2.13.1': - resolution: {integrity: sha512-gSKnq3hue+I6xdynusa/nZju9TwqU3HHqTtDLz3qiTAz7fc6ttbb/3IDQPI2C5ZZGRmdXABzYlaI3vSIWIdB4Q==} + '@leather.io/query@2.14.1': + resolution: {integrity: sha512-oXcyEz2I9oS0pWWv88b4P95rOzXwJrkl7HPiiXKDriT7/NDMs01FEAjbFSqEAh5GB1pD9J5QwJOPNUI5MeghzA==} peerDependencies: react: '*' @@ -3106,6 +3112,9 @@ packages: '@leather.io/utils@0.16.2': resolution: {integrity: sha512-TPdvGrbRdNKMOq9IHSo4aYVTJjV3osv0Ao7PUHGKS3qdtnQzgOjU8gqGhZ6NBixknki1zS2dCMqIH+pLB3O+jg==} + '@leather.io/utils@0.16.3': + resolution: {integrity: sha512-6W1QDeQK+qVMp5n1yp77ddYRozHMsPRTqr1rxFmLc7mrBdozBiQlz82VRi6DBgF47Q32YI83EfxgBSGLi5es4g==} + '@ledgerhq/devices@8.4.2': resolution: {integrity: sha512-oWNTp3jCMaEvRHsXNYE/yo+PFMgXAJGFHLOU1UdE4/fYkniHbD9wdxwyZrZvrxr9hNw4/9wHiThyITwPtMzG7g==} @@ -15938,22 +15947,22 @@ snapshots: '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.7) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/traverse': 7.25.4(supports-color@5.5.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.25.7(@babel/core@7.25.2)': + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.25.7 - '@babel/helper-member-expression-to-functions': 7.25.7 - '@babel/helper-optimise-call-expression': 7.25.7 - '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.25.4(supports-color@5.5.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -15971,23 +15980,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': + '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.24.7 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.25.2)': + '@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.25.7 regexpu-core: 6.1.1 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 debug: 4.3.6(supports-color@5.5.0) @@ -16047,13 +16056,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.25.7 - '@babel/helper-simple-access': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -16079,42 +16088,33 @@ snapshots: '@babel/helper-plugin-utils@7.25.7': {} - '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': + '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-wrap-function': 7.25.0 '@babel/traverse': 7.25.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@babel/helper-remap-async-to-generator@7.25.7(@babel/core@7.25.2)': + '@babel/helper-remap-async-to-generator@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.25.7 '@babel/helper-wrap-function': 7.25.7 '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': + '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 '@babel/traverse': 7.25.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-member-expression-to-functions': 7.25.7 - '@babel/helper-optimise-call-expression': 7.25.7 - '@babel/traverse': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-replace-supers@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -16228,56 +16228,48 @@ snapshots: dependencies: '@babel/types': 7.25.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/traverse': 7.25.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/traverse': 7.25.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.25.2)': + '@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) transitivePeerDependencies: - supports-color @@ -16289,32 +16281,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-proposal-decorators@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-decorators': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-syntax-decorators': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-export-default-from@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-proposal-export-default-from@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.2) - - '@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.25.2)': + '@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.25.7)': dependencies: @@ -16322,35 +16308,26 @@ snapshots: '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.25.2)': + '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.25.2)': + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.25.7)': dependencies: '@babel/compat-data': 7.25.7 - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.25.2)': + '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.25.7)': dependencies: @@ -16361,43 +16338,43 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-decorators@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-decorators@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-default-from@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-export-default-from@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': @@ -16405,34 +16382,29 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow@7.25.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-flow@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': @@ -16440,24 +16412,19 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.25.7 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.7)': @@ -16465,24 +16432,19 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.7)': @@ -16490,14 +16452,14 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': @@ -16505,180 +16467,183 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-arrow-functions@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-arrow-functions@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) '@babel/traverse': 7.25.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-async-to-generator@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-module-imports': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.2) + '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-block-scoping@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-block-scoping@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.7) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.7)': + dependencies: + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.7) '@babel/traverse': 7.25.4(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-classes@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.25.7 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.2) + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.7) '@babel/traverse': 7.25.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/template': 7.25.0 - '@babel/plugin-transform-computed-properties@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-computed-properties@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/template': 7.25.7 - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': + '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-destructuring@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-destructuring@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-export-namespace-from@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-export-namespace-from@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.7) '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.25.2)': dependencies: @@ -16686,75 +16651,69 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types@7.25.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': + '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/traverse': 7.25.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-function-name@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': + '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-literals@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -16762,18 +16721,18 @@ snapshots: '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-simple-access': 7.25.7 + '@babel/core': 7.25.7 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: - supports-color @@ -16786,156 +16745,179 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 '@babel/traverse': 7.25.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-named-capturing-groups-regex@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-named-capturing-groups-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-nullish-coalescing-operator@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + + '@babel/plugin-transform-nullish-coalescing-operator@7.25.7(@babel/core@7.25.7)': + dependencies: + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.7) - '@babel/plugin-transform-object-rest-spread@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-object-rest-spread@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-chaining@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-chaining@7.25.7(@babel/core@7.25.7)': + dependencies: + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-parameters@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-parameters@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-methods@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-methods@7.25.7(@babel/core@7.25.7)': + dependencies: + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-private-property-in-object@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.25.7 - '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-react-constant-elements@7.25.1(@babel/core@7.25.2)': @@ -16948,9 +16930,9 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-display-name@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-display-name@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.25.2)': @@ -16960,21 +16942,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-development@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-development@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-self@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-source@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-source@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)': @@ -16988,13 +16970,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.25.7 '@babel/helper-module-imports': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color @@ -17005,84 +16987,84 @@ snapshots: '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-pure-annotations@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-pure-annotations@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-annotate-as-pure': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-runtime@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-runtime@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-module-imports': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.7) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-shorthand-properties@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-shorthand-properties@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-spread@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-spread@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-sticky-regex@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-sticky-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-template-literals@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-template-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': + '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)': @@ -17096,17 +17078,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.25.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.25.7 - '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 - '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-typescript@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -17118,33 +17089,33 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-regex@7.25.7(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.24.8 '@babel/preset-env@7.25.4(@babel/core@7.25.2)': @@ -17154,83 +17125,172 @@ snapshots: '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-generator-functions': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-sets-regex': 7.25.4(@babel/core@7.25.2) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.7) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-async-generator-functions': 7.25.4(@babel/core@7.25.7) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.7) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.7) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.7) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.7) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.7) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.7) + '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.7) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-sets-regex': 7.25.4(@babel/core@7.25.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.7) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.7) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.7) + core-js-compat: 3.38.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-env@7.25.4(@babel/core@7.25.7)': + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/core': 7.25.7 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.7) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-async-generator-functions': 7.25.4(@babel/core@7.25.7) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.7) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.7) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.7) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.7) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.7) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.7) + '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.7) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.7) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-sets-regex': 7.25.4(@babel/core@7.25.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.7) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.7) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.7) core-js-compat: 3.38.1 semver: 6.3.1 transitivePeerDependencies: @@ -17250,9 +17310,9 @@ snapshots: '@babel/helper-validator-option': 7.25.7 '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.7) - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/types': 7.25.4 esutils: 2.0.3 @@ -17269,15 +17329,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-react@7.25.7(@babel/core@7.25.2)': + '@babel/preset-react@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 '@babel/helper-validator-option': 7.25.7 - '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-development': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-pure-annotations': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-development': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-pure-annotations': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color @@ -17292,17 +17352,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.25.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-validator-option': 7.25.7 - '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/preset-typescript@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -17493,9 +17542,9 @@ snapshots: picocolors: 1.1.0 sisteransi: 1.0.5 - '@coinbase/cbpay-js@2.1.0(regenerator-runtime@0.14.1)': + '@coinbase/cbpay-js@2.1.0(regenerator-runtime@0.13.11)': optionalDependencies: - regenerator-runtime: 0.14.1 + regenerator-runtime: 0.13.11 '@cspotcode/source-map-support@0.8.1': dependencies: @@ -18513,22 +18562,22 @@ snapshots: '@gar/promisify@1.1.3': optional: true - '@gorhom/bottom-sheet@4.6.3(@types/react@18.3.10)(react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react-native-reanimated@3.10.1(@babel/core@7.25.2)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@gorhom/bottom-sheet@4.6.3(@types/react@18.3.10)(react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react-native-reanimated@3.10.1(@babel/core@7.25.7)(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: - '@gorhom/portal': 1.0.14(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@gorhom/portal': 1.0.14(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) invariant: 2.2.4 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) - react-native-gesture-handler: 2.20.0(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) - react-native-reanimated: 3.10.1(@babel/core@7.25.2)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native-gesture-handler: 2.20.0(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) + react-native-reanimated: 3.10.1(@babel/core@7.25.7)(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) optionalDependencies: '@types/react': 18.3.10 - '@gorhom/portal@1.0.14(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@gorhom/portal@1.0.14(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: nanoid: 3.3.4 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) '@graphql-tools/merge@8.4.2(graphql@16.9.0)': dependencies: @@ -18686,6 +18735,29 @@ snapshots: transitivePeerDependencies: - encoding + '@leather.io/bitcoin@0.13.3(encoding@0.1.13)': + dependencies: + '@bitcoinerlab/secp256k1': 1.0.2 + '@leather.io/constants': 0.12.2 + '@leather.io/crypto': 1.6.3 + '@leather.io/models': 0.17.0 + '@leather.io/utils': 0.16.3 + '@noble/hashes': 1.5.0 + '@noble/secp256k1': 2.1.0 + '@scure/base': 1.1.9 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + '@scure/btc-signer': 1.4.0 + '@stacks/common': 6.13.0 + '@stacks/transactions': 6.15.0(encoding@0.1.13) + bip32: 4.0.0 + bitcoinjs-lib: 6.1.5 + ecpair: 2.1.0 + just-memoize: 2.2.0 + varuint-bitcoin: 1.1.2 + transitivePeerDependencies: + - encoding + '@leather.io/constants@0.10.0': dependencies: '@leather.io/models': 0.14.0 @@ -18694,6 +18766,10 @@ snapshots: dependencies: '@leather.io/models': 0.17.0 + '@leather.io/constants@0.12.2': + dependencies: + '@leather.io/models': 0.17.0 + '@leather.io/crypto@1.6.2': dependencies: '@leather.io/utils': 0.16.2 @@ -18701,6 +18777,13 @@ snapshots: '@scure/bip39': 1.4.0 just-memoize: 2.2.0 + '@leather.io/crypto@1.6.3': + dependencies: + '@leather.io/utils': 0.16.3 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + just-memoize: 2.2.0 + '@leather.io/eslint-config@0.7.0(typescript@5.4.5)': dependencies: '@typescript-eslint/eslint-plugin': 6.9.0(@typescript-eslint/parser@6.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0)(typescript@5.4.5) @@ -18738,15 +18821,15 @@ snapshots: - '@vue/compiler-sfc' - supports-color - '@leather.io/query@2.13.1(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1)': + '@leather.io/query@2.14.1(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1)': dependencies: '@fungible-systems/zone-file': 2.0.0 '@hirosystems/token-metadata-api-client': 1.2.0(encoding@0.1.13) - '@leather.io/bitcoin': 0.13.2(encoding@0.1.13) - '@leather.io/constants': 0.12.1 + '@leather.io/bitcoin': 0.13.3(encoding@0.1.13) + '@leather.io/constants': 0.12.2 '@leather.io/models': 0.17.0 '@leather.io/rpc': 2.1.10 - '@leather.io/utils': 0.16.2 + '@leather.io/utils': 0.16.3 '@noble/hashes': 1.5.0 '@scure/base': 1.1.9 '@scure/bip32': 1.5.0 @@ -18795,10 +18878,10 @@ snapshots: '@leather.io/tokens@0.9.0': {} - '@leather.io/ui@1.27.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@emotion/is-prop-valid@1.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.10)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))': + '@leather.io/ui@1.27.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@emotion/is-prop-valid@1.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.10)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))': dependencies: '@expo/vector-icons': 14.0.0 - '@gorhom/bottom-sheet': 4.6.3(@types/react@18.3.10)(react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react-native-reanimated@3.10.1(@babel/core@7.25.2)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@gorhom/bottom-sheet': 4.6.3(@types/react@18.3.10)(react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react-native-reanimated@3.10.1(@babel/core@7.25.7)(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@leather.io/tokens': 0.9.0 '@leather.io/utils': 0.16.2 '@radix-ui/react-accessible-icon': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -18812,29 +18895,29 @@ snapshots: '@radix-ui/react-toast': 1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-native/assets-registry': 0.73.1 - '@react-native/metro-config': 0.73.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) - '@rnx-kit/metro-config': 1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@react-native/metro-config': 0.73.5(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) + '@rnx-kit/metro-config': 1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@rnx-kit/metro-resolver-symlinks': 0.1.35 - '@shopify/restyle': 2.4.2(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@shopify/restyle': 2.4.2(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) dompurify: 3.1.4 - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) - expo-asset: 10.0.6(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) - expo-blur: 13.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) - expo-constants: 16.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) - expo-font: 12.0.5(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) - expo-linear-gradient: 13.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) - expo-splash-screen: 0.27.4(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) + expo-asset: 10.0.6(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) + expo-blur: 13.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) + expo-constants: 16.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) + expo-font: 12.0.5(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) + expo-linear-gradient: 13.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) + expo-splash-screen: 0.27.4(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) framer-motion: 11.5.5(@emotion/is-prop-valid@1.3.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) metro-cache: 0.80.5 metro-config: 0.80.5(encoding@0.1.13) metro-resolver: 0.80.5 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) - react-native-reanimated: 3.10.1(@babel/core@7.25.2)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) - react-native-safe-area-context: 4.10.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) - react-native-svg: 15.2.0(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) - react-native-webview: 13.8.6(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native-reanimated: 3.10.1(@babel/core@7.25.7)(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) + react-native-safe-area-context: 4.10.1(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + react-native-svg: 15.2.0(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + react-native-webview: 13.8.6(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) use-events: 1.4.2(react@18.2.0) transitivePeerDependencies: - '@babel/core' @@ -18864,6 +18947,13 @@ snapshots: '@leather.io/rpc': 2.1.10 bignumber.js: 9.1.2 + '@leather.io/utils@0.16.3': + dependencies: + '@leather.io/constants': 0.12.2 + '@leather.io/models': 0.17.0 + '@leather.io/rpc': 2.1.10 + bignumber.js: 9.1.2 + '@ledgerhq/devices@8.4.2': dependencies: '@ledgerhq/errors': 6.18.0 @@ -20958,218 +21048,218 @@ snapshots: '@react-native/assets-registry@0.74.88': {} - '@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: - '@react-native/codegen': 0.73.3(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@react-native/codegen': 0.73.3(@babel/preset-env@7.25.4(@babel/core@7.25.7)) transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-plugin-codegen@0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/babel-plugin-codegen@0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: - '@react-native/codegen': 0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@react-native/codegen': 0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.7)) transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-plugin-codegen@0.74.87(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/babel-plugin-codegen@0.74.87(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: - '@react-native/codegen': 0.74.87(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@react-native/codegen': 0.74.87(@babel/preset-env@7.25.4(@babel/core@7.25.7)) transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-preset@0.73.21(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/babel-preset@0.73.21(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.25.2) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-export-default-from': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.2) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.25.7) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-export-default-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.7) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-async-to-generator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-property-in-object': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.25.7) '@babel/template': 7.25.7 - '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.2) + '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.25.4(@babel/core@7.25.7)) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.7) react-refresh: 0.14.2 transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-preset@0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/babel-preset@0.74.83(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.25.2) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-export-default-from': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.25.2) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.2) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.25.7) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-export-default-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.25.7) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.7) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-async-to-generator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-property-in-object': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.25.7) '@babel/template': 7.25.7 - '@react-native/babel-plugin-codegen': 0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.2) + '@react-native/babel-plugin-codegen': 0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.7)) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.7) react-refresh: 0.14.2 transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-preset@0.74.87(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/babel-preset@0.74.87(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.25.2) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-export-default-from': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.25.2) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.2) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.25.7) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-export-default-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.25.7) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.7) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-async-to-generator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-property-in-object': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.25.7) '@babel/template': 7.25.7 - '@react-native/babel-plugin-codegen': 0.74.87(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.2) + '@react-native/babel-plugin-codegen': 0.74.87(@babel/preset-env@7.25.4(@babel/core@7.25.7)) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.7) react-refresh: 0.14.2 transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/codegen@0.73.3(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/codegen@0.73.3(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: '@babel/parser': 7.25.7 - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) + '@babel/preset-env': 7.25.4(@babel/core@7.25.7) flow-parser: 0.206.0 glob: 7.2.3 invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + jscodeshift: 0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.7)) mkdirp: 0.5.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - '@react-native/codegen@0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/codegen@0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: '@babel/parser': 7.25.7 - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) + '@babel/preset-env': 7.25.4(@babel/core@7.25.7) glob: 7.2.3 hermes-parser: 0.19.1 invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + jscodeshift: 0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.7)) mkdirp: 0.5.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - '@react-native/codegen@0.74.87(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/codegen@0.74.87(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: '@babel/parser': 7.25.7 - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) + '@babel/preset-env': 7.25.4(@babel/core@7.25.7) glob: 7.2.3 hermes-parser: 0.19.1 invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + jscodeshift: 0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.7)) mkdirp: 0.5.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - '@react-native/community-cli-plugin@0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)': + '@react-native/community-cli-plugin@0.74.83(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)': dependencies: '@react-native-community/cli-server-api': 13.6.6(encoding@0.1.13) '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) '@react-native/dev-middleware': 0.74.83(encoding@0.1.13) - '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7)) chalk: 4.1.2 execa: 5.1.1 metro: 0.80.12 @@ -21238,30 +21328,30 @@ snapshots: '@react-native/js-polyfills@0.74.83': {} - '@react-native/metro-babel-transformer@0.73.15(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/metro-babel-transformer@0.73.15(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: - '@babel/core': 7.25.2 - '@react-native/babel-preset': 0.73.21(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@babel/core': 7.25.7 + '@react-native/babel-preset': 0.73.21(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7)) hermes-parser: 0.15.0 nullthrows: 1.1.1 transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/metro-babel-transformer@0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/metro-babel-transformer@0.74.83(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))': dependencies: - '@babel/core': 7.25.2 - '@react-native/babel-preset': 0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@babel/core': 7.25.7 + '@react-native/babel-preset': 0.74.83(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7)) hermes-parser: 0.19.1 nullthrows: 1.1.1 transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/metro-config@0.73.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)': + '@react-native/metro-config@0.73.5(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)': dependencies: '@react-native/js-polyfills': 0.73.1 - '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7)) metro-config: 0.80.5(encoding@0.1.13) metro-runtime: 0.80.12 transitivePeerDependencies: @@ -21278,28 +21368,28 @@ snapshots: '@react-native/normalize-colors@0.74.88': {} - '@react-native/virtualized-lists@0.74.83(@types/react@18.3.10)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@react-native/virtualized-lists@0.74.83(@types/react@18.3.10)(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) optionalDependencies: '@types/react': 18.3.10 - '@redux-devtools/app-core@1.0.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux-persist@6.0.0(react@18.3.1)(redux@5.0.1))(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': + '@redux-devtools/app-core@1.0.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux-persist@6.0.0(react@18.3.1)(redux@5.0.1))(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': dependencies: '@babel/runtime': 7.25.4 '@emotion/react': 11.13.3(@types/react@18.3.10)(react@18.3.1) - '@redux-devtools/chart-monitor': 5.0.2(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react@18.3.1)(redux@4.2.1) - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/chart-monitor': 5.0.2(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) '@redux-devtools/inspector-monitor': 6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) - '@redux-devtools/inspector-monitor-test-tab': 4.0.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) - '@redux-devtools/inspector-monitor-trace-tab': 4.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) - '@redux-devtools/log-monitor': 5.0.1(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react@18.3.1)(redux@4.2.1) - '@redux-devtools/rtk-query-monitor': 5.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) - '@redux-devtools/slider-monitor': 5.0.1(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) - '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/inspector-monitor-test-tab': 4.0.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/inspector-monitor-trace-tab': 4.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/log-monitor': 5.0.1(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react@18.3.1)(redux@4.2.1) + '@redux-devtools/rtk-query-monitor': 5.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/slider-monitor': 5.0.1(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) '@types/react': 18.3.10 '@types/styled-components': 5.1.34 d3-state-visualizer: 3.0.0 @@ -21310,19 +21400,19 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-icons: 5.3.0(react@18.3.1) react-is: 18.3.1 - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) + react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) redux: 4.2.1 redux-persist: 6.0.0(react@18.3.1)(redux@5.0.1) - styled-components: 5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + styled-components: 5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) transitivePeerDependencies: - '@reduxjs/toolkit' - supports-color - '@redux-devtools/app@6.1.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': + '@redux-devtools/app@6.1.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': dependencies: '@emotion/react': 11.13.3(@types/react@18.3.10)(react@18.3.1) - '@redux-devtools/app-core': 1.0.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux-persist@6.0.0(react@18.3.1)(redux@5.0.1))(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) - '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/app-core': 1.0.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux-persist@6.0.0(react@18.3.1)(redux@5.0.1))(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) '@types/react': 18.3.10 '@types/styled-components': 5.1.34 jsan: 3.1.14 @@ -21330,11 +21420,11 @@ snapshots: lodash: 4.17.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) + react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) redux: 4.2.1 redux-persist: 6.0.0(react@18.3.1)(redux@4.2.1) socketcluster-client: 19.2.2 - styled-components: 5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + styled-components: 5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) transitivePeerDependencies: - '@reduxjs/toolkit' - '@types/react-dom' @@ -21343,10 +21433,10 @@ snapshots: - supports-color - utf-8-validate - '@redux-devtools/chart-monitor@5.0.2(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/chart-monitor@5.0.2(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/runtime': 7.25.4 - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) '@types/react': 18.3.10 d3-state-visualizer: 3.0.0 deepmerge: 4.3.1 @@ -21354,11 +21444,11 @@ snapshots: react-base16-styling: 0.10.0 redux: 4.2.1 - '@redux-devtools/cli@4.0.0(@babel/core@7.25.2)(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))': + '@redux-devtools/cli@4.0.0(@babel/core@7.25.7)(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))': dependencies: '@apollo/server': 4.11.0(encoding@0.1.13)(graphql@16.9.0) '@emotion/react': 11.13.3(@types/react@18.3.10)(react@18.3.1) - '@redux-devtools/app': 6.1.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/app': 6.1.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) '@types/react': 18.3.10 body-parser: 1.20.3 chalk: 5.3.0 @@ -21379,7 +21469,7 @@ snapshots: semver: 7.6.3 socketcluster-server: 19.1.0 sqlite3: 5.1.7 - styled-components: 5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + styled-components: 5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) uuid: 9.0.1 transitivePeerDependencies: - '@babel/core' @@ -21399,21 +21489,21 @@ snapshots: - tedious - utf-8-validate - '@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/runtime': 7.25.4 '@redux-devtools/instrument': 2.2.0(redux@4.2.1) lodash: 4.17.21 react: 18.3.1 - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) + react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) redux: 4.2.1 - '@redux-devtools/inspector-monitor-test-tab@4.0.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': + '@redux-devtools/inspector-monitor-test-tab@4.0.0(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': dependencies: '@babel/runtime': 7.25.4 '@emotion/react': 11.13.3(@types/react@18.3.10)(react@18.3.1) '@redux-devtools/inspector-monitor': 6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) - '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) '@types/react': 18.3.10 '@types/styled-components': 5.1.34 es6template: 1.0.5 @@ -21425,11 +21515,11 @@ snapshots: react-icons: 4.12.0(react@18.3.1) redux: 4.2.1 simple-diff: 1.7.2 - styled-components: 5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + styled-components: 5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) transitivePeerDependencies: - supports-color - '@redux-devtools/inspector-monitor-trace-tab@4.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/inspector-monitor-trace-tab@4.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/code-frame': 8.0.0-alpha.12 '@babel/runtime': 7.25.4 @@ -21454,7 +21544,7 @@ snapshots: '@dnd-kit/sortable': 8.0.0(@dnd-kit/core@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@dnd-kit/utilities': 3.2.2(react@18.3.1) '@emotion/react': 11.13.3(@types/react@18.3.10)(react@18.3.1) - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) '@types/lodash': 4.17.7 '@types/react': 18.3.10 dateformat: 5.0.3 @@ -21481,10 +21571,10 @@ snapshots: lodash: 4.17.21 redux: 5.0.1 - '@redux-devtools/log-monitor@5.0.1(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/log-monitor@5.0.1(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/runtime': 7.25.4 - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) '@types/lodash.debounce': 4.0.9 '@types/react': 18.3.10 lodash.debounce: 4.0.8 @@ -21493,11 +21583,11 @@ snapshots: react-json-tree: 0.19.0(@types/react@18.3.10)(react@18.3.1) redux: 4.2.1 - '@redux-devtools/remote@0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.7)(redux@5.0.1)': + '@redux-devtools/remote@0.9.3(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(immutable@4.3.7)(redux@5.0.1)': dependencies: '@babel/runtime': 7.25.4 '@redux-devtools/instrument': 2.2.0(redux@5.0.1) - '@redux-devtools/utils': 3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.7)(redux@5.0.1) + '@redux-devtools/utils': 3.0.0(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(immutable@4.3.7)(redux@5.0.1) jsan: 3.1.14 querystring: 0.2.1 redux: 5.0.1 @@ -21509,12 +21599,12 @@ snapshots: - immutable - utf-8-validate - '@redux-devtools/rtk-query-monitor@5.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': + '@redux-devtools/rtk-query-monitor@5.0.1(@emotion/react@11.13.3(@types/react@18.3.10)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@reduxjs/toolkit@2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': dependencies: '@babel/runtime': 7.25.4 '@emotion/react': 11.13.3(@types/react@18.3.10)(react@18.3.1) - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) - '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) '@reduxjs/toolkit': 2.2.7(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1) '@types/lodash': 4.17.7 '@types/react': 18.3.10 @@ -21526,7 +21616,7 @@ snapshots: react-base16-styling: 0.10.0 react-json-tree: 0.19.0(@types/react@18.3.10)(react@18.3.1) redux: 4.2.1 - styled-components: 5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + styled-components: 5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) transitivePeerDependencies: - react-dom - supports-color @@ -21537,22 +21627,22 @@ snapshots: immutable: 4.3.7 jsan: 3.1.14 - '@redux-devtools/slider-monitor@5.0.1(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': + '@redux-devtools/slider-monitor@5.0.1(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': dependencies: '@babel/runtime': 7.25.4 - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) - '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) + '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/ui': 1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)) '@types/react': 18.3.10 '@types/styled-components': 5.1.34 react: 18.3.1 react-base16-styling: 0.10.0 redux: 4.2.1 - styled-components: 5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + styled-components: 5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) transitivePeerDependencies: - react-dom - supports-color - '@redux-devtools/ui@1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': + '@redux-devtools/ui@1.3.2(@types/react@18.3.10)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))': dependencies: '@babel/runtime': 7.25.4 '@rjsf/core': 4.2.3(react@18.3.1) @@ -21568,15 +21658,15 @@ snapshots: react-icons: 5.3.0(react@18.3.1) react-select: 5.8.0(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) simple-element-resize-detector: 1.3.0 - styled-components: 5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + styled-components: 5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) transitivePeerDependencies: - react-dom - supports-color - '@redux-devtools/utils@3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.7)(redux@5.0.1)': + '@redux-devtools/utils@3.0.0(@redux-devtools/core@4.0.0(react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(immutable@4.3.7)(redux@5.0.1)': dependencies: '@babel/runtime': 7.25.4 - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) '@redux-devtools/serialize': 0.4.2(immutable@4.3.7) '@types/get-params': 0.1.2 get-params: 0.1.2 @@ -21625,16 +21715,16 @@ snapshots: '@rnx-kit/console@1.1.0': {} - '@rnx-kit/metro-config@1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@rnx-kit/metro-config@1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: '@rnx-kit/console': 1.1.0 '@rnx-kit/tools-node': 2.1.2 '@rnx-kit/tools-react-native': 1.4.2 '@rnx-kit/tools-workspaces': 0.1.6 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) optionalDependencies: - '@react-native/metro-config': 0.73.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + '@react-native/metro-config': 0.73.5(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) '@rnx-kit/metro-resolver-symlinks@0.1.35': dependencies: @@ -21939,10 +22029,10 @@ snapshots: - encoding - supports-color - '@shopify/restyle@2.4.2(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@shopify/restyle@2.4.2(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) '@sideway/address@4.1.5': dependencies: @@ -22989,7 +23079,7 @@ snapshots: '@storybook/codemod@8.2.4': dependencies: '@babel/core': 7.25.2 - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) + '@babel/preset-env': 7.25.4(@babel/core@7.25.7) '@babel/types': 7.25.4 '@storybook/core': 8.2.4 '@storybook/csf': 0.1.11 @@ -25020,27 +25110,27 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.8 - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.7): dependencies: '@babel/compat-data': 7.25.4 - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.7) core-js-compat: 3.38.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.7) transitivePeerDependencies: - supports-color @@ -25048,33 +25138,33 @@ snapshots: babel-plugin-react-native-web@0.19.12: {} - babel-plugin-styled-components@2.1.4(@babel/core@7.25.2)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))(supports-color@5.5.0): + babel-plugin-styled-components@2.1.4(@babel/core@7.25.7)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))(supports-color@5.5.0): dependencies: '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.7) lodash: 4.17.21 picomatch: 2.3.1 - styled-components: 5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + styled-components: 5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) transitivePeerDependencies: - '@babel/core' - supports-color - babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.25.2): + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.25.7): dependencies: - '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - '@babel/core' - babel-preset-expo@11.0.14(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)): + babel-preset-expo@11.0.14(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7)): dependencies: - '@babel/plugin-proposal-decorators': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-export-namespace-from': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.2) - '@babel/preset-react': 7.25.7(@babel/core@7.25.2) - '@babel/preset-typescript': 7.25.7(@babel/core@7.25.2) - '@react-native/babel-preset': 0.74.87(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@babel/plugin-proposal-decorators': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-export-namespace-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-object-rest-spread': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) + '@babel/preset-react': 7.25.7(@babel/core@7.25.7) + '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) + '@react-native/babel-preset': 0.74.87(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7)) babel-plugin-react-compiler: 0.0.0 babel-plugin-react-native-web: 0.19.12 react-refresh: 0.14.2 @@ -27390,58 +27480,58 @@ snapshots: expand-template@2.0.3: {} - expo-asset@10.0.10(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-asset@10.0.10(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) - expo-constants: 16.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) + expo-constants: 16.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) invariant: 2.2.4 md5-file: 3.2.3 transitivePeerDependencies: - supports-color - expo-asset@10.0.6(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-asset@10.0.6(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: '@react-native/assets-registry': 0.74.88 - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) - expo-constants: 16.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) + expo-constants: 16.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) invariant: 2.2.4 md5-file: 3.2.3 transitivePeerDependencies: - supports-color - expo-blur@13.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-blur@13.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) - expo-constants@16.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-constants@16.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: '@expo/config': 9.0.4 '@expo/env': 0.3.0 - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) transitivePeerDependencies: - supports-color - expo-file-system@17.0.1(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-file-system@17.0.1(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) - expo-font@12.0.10(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-font@12.0.10(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) fontfaceobserver: 2.3.0 - expo-font@12.0.5(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-font@12.0.5(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) fontfaceobserver: 2.3.0 - expo-keep-awake@13.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-keep-awake@13.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) - expo-linear-gradient@13.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-linear-gradient@13.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) expo-modules-autolinking@1.11.1: dependencies: @@ -27455,16 +27545,16 @@ snapshots: dependencies: invariant: 2.2.4 - expo-splash-screen@0.27.4(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)): + expo-splash-screen@0.27.4(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)): dependencies: '@expo/prebuild-config': 7.0.3(encoding@0.1.13)(expo-modules-autolinking@1.11.1) - expo: 51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + expo: 51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) transitivePeerDependencies: - encoding - expo-modules-autolinking - supports-color - expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13): + expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13): dependencies: '@babel/runtime': 7.25.7 '@expo/cli': 0.18.28(encoding@0.1.13)(expo-modules-autolinking@1.11.1) @@ -27472,11 +27562,11 @@ snapshots: '@expo/config-plugins': 8.0.8 '@expo/metro-config': 0.18.11 '@expo/vector-icons': 14.0.0 - babel-preset-expo: 11.0.14(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - expo-asset: 10.0.10(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) - expo-file-system: 17.0.1(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) - expo-font: 12.0.10(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) - expo-keep-awake: 13.0.2(expo@51.0.26(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13)) + babel-preset-expo: 11.0.14(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7)) + expo-asset: 10.0.10(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) + expo-file-system: 17.0.1(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) + expo-font: 12.0.10(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) + expo-keep-awake: 13.0.2(expo@51.0.26(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13)) expo-modules-autolinking: 1.11.1 expo-modules-core: 1.12.20 fbemitter: 3.0.0(encoding@0.1.13) @@ -29115,7 +29205,7 @@ snapshots: jsc-safe-url@0.2.4: {} - jscodeshift@0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.2)): + jscodeshift@0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.7)): dependencies: '@babel/core': 7.25.7 '@babel/parser': 7.25.7 @@ -29123,7 +29213,7 @@ snapshots: '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.7) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.7) '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) + '@babel/preset-env': 7.25.4(@babel/core@7.25.7) '@babel/preset-flow': 7.25.7(@babel/core@7.25.7) '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) '@babel/register': 7.25.7(@babel/core@7.25.7) @@ -29163,7 +29253,7 @@ snapshots: temp: 0.8.4 write-file-atomic: 2.4.3 optionalDependencies: - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) + '@babel/preset-env': 7.25.4(@babel/core@7.25.7) transitivePeerDependencies: - supports-color @@ -32327,72 +32417,72 @@ snapshots: lottie-web: 5.12.2 react: 18.3.1 - react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1): + react-native-gesture-handler@2.20.0(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1): dependencies: '@egjs/hammerjs': 2.0.17 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 prop-types: 15.8.1 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) - react-native-reanimated@3.10.1(@babel/core@7.25.2)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1): + react-native-reanimated@3.10.1(@babel/core@7.25.7)(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1): dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.2) - '@babel/plugin-transform-template-literals': 7.25.7(@babel/core@7.25.2) - '@babel/preset-typescript': 7.25.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-chaining': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-template-literals': 7.25.7(@babel/core@7.25.7) + '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) convert-source-map: 2.0.0 invariant: 2.2.4 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) transitivePeerDependencies: - supports-color - react-native-safe-area-context@4.10.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0): + react-native-safe-area-context@4.10.1(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) - react-native-svg@15.2.0(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0): + react-native-svg@15.2.0(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0): dependencies: css-select: 5.1.0 css-tree: 1.1.3 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) - react-native-svg@15.7.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1): + react-native-svg@15.7.1(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1): dependencies: css-select: 5.1.0 css-tree: 1.1.3 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) warn-once: 0.1.1 optional: true - react-native-webview@13.8.6(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0): + react-native-webview@13.8.6(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0): dependencies: escape-string-regexp: 2.0.0 invariant: 2.2.4 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) - react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1): + react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native-community/cli': 13.6.6(encoding@0.1.13) '@react-native-community/cli-platform-android': 13.6.6(encoding@0.1.13) '@react-native-community/cli-platform-ios': 13.6.6(encoding@0.1.13) '@react-native/assets-registry': 0.74.83 - '@react-native/codegen': 0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(encoding@0.1.13) + '@react-native/codegen': 0.74.83(@babel/preset-env@7.25.4(@babel/core@7.25.7)) + '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(encoding@0.1.13) '@react-native/gradle-plugin': 0.74.83 '@react-native/js-polyfills': 0.74.83 '@react-native/normalize-colors': 0.74.83 - '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.10)(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.10)(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -32430,15 +32520,15 @@ snapshots: - supports-color - utf-8-validate - react-qr-code@2.0.12(react-native-svg@15.7.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react@18.3.1): + react-qr-code@2.0.12(react-native-svg@15.7.1(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react@18.3.1): dependencies: prop-types: 15.8.1 qr.js: 0.0.0 react: 18.3.1 optionalDependencies: - react-native-svg: 15.7.1(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) + react-native-svg: 15.7.1(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) - react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1): + react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1): dependencies: '@babel/runtime': 7.25.4 '@types/hoist-non-react-statics': 3.3.5 @@ -32451,7 +32541,7 @@ snapshots: '@types/react': 18.3.10 '@types/react-dom': 18.3.0 react-dom: 18.3.1(react@18.3.1) - react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.7)(@babel/preset-env@7.25.4(@babel/core@7.25.7))(@types/react@18.3.10)(encoding@0.1.13)(react@18.3.1) redux: 4.2.1 react-redux@9.1.2(@types/react@18.3.10)(react@18.3.1)(redux@5.0.1): @@ -33757,14 +33847,14 @@ snapshots: dependencies: inline-style-parser: 0.2.3 - styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1): + styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1): dependencies: '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) '@babel/traverse': 7.25.4(supports-color@5.5.0) '@emotion/is-prop-valid': 1.3.0 '@emotion/stylis': 0.8.5 '@emotion/unitless': 0.7.5 - babel-plugin-styled-components: 2.1.4(@babel/core@7.25.2)(styled-components@5.3.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))(supports-color@5.5.0) + babel-plugin-styled-components: 2.1.4(@babel/core@7.25.7)(styled-components@5.3.11(@babel/core@7.25.7)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))(supports-color@5.5.0) css-to-react-native: 3.2.0 hoist-non-react-statics: 3.3.2 react: 18.3.1 diff --git a/src/app/common/hooks/use-filtered-sip10-tokens.ts b/src/app/common/hooks/use-filtered-sip10-tokens.ts index 6e35ce7975d..48d70e93b01 100644 --- a/src/app/common/hooks/use-filtered-sip10-tokens.ts +++ b/src/app/common/hooks/use-filtered-sip10-tokens.ts @@ -14,13 +14,19 @@ interface UseSip10TokensArgs { filter?: Sip10CryptoAssetFilter; } // TODO: Migrate to mono -export function useCombinedFilteredSip10Tokens({ address, filter = 'all' }: UseSip10TokensArgs) { +export function useCombinedFilteredSip10Tokens({ address }: UseSip10TokensArgs) { const { isLoading, tokens = [] } = useFilteredSip10Tokens({ address }); const { data: alexSwapAssets = [] } = useAlexSwappableAssets(address); const { data: bitflowSwapAssets = [] } = useBitflowSwappableAssets(address); - const filteredTokens = useMemo( - () => filterSip10Tokens([...alexSwapAssets, ...bitflowSwapAssets], tokens, filter), - [alexSwapAssets, bitflowSwapAssets, tokens, filter] - ); - return { isLoading, tokens: filteredTokens }; + + const filteredTokens = useMemo(() => { + const assets = [...alexSwapAssets, ...bitflowSwapAssets]; + return { + allTokens: filterSip10Tokens(assets, tokens, 'all'), + supportedTokens: filterSip10Tokens(assets, tokens, 'supported'), + unsupportedTokens: filterSip10Tokens(assets, tokens, 'unsupported'), + }; + }, [alexSwapAssets, bitflowSwapAssets, tokens]); + + return { isLoading, ...filteredTokens }; } diff --git a/src/app/common/hooks/use-key-actions.ts b/src/app/common/hooks/use-key-actions.ts index 5b67c98b926..6d66a044b85 100644 --- a/src/app/common/hooks/use-key-actions.ts +++ b/src/app/common/hooks/use-key-actions.ts @@ -18,6 +18,7 @@ import { useStacksClient } from '@app/store/common/api-clients.hooks'; import { inMemoryKeyActions } from '@app/store/in-memory-key/in-memory-key.actions'; import { bitcoinKeysSlice } from '@app/store/ledger/bitcoin/bitcoin-key.slice'; import { stacksKeysSlice } from '@app/store/ledger/stacks/stacks-key.slice'; +import { manageTokensSlice } from '@app/store/manage-tokens/manage-tokens.slice'; import { networksSlice } from '@app/store/networks/networks.slice'; import { clearWalletSession } from '@app/store/session-restore'; import { keyActions } from '@app/store/software-keys/software-key.actions'; @@ -63,6 +64,7 @@ export function useKeyActions() { dispatch(keyActions.signOut()); dispatch(bitcoinKeysSlice.actions.signOut()); dispatch(stacksKeysSlice.actions.signOut()); + dispatch(manageTokensSlice.actions.removeAllTokens()); await clearChromeStorage(); partiallyClearLocalStorage(); void analytics.track('sign_out'); diff --git a/src/app/common/hooks/use-manage-tokens.ts b/src/app/common/hooks/use-manage-tokens.ts new file mode 100644 index 00000000000..de5bf4ff60e --- /dev/null +++ b/src/app/common/hooks/use-manage-tokens.ts @@ -0,0 +1,49 @@ +import { useConfigTokensEnabledByDefault } from '@leather.io/query'; + +import { useCurrentAccountIndex } from '@app/store/accounts/account'; +import { useUserAllTokens } from '@app/store/manage-tokens/manage-tokens.slice'; + +interface IsTokenEnabledArgs { + tokenId: string; + preEnabledTokensIds: string[]; +} +export type AssetFilter = 'all' | 'enabled' | 'disabled'; +interface FilterTokensArgs { + tokens: T[]; + filter: AssetFilter; + getTokenId(token: T): string; + preEnabledTokensIds: string[]; +} + +export function useManageTokens() { + const configEnabledTokens = useConfigTokensEnabledByDefault(); + + const accountIndex = useCurrentAccountIndex(); + const userTokensList = useUserAllTokens(); + + function isTokenEnabled({ tokenId, preEnabledTokensIds }: IsTokenEnabledArgs) { + const token = userTokensList.find(t => t.accountIndex === accountIndex && t.id === tokenId); + const isEnabledByDefault = + configEnabledTokens.includes(tokenId) || preEnabledTokensIds?.includes(tokenId); + + return token?.enabled ?? isEnabledByDefault; + } + + function filterTokens({ + tokens, + filter = 'all', + getTokenId, + preEnabledTokensIds, + }: FilterTokensArgs): T[] { + if (filter === 'all') return tokens; + + return tokens.filter(t => { + const tokenId = getTokenId(t); + const tokenEnabled = isTokenEnabled({ tokenId, preEnabledTokensIds }); + + return filter === 'enabled' ? tokenEnabled : !tokenEnabled; + }); + } + + return { isTokenEnabled, filterTokens }; +} diff --git a/src/app/components/crypto-asset-item/crypto-asset-item-toggle.tsx b/src/app/components/crypto-asset-item/crypto-asset-item-toggle.tsx new file mode 100644 index 00000000000..1c464642d8f --- /dev/null +++ b/src/app/components/crypto-asset-item/crypto-asset-item-toggle.tsx @@ -0,0 +1,60 @@ +import { useState } from 'react'; +import { useDispatch } from 'react-redux'; + +import { sanitize } from 'dompurify'; +import { Box, VStack } from 'leather-styles/jsx'; + +import { ItemLayout, Pressable, Switch } from '@leather.io/ui'; +import { spamFilter } from '@leather.io/utils'; + +import { useCurrentAccountIndex } from '@app/store/accounts/account'; +import { manageTokensSlice } from '@app/store/manage-tokens/manage-tokens.slice'; + +export interface CryptoAssetItemToggleProps { + captionLeft: string; + icon: React.ReactNode; + titleLeft: string; + assetId: string; + isCheckedByDefault: boolean; +} + +export function CryptoAssetItemToggle({ + captionLeft, + icon, + titleLeft, + assetId, + isCheckedByDefault = false, +}: CryptoAssetItemToggleProps) { + const accountIndex = useCurrentAccountIndex(); + const dispatch = useDispatch(); + + const [isChecked, setIsChecked] = useState(isCheckedByDefault); + + function handleSelection(enabled: boolean) { + setIsChecked(enabled); + dispatch( + manageTokensSlice.actions.userTogglesTokenVisibility({ id: assetId, enabled, accountIndex }) + ); + } + + const toggle = ( + + + + + + ); + + return ( + + handleSelection(!isChecked)} data-testid={sanitize(assetId)}> + + + + ); +} diff --git a/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx b/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx index 79cbf8f5f24..57adccf1616 100644 --- a/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx +++ b/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx @@ -1,3 +1,4 @@ +import { sanitize } from 'dompurify'; import { Box, Flex } from 'leather-styles/jsx'; import type { Money } from '@leather.io/models'; @@ -16,7 +17,7 @@ import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; import { parseCryptoAssetBalance } from './crypto-asset-item.layout.utils'; -interface CryptoAssetItemLayoutProps { +export interface CryptoAssetItemLayoutProps { availableBalance: Money; balanceSuffix?: string; captionLeft: string; @@ -30,6 +31,7 @@ interface CryptoAssetItemLayoutProps { onSelectAsset?(symbol: string, contractId?: string): void; titleLeft: string; titleRightBulletInfo?: React.ReactNode; + dataTestId: string; } export function CryptoAssetItemLayout({ availableBalance, @@ -45,9 +47,9 @@ export function CryptoAssetItemLayout({ onSelectAsset, titleLeft, titleRightBulletInfo, + dataTestId, }: CryptoAssetItemLayoutProps) { - const { availableBalanceString, dataTestId, formattedBalance } = - parseCryptoAssetBalance(availableBalance); + const { availableBalanceString, formattedBalance } = parseCryptoAssetBalance(availableBalance); const titleRight = ( @@ -113,5 +115,9 @@ export function CryptoAssetItemLayout({ ); - return {content}; + return ( + + {content} + + ); } diff --git a/src/app/components/crypto-asset-item/crypto-asset-item.layout.utils.ts b/src/app/components/crypto-asset-item/crypto-asset-item.layout.utils.ts index 0fd995a2841..23f86eba503 100644 --- a/src/app/components/crypto-asset-item/crypto-asset-item.layout.utils.ts +++ b/src/app/components/crypto-asset-item/crypto-asset-item.layout.utils.ts @@ -1,5 +1,3 @@ -import { CryptoAssetSelectors } from '@tests/selectors/crypto-asset.selectors'; - import type { Money } from '@leather.io/models'; import { formatMoneyWithoutSymbol } from '@leather.io/utils'; @@ -7,15 +5,10 @@ import { formatBalance } from '@app/common/format-balance'; export function parseCryptoAssetBalance(availableBalance: Money) { const availableBalanceString = formatMoneyWithoutSymbol(availableBalance); - const dataTestId = CryptoAssetSelectors.CryptoAssetListItem.replace( - '{symbol}', - availableBalance.symbol.toLowerCase() - ); const formattedBalance = formatBalance(availableBalanceString); return { availableBalanceString, - dataTestId, formattedBalance, }; } diff --git a/src/app/components/crypto-asset-item/crypto-asset-item.tsx b/src/app/components/crypto-asset-item/crypto-asset-item.tsx new file mode 100644 index 00000000000..12fd70f34b2 --- /dev/null +++ b/src/app/components/crypto-asset-item/crypto-asset-item.tsx @@ -0,0 +1,20 @@ +import { CryptoAssetItemToggle, type CryptoAssetItemToggleProps } from './crypto-asset-item-toggle'; +import { CryptoAssetItemLayout, type CryptoAssetItemLayoutProps } from './crypto-asset-item.layout'; + +interface CryptoAssetItemProps { + isToggleMode: boolean; + toggleProps?: CryptoAssetItemToggleProps; + itemProps?: CryptoAssetItemLayoutProps; +} + +export function CryptoAssetItem({ isToggleMode, toggleProps, itemProps }: CryptoAssetItemProps) { + if (isToggleMode && toggleProps) { + return ; + } + + if (itemProps) { + return ; + } + + return null; +} diff --git a/src/app/components/loaders/brc20-tokens-loader.tsx b/src/app/components/loaders/brc20-tokens-loader.tsx index cb5e10d78f2..983f5661cc3 100644 --- a/src/app/components/loaders/brc20-tokens-loader.tsx +++ b/src/app/components/loaders/brc20-tokens-loader.tsx @@ -1,18 +1,44 @@ import type { Brc20CryptoAssetInfo, CryptoAssetBalance, MarketData } from '@leather.io/models'; +import { type AssetFilter, useManageTokens } from '@app/common/hooks/use-manage-tokens'; import { useBrc20Tokens } from '@app/query/bitcoin/ordinals/brc20/brc20-tokens.hooks'; +interface Brc20TokenItem { + balance: CryptoAssetBalance; + info: Brc20CryptoAssetInfo; + holderAddress: string; + marketData: MarketData; +} + interface Brc20TokensLoaderProps { - children( - tokens: { - balance: CryptoAssetBalance; - info: Brc20CryptoAssetInfo; - holderAddress: string; - marketData: MarketData; - }[] - ): React.ReactNode; + filter?: AssetFilter; + children({ + tokens, + preEnabledTokensIds, + }: { + tokens: Brc20TokenItem[]; + preEnabledTokensIds: string[]; + }): React.ReactNode; +} + +function getTokenId(token: Brc20TokenItem) { + return token.info.symbol; } -export function Brc20TokensLoader({ children }: Brc20TokensLoaderProps) { +export function Brc20TokensLoader({ children, filter = 'all' }: Brc20TokensLoaderProps) { const tokens = useBrc20Tokens(); - return children(tokens); + + const { filterTokens } = useManageTokens(); + + const preEnabledTokensIds = tokens + .filter(t => t.marketData.price.amount.isGreaterThan(0)) + .map(t => t.info.symbol); + + const filteredTokens = filterTokens({ + tokens, + filter, + getTokenId, + preEnabledTokensIds, + }); + + return children({ tokens: filteredTokens, preEnabledTokensIds }); } diff --git a/src/app/components/loaders/runes-loader.tsx b/src/app/components/loaders/runes-loader.tsx index 78f4b8cb289..b285acd6811 100644 --- a/src/app/components/loaders/runes-loader.tsx +++ b/src/app/components/loaders/runes-loader.tsx @@ -1,13 +1,42 @@ import type { CryptoAssetBalance, MarketData, RuneCryptoAssetInfo } from '@leather.io/models'; import { useRuneTokens } from '@leather.io/query'; +import { type AssetFilter, useManageTokens } from '@app/common/hooks/use-manage-tokens'; + interface RunesLoaderProps { addresses: string[]; - children( - runes: { balance: CryptoAssetBalance; info: RuneCryptoAssetInfo; marketData: MarketData }[] - ): React.ReactNode; + children({ + tokens, + preEnabledTokensIds, + }: { + tokens: RuneTokenItem[]; + preEnabledTokensIds: string[]; + }): React.ReactNode; + filter?: AssetFilter; +} + +interface RuneTokenItem { + balance: CryptoAssetBalance; + info: RuneCryptoAssetInfo; + marketData: MarketData; +} + +function getTokenId(token: RuneTokenItem) { + return token.info.runeName; } -export function RunesLoader({ addresses, children }: RunesLoaderProps) { + +export function RunesLoader({ addresses, children, filter = 'all' }: RunesLoaderProps) { const { runes = [] } = useRuneTokens(addresses); - return children(runes); + + const { filterTokens } = useManageTokens(); + + const preEnabledTokensIds: string[] = []; + const filteredTokens = filterTokens({ + tokens: runes, + filter, + getTokenId, + preEnabledTokensIds, + }); + + return children({ tokens: filteredTokens, preEnabledTokensIds }); } diff --git a/src/app/components/loaders/sip10-tokens-loader.tsx b/src/app/components/loaders/sip10-tokens-loader.tsx index 2d4b9cce699..aeff4efce02 100644 --- a/src/app/components/loaders/sip10-tokens-loader.tsx +++ b/src/app/components/loaders/sip10-tokens-loader.tsx @@ -1,13 +1,46 @@ -import { type Sip10CryptoAssetFilter, type Sip10TokenAssetDetails } from '@leather.io/query'; +import { type Sip10TokenAssetDetails } from '@leather.io/query'; import { useCombinedFilteredSip10Tokens } from '@app/common/hooks/use-filtered-sip10-tokens'; +import { type AssetFilter, useManageTokens } from '@app/common/hooks/use-manage-tokens'; interface Sip10TokensLoaderProps { address: string; - filter: Sip10CryptoAssetFilter; - children(isLoading: boolean, tokens: Sip10TokenAssetDetails[]): React.ReactNode; + assetFilter?: AssetFilter; + + children({ + isLoading, + tokens, + preEnabledTokensIds, + }: { + isLoading: boolean; + tokens: Sip10TokenAssetDetails[]; + preEnabledTokensIds: string[]; + }): React.ReactNode; +} + +function getTokenId(token: Sip10TokenAssetDetails) { + return token.info.contractId; } -export function Sip10TokensLoader({ address, filter, children }: Sip10TokensLoaderProps) { - const { isLoading, tokens = [] } = useCombinedFilteredSip10Tokens({ address, filter }); - return children(isLoading, tokens); + +export function Sip10TokensLoader({ + address, + assetFilter = 'all', + children, +}: Sip10TokensLoaderProps) { + const { + isLoading, + allTokens = [], + supportedTokens, + } = useCombinedFilteredSip10Tokens({ address, filter: 'all' }); + + const { filterTokens } = useManageTokens(); + const preEnabledTokensIds = supportedTokens.map(t => t.info.contractId); + const filteredTokens = filterTokens({ + tokens: allTokens, + filter: assetFilter, + getTokenId, + preEnabledTokensIds, + }); + + return children({ isLoading, tokens: filteredTokens, preEnabledTokensIds }); } diff --git a/src/app/components/loaders/src20-tokens-loader.tsx b/src/app/components/loaders/src20-tokens-loader.tsx index b757427bd23..2245984263f 100644 --- a/src/app/components/loaders/src20-tokens-loader.tsx +++ b/src/app/components/loaders/src20-tokens-loader.tsx @@ -1,6 +1,8 @@ import type { CryptoAssetBalance, Src20CryptoAssetInfo } from '@leather.io/models'; import { useSrc20TokensByAddress } from '@leather.io/query'; +import { type AssetFilter, useManageTokens } from '@app/common/hooks/use-manage-tokens'; + export interface Src20TokenAssetDetails { balance: CryptoAssetBalance; info: Src20CryptoAssetInfo; @@ -8,9 +10,31 @@ export interface Src20TokenAssetDetails { interface Src20TokensLoaderProps { address: string; - children(tokens: Src20TokenAssetDetails[]): React.ReactNode; + filter?: AssetFilter; + + children({ + tokens, + preEnabledTokensIds, + }: { + tokens: Src20TokenAssetDetails[]; + preEnabledTokensIds: string[]; + }): React.ReactNode; +} + +function getTokenId(token: Src20TokenAssetDetails) { + return token.info.symbol; } -export function Src20TokensLoader({ address, children }: Src20TokensLoaderProps) { + +export function Src20TokensLoader({ address, children, filter = 'all' }: Src20TokensLoaderProps) { const { data: tokens = [] } = useSrc20TokensByAddress(address); - return children(tokens); + const { filterTokens } = useManageTokens(); + const preEnabledTokensIds = tokens.map(t => t.info.symbol); + + const filteredTokens = filterTokens({ + tokens, + filter, + getTokenId, + preEnabledTokensIds, + }); + return children({ tokens: filteredTokens, preEnabledTokensIds }); } diff --git a/src/app/components/loaders/stx20-tokens-loader.tsx b/src/app/components/loaders/stx20-tokens-loader.tsx index 50f6aea2987..261940a516c 100644 --- a/src/app/components/loaders/stx20-tokens-loader.tsx +++ b/src/app/components/loaders/stx20-tokens-loader.tsx @@ -1,16 +1,39 @@ import type { CryptoAssetBalance, Stx20CryptoAssetInfo } from '@leather.io/models'; import { useStx20Tokens } from '@leather.io/query'; +import { type AssetFilter, useManageTokens } from '@app/common/hooks/use-manage-tokens'; + interface Stx20TokensLoaderProps { address: string; - children( - tokens: { - balance: CryptoAssetBalance; - info: Stx20CryptoAssetInfo; - }[] - ): React.ReactNode; + filter?: AssetFilter; + children({ + tokens, + preEnabledTokensIds, + }: { + tokens: Stx20TokenItem[]; + preEnabledTokensIds: string[]; + }): React.ReactNode; +} + +interface Stx20TokenItem { + balance: CryptoAssetBalance; + info: Stx20CryptoAssetInfo; } -export function Stx20TokensLoader({ address, children }: Stx20TokensLoaderProps) { + +function getTokenId(token: Stx20TokenItem) { + return token.info.symbol; +} + +export function Stx20TokensLoader({ address, children, filter = 'all' }: Stx20TokensLoaderProps) { const { data: tokens = [] } = useStx20Tokens(address); - return children(tokens); + + const { filterTokens } = useManageTokens(); + const preEnabledTokensIds: string[] = []; + const filteredTokens = filterTokens({ + tokens, + filter, + getTokenId, + preEnabledTokensIds, + }); + return children({ tokens: filteredTokens, preEnabledTokensIds }); } diff --git a/src/app/features/asset-list/asset-list.tsx b/src/app/features/asset-list/asset-list.tsx index 7c74bb1cc38..f8abc0e7d96 100644 --- a/src/app/features/asset-list/asset-list.tsx +++ b/src/app/features/asset-list/asset-list.tsx @@ -1,3 +1,5 @@ +import { Dispatch, SetStateAction } from 'react'; + import { Stack } from 'leather-styles/jsx'; import { BtcAvatarIcon, StxAvatarIcon } from '@leather.io/ui'; @@ -23,18 +25,31 @@ import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/s import { useHasLedgerKeys } from '@app/store/ledger/ledger.selectors'; import { useIsPrivateMode } from '@app/store/settings/settings.selectors'; +import type { AssetFilter } from '../../common/hooks/use-manage-tokens'; import { ConnectLedgerAssetItemFallback } from './_components/connect-ledger-asset-item-fallback'; import { BtcCryptoAssetItem } from './bitcoin/btc-crypto-asset-item/btc-crypto-asset-item'; import { Sip10TokenAssetList } from './stacks/sip10-token-asset-list/sip10-token-asset-list'; -import { Sip10TokenAssetListUnsupported } from './stacks/sip10-token-asset-list/sip10-token-asset-list-unsupported'; export type AssetListVariant = 'interactive' | 'read-only'; +export type AssetRightElementVariant = 'balance' | 'toggle'; interface AssetListProps { - onSelectAsset?(symbol: string, contractId?: string): void; + filter?: AssetFilter; variant?: AssetListVariant; + assetRightElementVariant?: AssetRightElementVariant; + showUnmanageableTokens?: boolean; + onSelectAsset?(symbol: string, contractId?: string): void; + setHasManageableTokens?: Dispatch>; } -export function AssetList({ onSelectAsset, variant = 'read-only' }: AssetListProps) { + +export function AssetList({ + onSelectAsset, + variant = 'read-only', + assetRightElementVariant = 'balance', + showUnmanageableTokens = true, + setHasManageableTokens, + filter, +}: AssetListProps) { const currentAccount = useCurrentStacksAccount(); const isLedger = useHasLedgerKeys(); const isPrivate = useIsPrivateMode(); @@ -43,34 +58,38 @@ export function AssetList({ onSelectAsset, variant = 'read-only' }: AssetListPro return ( - } - symbol="BTC" - variant={variant} - /> - } - > - {nativeSegwitAccount => ( - - {(balance, isLoading, isLoadingAdditionalData) => ( - } + symbol="BTC" + variant={variant} /> - )} - - )} - + ) + } + > + {nativeSegwitAccount => ( + + {(balance, isLoading, isLoadingAdditionalData) => ( + + )} + + )} + + )} } @@ -82,31 +101,40 @@ export function AssetList({ onSelectAsset, variant = 'read-only' }: AssetListPro > {account => ( <> - - {(balance, isLoading) => ( - - )} - - - {(isLoading, tokens) => ( + {showUnmanageableTokens && ( + + {(balance, isLoading) => ( + + )} + + )} + + {({ isLoading, tokens, preEnabledTokensIds }) => ( )} {isReadOnly && ( - - {tokens => } + + {({ tokens, preEnabledTokensIds }) => ( + + )} )} @@ -119,17 +147,42 @@ export function AssetList({ onSelectAsset, variant = 'read-only' }: AssetListPro {taprootAccount => ( <> {isReadOnly && ( - - {tokens => } + + {({ tokens, preEnabledTokensIds }) => ( + + )} )} {isReadOnly && ( <> - - {tokens => } + + {({ tokens, preEnabledTokensIds }) => ( + + )} - - {runes => } + + {({ tokens, preEnabledTokensIds }) => ( + + )} )} @@ -138,18 +191,6 @@ export function AssetList({ onSelectAsset, variant = 'read-only' }: AssetListPro )} - - {isReadOnly && ( - - {account => ( - - {(isLoading, tokens) => ( - - )} - - )} - - )} ); } diff --git a/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx b/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx index 231e8593634..846a6d5664f 100644 --- a/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx +++ b/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx @@ -1,3 +1,5 @@ +import { type Dispatch, type SetStateAction, useEffect } from 'react'; + import { CryptoAssetSelectors } from '@tests/selectors/crypto-asset.selectors'; import { Stack } from 'leather-styles/jsx'; @@ -5,8 +7,12 @@ import type { Brc20CryptoAssetInfo, CryptoAssetBalance, MarketData } from '@leat import { Brc20AvatarIcon } from '@leather.io/ui'; import { convertAssetBalanceToFiat } from '@app/common/asset-utils'; -import { CryptoAssetItemLayout } from '@app/components/crypto-asset-item/crypto-asset-item.layout'; -import type { AssetListVariant } from '@app/features/asset-list/asset-list'; +import { useManageTokens } from '@app/common/hooks/use-manage-tokens'; +import { CryptoAssetItem } from '@app/components/crypto-asset-item/crypto-asset-item'; +import type { + AssetListVariant, + AssetRightElementVariant, +} from '@app/features/asset-list/asset-list'; import { useCurrentBtcCryptoAssetBalanceNativeSegwit } from '@app/query/bitcoin/balance/btc-balance-native-segwit.hooks'; import { useIsPrivateMode } from '@app/store/settings/settings.selectors'; @@ -20,6 +26,9 @@ interface Brc20TokenAssetDetails { interface Brc20TokenAssetListProps { tokens: Brc20TokenAssetDetails[]; variant?: AssetListVariant; + assetRightElementVariant?: AssetRightElementVariant; + preEnabledTokensIds: string[]; + setHasManageableTokens?: Dispatch>; } function getBrc20TokenFiatBalance(token: Brc20TokenAssetDetails) { @@ -29,25 +38,56 @@ function getBrc20TokenFiatBalance(token: Brc20TokenAssetDetails) { }); } -export function Brc20TokenAssetList({ tokens }: Brc20TokenAssetListProps) { +export function Brc20TokenAssetList({ + tokens, + assetRightElementVariant, + preEnabledTokensIds, + setHasManageableTokens, +}: Brc20TokenAssetListProps) { const { isLoading } = useCurrentBtcCryptoAssetBalanceNativeSegwit(); const isPrivate = useIsPrivateMode(); + const { isTokenEnabled } = useManageTokens(); + + useEffect(() => { + if (tokens.length > 0 && setHasManageableTokens) { + setHasManageableTokens(true); + } + }, [tokens, setHasManageableTokens]); if (!tokens.length) return null; + return ( - {tokens.map(token => ( - } - isLoading={isLoading} - isPrivate={isPrivate} - key={token.info.symbol} - titleLeft={token.info.symbol} - fiatBalance={getBrc20TokenFiatBalance(token)} - /> - ))} + {tokens.map(token => { + const key = token.info.symbol; + const captionLeft = token.info.name.toUpperCase(); + const icon = ; + const titleLeft = token.info.symbol; + + return ( + + ); + })} ); } diff --git a/src/app/features/asset-list/bitcoin/btc-crypto-asset-item/btc-crypto-asset-item.tsx b/src/app/features/asset-list/bitcoin/btc-crypto-asset-item/btc-crypto-asset-item.tsx index d66d95c3cbd..19d9cc5fcb1 100644 --- a/src/app/features/asset-list/bitcoin/btc-crypto-asset-item/btc-crypto-asset-item.tsx +++ b/src/app/features/asset-list/bitcoin/btc-crypto-asset-item/btc-crypto-asset-item.tsx @@ -35,6 +35,7 @@ export function BtcCryptoAssetItem({ isPrivate={isPrivate} onSelectAsset={onSelectAsset} titleLeft="Bitcoin" + dataTestId="BTC" /> ); } diff --git a/src/app/features/asset-list/bitcoin/runes-asset-list/runes-asset-list.tsx b/src/app/features/asset-list/bitcoin/runes-asset-list/runes-asset-list.tsx index 6570372f840..e701da06f34 100644 --- a/src/app/features/asset-list/bitcoin/runes-asset-list/runes-asset-list.tsx +++ b/src/app/features/asset-list/bitcoin/runes-asset-list/runes-asset-list.tsx @@ -1,11 +1,16 @@ +import { type Dispatch, type SetStateAction, useEffect } from 'react'; + import type { CryptoAssetBalance, MarketData, RuneCryptoAssetInfo } from '@leather.io/models'; import { RunesAvatarIcon } from '@leather.io/ui'; import { convertAmountToBaseUnit, createMoneyFromDecimal } from '@leather.io/utils'; import { convertAssetBalanceToFiat } from '@app/common/asset-utils'; -import { CryptoAssetItemLayout } from '@app/components/crypto-asset-item/crypto-asset-item.layout'; +import { useManageTokens } from '@app/common/hooks/use-manage-tokens'; +import { CryptoAssetItem } from '@app/components/crypto-asset-item/crypto-asset-item'; import { useIsPrivateMode } from '@app/store/settings/settings.selectors'; +import type { AssetRightElementVariant } from '../../asset-list'; + interface RuneTokenAssetDetails { balance: CryptoAssetBalance; info: RuneCryptoAssetInfo; @@ -14,28 +19,63 @@ interface RuneTokenAssetDetails { interface RunesAssetListProps { runes: RuneTokenAssetDetails[]; + assetRightElementVariant?: AssetRightElementVariant; + preEnabledTokensIds: string[]; + setHasManageableTokens?: Dispatch>; } -export function RunesAssetList({ runes }: RunesAssetListProps) { +export function RunesAssetList({ + runes, + assetRightElementVariant, + preEnabledTokensIds, + setHasManageableTokens, +}: RunesAssetListProps) { const isPrivate = useIsPrivateMode(); + const { isTokenEnabled } = useManageTokens(); + + useEffect(() => { + if (runes.length > 0 && setHasManageableTokens) { + setHasManageableTokens(true); + } + }, [runes, setHasManageableTokens]); + + return runes.map((rune, i) => { + const key = `${rune.info.symbol}${i}`; + const captionLeft = 'Runes'; + const icon = ; + const titleLeft = rune.info.spacedRuneName ?? rune.info.runeName; + + const availableBalance = createMoneyFromDecimal( + convertAmountToBaseUnit(rune.balance.availableBalance), + rune.info.symbol, + rune.info.decimals + ); + const fiatBalance = convertAssetBalanceToFiat({ + balance: rune.balance.availableBalance, + marketData: rune.marketData, + }); - return runes.map((rune, i) => ( - } - key={`${rune.info.symbol}${i}`} - titleLeft={rune.info.spacedRuneName ?? rune.info.runeName} - fiatBalance={convertAssetBalanceToFiat({ - balance: rune.balance.availableBalance, - marketData: rune.marketData, - })} - isPrivate={isPrivate} - /> - )); + return ( + + ); + }); } diff --git a/src/app/features/asset-list/bitcoin/src20-token-asset-list/src20-token-asset-list.tsx b/src/app/features/asset-list/bitcoin/src20-token-asset-list/src20-token-asset-list.tsx index 48c249ca3a8..b256e58c0b2 100644 --- a/src/app/features/asset-list/bitcoin/src20-token-asset-list/src20-token-asset-list.tsx +++ b/src/app/features/asset-list/bitcoin/src20-token-asset-list/src20-token-asset-list.tsx @@ -1,23 +1,62 @@ +import { type Dispatch, type SetStateAction, useEffect } from 'react'; + import { Src20AvatarIcon } from '@leather.io/ui'; -import { CryptoAssetItemLayout } from '@app/components/crypto-asset-item/crypto-asset-item.layout'; +import { useManageTokens } from '@app/common/hooks/use-manage-tokens'; +import { CryptoAssetItem } from '@app/components/crypto-asset-item/crypto-asset-item'; import type { Src20TokenAssetDetails } from '@app/components/loaders/src20-tokens-loader'; import { useIsPrivateMode } from '@app/store/settings/settings.selectors'; +import type { AssetRightElementVariant } from '../../asset-list'; + interface Src20TokenAssetListProps { tokens: Src20TokenAssetDetails[]; + assetRightElementVariant?: AssetRightElementVariant; + preEnabledTokensIds: string[]; + setHasManageableTokens?: Dispatch>; } -export function Src20TokenAssetList({ tokens }: Src20TokenAssetListProps) { +export function Src20TokenAssetList({ + tokens, + assetRightElementVariant, + preEnabledTokensIds, + setHasManageableTokens, +}: Src20TokenAssetListProps) { const isPrivate = useIsPrivateMode(); + const { isTokenEnabled } = useManageTokens(); + + useEffect(() => { + if (tokens.length > 0 && setHasManageableTokens) { + setHasManageableTokens(true); + } + }, [tokens, setHasManageableTokens]); + + return tokens.map((token, i) => { + const key = `${token.info.id}${i}`; + const captionLeft = token.info.name.toUpperCase(); + const icon = ; + const titleLeft = token.info.symbol.toUpperCase(); + const symbol = token.info.symbol; - return tokens.map((token, i) => ( - } - titleLeft={token.info.symbol.toUpperCase()} - isPrivate={isPrivate} - /> - )); + return ( + + ); + }); } diff --git a/src/app/features/asset-list/manage-tokens/manage-tokens.tsx b/src/app/features/asset-list/manage-tokens/manage-tokens.tsx new file mode 100644 index 00000000000..e006510d8dd --- /dev/null +++ b/src/app/features/asset-list/manage-tokens/manage-tokens.tsx @@ -0,0 +1,51 @@ +import { useState } from 'react'; + +import { HomePageSelectors } from '@tests/selectors/home.selectors'; +import { HStack, Stack, styled } from 'leather-styles/jsx'; + +import { Caption, ChevronRightIcon, Pressable, Sheet, SheetHeader } from '@leather.io/ui'; + +import { AssetList } from '../asset-list'; + +export function ManageTokens() { + const [showManageTokens, setShowManageTokens] = useState(false); + const [hasManageableTokens, setHasManageableTokens] = useState(false); + + return ( + <> + { + setShowManageTokens(!showManageTokens); + }} + > + + Manage Tokens + + + + + setShowManageTokens(!showManageTokens)} + header={} + > + + + + {!hasManageableTokens && ( + + No tokens found + + )} + + + + ); +} diff --git a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx index 2c81088cecd..acf0f5b45dc 100644 --- a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx +++ b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx @@ -1,17 +1,22 @@ import type { CryptoAssetBalance, MarketData, Sip10CryptoAssetInfo } from '@leather.io/models'; import { convertAssetBalanceToFiat } from '@app/common/asset-utils'; +import { useManageTokens } from '@app/common/hooks/use-manage-tokens'; import { getSafeImageCanonicalUri } from '@app/common/stacks-utils'; -import { CryptoAssetItemLayout } from '@app/components/crypto-asset-item/crypto-asset-item.layout'; +import { CryptoAssetItem } from '@app/components/crypto-asset-item/crypto-asset-item'; import { StacksAssetAvatar } from '@app/components/stacks-asset-avatar'; import { useIsPrivateMode } from '@app/store/settings/settings.selectors'; +import type { AssetRightElementVariant } from '../../asset-list'; + interface Sip10TokenAssetItemProps { balance: CryptoAssetBalance; info: Sip10CryptoAssetInfo; isLoading: boolean; marketData: MarketData; + assetRightElementVariant?: AssetRightElementVariant; onSelectAsset?(symbol: string, contractId?: string): void; + preEnabledTokensIds: string[]; } export function Sip10TokenAssetItem({ balance, @@ -19,33 +24,52 @@ export function Sip10TokenAssetItem({ isLoading, marketData, onSelectAsset, + assetRightElementVariant, + preEnabledTokensIds, }: Sip10TokenAssetItemProps) { const isPrivate = useIsPrivateMode(); const fiatBalance = convertAssetBalanceToFiat({ balance: balance.availableBalance, marketData, }); + const { isTokenEnabled } = useManageTokens(); + const { contractId, imageCanonicalUri, name, symbol } = info; + const icon = ( + + {name[0]} + + ); + + const captionLeft = symbol; + const titleLeft = name; + return ( - - {name[0]} - - } - isLoading={isLoading} - isPrivate={isPrivate} - onSelectAsset={onSelectAsset} - titleLeft={name} + ); } diff --git a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list-unsupported.tsx b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list-unsupported.tsx deleted file mode 100644 index 28c8b0733a1..00000000000 --- a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list-unsupported.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { useState } from 'react'; - -import { Stack, styled } from 'leather-styles/jsx'; - -import { type Sip10TokenAssetDetails, useAlexCurrencyPriceAsMarketData } from '@leather.io/query'; -import { Accordion } from '@leather.io/ui'; - -import { Sip10TokenAssetItem } from './sip10-token-asset-item'; - -const accordionValue = 'accordion-unsupported-token-asset-list'; - -interface Sip10TokenAssetListUnsupportedProps { - isLoading: boolean; - tokens: Sip10TokenAssetDetails[]; -} -export function Sip10TokenAssetListUnsupported({ - isLoading, - tokens, -}: Sip10TokenAssetListUnsupportedProps) { - const [isOpen, setIsOpen] = useState(false); - const priceAsMarketData = useAlexCurrencyPriceAsMarketData(); - - function onValueChange(value: string) { - setIsOpen(value === accordionValue); - } - - if (!tokens.length) return null; - - return ( - - - - View {isOpen ? 'fewer' : 'more'} - - - - {tokens.map(token => ( - - ))} - - - - - ); -} diff --git a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list.tsx b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list.tsx index 81a3ebcf260..044c93c755f 100644 --- a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list.tsx +++ b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list.tsx @@ -1,29 +1,45 @@ +import { type Dispatch, type SetStateAction, useEffect } from 'react'; + import { Stack } from 'leather-styles/jsx'; import { type Sip10TokenAssetDetails, useAlexCurrencyPriceAsMarketData } from '@leather.io/query'; import { getPrincipalFromContractId } from '@app/common/utils'; +import type { AssetRightElementVariant } from '../../asset-list'; import { Sip10TokenAssetItem } from './sip10-token-asset-item'; interface Sip10TokenAssetListProps { isLoading: boolean; tokens: Sip10TokenAssetDetails[]; + assetRightElementVariant?: AssetRightElementVariant; onSelectAsset?(symbol: string, contractId?: string): void; + preEnabledTokensIds: string[]; + setHasManageableTokens?: Dispatch>; } export function Sip10TokenAssetList({ isLoading, tokens, onSelectAsset, + assetRightElementVariant, + preEnabledTokensIds, + setHasManageableTokens, }: Sip10TokenAssetListProps) { const priceAsMarketData = useAlexCurrencyPriceAsMarketData(); + useEffect(() => { + if (tokens.length > 0 && setHasManageableTokens) { + setHasManageableTokens(true); + } + }, [tokens, setHasManageableTokens]); + if (!tokens.length) return null; return ( {tokens.map(token => ( ))} diff --git a/src/app/features/asset-list/stacks/stx-crypo-asset-item/stx-crypto-asset-item.tsx b/src/app/features/asset-list/stacks/stx-crypo-asset-item/stx-crypto-asset-item.tsx index f4f7a745c02..b62f7dadfc4 100644 --- a/src/app/features/asset-list/stacks/stx-crypo-asset-item/stx-crypto-asset-item.tsx +++ b/src/app/features/asset-list/stacks/stx-crypo-asset-item/stx-crypto-asset-item.tsx @@ -51,6 +51,7 @@ export function StxCryptoAssetItem({ onSelectAsset={onSelectAsset} titleLeft="Stacks" titleRightBulletInfo={showLockedBalance && titleRightBulletInfo} + dataTestId="STX" /> ); } diff --git a/src/app/features/asset-list/stacks/stx20-token-asset-list/stx20-token-asset-list.tsx b/src/app/features/asset-list/stacks/stx20-token-asset-list/stx20-token-asset-list.tsx index 1f3d755a197..20de515f881 100644 --- a/src/app/features/asset-list/stacks/stx20-token-asset-list/stx20-token-asset-list.tsx +++ b/src/app/features/asset-list/stacks/stx20-token-asset-list/stx20-token-asset-list.tsx @@ -1,9 +1,14 @@ +import { type Dispatch, type SetStateAction, useEffect } from 'react'; + import type { CryptoAssetBalance, Stx20CryptoAssetInfo } from '@leather.io/models'; -import { CryptoAssetItemLayout } from '@app/components/crypto-asset-item/crypto-asset-item.layout'; +import { useManageTokens } from '@app/common/hooks/use-manage-tokens'; +import { CryptoAssetItem } from '@app/components/crypto-asset-item/crypto-asset-item'; import { useIsPrivateMode } from '@app/store/settings/settings.selectors'; import { Stx20AvatarIcon } from '@app/ui/components/avatar/stx20-avatar-icon'; +import type { AssetRightElementVariant } from '../../asset-list'; + interface Stx20TokenAssetDetails { balance: CryptoAssetBalance; info: Stx20CryptoAssetInfo; @@ -11,18 +16,52 @@ interface Stx20TokenAssetDetails { interface Stx20TokenAssetListProps { tokens: Stx20TokenAssetDetails[]; + assetRightElementVariant?: AssetRightElementVariant; + preEnabledTokensIds: string[]; + setHasManageableTokens?: Dispatch>; } -export function Stx20TokenAssetList({ tokens }: Stx20TokenAssetListProps) { +export function Stx20TokenAssetList({ + tokens, + assetRightElementVariant, + preEnabledTokensIds, + setHasManageableTokens, +}: Stx20TokenAssetListProps) { const isPrivate = useIsPrivateMode(); + const { isTokenEnabled } = useManageTokens(); + + useEffect(() => { + if (tokens.length > 0 && setHasManageableTokens) { + setHasManageableTokens(true); + } + }, [tokens, setHasManageableTokens]); + + return tokens.map((token, i) => { + const key = `${token.info.symbol}${i}`; + const captionLeft = token.info.name.toUpperCase(); + const icon = ; + const symbol = token.info.symbol; + const titleLeft = symbol; - return tokens.map((token, i) => ( - } - key={`${token.info.symbol}${i}`} - titleLeft={token.info.symbol} - isPrivate={isPrivate} - /> - )); + return ( + + ); + }); } diff --git a/src/app/pages/home/components/assets.tsx b/src/app/pages/home/components/assets.tsx index fad7b948377..09a03cf3038 100644 --- a/src/app/pages/home/components/assets.tsx +++ b/src/app/pages/home/components/assets.tsx @@ -4,12 +4,14 @@ import { HomePageSelectors } from '@tests/selectors/home.selectors'; import { Stack } from 'leather-styles/jsx'; import { AssetList } from '@app/features/asset-list/asset-list'; +import { ManageTokens } from '@app/features/asset-list/manage-tokens/manage-tokens'; import { Collectibles } from '@app/features/collectibles/collectibles'; export function Assets() { return ( - + + diff --git a/src/app/store/index.ts b/src/app/store/index.ts index 850f2172cf8..60b3e9c1d94 100644 --- a/src/app/store/index.ts +++ b/src/app/store/index.ts @@ -29,6 +29,7 @@ import { stxChainSlice } from './chains/stx-chain.slice'; import { inMemoryKeySlice } from './in-memory-key/in-memory-key.slice'; import { bitcoinKeysSlice } from './ledger/bitcoin/bitcoin-key.slice'; import { stacksKeysSlice } from './ledger/stacks/stacks-key.slice'; +import { manageTokensSlice } from './manage-tokens/manage-tokens.slice'; import { networksSlice } from './networks/networks.slice'; import { settingsSlice } from './settings/settings.slice'; import { keySlice } from './software-keys/software-key.slice'; @@ -49,6 +50,7 @@ export interface RootState { networks: ReturnType; submittedTransactions: ReturnType; settings: ReturnType; + manageTokens: ReturnType; } const appReducer = combineReducers({ @@ -66,6 +68,7 @@ const appReducer = combineReducers({ networks: networksSlice.reducer, submittedTransactions: submittedTransactionsSlice.reducer, settings: settingsSlice.reducer, + manageTokens: manageTokensSlice.reducer, }); function rootReducer(state: RootState | undefined, action: Action) { diff --git a/src/app/store/manage-tokens/manage-tokens.slice.ts b/src/app/store/manage-tokens/manage-tokens.slice.ts new file mode 100644 index 00000000000..ca2a671e8ac --- /dev/null +++ b/src/app/store/manage-tokens/manage-tokens.slice.ts @@ -0,0 +1,45 @@ +import { useSelector } from 'react-redux'; + +import { PayloadAction, createEntityAdapter, createSelector, createSlice } from '@reduxjs/toolkit'; + +import type { RootState } from '..'; + +interface TokenUserSetting { + id: string; + enabled: boolean; + accountIndex: number; +} + +const manageTokensAdapter = createEntityAdapter(); + +export const manageTokensSlice = createSlice({ + name: 'manageTokens', + initialState: manageTokensAdapter.getInitialState(), + reducers: { + userTogglesTokenVisibility( + state, + action: PayloadAction<{ id: string; enabled: boolean; accountIndex: number }> + ) { + manageTokensAdapter.setOne(state, { + id: action.payload.id, + enabled: action.payload.enabled, + accountIndex: action.payload.accountIndex, + }); + }, + removeAllTokens(state) { + manageTokensAdapter.removeAll(state); + }, + }, +}); + +const selectors = manageTokensAdapter.getSelectors(); + +function selectTokenState(state: RootState) { + return state.manageTokens; +} + +const selectAllTokens = createSelector(selectTokenState, selectors.selectAll); + +export function useUserAllTokens() { + return useSelector(selectAllTokens); +} diff --git a/src/shared/storage/redux-pesist.ts b/src/shared/storage/redux-pesist.ts index 3517b9ddee2..fe9d17d7f6d 100644 --- a/src/shared/storage/redux-pesist.ts +++ b/src/shared/storage/redux-pesist.ts @@ -194,5 +194,6 @@ export const persistConfig: PersistConfig & UntypedDeserializeOption 'networks', 'onboarding', 'settings', + 'manageTokens', ], }; diff --git a/tests/mocks/mock-alex-assets.ts b/tests/mocks/mock-alex-assets.ts new file mode 100644 index 00000000000..459bbc0dd47 --- /dev/null +++ b/tests/mocks/mock-alex-assets.ts @@ -0,0 +1,49 @@ +import type { Page } from '@playwright/test'; + +const mockedAlexTokens = [ + { + icon: 'https://images.ctfassets.net/frwmwlognk87/4gKhLHw09nsWjmPlufTjmT/d5432569911d82c3052755b77e0f64dc/LONGcoin-image-2.png', + id: 'token-wlong', + isRebaseToken: false, + name: 'LONG', + underlyingToken: 'SP265WBWD4NH7TVPYQTVD23X3607NNK4484DTXQZ3.longcoin::longcoin', + underlyingTokenDecimals: 6, + wrapToken: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wlong::wlong', + }, + { + icon: 'https://images.ctfassets.net/frwmwlognk87/43mQaoU8JsfWr5HPWQZN5b/7f56c9d5837e03c3d4535ba073ba1c64/image_1819.png', + id: 'token-wnope', + isRebaseToken: false, + name: 'NOT', + underlyingToken: 'SP32AEEF6WW5Y0NMJ1S8SBSZDAY8R5J32NBZFPKKZ.nope::NOT', + underlyingTokenDecimals: 0, + wrapToken: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wnot::wnot', + wrapTokenDecimals: 8, + }, +]; + +const mockedAlexPools = [ + { + tokenX: 'token-wstx', + tokenY: 'age000-governance-token', + factor: 100000000, + }, + { + tokenX: 'age000-governance-token', + tokenY: 'auto-alex-v3', + factor: 5000000, + }, + { + tokenX: 'token-wstx', + tokenY: 'token-abtc', + factor: 100000000, + }, +]; + +export async function mockMainnetTestAccountAlexAssetsRequest(page: Page) { + await page.route('https://alex-sdk-api.alexlab.co/', route => + route.fulfill({ + json: { pools: mockedAlexPools, tokens: mockedAlexTokens }, + }) + ); +} diff --git a/tests/mocks/mock-apis.ts b/tests/mocks/mock-apis.ts index 95be560b24b..52e7da766e9 100644 --- a/tests/mocks/mock-apis.ts +++ b/tests/mocks/mock-apis.ts @@ -1,11 +1,17 @@ import { Page } from '@playwright/test'; import { json } from '@tests/utils'; +import { mockMainnetTestAccountAlexAssetsRequest } from './mock-alex-assets'; +import { mockMainnetTestAccountBrc20TokensRequest } from './mock-brc20'; +import { mockMainnetTestAccountRunesOutputsRequest } from './mock-runes'; +import { mockMainnetTestAccountStampchainRequest } from './mock-src20'; +import { mockMainnetTestAccountStacksBalancesRequest } from './mock-stacks-balances'; import { mockMainnetTestAccountStacksBnsNameRequest } from './mock-stacks-bns'; import { mockStacksFeeRequests } from './mock-stacks-fees'; import { mockMainnetTestAccountStacksFTsRequest } from './mock-stacks-fts'; import { mockMainnetTestAccountStacksNFTsRequest } from './mock-stacks-nfts'; import { mockMainnetTestAccountStacksTxsRequests } from './mock-stacks-txs'; +import { mockMainnetTestAccountStx20TokensRequest } from './mock-stx20'; import { mockMainnetTestAccountBitcoinRequests } from './mock-utxos'; export async function setupMockApis(page: Page) { @@ -20,5 +26,12 @@ export async function setupMockApis(page: Page) { mockMainnetTestAccountStacksTxsRequests(page), mockMainnetTestAccountStacksNFTsRequest(page), mockMainnetTestAccountStacksFTsRequest(page), + mockMainnetTestAccountStacksBalancesRequest(page), + mockMainnetTestAccountAlexAssetsRequest(page), + + mockMainnetTestAccountStampchainRequest(page), + mockMainnetTestAccountBrc20TokensRequest(page), + mockMainnetTestAccountStx20TokensRequest(page), + mockMainnetTestAccountRunesOutputsRequest(page), ]); } diff --git a/tests/mocks/mock-brc20.ts b/tests/mocks/mock-brc20.ts new file mode 100644 index 00000000000..4c8f7362002 --- /dev/null +++ b/tests/mocks/mock-brc20.ts @@ -0,0 +1,54 @@ +import type { Page } from '@playwright/test'; + +import { TEST_ACCOUNT_1_NATIVE_SEGWIT_ADDRESS } from './constants'; + +const mockedBrc20Tokens = [ + { + ticker: 'doge', + overall_balance: '4198.0000000000000000', + available_balance: '4186.0000000000000000', + transferrable_balance: '12.0000000000000000', + image_url: 'https://bis-brc20.fra1.cdn.digitaloceanspaces.com/big_icons/DOGE.png', + min_listed_unit_price: 0.14, + }, +]; + +const mockedBrc20TickerInfo = { + ticker: 'doge', + original_ticker: 'doge', + image_url: 'https://bis-brc20.fra1.cdn.digitaloceanspaces.com/big_icons/DOGE.png', + decimals: 18, + limit_per_mint: 4200, + max_supply: 1000000000000, + minted_supply: 1445467443.1, + burned_supply: 0, + mint_progress: 0.14454674430999997, + holder_count: 22597, + tx_count: 4482, + deploy_ts: '2023-03-09T07:10:34.000Z', + deploy_incr_number: 359088, + deploy_inscr_id: 'c7ee58a761f23d68b4a35c16f25e96fe9317a63d8a951eff9773099ba08cb6adi0', + is_self_mint: false, +}; + +export async function mockMainnetTestAccountBrc20TokensRequest(page: Page) { + await page.route( + `**/leatherapi.bestinslot.xyz/v3/brc20/wallet_balances?address=${TEST_ACCOUNT_1_NATIVE_SEGWIT_ADDRESS}`, + route => + route.fulfill({ + json: { + block_height: 864772, + data: mockedBrc20Tokens, + }, + }) + ); + + await page.route(`**/leatherapi.bestinslot.xyz/v3/brc20/ticker_info?ticker=doge`, route => + route.fulfill({ + json: { + block_height: 864772, + data: mockedBrc20TickerInfo, + }, + }) + ); +} diff --git a/tests/mocks/mock-runes.ts b/tests/mocks/mock-runes.ts index f8ae1a45f64..c56b82c4294 100644 --- a/tests/mocks/mock-runes.ts +++ b/tests/mocks/mock-runes.ts @@ -1,3 +1,7 @@ +import type { Page } from '@playwright/test'; + +import { TEST_ACCOUNT_1_NATIVE_SEGWIT_ADDRESS } from './constants'; + export const mockRunesOutputsByAddressList = [ { pkscript: '00148027825ee06ad337f9716df8137a1b651163c5b0', @@ -9,3 +13,88 @@ export const mockRunesOutputsByAddressList = [ spaced_rune_names: ['BESTINSLOT•XYZ'], }, ]; + +const mockedRunesOutputsByAddress = [ + { + pkscript: '5120708b3d28256de410602dda703cb9b3146763cb0ccb555531aafc8a94316c74dd', + wallet_addr: 'bc1pwz9n62p9dhjpqcpdmfcrewdnz3nk8jcved242vd2lj9fgvtvwnwscvdyre', + rune_id: '840000:3', + total_balance: '88980500000', + rune_name: 'DOGGOTOTHEMOON', + spaced_rune_name: 'DOG•GO•TO•THE•MOON', + decimals: 5, + avg_unit_price_in_sats: 6.057369808699874, + min_listed_unit_price_in_sats: 4.830420338815427, + min_listed_unit_price_unisat: 6.13049629380624, + }, + { + pkscript: '5120708b3d28256de410602dda703cb9b3146763cb0ccb555531aafc8a94316c74dd', + wallet_addr: 'bc1pwz9n62p9dhjpqcpdmfcrewdnz3nk8jcved242vd2lj9fgvtvwnwscvdyre', + rune_id: '844943:1452', + total_balance: '1', + rune_name: 'BEAUTIFULLEATHER', + spaced_rune_name: 'BEAUTIFUL•LEATHER', + decimals: 0, + avg_unit_price_in_sats: null, + min_listed_unit_price_in_sats: null, + min_listed_unit_price_unisat: null, + }, + { + pkscript: '5120708b3d28256de410602dda703cb9b3146763cb0ccb555531aafc8a94316c74dd', + wallet_addr: 'bc1pwz9n62p9dhjpqcpdmfcrewdnz3nk8jcved242vd2lj9fgvtvwnwscvdyre', + rune_id: '840010:93', + total_balance: '100000', + rune_name: 'THEGODOFBITCOIN', + spaced_rune_name: 'THE•GOD•OF•BITCOIN', + decimals: 0, + avg_unit_price_in_sats: 0.0076404, + min_listed_unit_price_in_sats: 0.011055, + min_listed_unit_price_unisat: 0.011055, + }, + { + pkscript: '5120708b3d28256de410602dda703cb9b3146763cb0ccb555531aafc8a94316c74dd', + wallet_addr: 'bc1pwz9n62p9dhjpqcpdmfcrewdnz3nk8jcved242vd2lj9fgvtvwnwscvdyre', + rune_id: '840000:35', + total_balance: '10392700000000', + rune_name: 'LOBOTHEWOLFPUP', + spaced_rune_name: 'LOBO•THE•WOLF•PUP', + decimals: 8, + avg_unit_price_in_sats: 1.2652523211622648, + min_listed_unit_price_in_sats: 1.4270991593917397, + min_listed_unit_price_unisat: 1.4270991863775586, + }, + { + pkscript: '5120708b3d28256de410602dda703cb9b3146763cb0ccb555531aafc8a94316c74dd', + wallet_addr: 'bc1pwz9n62p9dhjpqcpdmfcrewdnz3nk8jcved242vd2lj9fgvtvwnwscvdyre', + rune_id: '840022:28', + total_balance: '100000000', + rune_name: 'ZBITBLUEBITCOIN', + spaced_rune_name: 'ZBIT•BLUE•BITCOIN', + decimals: 8, + avg_unit_price_in_sats: 808.45, + min_listed_unit_price_in_sats: 803.9999999999999, + min_listed_unit_price_unisat: 803.9999999999999, + }, + { + pkscript: '5120708b3d28256de410602dda703cb9b3146763cb0ccb555531aafc8a94316c74dd', + wallet_addr: 'bc1pwz9n62p9dhjpqcpdmfcrewdnz3nk8jcved242vd2lj9fgvtvwnwscvdyre', + rune_id: '863031:10', + total_balance: '15000', + rune_name: 'RUNESASFUCK', + spaced_rune_name: 'RUNES•AS•FUCK', + decimals: 0, + avg_unit_price_in_sats: null, + min_listed_unit_price_in_sats: 2.0100001694943983, + min_listed_unit_price_unisat: 2.01, + }, +]; + +export async function mockMainnetTestAccountRunesOutputsRequest(page: Page) { + await page.route( + `**/leatherapi.bestinslot.xyz/v3/runes/wallet_balances?address=${TEST_ACCOUNT_1_NATIVE_SEGWIT_ADDRESS}`, + route => + route.fulfill({ + json: { block_height: 864803, data: mockedRunesOutputsByAddress }, + }) + ); +} diff --git a/tests/mocks/mock-src20.ts b/tests/mocks/mock-src20.ts new file mode 100644 index 00000000000..d58e869651a --- /dev/null +++ b/tests/mocks/mock-src20.ts @@ -0,0 +1,62 @@ +import type { Page } from '@playwright/test'; + +const mockedSrc20Tokens = [ + { + address: 'bc1qgaj8smw5xshswlq4uk7qd0kmlhfta8mhw8jh0s', + p: 'SRC-20', + tick: 'pxl', + amt: '6182.000000000000000000', + block_time: '2024-06-19T11:34:12.000Z', + last_update: 848619, + deploy_tx: '2fb1ac020ba71a932122049c2b0df6e98193d5f003bbcde5a9ca4ca4d87894a4', + deploy_img: + 'https://stampchain.io/stamps/2fb1ac020ba71a932122049c2b0df6e98193d5f003bbcde5a9ca4ca4d87894a4.svg', + }, +]; + +const mockedStamps = [ + { + cpid: 'A12389174053352215537', + stamp: 259109, + stamp_base64: + 'R0lGODlhKAAoAKIAAP////39/QAAAP7+/vz8/Pn5+f///wAAACH5BAUAAAYALAAAAAAoACgAAAPAOLHc/jDKSau9OOvNu/9gKI5kaZ6eoK5Cw6rM+0byHMhxDT8rvy8/YMvSo7mGuUuQslzSkEToTfrMNHU+H+vo0FGduCS34hwLu1RIUQ29KstT8/mdDrox3l04rtkLt3MTBAEAhQADCgwFJAOGjo+QkY6JD4UshgKSmpuOmZiWnKGSnp2XAKaXK52nKp+QpK+nrrKWpLaqoKO0u7arsbu1qr25wLCusMi8s8nFxM3Dysu4wcGt0LfTotqPxtves4YJADs=', + stamp_url: + 'https://stampchain.io/stamps/a3b095f1f5267897a873ac31bf787590391d10d10debea7598c38bcefedefade.gif', + stamp_mimetype: 'image/gif', + tx_hash: 'a3b095f1f5267897a873ac31bf787590391d10d10debea7598c38bcefedefade', + divisible: 0, + supply: 80, + locked: 1, + creator: 'bc1q9s9ltezcf7dqnp9f3q4telmaxjhuny0uvgz7wt', + creator_name: null, + is_btc_stamp: 0, + balance: 78, + }, +]; + +const mockedStampChainResponse = { + page: 1, + limit: 1000, + totalPages: 1, + total: 2, + last_block: 864803, + btc: { + address: 'bc1qgaj8smw5xshswlq4uk7qd0kmlhfta8mhw8jh0s', + balance: 0.00114478, + txCount: 125, + unconfirmedBalance: 0, + unconfirmedTxCount: 0, + }, + data: { + stamps: mockedStamps, + src20: mockedSrc20Tokens, + }, +}; + +export async function mockMainnetTestAccountStampchainRequest(page: Page) { + await page.route('**/stampchain.io/api/v2/balance/**', route => + route.fulfill({ + json: mockedStampChainResponse, + }) + ); +} diff --git a/tests/mocks/mock-stacks-balances.ts b/tests/mocks/mock-stacks-balances.ts new file mode 100644 index 00000000000..f3bd602f518 --- /dev/null +++ b/tests/mocks/mock-stacks-balances.ts @@ -0,0 +1,52 @@ +import type { Page } from '@playwright/test'; + +const mockedStacksBalances = { + stx: { + balance: '13568037', + total_sent: '15097000', + total_received: '39683037', + total_fees_sent: '11018000', + total_miner_rewards_received: '0', + lock_tx_id: '', + locked: '0', + lock_height: 0, + burnchain_lock_height: 0, + burnchain_unlock_height: 0, + }, + fungible_tokens: { + 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-special-vote::special-vote': { + balance: '2579839300', + total_sent: '0', + total_received: '2579839300', + }, + 'SP265WBWD4NH7TVPYQTVD23X3607NNK4484DTXQZ3.longcoin::longcoin': { + balance: '1888888000000', + total_sent: '0', + total_received: '1888888000000', + }, + 'SP32AEEF6WW5Y0NMJ1S8SBSZDAY8R5J32NBZFPKKZ.nope::NOT': { + balance: '10000', + total_sent: '0', + total_received: '10000', + }, + 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token::alex': { + balance: '2579839299', + total_sent: '8000000000', + total_received: '10579839299', + }, + 'SPWECF3XYVRBRCN23CJJCX9XKSF8RFWQPAQMWXT.blockstack::BLOCKSTACK': { + balance: '60000000000', + total_sent: '0', + total_received: '60000000000', + }, + }, + non_fungible_tokens: {}, +}; + +export async function mockMainnetTestAccountStacksBalancesRequest(page: Page) { + await page.route('**/api.hiro.so/extended/v1/address/**/balances', route => + route.fulfill({ + json: mockedStacksBalances, + }) + ); +} diff --git a/tests/mocks/mock-stx20.ts b/tests/mocks/mock-stx20.ts new file mode 100644 index 00000000000..d9bc494113d --- /dev/null +++ b/tests/mocks/mock-stx20.ts @@ -0,0 +1,19 @@ +import type { Page } from '@playwright/test'; + +import { TEST_ACCOUNT_1_STX_ADDRESS } from './constants'; + +const mockedStx20Tokens = [ + { + ticker: 'MEME', + balance: '100', + updateDate: '2024-04-08T10:56:16.720Z', + }, +]; + +export async function mockMainnetTestAccountStx20TokensRequest(page: Page) { + await page.route(`**/api.stx20.com/api/v1/balance/**`, route => + route.fulfill({ + json: { address: TEST_ACCOUNT_1_STX_ADDRESS, balances: mockedStx20Tokens }, + }) + ); +} diff --git a/tests/page-object-models/fund-choose-currency.page.ts b/tests/page-object-models/fund-choose-currency.page.ts index 61f66b5c526..6e84f4fc6d1 100644 --- a/tests/page-object-models/fund-choose-currency.page.ts +++ b/tests/page-object-models/fund-choose-currency.page.ts @@ -1,5 +1,4 @@ import { Locator, Page } from '@playwright/test'; -import { CryptoAssetSelectors } from '@tests/selectors/crypto-asset.selectors'; import { RouteUrls } from '@shared/route-urls'; @@ -10,12 +9,8 @@ export class FundChooseCurrencyPage { constructor(page: Page) { this.page = page; - this.stxButton = page.getByTestId( - CryptoAssetSelectors.CryptoAssetListItem.replace('{symbol}', 'stx') - ); - this.btcButton = page.getByTestId( - CryptoAssetSelectors.CryptoAssetListItem.replace('{symbol}', 'btc') - ); + this.stxButton = page.getByTestId('STX'); + this.btcButton = page.getByTestId('BTC'); } async goToFundBtcPage() { diff --git a/tests/page-object-models/home.page.ts b/tests/page-object-models/home.page.ts index 8c8c6c42b17..71bf92a4164 100644 --- a/tests/page-object-models/home.page.ts +++ b/tests/page-object-models/home.page.ts @@ -21,6 +21,9 @@ export class HomePage { readonly signOutSettingsListItem: Locator; readonly lockSettingsListItem: Locator; readonly fundAccountBtn: Locator; + readonly manageTokensBtn: Locator; + readonly assetList: Locator; + readonly manageTokensAssetsList: Locator; $signOutConfirmHasBackupCheckbox = createTestSelector( SettingsSelectors.SignOutConfirmHasBackupCheckbox @@ -50,6 +53,9 @@ export class HomePage { this.signOutSettingsListItem = page.getByTestId(SettingsSelectors.SignOutListItem); this.lockSettingsListItem = page.getByTestId(SettingsSelectors.LockListItem); this.fundAccountBtn = page.getByTestId(HomePageSelectors.FundAccountBtn); + this.manageTokensBtn = page.getByTestId(HomePageSelectors.ManageTokensBtn); + this.assetList = page.getByTestId(HomePageSelectors.AssetList); + this.manageTokensAssetsList = page.getByTestId(HomePageSelectors.ManageTokensAssetsList); } async goToReceiveDialog() { diff --git a/tests/page-object-models/onboarding.page.ts b/tests/page-object-models/onboarding.page.ts index aef75460036..757c0607ed6 100644 --- a/tests/page-object-models/onboarding.page.ts +++ b/tests/page-object-models/onboarding.page.ts @@ -45,6 +45,7 @@ export const testSoftwareAccountDefaultWalletState = { userSelectedTheme: 'system', dismissedMessages: [], }, + manageTokens: { entities: {}, ids: [] }, _persist: { version: 2, rehydrated: true }, }; diff --git a/tests/page-object-models/send.page.ts b/tests/page-object-models/send.page.ts index e9476876a78..2e611279cf4 100644 --- a/tests/page-object-models/send.page.ts +++ b/tests/page-object-models/send.page.ts @@ -1,5 +1,4 @@ import { Locator, Page } from '@playwright/test'; -import { CryptoAssetSelectors } from '@tests/selectors/crypto-asset.selectors'; import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; import { SharedComponentsSelectors } from '@tests/selectors/shared-component.selectors'; import { createTestSelector } from '@tests/utils'; @@ -71,18 +70,14 @@ export class SendPage { async selectBtcAndGoToSendForm() { await this.page.waitForURL('**' + RouteUrls.SendCryptoAsset); - await this.page - .getByTestId(CryptoAssetSelectors.CryptoAssetListItem.replace('{symbol}', 'btc')) - .click(); + await this.page.getByTestId('BTC').click(); await this.page.waitForURL('**' + `${RouteUrls.SendCryptoAsset}/btc`); await this.page.getByTestId(SendCryptoAssetSelectors.SendForm).waitFor(); } async selectStxAndGoToSendForm() { await this.page.waitForURL('**' + RouteUrls.SendCryptoAsset); - await this.page - .getByTestId(CryptoAssetSelectors.CryptoAssetListItem.replace('{symbol}', 'stx')) - .click(); + await this.page.getByTestId('STX').click(); await this.page.waitForURL('**' + `${RouteUrls.SendCryptoAsset}/stx`); await this.page.getByTestId(SendCryptoAssetSelectors.SendForm).waitFor(); } diff --git a/tests/selectors/home.selectors.ts b/tests/selectors/home.selectors.ts index ea28f10278d..4b14cd8eb44 100644 --- a/tests/selectors/home.selectors.ts +++ b/tests/selectors/home.selectors.ts @@ -12,4 +12,6 @@ export enum HomePageSelectors { BalancesTabBtn = 'tab-balances', SwapBtn = 'swap-btn', FundAccountBtn = 'fund-account-btn', + ManageTokensBtn = 'manage-tokens-btn', + ManageTokensAssetsList = 'manage-tokens-assets-list', } diff --git a/tests/specs/manage-tokens/manage-tokens.spec.ts b/tests/specs/manage-tokens/manage-tokens.spec.ts new file mode 100644 index 00000000000..069a8bee41f --- /dev/null +++ b/tests/specs/manage-tokens/manage-tokens.spec.ts @@ -0,0 +1,74 @@ +import { expect } from '@playwright/test'; + +import { test } from '../../fixtures/fixtures'; + +const sip10TokenTestId = 'SP265WBWD4NH7TVPYQTVD23X3607NNK4484DTXQZ3.longcoin::longcoin'; +const brc20TokenTestId = 'doge'; +const src20TokenTestId = 'pxl'; +const stx20TokenTestId = 'MEME'; +const runeTokenTestId = 'DOGGOTOTHEMOON'; + +test.describe('manage tokens', () => { + test.beforeEach(async ({ extensionId, globalPage, onboardingPage }) => { + await globalPage.setupAndUseApiCalls(extensionId); + await onboardingPage.signInWithTestAccount(extensionId); + }); + + test('that supported sip10 token is shown', async ({ homePage }) => { + await homePage.manageTokensBtn.click(); + const sip10Token = homePage.assetList.getByTestId(sip10TokenTestId); + await expect(sip10Token).toBeAttached(); + }); + + test('that token can be removed from asset list and added back', async ({ homePage }) => { + await homePage.manageTokensBtn.click(); + + // sip10 token + const sip10InAssetList = homePage.assetList.getByTestId(sip10TokenTestId); + const sip10TokenInManageTokensList = + homePage.manageTokensAssetsList.getByTestId(sip10TokenTestId); + + // brc20 token + const brc20InAssetList = homePage.assetList.getByTestId(brc20TokenTestId); + const brc20InManageTokensList = homePage.manageTokensAssetsList.getByTestId(brc20TokenTestId); + + // src20 token + const src20InAssetList = homePage.assetList.getByTestId(src20TokenTestId); + const src20InManageTokensList = homePage.manageTokensAssetsList.getByTestId(src20TokenTestId); + + // rune token + const runeInAssetList = homePage.assetList.getByTestId(runeTokenTestId); + const runeInManageTokensList = homePage.manageTokensAssetsList.getByTestId(runeTokenTestId); + + // stx20 token (disabled by default) + const stx20InAssetList = homePage.assetList.getByTestId(stx20TokenTestId); + const stx20InManageTokensList = homePage.manageTokensAssetsList.getByTestId(stx20TokenTestId); + + // disable tokens that are enabled by default + await sip10TokenInManageTokensList.click(); + await brc20InManageTokensList.click(); + await src20InManageTokensList.click(); + await runeInManageTokensList.click(); + + // test that tokens are disabled + await expect(sip10InAssetList).not.toBeAttached(); + await expect(brc20InAssetList).not.toBeAttached(); + await expect(src20InAssetList).not.toBeAttached(); + await expect(stx20InAssetList).not.toBeAttached(); + await expect(runeInAssetList).not.toBeAttached(); + + // enable tokens + await sip10TokenInManageTokensList.click(); + await brc20InManageTokensList.click(); + await src20InManageTokensList.click(); + await stx20InManageTokensList.click(); + await runeInManageTokensList.click(); + + // test that tokens are enabled + await expect(sip10InAssetList).toBeAttached(); + await expect(brc20InAssetList).toBeAttached(); + await expect(src20InAssetList).toBeAttached(); + await expect(stx20InAssetList).toBeAttached(); + await expect(runeInAssetList).toBeAttached(); + }); +});