From f51ad41ac417c1e0f528edbac12539300ca18047 Mon Sep 17 00:00:00 2001 From: tuna Date: Fri, 22 Aug 2025 18:10:47 +0700 Subject: [PATCH 1/9] feat: add sfa support --- src/types/interface.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/types/interface.ts b/src/types/interface.ts index f285185..49da2ae 100644 --- a/src/types/interface.ts +++ b/src/types/interface.ts @@ -269,4 +269,15 @@ export type AggregateVerifierParams = { verifier_id: string; }; +export type SubVerifierInfo = { + verifier: string; + idToken: string; +}; + +export type AggregateVerifierParams = { + verify_params: { verifier_id: string; idtoken: string }[]; + sub_verifier_ids: string[]; + verifier_id: string; +}; + export { AUTH_CONNECTION, BUILD_ENV, LANGUAGES, MFA_FACTOR, MFA_LEVELS, SUPPORTED_KEY_CURVES, THEME_MODES, WEB3AUTH_NETWORK }; From 1c10a75e191791fda844a2244696e64c88d5aea1 Mon Sep 17 00:00:00 2001 From: tuna Date: Sun, 24 Aug 2025 10:03:12 +0700 Subject: [PATCH 2/9] feat: add web3auth provider --- package-lock.json | 279 ++++++++++++++++++++-- package.json | 10 +- src/base/hooks/index.ts | 11 + src/react/context/web3AuthInnerContext.ts | 69 ++++++ src/react/interfaces.ts | 22 ++ src/react/web3AuthProvider.ts | 8 + 6 files changed, 381 insertions(+), 18 deletions(-) create mode 100644 src/base/hooks/index.ts create mode 100644 src/react/context/web3AuthInnerContext.ts create mode 100644 src/react/interfaces.ts create mode 100644 src/react/web3AuthProvider.ts diff --git a/package-lock.json b/package-lock.json index 9847a78..8c55e11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "@types/lodash.merge": "^4.6.9", "@types/lodash.unionby": "^4.8.9", "@types/node": "^22", + "@types/react": "^19.1.10", "@types/react-native": "^0.73.0", "@types/urijs": "^1.19.25", "@web3auth/base": "^9.7.0", @@ -42,9 +43,11 @@ "husky": "^9.1.7", "lint-staged": "^16.1.2", "prettier": "^3.6.1", + "react": "^19.1.1", "react-native": "~0.80.0", "rimraf": "^6.0.1", - "typescript": "^5.8.3" + "typescript": "^5.8.3", + "vue": "^3.x" }, "engines": { "node": ">=18.x", @@ -52,7 +55,10 @@ }, "peerDependencies": { "@babel/runtime": "^7.x", - "react-native": "*" + "react": ">=18", + "react-dom": ">=18", + "react-native": "*", + "vue": ">=3.x" } }, "node_modules/@ampproject/remapping": { @@ -395,12 +401,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.7.tgz", - "integrity": "sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.7" + "@babel/types": "^7.28.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -1851,9 +1857,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.7.tgz", - "integrity": "sha512-8OLQgDScAOHXnAz2cV+RfzzNMipuLVBz2biuAJFMV9bfkNf393je3VM8CLkjQodW5+iWsSJdSgSWT6rsZoXHPw==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -3219,9 +3225,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { @@ -5309,6 +5315,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/react": { + "version": "19.1.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", + "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, "node_modules/@types/react-native": { "version": "0.73.0", "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.73.0.tgz", @@ -5917,6 +5933,115 @@ } } }, + "node_modules/@vue/compiler-core": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", + "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@vue/shared": "3.5.19", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", + "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.19", + "@vue/shared": "3.5.19" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", + "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@vue/compiler-core": "3.5.19", + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.17", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", + "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.19", + "@vue/shared": "3.5.19" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", + "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.19" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", + "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.19", + "@vue/shared": "3.5.19" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", + "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.19", + "@vue/runtime-core": "3.5.19", + "@vue/shared": "3.5.19", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", + "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19" + }, + "peerDependencies": { + "vue": "3.5.19" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", + "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@web3auth/auth": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-10.5.0.tgz", @@ -8397,6 +8522,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true, + "license": "MIT" + }, "node_modules/data-uri-to-buffer": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", @@ -8891,6 +9023,19 @@ "node": ">=10.13.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/envinfo": { "version": "7.14.0", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", @@ -12726,6 +12871,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/magic-string": { + "version": "0.30.18", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz", + "integrity": "sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -13414,6 +13569,25 @@ "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" } }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/napi-postinstall": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz", @@ -14364,6 +14538,35 @@ "node": ">= 0.4" } }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -14671,11 +14874,10 @@ } }, "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -14711,6 +14913,19 @@ } } }, + "node_modules/react-dom": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.1" + } + }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", @@ -16129,6 +16344,16 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -17394,6 +17619,28 @@ "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", "license": "MIT" }, + "node_modules/vue": { + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", + "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-sfc": "3.5.19", + "@vue/runtime-dom": "3.5.19", + "@vue/server-renderer": "3.5.19", + "@vue/shared": "3.5.19" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", diff --git a/package.json b/package.json index 303b3bc..51fe70b 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,10 @@ }, "peerDependencies": { "@babel/runtime": "^7.x", - "react-native": "*" + "react-native": "*", + "react": ">=18", + "react-dom": ">=18", + "vue": ">=3.x" }, "devDependencies": { "@babel/runtime": "^7.27.6", @@ -66,6 +69,7 @@ "@types/lodash.merge": "^4.6.9", "@types/lodash.unionby": "^4.8.9", "@types/node": "^22", + "@types/react": "^19.1.10", "@types/react-native": "^0.73.0", "@types/urijs": "^1.19.25", "@web3auth/base": "^9.7.0", @@ -73,9 +77,11 @@ "husky": "^9.1.7", "lint-staged": "^16.1.2", "prettier": "^3.6.1", + "react": "^19.1.1", "react-native": "~0.80.0", "rimraf": "^6.0.1", - "typescript": "^5.8.3" + "typescript": "^5.8.3", + "vue": "^3.x" }, "engines": { "node": ">=18.x", diff --git a/src/base/hooks/index.ts b/src/base/hooks/index.ts new file mode 100644 index 0000000..52f85e9 --- /dev/null +++ b/src/base/hooks/index.ts @@ -0,0 +1,11 @@ +import { type IProvider } from "@web3auth/base"; + +export interface IBaseWeb3AuthHookContext { + isInitialized: boolean; + isInitializing: boolean; + initError: unknown; + isConnected: boolean; + isMFAEnabled: boolean; + provider: IProvider | null; + setIsMFAEnabled(isMFAEnabled: boolean): void; +} diff --git a/src/react/context/web3AuthInnerContext.ts b/src/react/context/web3AuthInnerContext.ts new file mode 100644 index 0000000..d1604cf --- /dev/null +++ b/src/react/context/web3AuthInnerContext.ts @@ -0,0 +1,69 @@ +import { type IProvider } from "@web3auth/base"; +import { createContext, createElement, PropsWithChildren, useEffect, useMemo, useState } from "react"; + +import Web3Auth from "../../Web3Auth"; +import { IWeb3AuthInnerContext, Web3AuthProviderProps } from "../interfaces"; + +export const Web3AuthInnerContext = createContext(null); + +export function Web3AuthInnerProvider(params: PropsWithChildren) { + const { children, config, webBrowser, storage } = params; + const { web3AuthOptions } = config; + + const [isInitializing, setIsInitializing] = useState(false); + const [initError, setInitError] = useState(null); + const [provider, setProvider] = useState(null); + const [isInitialized, setIsInitialized] = useState(false); + const [isMFAEnabled, setIsMFAEnabled] = useState(false); + + const web3Auth = useMemo(() => { + setProvider(null); + + return new Web3Auth(webBrowser, storage, web3AuthOptions); + }, [web3AuthOptions, webBrowser, storage]); + + const isConnected = web3Auth.connected; + + useEffect(() => { + const controller = new AbortController(); + async function init() { + try { + setInitError(null); + setIsInitializing(true); + await web3Auth.init(); + setIsInitialized(true); + } catch (error) { + setInitError(error as Error); + } finally { + setIsInitializing(false); + } + } + + if (web3Auth) init(); + + return () => { + controller.abort(); + }; + }, [web3Auth, config]); + + useEffect(() => { + if (isConnected) { + setProvider(web3Auth.provider); + } + }, [isConnected]); + + const value = useMemo(() => { + return { + web3Auth, + isConnected, + isInitialized, + provider, + isInitializing, + initError, + isMFAEnabled, + setIsMFAEnabled, + }; + }, [web3Auth, isConnected, isMFAEnabled, setIsMFAEnabled, isInitialized, provider, isInitializing, initError]); + + return createElement(Web3AuthInnerContext.Provider, { value }, children); +} diff --git a/src/react/interfaces.ts b/src/react/interfaces.ts new file mode 100644 index 0000000..e211e90 --- /dev/null +++ b/src/react/interfaces.ts @@ -0,0 +1,22 @@ +import { IBaseWeb3AuthHookContext } from "../base/hooks"; +import { EncryptedStorage } from "../types/IEncryptedStorage"; +import { SecureStore } from "../types/IExpoSecureStore"; +import type { SdkInitParams } from "../types/interface"; +import { IWebBrowser } from "../types/IWebBrowser"; +import Web3Auth from "../Web3Auth"; + +export type Web3AuthContextConfig = { + web3AuthOptions: SdkInitParams; +}; + +export interface Web3AuthProviderProps { + webBrowser: IWebBrowser; + storage: SecureStore | EncryptedStorage; + config: Web3AuthContextConfig; +} + +export interface IWeb3AuthInnerContext extends IBaseWeb3AuthHookContext { + web3Auth: Web3Auth | null; +} + +export type IWeb3AuthContext = IWeb3AuthInnerContext; diff --git a/src/react/web3AuthProvider.ts b/src/react/web3AuthProvider.ts new file mode 100644 index 0000000..35b4e28 --- /dev/null +++ b/src/react/web3AuthProvider.ts @@ -0,0 +1,8 @@ +import { createElement, PropsWithChildren } from "react"; + +import { Web3AuthInnerProvider } from "./context/web3AuthInnerContext"; +import { Web3AuthProviderProps } from "./interfaces"; + +export function Web3AuthProvider({ storage, webBrowser, config, children }: PropsWithChildren) { + return createElement(Web3AuthInnerProvider, { storage, webBrowser, config }, children); +} From 42101ed2b6ae5a5228a135e1416379b235ed8ff1 Mon Sep 17 00:00:00 2001 From: tuna Date: Sun, 24 Aug 2025 19:17:48 +0700 Subject: [PATCH 3/9] feat: add react hooks --- src/base/index.ts | 1 + src/react/hooks/index.ts | 8 ++++ src/react/hooks/useEnableMFA.ts | 31 ++++++++++++++ src/react/hooks/useIdentityToken.ts | 43 ++++++++++++++++++++ src/react/hooks/useManageMFA.ts | 31 ++++++++++++++ src/react/hooks/useSignatureRequest.ts | 34 ++++++++++++++++ src/react/hooks/useWalletUI.ts | 34 ++++++++++++++++ src/react/hooks/useWeb3Auth.ts | 16 ++++++++ src/react/hooks/useWeb3AuthConnect.ts | 43 ++++++++++++++++++++ src/react/hooks/useWeb3AuthDisconnect.ts | 31 ++++++++++++++ src/react/hooks/useWeb3AuthInner.ts | 13 ++++++ src/react/hooks/useWeb3AuthUser.ts | 52 ++++++++++++++++++++++++ src/react/index.ts | 3 ++ 13 files changed, 340 insertions(+) create mode 100644 src/react/hooks/index.ts create mode 100644 src/react/hooks/useEnableMFA.ts create mode 100644 src/react/hooks/useIdentityToken.ts create mode 100644 src/react/hooks/useManageMFA.ts create mode 100644 src/react/hooks/useSignatureRequest.ts create mode 100644 src/react/hooks/useWalletUI.ts create mode 100644 src/react/hooks/useWeb3Auth.ts create mode 100644 src/react/hooks/useWeb3AuthConnect.ts create mode 100644 src/react/hooks/useWeb3AuthDisconnect.ts create mode 100644 src/react/hooks/useWeb3AuthInner.ts create mode 100644 src/react/hooks/useWeb3AuthUser.ts create mode 100644 src/react/index.ts diff --git a/src/base/index.ts b/src/base/index.ts index bb97cf1..4a12354 100644 --- a/src/base/index.ts +++ b/src/base/index.ts @@ -1,3 +1,4 @@ export * from "./analytics"; export * from "./constants"; +export * from "./hooks"; export * from "./loglevel"; diff --git a/src/react/hooks/index.ts b/src/react/hooks/index.ts new file mode 100644 index 0000000..4d8204b --- /dev/null +++ b/src/react/hooks/index.ts @@ -0,0 +1,8 @@ +export * from "./useEnableMFA"; +export * from "./useIdentityToken"; +export * from "./useManageMFA"; +export * from "./useSignatureRequest"; +export * from "./useWalletUI"; +export * from "./useWeb3AuthConnect"; +export * from "./useWeb3AuthDisconnect"; +export * from "./useWeb3AuthUser"; diff --git a/src/react/hooks/useEnableMFA.ts b/src/react/hooks/useEnableMFA.ts new file mode 100644 index 0000000..da66ba7 --- /dev/null +++ b/src/react/hooks/useEnableMFA.ts @@ -0,0 +1,31 @@ +import { useCallback, useState } from "react"; + +import { Web3authRNError } from "../../errors"; +import { useWeb3AuthInner } from "./useWeb3AuthInner"; + +export interface IUseEnableMFA { + loading: boolean; + error: Web3authRNError | null; + enableMFA(): Promise; +} + +export const useEnableMFA = (): IUseEnableMFA => { + const { web3Auth } = useWeb3AuthInner(); + + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const enableMFA = useCallback(async () => { + setLoading(true); + setError(null); + try { + await web3Auth.enableMFA(); + } catch (error) { + setError(error as Web3authRNError); + } finally { + setLoading(false); + } + }, [web3Auth]); + + return { loading, error, enableMFA }; +}; diff --git a/src/react/hooks/useIdentityToken.ts b/src/react/hooks/useIdentityToken.ts new file mode 100644 index 0000000..4bdd641 --- /dev/null +++ b/src/react/hooks/useIdentityToken.ts @@ -0,0 +1,43 @@ +import { useCallback, useEffect, useState } from "react"; + +import { Web3authRNError } from "../../errors"; +import { useWeb3AuthInner } from "./useWeb3AuthInner"; + +export interface IUseIdentityToken { + loading: boolean; + error: Web3authRNError | null; + token: string | null; + getIdentityToken: () => Promise; +} + +export const useIdentityToken = () => { + const { web3Auth, isConnected } = useWeb3AuthInner(); + + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [token, setToken] = useState(null); + + const getIdentityToken = useCallback(async () => { + setLoading(true); + setError(null); + try { + const userAuthInfo = web3Auth.userInfo(); + if (userAuthInfo?.idToken) { + setToken(userAuthInfo.idToken); + } + return userAuthInfo?.idToken; + } catch (error) { + setError(error as Web3authRNError); + } finally { + setLoading(false); + } + }, [web3Auth]); + + useEffect(() => { + if (!isConnected && token) { + setToken(null); + } + }, [isConnected, token]); + + return { loading, error, token, getIdentityToken }; +}; diff --git a/src/react/hooks/useManageMFA.ts b/src/react/hooks/useManageMFA.ts new file mode 100644 index 0000000..7a86511 --- /dev/null +++ b/src/react/hooks/useManageMFA.ts @@ -0,0 +1,31 @@ +import { useCallback, useState } from "react"; + +import { Web3authRNError } from "../../errors"; +import { useWeb3AuthInner } from "./useWeb3AuthInner"; + +export interface IUseManageMFA { + loading: boolean; + error: Web3authRNError | null; + manageMFA(): Promise; +} + +export const useManageMFA = (): IUseManageMFA => { + const { web3Auth } = useWeb3AuthInner(); + + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const manageMFA = useCallback(async () => { + setLoading(true); + setError(null); + try { + await web3Auth.manageMFA(); + } catch (error) { + setError(error as Web3authRNError); + } finally { + setLoading(false); + } + }, [web3Auth]); + + return { loading, error, manageMFA }; +}; diff --git a/src/react/hooks/useSignatureRequest.ts b/src/react/hooks/useSignatureRequest.ts new file mode 100644 index 0000000..d29cf07 --- /dev/null +++ b/src/react/hooks/useSignatureRequest.ts @@ -0,0 +1,34 @@ +import { useCallback, useState } from "react"; + +import { Web3authRNError } from "../../errors"; +import { useWeb3AuthInner } from "./useWeb3AuthInner"; + +export interface IUseSignatureRequest { + loading: boolean; + error: Web3authRNError | null; + request(method: string, params: unknown[], path?: string): Promise; +} + +export const useSignatureRequest = (): IUseSignatureRequest => { + const { web3Auth } = useWeb3AuthInner(); + + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const request = useCallback( + async (method: string, params: unknown[], path?: string) => { + setLoading(true); + setError(null); + try { + return await web3Auth.request(method, params, path); + } catch (error) { + setError(error as Web3authRNError); + } finally { + setLoading(false); + } + }, + [web3Auth] + ); + + return { loading, error, request }; +}; diff --git a/src/react/hooks/useWalletUI.ts b/src/react/hooks/useWalletUI.ts new file mode 100644 index 0000000..cbb3042 --- /dev/null +++ b/src/react/hooks/useWalletUI.ts @@ -0,0 +1,34 @@ +import { useCallback, useState } from "react"; + +import { InitializationError, Web3authRNError } from "../../errors"; +import { useWeb3AuthInner } from "./useWeb3AuthInner"; + +export interface IUseWalletUI { + loading: boolean; + error: Web3authRNError | null; + showWalletUI: (path?: string) => Promise; +} + +export const useWalletUI = (): IUseWalletUI => { + const { web3Auth, isConnected } = useWeb3AuthInner(); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const showWalletUI = useCallback( + async (path?: string) => { + setLoading(true); + setError(null); + try { + if (!isConnected) throw InitializationError.notInitialized(); + await web3Auth.launchWalletServices(path); + } catch (error) { + setError(error as Web3authRNError); + } finally { + setLoading(false); + } + }, + [isConnected, web3Auth] + ); + + return { loading, error, showWalletUI }; +}; diff --git a/src/react/hooks/useWeb3Auth.ts b/src/react/hooks/useWeb3Auth.ts new file mode 100644 index 0000000..a6eee9f --- /dev/null +++ b/src/react/hooks/useWeb3Auth.ts @@ -0,0 +1,16 @@ +import { IWeb3AuthInnerContext } from "../interfaces"; +import { useWeb3AuthInner } from "./useWeb3AuthInner"; + +export type IUseWeb3Auth = Omit; + +export const useWeb3Auth = (): IUseWeb3Auth => { + const { initError, isConnected, isInitialized, isInitializing, provider, web3Auth } = useWeb3AuthInner(); + return { + initError, + isConnected, + isInitialized, + isInitializing, + provider, + web3Auth, + }; +}; diff --git a/src/react/hooks/useWeb3AuthConnect.ts b/src/react/hooks/useWeb3AuthConnect.ts new file mode 100644 index 0000000..0c3299c --- /dev/null +++ b/src/react/hooks/useWeb3AuthConnect.ts @@ -0,0 +1,43 @@ +import { type IProvider } from "@web3auth/base"; +import { useCallback, useState } from "react"; + +import { Web3authRNError } from "../../errors"; +import { SdkLoginParams } from "../../types/interface"; +import { useWeb3AuthInner } from "../hooks/useWeb3AuthInner"; + +export interface IUseWeb3AuthConnect { + isConnected: boolean; + loading: boolean; + error: Web3authRNError | null; + connectTo: (params: SdkLoginParams) => Promise; +} + +export const useWeb3AuthConnect = (): IUseWeb3AuthConnect => { + const { web3Auth, isConnected } = useWeb3AuthInner(); + + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const connectTo = useCallback( + async (params: SdkLoginParams) => { + setLoading(true); + setError(null); + try { + const provider = await web3Auth.connectTo(params); + return provider; + } catch (error) { + setError(error as Web3authRNError); + } finally { + setLoading(false); + } + }, + [web3Auth] + ); + + return { + isConnected, + loading, + error, + connectTo, + }; +}; diff --git a/src/react/hooks/useWeb3AuthDisconnect.ts b/src/react/hooks/useWeb3AuthDisconnect.ts new file mode 100644 index 0000000..c648e59 --- /dev/null +++ b/src/react/hooks/useWeb3AuthDisconnect.ts @@ -0,0 +1,31 @@ +import { useCallback, useState } from "react"; + +import { Web3authRNError } from "../../errors"; +import { useWeb3AuthInner } from "./useWeb3AuthInner"; + +export interface IUseWeb3AuthDisconnect { + loading: boolean; + error: Web3authRNError | null; + disconnect(): Promise; +} + +export const useWeb3AuthDisconnect = (): IUseWeb3AuthDisconnect => { + const { web3Auth } = useWeb3AuthInner(); + + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const disconnect = useCallback(async () => { + setLoading(true); + setError(null); + try { + await web3Auth.logout(); + } catch (error) { + setError(error as Web3authRNError); + } finally { + setLoading(false); + } + }, [web3Auth]); + + return { loading, error, disconnect }; +}; diff --git a/src/react/hooks/useWeb3AuthInner.ts b/src/react/hooks/useWeb3AuthInner.ts new file mode 100644 index 0000000..977c411 --- /dev/null +++ b/src/react/hooks/useWeb3AuthInner.ts @@ -0,0 +1,13 @@ +import { useContext } from "react"; + +import { InitializationError } from "../../errors"; +import { Web3AuthInnerContext } from "../context/web3AuthInnerContext"; +import { IWeb3AuthInnerContext } from "../interfaces"; + +export const useWeb3AuthInner = (): IWeb3AuthInnerContext => { + const context = useContext(Web3AuthInnerContext); + if (!context) { + throw InitializationError.fromCode(1000, "usage of useWeb3Auth not wrapped in `Web3AuthContextProvider`."); + } + return context; +}; diff --git a/src/react/hooks/useWeb3AuthUser.ts b/src/react/hooks/useWeb3AuthUser.ts new file mode 100644 index 0000000..dfb583e --- /dev/null +++ b/src/react/hooks/useWeb3AuthUser.ts @@ -0,0 +1,52 @@ +import { AuthUserInfo } from "@web3auth/auth"; +import { useCallback, useEffect, useState } from "react"; + +import { Web3authRNError } from "../../errors"; +import { useWeb3AuthInner } from "./useWeb3AuthInner"; + +export interface IUseWeb3AuthUser { + loading: boolean; + error: Web3authRNError | null; + userInfo: Partial | null; + isMFAEnabled: boolean; + getUserInfo: () => Promise | null>; +} + +export const useWeb3AuthUser = (): IUseWeb3AuthUser => { + const { web3Auth, isConnected, isMFAEnabled, setIsMFAEnabled } = useWeb3AuthInner(); + + const [userInfo, setUserInfo] = useState | null>(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const getUserInfo = useCallback(async () => { + setLoading(true); + setError(null); + try { + const userInfo = web3Auth.userInfo(); + setUserInfo(userInfo); + return userInfo; + } catch (error) { + setError(error as Web3authRNError); + } finally { + setLoading(false); + } + }, [web3Auth]); + + useEffect(() => { + const saveUserInfo = async () => { + const userInfo = await getUserInfo(); + setUserInfo(userInfo); + setIsMFAEnabled(userInfo?.isMfaEnabled || false); + }; + + if (isConnected && !userInfo) saveUserInfo(); + + if (!isConnected && userInfo) { + setUserInfo(null); + setIsMFAEnabled(false); + } + }, [isConnected, userInfo, getUserInfo, setIsMFAEnabled]); + + return { loading, error, userInfo, isMFAEnabled, getUserInfo }; +}; diff --git a/src/react/index.ts b/src/react/index.ts new file mode 100644 index 0000000..73a8bdf --- /dev/null +++ b/src/react/index.ts @@ -0,0 +1,3 @@ +export * from "./hooks"; +export * from "./interfaces"; +export * from "./web3AuthProvider"; From f28bbf846accfc17d13fa05ecaae1614107d90c9 Mon Sep 17 00:00:00 2001 From: Yashovardhan Agrawal <21066442+yashovardhan@users.noreply.github.com> Date: Sun, 7 Dec 2025 15:46:27 +0400 Subject: [PATCH 4/9] fix rn bare example --- demo/rn-bare-example/App.tsx | 6 +- demo/rn-bare-example/babel.config.js | 1 + demo/rn-bare-example/globals.js | 70 +- demo/rn-bare-example/metro.config.js | 1 + demo/rn-bare-example/package-lock.json | 975 ++++++++++++------------- demo/rn-bare-example/package.json | 2 + package-lock.json | 90 +-- package.json | 8 +- src/types/interface.ts | 11 - 9 files changed, 545 insertions(+), 619 deletions(-) diff --git a/demo/rn-bare-example/App.tsx b/demo/rn-bare-example/App.tsx index 9ffcf4a..f24f53f 100644 --- a/demo/rn-bare-example/App.tsx +++ b/demo/rn-bare-example/App.tsx @@ -25,14 +25,14 @@ const redirectUrl = `${scheme}://auth`; // IMP END - Whitelist bundle ID // IMP START - Dashboard Registration -const clientId = "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ"; // get from https://dashboard.web3auth.io +const clientId = "BCfIbiMcEwBkmyNxwn-DcYIfUU4QrpQgyOZZTNi5f_ygWMS1g_dNcuxylwDkIbVNhDtn7dAs-aMUhX0dtAYhvWk"; // get from https://dashboard.web3auth.io // IMP END - Dashboard Registration // IMP START - SDK Initialization const chainConfig = { chainNamespace: CHAIN_NAMESPACES.EIP155, chainId: "0xaa36a7", - rpcTarget: "https://ethereum-sepolia-rpc.publicnode.com", + rpcTarget: `https://api.web3auth.io/infura-service/v1/0xaa36a7/${clientId}`, // Avoid using public rpcTarget in production. // Use services like Infura, Quicknode etc displayName: "Ethereum Sepolia Testnet", @@ -166,7 +166,7 @@ export default function App() { setConsole("Logging in"); // IMP START - Login - await web3auth.login({ + await web3auth.connectTo({ authConnection: AUTH_CONNECTION.EMAIL_PASSWORDLESS, extraLoginOptions: { login_hint: email, diff --git a/demo/rn-bare-example/babel.config.js b/demo/rn-bare-example/babel.config.js index f7b3da3..b243a0f 100644 --- a/demo/rn-bare-example/babel.config.js +++ b/demo/rn-bare-example/babel.config.js @@ -1,3 +1,4 @@ module.exports = { presets: ['module:@react-native/babel-preset'], + plugins: ['@babel/plugin-transform-export-namespace-from'], }; diff --git a/demo/rn-bare-example/globals.js b/demo/rn-bare-example/globals.js index 3f27659..1f997f2 100644 --- a/demo/rn-bare-example/globals.js +++ b/demo/rn-bare-example/globals.js @@ -1,25 +1,63 @@ -import { fromByteArray } from "react-native-quick-base64"; - global.Buffer = require("buffer").Buffer; -global.base64FromArrayBuffer = (ab) => { - const u8 = ab instanceof Uint8Array ? ab : new Uint8Array(ab); - return fromByteArray(u8); +// Pure base64 implementation (no Buffer.from) +const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + +global.btoa = + global.btoa || + function (str) { + let result = ""; + for (let i = 0; i < str.length; i += 3) { + const a = str.charCodeAt(i); + const b = i + 1 < str.length ? str.charCodeAt(i + 1) : 0; + const c = i + 2 < str.length ? str.charCodeAt(i + 2) : 0; + result += base64Chars[a >> 2]; + result += base64Chars[((a & 3) << 4) | (b >> 4)]; + result += i + 1 < str.length ? base64Chars[((b & 15) << 2) | (c >> 6)] : "="; + result += i + 2 < str.length ? base64Chars[c & 63] : "="; + } + return result; + }; + +global.atob = + global.atob || + function (str) { + str = str.replace(/=+$/, ""); + let result = ""; + for (let i = 0; i < str.length; i += 4) { + const a = base64Chars.indexOf(str[i]); + const b = base64Chars.indexOf(str[i + 1]); + const c = base64Chars.indexOf(str[i + 2]); + const d = base64Chars.indexOf(str[i + 3]); + result += String.fromCharCode((a << 2) | (b >> 4)); + if (c !== -1) result += String.fromCharCode(((b & 15) << 4) | (c >> 2)); + if (d !== -1) result += String.fromCharCode(((c & 3) << 6) | d); + } + return result; + }; + +global.base64FromArrayBuffer = function (buf) { + const bytes = new Uint8Array(buf); + let binary = ""; + for (let i = 0; i < bytes.length; i++) { + binary += String.fromCharCode(bytes[i]); + } + return global.btoa(binary); +}; + +global.base64ToArrayBuffer = function (base64) { + const binary = global.atob(base64); + const bytes = new Uint8Array(binary.length); + for (let i = 0; i < binary.length; i++) { + bytes[i] = binary.charCodeAt(i); + } + return bytes.buffer; }; import { install } from "react-native-quick-crypto"; install(); -// Needed so that 'stream-http' chooses the right default protocol. -global.location = { - protocol: "file:", -}; - +global.location = { protocol: "file:" }; global.process.version = "v16.0.0"; -if (!global.process.version) { - global.process = require("process"); - console.log({ process: global.process }); -} - -process.browser = true; \ No newline at end of file +process.browser = true; diff --git a/demo/rn-bare-example/metro.config.js b/demo/rn-bare-example/metro.config.js index ab61daa..c6cf105 100644 --- a/demo/rn-bare-example/metro.config.js +++ b/demo/rn-bare-example/metro.config.js @@ -17,6 +17,7 @@ const config = { stream: require.resolve("readable-stream"), }, sourceExts: [...defaultConfig.resolver.sourceExts, "svg"], + unstable_enablePackageExports: true, }, }; diff --git a/demo/rn-bare-example/package-lock.json b/demo/rn-bare-example/package-lock.json index 1ee131e..63a8c1b 100644 --- a/demo/rn-bare-example/package-lock.json +++ b/demo/rn-bare-example/package-lock.json @@ -14,6 +14,7 @@ "@web3auth/ethereum-provider": "^9.7.0", "@web3auth/react-native-sdk": "file:../../web3auth-react-native-sdk-8.1.0.tgz", "ethers": "^6.13.2", + "ox": "^0.9.17", "react": "18.2.0", "react-native": "0.74.2", "react-native-encrypted-storage": "^4.0.3", @@ -22,6 +23,7 @@ }, "devDependencies": { "@babel/core": "^7.20.0", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@react-native/babel-preset": "0.74.84", @@ -67,29 +69,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", - "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", - "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.4", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.4", - "@babel/types": "^7.28.4", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -106,11 +109,12 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.4.tgz", - "integrity": "sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.5.tgz", + "integrity": "sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -125,13 +129,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -169,17 +173,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", - "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.3", + "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "engines": { @@ -190,13 +194,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", - "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "regexpu-core": "^6.2.0", + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "engines": { @@ -244,13 +248,13 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", - "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -364,9 +368,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -409,12 +413,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.4" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -424,13 +428,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", - "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1038,9 +1042,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.4.tgz", - "integrity": "sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1121,13 +1125,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", - "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1215,9 +1219,9 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", - "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1324,9 +1328,9 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", - "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1386,15 +1390,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", - "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-module-transforms": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1531,9 +1535,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", - "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", @@ -1720,9 +1724,9 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz", - "integrity": "sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", + "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", @@ -1816,13 +1820,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", - "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", + "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1" @@ -1898,16 +1902,17 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.3.tgz", - "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", + "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/compat-data": "^7.28.0", + "@babel/compat-data": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", @@ -1920,42 +1925,42 @@ "@babel/plugin-transform-async-generator-functions": "^7.28.0", "@babel/plugin-transform-async-to-generator": "^7.27.1", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-block-scoping": "^7.28.5", "@babel/plugin-transform-class-properties": "^7.27.1", "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.4", "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.27.1", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-exponentiation-operator": "^7.28.5", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.27.1", "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.28.5", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-rest-spread": "^7.28.4", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.28.5", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/plugin-transform-private-property-in-object": "^7.27.1", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.3", + "@babel/plugin-transform-regenerator": "^7.28.4", "@babel/plugin-transform-regexp-modifiers": "^7.27.1", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", @@ -2013,16 +2018,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", - "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.27.1" + "@babel/plugin-transform-typescript": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2087,6 +2092,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -2106,17 +2112,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", + "@babel/types": "^7.28.5", "debug": "^4.3.1" }, "engines": { @@ -2124,13 +2130,13 @@ } }, "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2206,9 +2212,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -2258,9 +2264,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -2926,9 +2932,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.8.2.tgz", - "integrity": "sha512-nR0ev+wxu+nQYRd7bhqggOxK7UfkV6h+Ko1mumUFyrM5GvPpz/ELhjJFSnMcOkOMcvH0b6G5uTBJvN1XWCkbmg==", + "version": "20.8.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.8.3.tgz", + "integrity": "sha512-SlA4GtXvQbSzSIWLgiIiLBOjdINPOUR/im+TUbaEMZ8wiGrOY8cnk0PVt95TIQJVBeXBCeb5HnoY0lHJpMOODg==", "cpu": [ "x64" ], @@ -3148,9 +3154,9 @@ } }, "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "version": "15.0.20", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.20.tgz", + "integrity": "sha512-KIkX+/GgfFitlASYCGoSF+T4XRXhOubJLhkLVtSfsRTe9jWMmuM2g28zQ41BtPTG7TRBb2xHW+LCNVE9QR/vsg==", "license": "MIT", "dependencies": { "@types/yargs-parser": "*" @@ -3624,9 +3630,9 @@ } }, "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/@types/node": { - "version": "18.19.129", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.129.tgz", - "integrity": "sha512-hrmi5jWt2w60ayox3iIXwpMEnfUvOLJCRtrOPbHtH15nTjvO7uhnelvrdAs0dO0/zl5DZ3ZbahiaXEVb54ca/A==", + "version": "18.19.130", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", + "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -3651,9 +3657,9 @@ "license": "MIT" }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz", - "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", "cpu": [ "x64" ], @@ -3724,10 +3730,11 @@ } }, "node_modules/@sentry/core": { - "version": "9.46.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.46.0.tgz", - "integrity": "sha512-it7JMFqxVproAgEtbLgCVBYtQ9fIb+Bu0JD+cEplTN/Ukpe6GaolyYib5geZqslVxhp2sQgT+58aGvfd/k0N8Q==", + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.47.1.tgz", + "integrity": "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==", "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -3853,22 +3860,22 @@ } }, "node_modules/@toruslabs/customauth": { - "version": "21.3.1", - "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-21.3.1.tgz", - "integrity": "sha512-YJbsErUT53n+sR98s6f2wklSHu0biDWQbR20CWHL2LA8ZXtADIuROYMjdN2Mv984okDqF9kSxfBhBLRyOUq+Ig==", + "version": "21.3.2", + "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-21.3.2.tgz", + "integrity": "sha512-OEwb7hFZK4+TVsCuIh0lQZdSKmpO5cazeM2JbBwK3t1RmAqB9naM+SsactRoESP+MMz1IvFh3AMt6/+v8mj6aw==", "license": "MIT", "dependencies": { "@chaitanyapotti/register-service-worker": "^1.7.4", "@toruslabs/broadcast-channel": "^12.0.0", "@toruslabs/constants": "^15.0.0", - "@toruslabs/eccrypto": "^6.0.2", + "@toruslabs/eccrypto": "^6.2.0", "@toruslabs/fetch-node-details": "^15.0.0", "@toruslabs/http-helpers": "^8.1.1", "@toruslabs/metadata-helpers": "^7.0.2", "@toruslabs/session-manager": "^4.0.2", "@toruslabs/torus.js": "^16.0.0", "base64url": "^3.0.1", - "bowser": "^2.11.0", + "bowser": "^2.12.1", "deepmerge": "^4.3.1", "events": "^3.3.0", "loglevel": "^1.9.2" @@ -4566,12 +4573,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.0.tgz", - "integrity": "sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==", + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", "license": "MIT", "dependencies": { - "undici-types": "~7.14.0" + "undici-types": "~7.16.0" } }, "node_modules/@types/node-forge": { @@ -4591,14 +4598,15 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.26.tgz", - "integrity": "sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==", + "version": "18.3.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", + "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", - "csstype": "^3.0.2" + "csstype": "^3.2.2" } }, "node_modules/@types/react-test-renderer": { @@ -4625,9 +4633,9 @@ "license": "MIT" }, "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "license": "MIT", "dependencies": { "@types/yargs-parser": "*" @@ -4645,6 +4653,7 @@ "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "7.18.0", @@ -4679,6 +4688,7 @@ "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "7.18.0", "@typescript-eslint/types": "7.18.0", @@ -4889,6 +4899,83 @@ "@babel/runtime": "7.x" } }, + "node_modules/@web3auth/account-abstraction-provider/node_modules/@adraffy/ens-normalize": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz", + "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==", + "license": "MIT", + "optional": true + }, + "node_modules/@web3auth/account-abstraction-provider/node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@web3auth/account-abstraction-provider/node_modules/@scure/base": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "license": "MIT", + "optional": true, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@web3auth/account-abstraction-provider/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@web3auth/account-abstraction-provider/node_modules/@scure/bip39": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", + "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@web3auth/account-abstraction-provider/node_modules/permissionless": { + "version": "0.2.57", + "resolved": "https://registry.npmjs.org/permissionless/-/permissionless-0.2.57.tgz", + "integrity": "sha512-QrzAoQGYPV/NJ2x5Sj18h7qed6f+kCyQAojrncN091UPiGqHjFNjgdsgreiv8pxlQgF4UcpuJUvsHLpOEBd6cQ==", + "license": "MIT", + "peerDependencies": { + "ox": "^0.8.0", + "viem": "^2.28.1" + }, + "peerDependenciesMeta": { + "ox": { + "optional": true + } + } + }, "node_modules/@web3auth/auth": { "version": "9.6.4", "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.6.4.tgz", @@ -5004,16 +5091,19 @@ "node_modules/@web3auth/react-native-sdk": { "version": "8.1.0", "resolved": "file:../../web3auth-react-native-sdk-8.1.0.tgz", - "integrity": "sha512-GqySPyztRqkomjiupM9gs1QQKL8OGNWCXHq830x6EX1EGfw8JDF+oS6WLMDzh8xKn/baCHlrKD2BnYtVXD7afw==", + "integrity": "sha512-RPy9GWcCpP6MiXxP9A/PYMszxfMXmibYRt28m1YSwpSZjpwWkfZSXZSXk/c5hj58TPndSDvoTeKcZDveRMT4Og==", "license": "ISC", "dependencies": { "@toruslabs/constants": "^15.0.0", + "@toruslabs/fetch-node-details": "^15.0.0", "@toruslabs/http-helpers": "^8.1.1", "@toruslabs/loglevel-sentry": "^8.1.0", "@toruslabs/session-manager": "^4.0.2", + "@toruslabs/torus.js": "^16.0.0", "@web3auth/auth": "^10.5.0", "@web3auth/ws-embed": "^5.0.23", "buffer": "^6.0.3", + "jwt-decode": "^4.0.0", "lodash.clonedeep": "^4.5.0", "lodash.merge": "^4.6.2", "lodash.unionby": "^4.8.0", @@ -5027,71 +5117,14 @@ }, "peerDependencies": { "@babel/runtime": "^7.x", - "react-native": "*" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/@noble/curves": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.0.tgz", - "integrity": "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.8.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/@nx/nx-linux-x64-gnu": { - "version": "21.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-21.6.4.tgz", - "integrity": "sha512-TYC5a5VnXhEGGVAtPVwdG5qLzf9p7SZyOrOdQMZlAZCchFpL37gmV1OMH1Eb5eM32o+mGF/DDIgbyNXAErTN5g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@web3auth/react-native-sdk/node_modules/@scure/base": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", - "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/@scure/bip32": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", - "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.9.0", - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/@scure/bip39": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", - "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" + "react": ">=18", + "react-native": "*", + "vue": ">=3.x" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependenciesMeta": { + "vue": { + "optional": true + } } }, "node_modules/@web3auth/react-native-sdk/node_modules/@toruslabs/constants": { @@ -5107,29 +5140,6 @@ "@babel/runtime": "7.x" } }, - "node_modules/@web3auth/react-native-sdk/node_modules/@toruslabs/eccrypto": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@toruslabs/eccrypto/-/eccrypto-6.2.0.tgz", - "integrity": "sha512-GbVAXDC5AIecb01gEafiiZzVfRNGiNk85R7ZUDMpUjoYGOy6/FdHdM4x2ySqBj7B6xiXWf+rMfr99J7+TLjyxg==", - "license": "CC0-1.0", - "dependencies": { - "elliptic": "^6.6.1" - }, - "engines": { - "node": ">=20.x", - "npm": ">=9.x" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/@toruslabs/ffjavascript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/ffjavascript/-/ffjavascript-5.0.0.tgz", - "integrity": "sha512-smC85L5SREn31pA+XayZ86Cxd+2VeRzKKZ5ytLrMDYb5ZrXpUAd9Hr2HlaJbQiGPQgyR6KxOU9W5qyHSLFJmHg==", - "license": "GPL-3.0", - "engines": { - "node": ">=20.x", - "npm": ">=9.x" - } - }, "node_modules/@web3auth/react-native-sdk/node_modules/@toruslabs/http-helpers": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@toruslabs/http-helpers/-/http-helpers-8.1.1.tgz", @@ -5153,60 +5163,6 @@ } } }, - "node_modules/@web3auth/react-native-sdk/node_modules/@toruslabs/metadata-helpers": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@toruslabs/metadata-helpers/-/metadata-helpers-7.0.2.tgz", - "integrity": "sha512-N8UeKwtTlRlGAuQJQfYwCshsu5g9Fte8Xe6ZEt/WH6blNAoKjz579BPN4FrS478JIj/kMtIkD1guT84Umpdv1w==", - "license": "MIT", - "dependencies": { - "@toruslabs/eccrypto": "^6.0.2", - "@toruslabs/http-helpers": "^8.1.0", - "elliptic": "^6.6.1", - "ethereum-cryptography": "^3.1.0", - "json-stable-stringify": "^1.2.1" - }, - "engines": { - "node": ">=20.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/@toruslabs/secure-pub-sub": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-3.0.2.tgz", - "integrity": "sha512-JxqXSMlKnT2Q8ER0dpjtciT/yYO6KV/bZFxVWF9T6t2u20PaVU+bo9MSYWPxSdz76szEt7DwRHxwjDMhzZKFeA==", - "license": "MIT", - "dependencies": { - "@toruslabs/constants": "^14.2.0", - "@toruslabs/eccrypto": "^6.0.2", - "@toruslabs/http-helpers": "^8.1.0", - "@toruslabs/metadata-helpers": "^7.0.2", - "loglevel": "^1.9.2", - "socket.io-client": "^4.8.1" - }, - "engines": { - "node": ">=20.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/@toruslabs/secure-pub-sub/node_modules/@toruslabs/constants": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.2.0.tgz", - "integrity": "sha512-Mb5EfYNSPyvvw5s1JXnpZwritCgp4NmLni1imTqrSKGV3yikYhUn1ufyLMAHGnBBgv4AuMIXBIe3EpJJ+SpA0g==", - "license": "MIT", - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, "node_modules/@web3auth/react-native-sdk/node_modules/@toruslabs/session-manager": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-4.0.2.tgz", @@ -5239,37 +5195,15 @@ "@babel/runtime": "7.x" } }, - "node_modules/@web3auth/react-native-sdk/node_modules/@toruslabs/starkware-crypto": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/starkware-crypto/-/starkware-crypto-5.0.0.tgz", - "integrity": "sha512-CZjpkeuT0hBsX5dNGEekLcjR2n6UHzh682Pt/AheJYL4+zrupqPWZTfvOlo4K3Iihyv6FzRZmrbHLdQutkz5oQ==", - "license": "MIT", - "dependencies": { - "assert": "^2.1.0", - "bip39": "^3.1.0", - "bn.js": "^5.2.1", - "elliptic": "^6.6.1", - "enc-utils": "^3.0.0", - "ethereum-cryptography": "^3.1.0", - "hash.js": "^1.1.7" - }, - "engines": { - "node": ">=20.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, "node_modules/@web3auth/react-native-sdk/node_modules/@web3auth/auth": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-10.5.0.tgz", - "integrity": "sha512-a7yGAdFlGg4HbYBdAHtI7EKJKIUT83ucKqgsMwySZQhM2exLskBf8C4+6pL1pqrHQ1mc01q3WOXix80ZVjn5PQ==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-10.8.0.tgz", + "integrity": "sha512-c0a7HVzzbO8IygPetCzw6CkUIcFkWlXSjIAQkJwwMSYtWofsHYhYLLMV7cixSgvIOxQKCuRcvO6Qo7fxz9BiBg==", "license": "MIT", "dependencies": { - "@ethereumjs/util": "^9.1.0", + "@ethereumjs/util": "^10.1.0", "@toruslabs/constants": "^15.0.0", - "@toruslabs/customauth": "^21.3.1", + "@toruslabs/customauth": "^21.3.2", "@toruslabs/ffjavascript": "^5.0.0", "@toruslabs/metadata-helpers": "^7.0.2", "@toruslabs/secure-pub-sub": "^3.0.2", @@ -5281,12 +5215,12 @@ "bn.js": "^5.2.2", "deepmerge": "^4.3.1", "enc-utils": "^3.0.0", - "end-of-stream": "^1.4.4", + "end-of-stream": "^1.4.5", "events": "^3.3.0", "json-stable-stringify": "^1.3.0", "loglevel": "^1.9.2", "once": "^1.4.0", - "pump": "^3.0.2", + "pump": "^3.0.3", "readable-stream": "^4.7.0", "ts-custom-error": "^3.3.1", "typed-emitter": "^2.1.0" @@ -5296,89 +5230,22 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@nx/nx-linux-x64-gnu": "^21.1.1", - "@rollup/rollup-linux-x64-gnu": "^4.41.0" + "@nx/nx-linux-x64-gnu": "^22.0.2", + "@rollup/rollup-linux-x64-gnu": "^4.52.5" }, "peerDependencies": { "@babel/runtime": "7.x", "color": "^5.x" } }, - "node_modules/@web3auth/react-native-sdk/node_modules/color": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/color/-/color-5.0.2.tgz", - "integrity": "sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^3.0.1", - "color-string": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/color-convert": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.2.tgz", - "integrity": "sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "^2.0.0" - }, - "engines": { - "node": ">=14.6" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/color-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.2.tgz", - "integrity": "sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/color-string": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.2.tgz", - "integrity": "sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@web3auth/react-native-sdk/node_modules/ethereum-cryptography": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.2.0.tgz", - "integrity": "sha512-Urr5YVsalH+Jo0sYkTkv1MyI9bLYZwW8BENZCeE1QYaTHETEYx0Nv/SVsWkSqpYrzweg6d8KMY1wTjH/1m/BIg==", - "license": "MIT", - "dependencies": { - "@noble/ciphers": "1.3.0", - "@noble/curves": "1.9.0", - "@noble/hashes": "1.8.0", - "@scure/bip32": "1.7.0", - "@scure/bip39": "1.6.0" - }, - "engines": { - "node": "^14.21.3 || >=16", - "npm": ">=9" - } - }, "node_modules/@web3auth/ws-embed": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@web3auth/ws-embed/-/ws-embed-5.1.0.tgz", - "integrity": "sha512-HC53Dl/kp/H2Vsx3qkNXQ877sznpHMF9zrylGJak0yrUIkiNsMMHqhfAIem47Je6oUyOTNnMUkId6HG3HcJnjQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@web3auth/ws-embed/-/ws-embed-5.3.0.tgz", + "integrity": "sha512-RWDEOqQxFIAoVjtvU5AVmj3El76YIXV2/Jme1I0dFDZbcQvNsVRsnLuMupRxiAeyOqdUCvgJkThOjmWubqWfwQ==", "license": "ISC", "dependencies": { - "@toruslabs/base-controllers": "^8.7.0", - "@web3auth/auth": "^10.5.0", + "@toruslabs/base-controllers": "^8.10.0", + "@web3auth/auth": "^10.7.0", "fast-deep-equal": "^3.1.3", "loglevel": "^1.9.2", "pump": "^3.0.3", @@ -5392,6 +5259,31 @@ "@babel/runtime": "7.x" } }, + "node_modules/@web3auth/ws-embed/node_modules/@ethereumjs/rlp": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-10.1.0.tgz", + "integrity": "sha512-r67BJbwilammAqYI4B5okA66cNdTlFzeWxPNJOolKV52ZS/flo0tUBf4x4gxWXBgh48OgsdFV1Qp5pRoSe8IhQ==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@web3auth/ws-embed/node_modules/@ethereumjs/util": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-10.1.0.tgz", + "integrity": "sha512-GGTCkRu1kWXbz2JoUnIYtJBOoA9T5akzsYa91Bh+DZQ3Cj4qXj3hkNU0Rx6wZlbcmkmhQfrjZfVt52eJO/y2nA==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^10.1.0", + "ethereum-cryptography": "^3.2.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@web3auth/ws-embed/node_modules/@noble/curves": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.0.tgz", @@ -5408,9 +5300,9 @@ } }, "node_modules/@web3auth/ws-embed/node_modules/@nx/nx-linux-x64-gnu": { - "version": "21.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-21.6.4.tgz", - "integrity": "sha512-TYC5a5VnXhEGGVAtPVwdG5qLzf9p7SZyOrOdQMZlAZCchFpL37gmV1OMH1Eb5eM32o+mGF/DDIgbyNXAErTN5g==", + "version": "22.2.5", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-22.2.5.tgz", + "integrity": "sha512-hmuV1egHqbo4e7n5bXXAY4LSM6toGK/X35y1/4N66T9WNz4ulD88aqZzX2O1hm16guwKb0Ghn8GMbp1+Rf0jag==", "cpu": [ "x64" ], @@ -5457,18 +5349,19 @@ } }, "node_modules/@web3auth/ws-embed/node_modules/@toruslabs/base-controllers": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-8.7.0.tgz", - "integrity": "sha512-c5pGxtrx7E5x9LM0O0Eqz2VPvL7zunsoaGNfZnYtIfE7xdlp6gHFykxJt0NCWZ92tU9wJip0lI60ex+0qwRlvQ==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-8.13.0.tgz", + "integrity": "sha512-hqrCN2WBqe/IU1nRD5oxt3/ETJAruhobFLy5w//kseIApmmCRUMEpPcRwnvxcUIcyMukIpIx2v0G4naiE0zbRw==", "license": "ISC", "dependencies": { - "@ethereumjs/util": "^9.1.0", + "@ethereumjs/util": "^10.1.0", "@toruslabs/broadcast-channel": "^12.0.0", "@toruslabs/http-helpers": "^8.1.1", - "@web3auth/auth": "^10.5.0", + "@web3auth/auth": "^10.7.0", "async-mutex": "^0.5.0", "bignumber.js": "^9.3.1", - "bowser": "^2.11.0", + "bowser": "^2.12.1", + "ethereum-cryptography": "^3.2.0", "events": "^3.3.0", "jwt-decode": "^4.0.0", "loglevel": "^1.9.2" @@ -5631,14 +5524,14 @@ } }, "node_modules/@web3auth/ws-embed/node_modules/@web3auth/auth": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-10.5.0.tgz", - "integrity": "sha512-a7yGAdFlGg4HbYBdAHtI7EKJKIUT83ucKqgsMwySZQhM2exLskBf8C4+6pL1pqrHQ1mc01q3WOXix80ZVjn5PQ==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-10.8.0.tgz", + "integrity": "sha512-c0a7HVzzbO8IygPetCzw6CkUIcFkWlXSjIAQkJwwMSYtWofsHYhYLLMV7cixSgvIOxQKCuRcvO6Qo7fxz9BiBg==", "license": "MIT", "dependencies": { - "@ethereumjs/util": "^9.1.0", + "@ethereumjs/util": "^10.1.0", "@toruslabs/constants": "^15.0.0", - "@toruslabs/customauth": "^21.3.1", + "@toruslabs/customauth": "^21.3.2", "@toruslabs/ffjavascript": "^5.0.0", "@toruslabs/metadata-helpers": "^7.0.2", "@toruslabs/secure-pub-sub": "^3.0.2", @@ -5650,12 +5543,12 @@ "bn.js": "^5.2.2", "deepmerge": "^4.3.1", "enc-utils": "^3.0.0", - "end-of-stream": "^1.4.4", + "end-of-stream": "^1.4.5", "events": "^3.3.0", "json-stable-stringify": "^1.3.0", "loglevel": "^1.9.2", "once": "^1.4.0", - "pump": "^3.0.2", + "pump": "^3.0.3", "readable-stream": "^4.7.0", "ts-custom-error": "^3.3.1", "typed-emitter": "^2.1.0" @@ -5665,8 +5558,8 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@nx/nx-linux-x64-gnu": "^21.1.1", - "@rollup/rollup-linux-x64-gnu": "^4.41.0" + "@nx/nx-linux-x64-gnu": "^22.0.2", + "@rollup/rollup-linux-x64-gnu": "^4.52.5" }, "peerDependencies": { "@babel/runtime": "7.x", @@ -5687,25 +5580,24 @@ } }, "node_modules/@web3auth/ws-embed/node_modules/color": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/color/-/color-5.0.2.tgz", - "integrity": "sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz", + "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==", "license": "MIT", "peer": true, "dependencies": { - "color-convert": "^3.0.1", - "color-string": "^2.0.0" + "color-convert": "^3.1.3", + "color-string": "^2.1.3" }, "engines": { "node": ">=18" } }, "node_modules/@web3auth/ws-embed/node_modules/color-convert": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.2.tgz", - "integrity": "sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz", + "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==", "license": "MIT", - "peer": true, "dependencies": { "color-name": "^2.0.0" }, @@ -5714,21 +5606,19 @@ } }, "node_modules/@web3auth/ws-embed/node_modules/color-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.2.tgz", - "integrity": "sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", + "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", "license": "MIT", - "peer": true, "engines": { "node": ">=12.20" } }, "node_modules/@web3auth/ws-embed/node_modules/color-string": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.2.tgz", - "integrity": "sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz", + "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==", "license": "MIT", - "peer": true, "dependencies": { "color-name": "^2.0.0" }, @@ -5804,6 +5694,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6402,9 +6293,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.8.14", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.14.tgz", - "integrity": "sha512-GM9c0cWWR8Ga7//Ves/9KRgTS8nLausCkP3CGiFLrnwA2CDUluXgaQqvrULoR2Ujrd/mz/lkX87F5BHFsNr5sQ==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.4.tgz", + "integrity": "sha512-ZCQ9GEWl73BVm8bu5Fts8nt7MHdbt5vY9bP6WGnUh+r3l8M7CgfyTlwsgCbMC66BNxPr6Xoce3j66Ms5YUQTNA==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -6484,9 +6375,9 @@ "license": "MIT" }, "node_modules/bowser": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz", - "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.13.1.tgz", + "integrity": "sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==", "license": "MIT" }, "node_modules/brace-expansion": { @@ -6641,9 +6532,9 @@ "license": "MIT" }, "node_modules/browserslist": { - "version": "4.26.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", - "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "funding": [ { "type": "opencollective", @@ -6659,12 +6550,13 @@ } ], "license": "MIT", + "peer": true, "dependencies": { - "baseline-browser-mapping": "^2.8.9", - "caniuse-lite": "^1.0.30001746", - "electron-to-chromium": "^1.5.227", - "node-releases": "^2.0.21", - "update-browserslist-db": "^1.1.3" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -6828,9 +6720,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001749", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001749.tgz", - "integrity": "sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q==", + "version": "1.0.30001759", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz", + "integrity": "sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==", "funding": [ { "type": "opencollective", @@ -7001,9 +6893,9 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", "dev": true, "license": "MIT" }, @@ -7012,6 +6904,7 @@ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -7187,12 +7080,12 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.45.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.1.tgz", - "integrity": "sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", "license": "MIT", "dependencies": { - "browserslist": "^4.25.3" + "browserslist": "^4.28.0" }, "funding": { "type": "opencollective", @@ -7366,9 +7259,9 @@ } }, "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "devOptional": true, "license": "MIT" }, @@ -7427,9 +7320,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.18", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz", - "integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==", + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", "license": "MIT" }, "node_modules/debug": { @@ -7657,9 +7550,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.233", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.233.tgz", - "integrity": "sha512-iUdTQSf7EFXsDdQsp8MwJz5SVk4APEFqXU/S47OtQ0YLqacSwPXdZ5vRlMX3neb07Cy2vgioNuRnWUXFwuslkg==", + "version": "1.5.266", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.266.tgz", + "integrity": "sha512-kgWEglXvkEfMH7rxP5OSZZwnaDWT7J9EoZCujhnpLbfi0bbNtRkgdX2E3gt0Uer11c61qCYktB3hwkAS325sJg==", "license": "ISC" }, "node_modules/elliptic": { @@ -7777,9 +7670,9 @@ } }, "node_modules/envinfo": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.17.0.tgz", - "integrity": "sha512-GpfViocsFM7viwClFgxK26OtjMlKN67GCR5v6ASFkotxtpBWd9d+vNy+AH7F2E1TUkMDZ8P/dDPZX71/NG8xnQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", + "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", "license": "MIT", "bin": { "envinfo": "dist/cli.js" @@ -8027,6 +7920,7 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -8538,9 +8432,9 @@ } }, "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -8718,9 +8612,9 @@ } }, "node_modules/ethers": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.15.0.tgz", - "integrity": "sha512-Kf/3ZW54L4UT0pZtsY/rf+EkBU7Qi5nnhonjUb8yTXcxH3cdcWrV2cRyk0Xk/4jK6OoHhxxZHriyhje20If2hQ==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.16.0.tgz", + "integrity": "sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==", "funding": [ { "type": "individual", @@ -8875,9 +8769,9 @@ } }, "node_modules/exponential-backoff": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", - "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", "license": "Apache-2.0" }, "node_modules/fast-deep-equal": { @@ -9186,9 +9080,9 @@ "license": "MIT" }, "node_modules/flow-parser": { - "version": "0.287.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.287.0.tgz", - "integrity": "sha512-92XfPmSg6zV/UD/R3Hw+sxBUi3SiIL8COqD7p3HRZysX1ksrw5MdPhpqox0U0Hd5lqQ9F1AJCi92fnRO7WDgFw==", + "version": "0.293.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.293.0.tgz", + "integrity": "sha512-8tEGAcWpCqioajiSqrJr2+JSmkEI2vO/UACFGG378RO106ez9xugVxe9EpXD3aI1Vbf+mEUGhMt0gMpveJwVGA==", "license": "MIT", "engines": { "node": ">=0.4.0" @@ -10543,6 +10437,7 @@ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -11144,9 +11039,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "license": "MIT", "dependencies": { "argparse": "^1.0.7", @@ -12307,9 +12202,9 @@ } }, "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", + "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" @@ -12322,9 +12217,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", - "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "license": "MIT" }, "node_modules/node-stream-zip": { @@ -12647,9 +12542,9 @@ } }, "node_modules/ox": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.6.tgz", - "integrity": "sha512-8SuCbHPvv2eZLYXrNmC0EC12rdzXQLdhnOMlHDW2wiCPLxBrOOJwX5L5E61by+UjTPOryqQiRSnjIKCI+GykKg==", + "version": "0.9.17", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.17.tgz", + "integrity": "sha512-rKAnhzhRU3Xh3hiko+i1ZxywZ55eWQzeS/Q4HRKLx2PqfHOolisZHErSsJVipGlmQKHW5qwOED/GighEw9dbLg==", "funding": [ { "type": "github", @@ -12903,21 +12798,6 @@ "node": ">= 0.10" } }, - "node_modules/permissionless": { - "version": "0.2.57", - "resolved": "https://registry.npmjs.org/permissionless/-/permissionless-0.2.57.tgz", - "integrity": "sha512-QrzAoQGYPV/NJ2x5Sj18h7qed6f+kCyQAojrncN091UPiGqHjFNjgdsgreiv8pxlQgF4UcpuJUvsHLpOEBd6cQ==", - "license": "MIT", - "peerDependencies": { - "ox": "^0.8.0", - "viem": "^2.28.1" - }, - "peerDependenciesMeta": { - "ox": { - "optional": true - } - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -12992,6 +12872,7 @@ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -13229,6 +13110,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -13278,6 +13160,7 @@ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.2.tgz", "integrity": "sha512-EBMBjPPL4/GjHMP4NqsZabT3gI5WU9cSmduABGAGrd8uIcmTZ5F2Ng9k6gFmRm7n8e8CULxDNu98ZpQfBjl7Bw==", "license": "MIT", + "peer": true, "dependencies": { "@jest/create-cache-key-function": "^29.6.3", "@react-native-community/cli": "13.6.8", @@ -13414,9 +13297,9 @@ } }, "node_modules/react-native/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "version": "15.0.20", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.20.tgz", + "integrity": "sha512-KIkX+/GgfFitlASYCGoSF+T4XRXhOubJLhkLVtSfsRTe9jWMmuM2g28zQ41BtPTG7TRBb2xHW+LCNVE9QR/vsg==", "license": "MIT", "dependencies": { "@types/yargs-parser": "*" @@ -13443,6 +13326,15 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "license": "MIT" }, + "node_modules/react-native/node_modules/scheduler": { + "version": "0.24.0-canary-efb381bbf-20230505", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", + "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/react-native/node_modules/ws": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", @@ -13655,12 +13547,12 @@ "license": "ISC" }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -13930,15 +13822,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/scheduler": { - "version": "0.24.0-canary-efb381bbf-20230505", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", - "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", @@ -14777,9 +14660,9 @@ } }, "node_modules/terser": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", - "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -15144,6 +15027,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15172,9 +15056,9 @@ } }, "node_modules/undici-types": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", - "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -15245,9 +15129,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", "funding": [ { "type": "opencollective", @@ -15343,9 +15227,9 @@ } }, "node_modules/viem": { - "version": "2.38.0", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.38.0.tgz", - "integrity": "sha512-YU5TG8dgBNeYPrCMww0u9/JVeq2ZCk9fzk6QybrPkBooFysamHXL1zC3ua10aLPt9iWoA/gSVf1D9w7nc5B1aA==", + "version": "2.41.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.41.2.tgz", + "integrity": "sha512-LYliajglBe1FU6+EH9mSWozp+gRA/QcHfxeD9Odf83AdH5fwUS7DroH4gHvlv6Sshqi1uXrYFA2B/EOczxd15g==", "funding": [ { "type": "github", @@ -15353,6 +15237,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", @@ -15372,6 +15257,12 @@ } } }, + "node_modules/viem/node_modules/@adraffy/ens-normalize": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz", + "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==", + "license": "MIT" + }, "node_modules/viem/node_modules/@noble/curves": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", @@ -15423,6 +15314,36 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/viem/node_modules/ox": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.6.tgz", + "integrity": "sha512-8SuCbHPvv2eZLYXrNmC0EC12rdzXQLdhnOMlHDW2wiCPLxBrOOJwX5L5E61by+UjTPOryqQiRSnjIKCI+GykKg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.11.0", + "@noble/ciphers": "^1.3.0", + "@noble/curves": "1.9.1", + "@noble/hashes": "^1.8.0", + "@scure/bip32": "^1.7.0", + "@scure/bip39": "^1.6.0", + "abitype": "^1.0.9", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/viem/node_modules/ws": { "version": "8.18.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", @@ -15698,6 +15619,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -15747,15 +15669,18 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { @@ -15798,4 +15723,4 @@ } } } -} +} \ No newline at end of file diff --git a/demo/rn-bare-example/package.json b/demo/rn-bare-example/package.json index f321f27..4a4ddcb 100644 --- a/demo/rn-bare-example/package.json +++ b/demo/rn-bare-example/package.json @@ -16,6 +16,7 @@ "@web3auth/ethereum-provider": "^9.7.0", "@web3auth/react-native-sdk": "file:../../web3auth-react-native-sdk-8.1.0.tgz", "ethers": "^6.13.2", + "ox": "^0.9.17", "react": "18.2.0", "react-native": "0.74.2", "react-native-encrypted-storage": "^4.0.3", @@ -24,6 +25,7 @@ }, "devDependencies": { "@babel/core": "^7.20.0", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@react-native/babel-preset": "0.74.84", diff --git a/package-lock.json b/package-lock.json index 8c55e11..684b7cd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,9 +56,13 @@ "peerDependencies": { "@babel/runtime": "^7.x", "react": ">=18", - "react-dom": ">=18", "react-native": "*", "vue": ">=3.x" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } } }, "node_modules/@ampproject/remapping": { @@ -102,6 +106,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.7.tgz", "integrity": "sha512-BU2f9tlKQ5CAthiMIgpzAh4eDTLWo1mqi9jqE2OxMG0E/OM199VJt2q8BztTxpnSW0i1ymdwLXRJnYzvDM5r2w==", "license": "MIT", + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", @@ -1783,6 +1788,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -3413,6 +3419,7 @@ "integrity": "sha512-vvmsN0r7rguA+FySiCsbaTTobSftpIDIpPW81trAmsv9TGxg3YCujAxRYp/Uy8xmDgYCzzgulG62H7KYUFmeIg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^5.0.0", "@octokit/graphql": "^8.2.2", @@ -5150,6 +5157,7 @@ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -5192,6 +5200,7 @@ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -5304,6 +5313,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.33.tgz", "integrity": "sha512-wzoocdnnpSxZ+6CjW4ADCK1jVmd1S/J3ArNWfn8FDDQtRm8dkDg7TA+mvek2wNrfCgwuZxqEOiB9B1XCJ6+dbw==", "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -5321,6 +5331,7 @@ "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -5417,6 +5428,7 @@ "integrity": "sha512-6sMvZePQrnZH2/cJkwRpkT7DxoAWh+g6+GFRK6bV3YQo7ogi3SX5rgF6099r5Q53Ma5qeT7LGmOmuIutF4t3lA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.35.0", "@typescript-eslint/types": "8.35.0", @@ -6719,6 +6731,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6764,6 +6777,7 @@ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -7717,6 +7731,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", @@ -7776,21 +7791,6 @@ "dev": true, "license": "MIT" }, - "node_modules/bufferutil": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz", - "integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -8199,7 +8199,6 @@ "resolved": "https://registry.npmjs.org/color/-/color-5.0.0.tgz", "integrity": "sha512-16BlyiuyLq3MLxpRWyOTiWsO3ii/eLQLJUQXBSNcxMBBSnyt1ee9YUdaozQp03ifwm5woztEZGDbk9RGVuCsdw==", "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^3.0.1", "color-string": "^2.0.0" @@ -8231,7 +8230,6 @@ "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.0.1.tgz", "integrity": "sha512-5z9FbYTZPAo8iKsNEqRNv+OlpBbDcoE+SY9GjLfDUHEfcNNV7tS9eSAlFHEaub/r5tBL9LtskAeq1l9SaoZ5tQ==", "license": "MIT", - "peer": true, "dependencies": { "color-name": "^2.0.0" }, @@ -8244,7 +8242,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.0.tgz", "integrity": "sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==", "license": "MIT", - "peer": true, "engines": { "node": ">=12.20" } @@ -8254,7 +8251,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.0.tgz", "integrity": "sha512-TVoqAq8ZDIpK5lsQY874DDnu65CSsc9vzq0wLpNQ6UMBq81GSZocVazPiBbYGzngzBOIRahpkTzCLVe2at4MfA==", "license": "MIT", - "peer": true, "dependencies": { "color-name": "^2.0.0" }, @@ -8267,7 +8263,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.0.tgz", "integrity": "sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==", "license": "MIT", - "peer": true, "engines": { "node": ">=12.20" } @@ -9312,6 +9307,7 @@ "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -9373,6 +9369,7 @@ "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -9499,6 +9496,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -13667,19 +13665,6 @@ "dev": true, "license": "MIT" }, - "node_modules/node-gyp-build": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", - "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -14583,6 +14568,7 @@ "integrity": "sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -14878,6 +14864,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -14913,19 +14900,6 @@ } } }, - "node_modules/react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", - "license": "MIT", - "peer": true, - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.1" - } - }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", @@ -14937,6 +14911,7 @@ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.80.0.tgz", "integrity": "sha512-b9K1ygb2MWCBtKAodKmE3UsbUuC29Pt4CrJMR0ocTA8k+8HJQTPleBPDNKL4/p0P01QO9aL/gZUddoxHempLow==", "license": "MIT", + "peer": true, "dependencies": { "@jest/create-cache-key-function": "^29.7.0", "@react-native/assets-registry": "0.80.0", @@ -15609,6 +15584,7 @@ "integrity": "sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -15813,6 +15789,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -17274,6 +17251,7 @@ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -17426,6 +17404,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "napi-postinstall": "^0.2.4" }, @@ -17569,21 +17548,6 @@ "dev": true, "license": "MIT" }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -17625,6 +17589,7 @@ "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.19", "@vue/compiler-sfc": "3.5.19", @@ -17679,6 +17644,7 @@ "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", diff --git a/package.json b/package.json index 51fe70b..b1d09a8 100644 --- a/package.json +++ b/package.json @@ -57,9 +57,13 @@ "@babel/runtime": "^7.x", "react-native": "*", "react": ">=18", - "react-dom": ">=18", "vue": ">=3.x" }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + }, "devDependencies": { "@babel/runtime": "^7.27.6", "@toruslabs/config": "^3.1.0", @@ -87,4 +91,4 @@ "node": ">=18.x", "npm": ">=9.x" } -} +} \ No newline at end of file diff --git a/src/types/interface.ts b/src/types/interface.ts index 49da2ae..f285185 100644 --- a/src/types/interface.ts +++ b/src/types/interface.ts @@ -269,15 +269,4 @@ export type AggregateVerifierParams = { verifier_id: string; }; -export type SubVerifierInfo = { - verifier: string; - idToken: string; -}; - -export type AggregateVerifierParams = { - verify_params: { verifier_id: string; idtoken: string }[]; - sub_verifier_ids: string[]; - verifier_id: string; -}; - export { AUTH_CONNECTION, BUILD_ENV, LANGUAGES, MFA_FACTOR, MFA_LEVELS, SUPPORTED_KEY_CURVES, THEME_MODES, WEB3AUTH_NETWORK }; From cd014c3bfe307f726b98190219427dfbbf11446a Mon Sep 17 00:00:00 2001 From: Yashovardhan Agrawal <21066442+yashovardhan@users.noreply.github.com> Date: Sun, 7 Dec 2025 23:41:37 +0400 Subject: [PATCH 5/9] Fix expo example --- demo/rn-expo-example/App.tsx | 29 +- demo/rn-expo-example/globals.js | 67 +- demo/rn-expo-example/ios/Podfile.lock | 36 +- demo/rn-expo-example/metro.config.js | 2 + demo/rn-expo-example/package-lock.json | 10073 ++++++++++++----------- demo/rn-expo-example/package.json | 1 + 6 files changed, 5454 insertions(+), 4754 deletions(-) diff --git a/demo/rn-expo-example/App.tsx b/demo/rn-expo-example/App.tsx index f06839d..a0e8fb9 100644 --- a/demo/rn-expo-example/App.tsx +++ b/demo/rn-expo-example/App.tsx @@ -174,15 +174,16 @@ export default function App() { setConsole("Logging in"); // IMP START - Login - await web3auth.login({ + await web3auth.connectTo({ authConnection: AUTH_CONNECTION.EMAIL_PASSWORDLESS, extraLoginOptions: { login_hint: email, }, }); - // IMP END - Login + uiConsole(web3auth.userInfo); if (web3auth.connected) { + // IMP END - Login setProvider(web3auth.provider); uiConsole("Logged In"); setLoggedIn(true); @@ -211,10 +212,10 @@ export default function App() { }; // IMP START - Blockchain Calls - const getAccounts = async () => { + const getAccounts = async (): Promise => { if (!provider) { uiConsole("provider not set"); - return; + return ""; } setConsole("Getting account"); // For ethers v5 @@ -228,6 +229,7 @@ export default function App() { // Get user's Ethereum public address const address = signer.getAddress(); uiConsole(address); + return address; }; const getBalance = async () => { @@ -293,13 +295,30 @@ export default function App() { setConsole(JSON.stringify(args || {}, null, 2) + "\n\n\n\n" + console); }; + const requestSignature = async () => { + if (!web3auth) { + setConsole("Web3auth not initialized"); + return; + } + try { + const address: string = await getAccounts(); + + const params = ["Hello World", address]; + const res = await web3auth.request(chainConfig, "personal_sign", params); + uiConsole(res); + } catch (error) { + uiConsole("Error in requestSignature:", error); + } + }; + const loggedInView = ( -