From b8f2fb8f2d32eddae586eb0dfc592094986d01ca Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Fri, 3 Jan 2025 17:56:42 +0100 Subject: [PATCH] feat: add support for Abstract Global Wallet --- lib/hooks/ethereum/EthereumProvider.tsx | 2 + lib/utils/errors.ts | 1 + lib/utils/wallet.ts | 1 + package.json | 9 +- .../assets/images/vendor/wallets/abstract.jpg | Bin 0 -> 7972 bytes yarn.lock | 349 +++++++++++++++++- 6 files changed, 352 insertions(+), 10 deletions(-) create mode 100644 public/assets/images/vendor/wallets/abstract.jpg diff --git a/lib/hooks/ethereum/EthereumProvider.tsx b/lib/hooks/ethereum/EthereumProvider.tsx index 5d8f0543d..ade262979 100644 --- a/lib/hooks/ethereum/EthereumProvider.tsx +++ b/lib/hooks/ethereum/EthereumProvider.tsx @@ -1,5 +1,6 @@ 'use client'; +import { abstractWalletConnector } from '@abstract-foundation/agw-react/connectors'; import { useCsrRouter } from 'lib/i18n/csr-navigation'; import { usePathname } from 'lib/i18n/navigation'; import { ORDERED_CHAINS, createViemPublicClientForChain, getViemChainConfig } from 'lib/utils/chains'; @@ -26,6 +27,7 @@ export const connectors = [ }, }), coinbaseWallet({ appName: 'Revoke.cash' }), + abstractWalletConnector(), ]; export const wagmiConfig = createConfig({ diff --git a/lib/utils/errors.ts b/lib/utils/errors.ts index 19cf99467..ad0abcfa0 100644 --- a/lib/utils/errors.ts +++ b/lib/utils/errors.ts @@ -76,6 +76,7 @@ export const isNetworkError = (error?: string | any): boolean => { export const parseErrorMessage = (error: any): string => { const errorMessage = + error?.cause?.details || // Abstract Global Wallet error?.error?.message || error?.data?.message || error?.response?.data?.message || diff --git a/lib/utils/wallet.ts b/lib/utils/wallet.ts index 6945dbd79..5c9781b90 100644 --- a/lib/utils/wallet.ts +++ b/lib/utils/wallet.ts @@ -12,6 +12,7 @@ export const getWalletIcon = (connector: Connector): string | undefined => { const mapping: Record = { // Injected wallets '1inchwallet': '/assets/images/vendor/wallets/1inch.svg', + abstract: '/assets/images/vendor/wallets/abstract.jpg', backpack: '/assets/images/vendor/wallets/backpack.svg', 'bifrost wallet': '/assets/images/vendor/wallets/bifrost.svg', bitkeep: '/assets/images/vendor/wallets/bitkeep.svg', diff --git a/package.json b/package.json index e00670d35..542ca28f8 100644 --- a/package.json +++ b/package.json @@ -23,10 +23,13 @@ }, "private": true, "dependencies": { + "@abstract-foundation/agw-client": "^0.1.5", + "@abstract-foundation/agw-react": "^0.1.7", "@dotenvx/dotenvx": "^1.14.2", "@headlessui/react": "^2.1.2", "@heroicons/react": "^2.1.5", "@neondatabase/serverless": "^0.10.1", + "@privy-io/cross-app-connect": "^0.1.2", "@revoke.cash/chains": "^59.0.0", "@tanstack/query-sync-storage-persister": "^5.52.0", "@tanstack/react-query": "^5.52.0", @@ -77,6 +80,7 @@ "@cypress/grep": "^4.1.0", "@lavamoat/allow-scripts": "^3.2.0", "@localazy/cli": "^1.7.14", + "@rainbow-me/rainbowkit": "^2.2.1", "@tailwindcss/typography": "^0.5.14", "@types/md5": "^2.3.5", "@types/mixpanel-browser": "^2.49.1", @@ -111,6 +115,8 @@ "lavamoat": { "allowScripts": { "$root$": true, + "@abstract-foundation/agw-react>secp256k1": false, + "@biomejs/biome": true, "@vercel/speed-insights": false, "cypress": true, "sharp": true, @@ -118,8 +124,7 @@ "viem>ws>bufferutil": true, "viem>ws>utf-8-validate": true, "wagmi>@wagmi/connectors>cbw-sdk>keccak": false, - "wagmi>@wagmi/connectors>@metamask/sdk>eciesjs>secp256k1": false, - "@biomejs/biome": true + "wagmi>@wagmi/connectors>@metamask/sdk>eciesjs>secp256k1": false } }, "mocha": { diff --git a/public/assets/images/vendor/wallets/abstract.jpg b/public/assets/images/vendor/wallets/abstract.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fba6c2f01b7306a3645b65c460ea69041c05ff59 GIT binary patch literal 7972 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.0.4" + viem: ^2.21.26 + peerDependenciesMeta: + typescript: + optional: true + checksum: 29ae6c3bcec0fb7b46e2f627fc13b141298a1a246ecb878ba22e05deeca69344181073e3d6e66bd1ea8d1509de485f097874bb033c4b2d255339d526e72d9467 + languageName: node + linkType: hard + +"@abstract-foundation/agw-react@npm:^0.1.7": + version: 0.1.7 + resolution: "@abstract-foundation/agw-react@npm:0.1.7" + peerDependencies: + "@abstract-foundation/agw-client": ^0.1.5 + "@privy-io/cross-app-connect": ^0.1.2 + "@privy-io/react-auth": ^1.97.0 + "@tanstack/react-query": ^5 + react: ">=18" + secp256k1: ">=5.0.1" + thirdweb: ^5.68.0 + typescript: ">=5.0.4" + viem: ^2.21.26 + wagmi: ^2 + peerDependenciesMeta: + "@rainbow-me/rainbowkit": + optional: true + thirdweb: + optional: true + typescript: + optional: true + checksum: 4ddeff14bee5a39b20eab1bf5cf257652c68f1e12850851c80a9b9b640a4ee0ae5fe508454420f82f2ad1fb374393a7aa054f8f1ea0fa33415f5dc775ff01fca + languageName: node + linkType: hard + "@adraffy/ens-normalize@npm:1.10.0": version: 1.10.0 resolution: "@adraffy/ens-normalize@npm:1.10.0" @@ -588,6 +627,13 @@ __metadata: languageName: node linkType: hard +"@emotion/hash@npm:^0.9.0": + version: 0.9.2 + resolution: "@emotion/hash@npm:0.9.2" + checksum: 379bde2830ccb0328c2617ec009642321c0e009a46aa383dfbe75b679c6aea977ca698c832d225a893901f29d7b3eef0e38cf341f560f6b2b56f1ff23c172387 + languageName: node + linkType: hard + "@emotion/hash@npm:^0.9.1": version: 0.9.1 resolution: "@emotion/hash@npm:0.9.1" @@ -1734,6 +1780,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:^1.5.0": + version: 1.8.0 + resolution: "@noble/curves@npm:1.8.0" + dependencies: + "@noble/hashes": 1.7.0 + checksum: 88198bc5b8049358dfcc6c5e121125744fb81c703299127800f38f868a41697bc26bef8f88dc38f1939f4e0133b8db5f24337164eca7421a6a9480ee711f5e1b + languageName: node + linkType: hard + "@noble/curves@npm:^1.6.0": version: 1.7.0 resolution: "@noble/curves@npm:1.7.0" @@ -1743,6 +1798,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.3.2": + version: 1.3.2 + resolution: "@noble/hashes@npm:1.3.2" + checksum: fe23536b436539d13f90e4b9be843cc63b1b17666a07634a2b1259dded6f490be3d050249e6af98076ea8f2ea0d56f578773c2197f2aa0eeaa5fba5bc18ba474 + languageName: node + linkType: hard + "@noble/hashes@npm:1.4.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.4.0, @noble/hashes@npm:~1.4.0": version: 1.4.0 resolution: "@noble/hashes@npm:1.4.0" @@ -1757,6 +1819,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.7.0": + version: 1.7.0 + resolution: "@noble/hashes@npm:1.7.0" + checksum: c06949ead7f5771a74f6fc9a346c7519212b3484c5b7916c8cad6b1b0e5f5f6c997ac3a43c0884ef8b99cfc55fac89058eefb29b6aad1cb41f436c748b316a1c + languageName: node + linkType: hard + "@noble/hashes@npm:^1.5.0": version: 1.6.1 resolution: "@noble/hashes@npm:1.6.1" @@ -2048,6 +2117,47 @@ __metadata: languageName: node linkType: hard +"@privy-io/cross-app-connect@npm:^0.1.2": + version: 0.1.2 + resolution: "@privy-io/cross-app-connect@npm:0.1.2" + dependencies: + "@noble/curves": ^1.5.0 + "@noble/hashes": 1.3.2 + "@scure/base": ~1.1.2 + peerDependencies: + "@rainbow-me/rainbowkit": ^2.1.5 + "@wagmi/core": ^2.13.4 + viem: ^2.21.3 + peerDependenciesMeta: + "@rainbow-me/rainbowkit": + optional: true + "@wagmi/core": + optional: true + checksum: 0b2f9d6f3b09f3f0fd7b087bb09fa073a07fdba48454c4d9ccee510fb2a3544b0d1cb1284ef952a94c6b35a1a18b49767069b774c21d14a1956a4ddaca840b6f + languageName: node + linkType: hard + +"@rainbow-me/rainbowkit@npm:^2.2.1": + version: 2.2.1 + resolution: "@rainbow-me/rainbowkit@npm:2.2.1" + dependencies: + "@vanilla-extract/css": 1.15.5 + "@vanilla-extract/dynamic": 2.1.2 + "@vanilla-extract/sprinkles": 1.6.3 + clsx: 2.1.1 + qrcode: 1.5.4 + react-remove-scroll: 2.6.0 + ua-parser-js: ^1.0.37 + peerDependencies: + "@tanstack/react-query": ">=5.0.0" + react: ">=18" + react-dom: ">=18" + viem: 2.x + wagmi: ^2.9.0 + checksum: 0647344590fe2970b2d0446b08a4b4d29af015992df0e8da47c17388fd7e8d1334d3a7aae4e574306950bb0ce51faef11d8713ed557e04d8bd92627938d91915 + languageName: node + linkType: hard + "@react-aria/focus@npm:^3.17.1": version: 3.18.2 resolution: "@react-aria/focus@npm:3.18.2" @@ -2173,6 +2283,13 @@ __metadata: languageName: node linkType: hard +"@scure/base@npm:~1.1.2": + version: 1.1.9 + resolution: "@scure/base@npm:1.1.9" + checksum: 120820a37dfe9dfe4cab2b7b7460552d08e67dee8057ed5354eb68d8e3440890ae983ce3bee957d2b45684950b454a2b6d71d5ee77c1fd3fddc022e2a510337f + languageName: node + linkType: hard + "@scure/bip32@npm:1.4.0": version: 1.4.0 resolution: "@scure/bip32@npm:1.4.0" @@ -2795,6 +2912,51 @@ __metadata: languageName: node linkType: hard +"@vanilla-extract/css@npm:1.15.5": + version: 1.15.5 + resolution: "@vanilla-extract/css@npm:1.15.5" + dependencies: + "@emotion/hash": ^0.9.0 + "@vanilla-extract/private": ^1.0.6 + css-what: ^6.1.0 + cssesc: ^3.0.0 + csstype: ^3.0.7 + dedent: ^1.5.3 + deep-object-diff: ^1.1.9 + deepmerge: ^4.2.2 + lru-cache: ^10.4.3 + media-query-parser: ^2.0.2 + modern-ahocorasick: ^1.0.0 + picocolors: ^1.0.0 + checksum: 0c260e55a1648a827df74cae4475a1a61767e4ef3a7a3a299853ae3f77ed220d7a4b604737886140ea9e72a379eda4ee45b7349a4651cf3d5a4f2c8697448d6d + languageName: node + linkType: hard + +"@vanilla-extract/dynamic@npm:2.1.2": + version: 2.1.2 + resolution: "@vanilla-extract/dynamic@npm:2.1.2" + dependencies: + "@vanilla-extract/private": ^1.0.6 + checksum: ec6ec9b02c7ec8a9d60aebf63225fd3f930c06ad824321f03f683f1948eb6d4e554d934303da140b3230b4af2fa15bab494c6da2a3b9a172e4118c245b4f942a + languageName: node + linkType: hard + +"@vanilla-extract/private@npm:^1.0.6": + version: 1.0.6 + resolution: "@vanilla-extract/private@npm:1.0.6" + checksum: 2265b02af29d8cd40f6ddeeed197fb2df1a7695f5a9821d5e3597677179be8b83bcd8fe4df4a6178544f89123d745a3c6a13599d4fe4e5873b065a8ad329f690 + languageName: node + linkType: hard + +"@vanilla-extract/sprinkles@npm:1.6.3": + version: 1.6.3 + resolution: "@vanilla-extract/sprinkles@npm:1.6.3" + peerDependencies: + "@vanilla-extract/css": ^1.0.0 + checksum: 7eb4fe0f1a6048bf5ffb5ffab964c2d127ff95244da79dca2e448af380b591c7af3b4f63ab243584baa8a42c7694d8fe9eeb366587a2da381a481fe1a9e02af8 + languageName: node + linkType: hard + "@vercel/speed-insights@npm:^1.0.12": version: 1.0.12 resolution: "@vercel/speed-insights@npm:1.0.12" @@ -4091,6 +4253,13 @@ __metadata: languageName: node linkType: hard +"clsx@npm:2.1.1, clsx@npm:^2.0.0, clsx@npm:^2.1.0": + version: 2.1.1 + resolution: "clsx@npm:2.1.1" + checksum: acd3e1ab9d8a433ecb3cc2f6a05ab95fe50b4a3cfc5ba47abb6cbf3754585fcb87b84e90c822a1f256c4198e3b41c7f6c391577ffc8678ad587fc0976b24fd57 + languageName: node + linkType: hard + "clsx@npm:^1.2.1": version: 1.2.1 resolution: "clsx@npm:1.2.1" @@ -4098,13 +4267,6 @@ __metadata: languageName: node linkType: hard -"clsx@npm:^2.0.0, clsx@npm:^2.1.0": - version: 2.1.1 - resolution: "clsx@npm:2.1.1" - checksum: acd3e1ab9d8a433ecb3cc2f6a05ab95fe50b4a3cfc5ba47abb6cbf3754585fcb87b84e90c822a1f256c4198e3b41c7f6c391577ffc8678ad587fc0976b24fd57 - languageName: node - linkType: hard - "cmd-shim@npm:^6.0.0": version: 6.0.3 resolution: "cmd-shim@npm:6.0.3" @@ -4427,6 +4589,13 @@ __metadata: languageName: node linkType: hard +"css-what@npm:^6.1.0": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe + languageName: node + linkType: hard + "cssesc@npm:^3.0.0": version: 3.0.0 resolution: "cssesc@npm:3.0.0" @@ -4436,7 +4605,7 @@ __metadata: languageName: node linkType: hard -"csstype@npm:^3.0.2": +"csstype@npm:^3.0.2, csstype@npm:^3.0.7": version: 3.1.3 resolution: "csstype@npm:3.1.3" checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 @@ -4585,6 +4754,18 @@ __metadata: languageName: node linkType: hard +"dedent@npm:^1.5.3": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 045b595557b2a8ea2eb9b0b4623d764e9a87326486fe2b61191b4342ed93dc01245644d8a09f3108a50c0ee7965f1eedd92e4a3a503ed89ea8e810566ea27f9a + languageName: node + linkType: hard + "deep-eql@npm:^5.0.1": version: 5.0.2 resolution: "deep-eql@npm:5.0.2" @@ -4592,6 +4773,20 @@ __metadata: languageName: node linkType: hard +"deep-object-diff@npm:^1.1.9": + version: 1.1.9 + resolution: "deep-object-diff@npm:1.1.9" + checksum: ecd42455e4773f653595d28070295e7aaa8402db5f8ab21d0bec115a7cb4de5e207a5665514767da5f025c96597f1d3a0a4888aeb4dd49e03c996871a3aa05ef + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 + languageName: node + linkType: hard + "define-data-property@npm:^1.1.4": version: 1.1.4 resolution: "define-data-property@npm:1.1.4" @@ -4661,6 +4856,13 @@ __metadata: languageName: node linkType: hard +"detect-node-es@npm:^1.1.0": + version: 1.1.0 + resolution: "detect-node-es@npm:1.1.0" + checksum: e46307d7264644975b71c104b9f028ed1d3d34b83a15b8a22373640ce5ea630e5640b1078b8ea15f202b54641da71e4aa7597093bd4b91f113db520a26a37449 + languageName: node + linkType: hard + "devlop@npm:^1.0.0, devlop@npm:^1.1.0": version: 1.1.0 resolution: "devlop@npm:1.1.0" @@ -5612,6 +5814,13 @@ __metadata: languageName: node linkType: hard +"get-nonce@npm:^1.0.0": + version: 1.0.1 + resolution: "get-nonce@npm:1.0.1" + checksum: e2614e43b4694c78277bb61b0f04583d45786881289285c73770b07ded246a98be7e1f78b940c80cbe6f2b07f55f0b724e6db6fd6f1bcbd1e8bdac16521074ed + languageName: node + linkType: hard + "get-port-please@npm:^3.1.2": version: 3.1.2 resolution: "get-port-please@npm:3.1.2" @@ -7483,6 +7692,15 @@ __metadata: languageName: node linkType: hard +"media-query-parser@npm:^2.0.2": + version: 2.0.2 + resolution: "media-query-parser@npm:2.0.2" + dependencies: + "@babel/runtime": ^7.12.5 + checksum: 8ef956d9e63fe6f4041988beda69843b3a6bb48228ea2923a066f6e7c8f7c5dba75fae357318c48a97ed5beae840b8425cb7e727fc1bb77acc65f2005f8945ab + languageName: node + linkType: hard + "memoize-one@npm:^6.0.0": version: 6.0.0 resolution: "memoize-one@npm:6.0.0" @@ -8130,6 +8348,13 @@ __metadata: languageName: node linkType: hard +"modern-ahocorasick@npm:^1.0.0": + version: 1.1.0 + resolution: "modern-ahocorasick@npm:1.1.0" + checksum: 78b99840c9af086c1e36a594ee85bebd8c19d48e2ef31a67d1bad0e673ac12fc931e5961abb5b16daaf820af4923e700f76b1793b7413e18782230162866a0af + languageName: node + linkType: hard + "motion@npm:10.16.2": version: 10.16.2 resolution: "motion@npm:10.16.2" @@ -9387,6 +9612,19 @@ __metadata: languageName: node linkType: hard +"qrcode@npm:1.5.4": + version: 1.5.4 + resolution: "qrcode@npm:1.5.4" + dependencies: + dijkstrajs: ^1.0.1 + pngjs: ^5.0.0 + yargs: ^15.3.1 + bin: + qrcode: bin/qrcode + checksum: 0a162822e12c02b0333315462fd4ccad22255002130f86806773be7592aec5ef295efaffa3eb148cbf00e290839c7b610f63b0d62a0c5efc5bc52a68f4189684 + languageName: node + linkType: hard + "qs@npm:6.10.4": version: 6.10.4 resolution: "qs@npm:6.10.4" @@ -9533,6 +9771,41 @@ __metadata: languageName: node linkType: hard +"react-remove-scroll-bar@npm:^2.3.6": + version: 2.3.8 + resolution: "react-remove-scroll-bar@npm:2.3.8" + dependencies: + react-style-singleton: ^2.2.2 + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: c4663247f689dbe51c370836edf735487f6d8796acb7f15b09e8a1c14e84c7997360e8e3d54de2bc9c0e782fed2b2c4127d15b4053e4d2cf26839e809e57605f + languageName: node + linkType: hard + +"react-remove-scroll@npm:2.6.0": + version: 2.6.0 + resolution: "react-remove-scroll@npm:2.6.0" + dependencies: + react-remove-scroll-bar: ^2.3.6 + react-style-singleton: ^2.2.1 + tslib: ^2.1.0 + use-callback-ref: ^1.3.0 + use-sidecar: ^1.1.2 + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: e7ad2383ce20d63cf28f3ed14e63f684e139301fc4a5c1573da330d4465b733e6084c33b2bfcaee448c9b1df0e37993a15d6cba8a1dd80fe631f803e48e9f798 + languageName: node + linkType: hard + "react-select@npm:^5.8.0": version: 5.8.0 resolution: "react-select@npm:5.8.0" @@ -9571,6 +9844,22 @@ __metadata: languageName: node linkType: hard +"react-style-singleton@npm:^2.2.1, react-style-singleton@npm:^2.2.2": + version: 2.2.3 + resolution: "react-style-singleton@npm:2.2.3" + dependencies: + get-nonce: ^1.0.0 + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a7b0bf493c9231065ebafa84c4237aed997c746c561196121b7de82fe155a5355b372db5070a3ac9fe980cf7f60dc0f1e8cf6402a2aa5b2957392932ccf76e76 + languageName: node + linkType: hard + "react-syntax-highlighter@npm:^15.5.0": version: 15.5.0 resolution: "react-syntax-highlighter@npm:15.5.0" @@ -9899,6 +10188,8 @@ __metadata: version: 0.0.0-use.local resolution: "revoke.cash@workspace:." dependencies: + "@abstract-foundation/agw-client": ^0.1.5 + "@abstract-foundation/agw-react": ^0.1.7 "@biomejs/biome": ^1.9.4 "@commitlint/cli": ^19.6.0 "@commitlint/config-conventional": ^19.6.0 @@ -9909,6 +10200,8 @@ __metadata: "@lavamoat/allow-scripts": ^3.2.0 "@localazy/cli": ^1.7.14 "@neondatabase/serverless": ^0.10.1 + "@privy-io/cross-app-connect": ^0.1.2 + "@rainbow-me/rainbowkit": ^2.2.1 "@revoke.cash/chains": ^59.0.0 "@tailwindcss/typography": ^0.5.14 "@tanstack/query-sync-storage-persister": ^5.52.0 @@ -11065,6 +11358,15 @@ __metadata: languageName: node linkType: hard +"ua-parser-js@npm:^1.0.37": + version: 1.0.40 + resolution: "ua-parser-js@npm:1.0.40" + bin: + ua-parser-js: script/cli.js + checksum: ae555a33dc9395dd877e295d6adbf5634e047aad7c3358328830218f3ca3a6233e35848cd355465a7612f269860e8029984389282940c7a27c9af4dfcdbba8c3 + languageName: node + linkType: hard + "ufo@npm:^1.4.0, ufo@npm:^1.5.3, ufo@npm:^1.5.4": version: 1.5.4 resolution: "ufo@npm:1.5.4" @@ -11339,6 +11641,21 @@ __metadata: languageName: node linkType: hard +"use-callback-ref@npm:^1.3.0": + version: 1.3.3 + resolution: "use-callback-ref@npm:1.3.3" + dependencies: + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 4da1c82d7a2409cee6c882748a40f4a083decf238308bf12c3d0166f0e338f8d512f37b8d11987eb5a421f14b9b5b991edf3e11ed25c3bb7a6559081f8359b44 + languageName: node + linkType: hard + "use-intl@npm:^3.19.1": version: 3.19.1 resolution: "use-intl@npm:3.19.1" @@ -11372,6 +11689,22 @@ __metadata: languageName: node linkType: hard +"use-sidecar@npm:^1.1.2": + version: 1.1.3 + resolution: "use-sidecar@npm:1.1.3" + dependencies: + detect-node-es: ^1.1.0 + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 88664c6b2c5b6e53e4d5d987694c9053cea806da43130248c74ca058945c8caa6ccb7b1787205a9eb5b9d124633e42153848904002828acabccdc48cda026622 + languageName: node + linkType: hard + "use-sync-external-store@npm:1.2.0": version: 1.2.0 resolution: "use-sync-external-store@npm:1.2.0"