diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..119bd728 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +VITE_APP_E2E=false +VITE_APP_DEFAULT_NETWORK=Devnet +VITE_APP_MINA_PROXY_MAINNET_URL=https://api.minascan.io/node/mainnet/v1/graphql +VITE_APP_MINA_PROXY_DEVNET_URL=https://api.minascan.io/node/devnet/v1/graphql diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 982ce653..45e2fe79 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -8,7 +8,7 @@ inputs: description: Turborepo token required: true runs: - using: 'composite' + using: "composite" steps: - name: Turborepo Caching Server uses: felixmosh/turborepo-gh-artifacts@v2 @@ -16,10 +16,10 @@ runs: repo-token: ${{ inputs.GITHUB_TOKEN }} server-token: ${{ inputs.TURBO_SERVER_TOKEN }} - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version-file: .nvmrc - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 name: Install pnpm with: run_install: false diff --git a/.github/workflows/apps-extension-ci.yml b/.github/workflows/apps-extension-ci.yml index d8e4d225..c7810ad2 100644 --- a/.github/workflows/apps-extension-ci.yml +++ b/.github/workflows/apps-extension-ci.yml @@ -34,8 +34,7 @@ jobs: test_and_build: name: "Build and test" env: - VITE_APP_MODE: web - VITE_APP_DEFAULT_NETWORK: Devnet + VITE_APP_DEFAULT_NETWORK: Mainnet NODE_OPTIONS: "--max_old_space_size=4096" runs-on: ubuntu-latest steps: @@ -52,7 +51,7 @@ jobs: TURBO_API: "http://127.0.0.1:9080" TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: pallad - run: VITE_APP_MODE=$VITE_APP_MODE pnpm build:extension + run: VITE_APP_DEFAULT_NETWORK=$VITE_APP_DEFAULT_NETWORK pnpm build:extension - name: Run unit tests run: pnpm test:unit - uses: actions/upload-artifact@v3 diff --git a/.github/workflows/apps-extension-e2e.yml b/.github/workflows/apps-extension-e2e.yml index ba85e676..575be8b6 100644 --- a/.github/workflows/apps-extension-e2e.yml +++ b/.github/workflows/apps-extension-e2e.yml @@ -9,7 +9,7 @@ jobs: e2e: name: Run E2E tests env: - VITE_APP_MODE: web + VITE_APP_E2E: true VITE_APP_DEFAULT_NETWORK: Devnet NODE_OPTIONS: "--max_old_space_size=4096" runs-on: ubuntu-latest @@ -27,7 +27,7 @@ jobs: TURBO_API: "http://127.0.0.1:9080" TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: pallad - run: VITE_APP_MODE=$VITE_APP_MODE pnpm build:extension + run: VITE_APP_E2E=$VITE_APP_E2E VITE_APP_DEFAULT_NETWORK=$VITE_APP_DEFAULT_NETWORK pnpm build:extension - name: Install Chromium for Playwright working-directory: apps/extension run: pnpm test:e2e:install diff --git a/.github/workflows/extension-release-workflow.yml b/.github/workflows/extension-release-workflow.yml index a749e022..f99b7ae3 100644 --- a/.github/workflows/extension-release-workflow.yml +++ b/.github/workflows/extension-release-workflow.yml @@ -3,38 +3,38 @@ on: workflow_dispatch: inputs: version: - description: 'Release version 🏷ïļ' + description: "Release version 🏷ïļ" required: true - default: '0.0.1' + default: "0.0.1" tag_name: - description: 'Tag name for the release 🔖' + description: "Tag name for the release 🔖" required: true release_name: - description: 'Name of the release 📛' + description: "Name of the release 📛" required: true release_body: - description: 'Release notes body 📝' + description: "Release notes body 📝" required: true draft: - description: 'Mark release as draft? 🚧' + description: "Mark release as draft? 🚧" required: true type: boolean prerelease: - description: 'Mark as prerelease? 🚀' + description: "Mark as prerelease? 🚀" required: true type: boolean generate_release_notes: - description: 'Generate release notes automatically? 📃' + description: "Generate release notes automatically? 📃" required: true type: boolean jobs: build_and_release: - name: 'Build and Release 🛠ïļ' + name: "Build and Release 🛠ïļ" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - + - name: Setup env 🌍 uses: ./.github/actions/setup with: @@ -43,13 +43,12 @@ jobs: - name: Build extension 🏗ïļ env: - VITE_APP_MODE: web VITE_APP_DEFAULT_NETWORK: Devnet NODE_OPTIONS: "--max_old_space_size=4096" - TURBO_API: 'http://127.0.0.1:9080' + TURBO_API: "http://127.0.0.1:9080" TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: pallad - run: VITE_APP_MODE=$VITE_APP_MODE pnpm build:extension + run: pnpm build:extension - name: Compress dist folder run: | @@ -72,4 +71,4 @@ jobs: draft: ${{ github.event.inputs.draft }} prerelease: ${{ github.event.inputs.prerelease }} files: pallad-chromium.zip - generate_release_notes: ${{ github.event.inputs.generate_release_notes }} \ No newline at end of file + generate_release_notes: ${{ github.event.inputs.generate_release_notes }} diff --git a/.github/workflows/packages-ui-ci.yml b/.github/workflows/packages-ui-ci.yml index e2b4e4f9..b3be48c2 100644 --- a/.github/workflows/packages-ui-ci.yml +++ b/.github/workflows/packages-ui-ci.yml @@ -20,7 +20,6 @@ jobs: pages: write id-token: write env: - VITE_APP_MODE: web VITE_APP_DEFAULT_NETWORK: Devnet steps: - uses: actions/checkout@v3 @@ -36,7 +35,7 @@ jobs: TURBO_API: "http://127.0.0.1:9080" TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: pallad - run: VITE_APP_MODE=$VITE_APP_MODE pnpm build:features + run: pnpm build:features - name: Build features stories run: pnpm story:features - name: Upload pages artifact diff --git a/apps/extension/.env.example b/apps/extension/.env.example deleted file mode 100644 index 7b46d0eb..00000000 --- a/apps/extension/.env.example +++ /dev/null @@ -1,6 +0,0 @@ -VITE_APP_MODE=web -VITE_APP_DEFAULT_NETWORK=Devnet - -VITE_APP_MINA_PROXY_MAINNET_URL=https://pallad.co/api/obscura/mainnet.json - -VITE_APP_MINA_PROXY_DEVNET_URL=https://pallad.co/api/obscura/devnet.json diff --git a/apps/extension/app.html b/apps/extension/app.html deleted file mode 100644 index 16f25181..00000000 --- a/apps/extension/app.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - Pallad - - - - -
- - - diff --git a/apps/extension/e2e/pom/onboarding.ts b/apps/extension/e2e/pom/onboarding.ts index a8d3ce1d..a302c946 100644 --- a/apps/extension/e2e/pom/onboarding.ts +++ b/apps/extension/e2e/pom/onboarding.ts @@ -66,10 +66,14 @@ export class OnboardingPom extends BasePom { return confirmAloneButton.click() } async fillMnemonic(mnemonic: string[]) { - for (let i = 0; i < mnemonic.length; i++) { - const field = this.page.getByTestId(`${TestId.MNEMONIC_FIELD}.${i}`) - await field.fill(mnemonic[i]) - } + const modifier = process.platform === "darwin" ? "Meta" : "Control" + const wholeMnemonic = mnemonic.join(" ") + await this.page.evaluate( + `navigator.clipboard.writeText("${wholeMnemonic}")`, + ) + const firstField = this.page.getByTestId(`${TestId.MNEMONIC_FIELD}.0`) + await firstField.focus() + await this.page.keyboard.press(`${modifier}+KeyV`) } getAddressTruncated() { const addressTruncated = this.page.getByTestId(TestId.ADDRESS_TRUNCATED) diff --git a/apps/extension/e2e/provider-enable.spec.ts b/apps/extension/e2e/provider-enable.spec.ts index f9c60d11..325f1a09 100644 --- a/apps/extension/e2e/provider-enable.spec.ts +++ b/apps/extension/e2e/provider-enable.spec.ts @@ -46,7 +46,6 @@ test.skip("enable window.mina and handle pop-up on a specific webpage", async ({ const responseRequestNetwork = await page.evaluate(() => window.mina.request({ method: "mina_requestNetwork" }), ) - console.log("responseRequestNetwork:", responseRequestNetwork) expect(responseRequestNetwork.result.chainId).not.toBe(undefined) const responseAddChain = await page.evaluate(() => @@ -67,7 +66,6 @@ test.skip("enable window.mina and handle pop-up on a specific webpage", async ({ }, }), ) - console.log("responseAddChain:", responseAddChain) expect(responseAddChain.result.networkName).toBe("ZekoDevNet") const responseSwitchChain = await page.evaluate(() => @@ -78,13 +76,11 @@ test.skip("enable window.mina and handle pop-up on a specific webpage", async ({ }, }), ) - console.log("responseSwitchChain:", responseSwitchChain) expect(responseSwitchChain.result.networkName).toBe("ZekoDevNet") const responseBalanceZeko = await page.evaluate(() => window.mina.request({ method: "mina_getBalance" }), ) - console.log("responseBalanceZeko:", responseBalanceZeko) expect(responseBalanceZeko.result).not.toBe(0) await page.evaluate(() => diff --git a/apps/extension/index.html b/apps/extension/index.html index 838f202a..2209e775 100644 --- a/apps/extension/index.html +++ b/apps/extension/index.html @@ -1,34 +1,28 @@ - - - - Pallad - - - - + #root { + min-height: 100vh; + display: flex; + } + + - -
- - + +
+ + diff --git a/apps/extension/manifest.config.ts b/apps/extension/manifest.config.ts deleted file mode 100644 index b31f0b29..00000000 --- a/apps/extension/manifest.config.ts +++ /dev/null @@ -1,62 +0,0 @@ -import packageJson from "./package.json" -const { version } = packageJson -import { createRequire } from "node:module" -const require = createRequire(import.meta.url) -const { defineManifest } = require("@crxjs/vite-plugin") - -// Convert from Semver (example: 0.1.0-beta6) -const [major, minor, patch, label = "0"] = version - // can only contain digits, dots, or dash - .replace(/[^\d.-]+/g, "") - // split into version parts - .split(/[.-]/) - -export default defineManifest((env) => ({ - manifest_version: 3, - name: env.mode === "DEVELOPMENT" ? "[DEV] Pallad" : "Pallad", - description: - "Discover the Future of Web3 with Pallad. Unlock the power of the world's lightest blockchain ðŸŠķ", - icons: { - "16": "icons/16.png", - "32": "icons/32.png", - "48": "icons/48.png", - "128": "icons/128.png", - }, - version: `${major}.${minor}.${patch}.${label}`, - version_name: version, - action: { default_popup: "index.html" }, - permissions: ["storage", "activeTab", "background"], - background: { - service_worker: "src/background/index.ts", - type: "module", - }, - content_scripts: [ - { - matches: ["https://*/*"], - js: ["src/inject/index.ts"], - run_at: "document_start", - all_frames: true, - }, - ], - web_accessible_resources: [ - { - resources: ["pallad_rpc.js"], - matches: ["https://*/*"], - }, - ], - host_permissions: [ - "https://*/*", - // Add other URLs or patterns as needed - ], - commands: { - _execute_action: { - suggested_key: { - windows: "Alt+Shift+P", - mac: "Alt+Shift+P", - chromeos: "Alt+Shift+P", - linux: "Alt+Shift+P", - }, - description: "Open the Pallad extension", - }, - }, -})) diff --git a/apps/extension/manifest.ts b/apps/extension/manifest.ts new file mode 100644 index 00000000..b6daf8a1 --- /dev/null +++ b/apps/extension/manifest.ts @@ -0,0 +1,48 @@ +import packageJson from "./package.json" with { type: "json" } + +export const manifest: chrome.runtime.ManifestV3 = { + manifest_version: 3, + name: "Pallad", + description: + "Discover the Future of Web3 with Pallad. Unlock the power of the world's lightest blockchain ðŸŠķ", + icons: { + 16: "icons/16.png", + 32: "icons/32.png", + 48: "icons/48.png", + 128: "icons/128.png", + }, + version: packageJson.version, + action: { default_title: "Click to open panel" }, + side_panel: { default_path: "index.html" }, + permissions: ["storage", "activeTab", "background", "sidePanel"], + background: { + service_worker: "src/background/index.ts", + type: "module", + }, + content_scripts: [ + { + matches: ["https://*/*"], + js: ["src/inject/index.ts"], + run_at: "document_start", + all_frames: true, + }, + ], + web_accessible_resources: [ + { + resources: ["pallad_rpc.js"], + matches: ["https://*/*"], + }, + ], + host_permissions: ["https://*/*"], + commands: { + _execute_action: { + suggested_key: { + windows: "Alt+Shift+P", + mac: "Alt+Shift+P", + chromeos: "Alt+Shift+P", + linux: "Alt+Shift+P", + }, + description: "Open the Pallad extension", + }, + }, +} diff --git a/apps/extension/package.json b/apps/extension/package.json index df322f2c..ed45f5c1 100644 --- a/apps/extension/package.json +++ b/apps/extension/package.json @@ -1,12 +1,12 @@ { "name": "@palladxyz/extension", - "version": "0.5.4", + "version": "0.6.0", "type": "module", "scripts": { "dev": "vite", - "build": "tsc && vite build && node scripts/append-oninstall.cjs", + "build": "tsc && vite build", "build:firefox": "web-ext build --source-dir=dist", - "build:safari": "xcrun safari-web-extension-converter dist --app-name Pallad --bundle-identifier xyz.pallad.app --swift --no-prompt --force --macos-only --no-open", + "build:safari": "xcrun safari-web-extension-converter dist --app-name Pallad --bundle-identifier co.pallad.app --swift --no-prompt --force --macos-only --no-open", "preview": "vite preview", "cleanup": "rimraf node_modules dist .turbo", "test:e2e": "playwright test", @@ -17,44 +17,49 @@ "@palladxyz/common": "workspace:*", "@palladxyz/features": "workspace:*", "@palladxyz/key-management": "workspace:*", - "@palladxyz/persistence": "workspace:*", "@palladxyz/web-provider": "workspace:*", - "@plasmohq/messaging": "^0.6.2", - "buffer": "^6.0.3", - "dotenv": "^16.3.1", - "next-themes": "^0.2.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "tailwindcss-animate": "^1.0.7", - "vite-plugin-node-stdlib-browser": "^0.2.1", - "webext-bridge": "^6.0.1", - "webextension-polyfill": "^0.10.0", - "zod": "^3.22.4" + "@plasmohq/messaging": "0.6.2", + "buffer": "6.0.3", + "debounce": "^2.1.0", + "next-themes": "0.3.0", + "react": "18.3.1", + "react-dom": "18.3.1", + "serialize-error": "11.0.3", + "tailwindcss-animate": "1.0.7", + "vite-plugin-node-stdlib-browser": "0.2.1", + "webext-bridge": "6.0.1", + "webextension-polyfill": "0.12.0", + "zod": "3.23.8" }, "devDependencies": { - "@crxjs/vite-plugin": "^2.0.0-beta.23", - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", - "@originjs/vite-plugin-commonjs": "^1.0.3", - "@playwright/test": "^1.40.1", - "@testing-library/react": "^14.1.2", - "@total-typescript/ts-reset": "^0.5.1", - "@types/mocha": "^10.0.6", - "@types/node": "^20.10.6", - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.18", - "@types/webextension-polyfill": "^0.10.7", - "@vitejs/plugin-react-swc": "^3.6.0", - "path": "^0.12.7", - "rollup-plugin-node-polyfills": "^0.2.1", - "rollup-plugin-polyfill-node": "^0.12.0", - "vite": "^5.2.8", - "vite-plugin-commonjs": "^0.10.1", - "vite-plugin-node-polyfills": "^0.17.0", - "vite-plugin-require-transform": "^1.0.21", - "vite-plugin-svgr": "^4.2.0", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0", - "web-ext": "^7.9.0" + "@esbuild-plugins/node-globals-polyfill": "0.2.3", + "@esbuild-plugins/node-modules-polyfill": "0.2.2", + "@originjs/vite-plugin-commonjs": "1.0.3", + "@playwright/test": "1.45.3", + "@testing-library/react": "16.0.0", + "@total-typescript/ts-reset": "0.5.1", + "@tsconfig/vite-react": "3.0.2", + "@types/chrome": "0.0.269", + "@types/mocha": "10.0.7", + "@types/node": "22.0.0", + "@types/react": "18.3.3", + "@types/react-dom": "18.3.0", + "@types/webextension-polyfill": "0.10.7", + "@vitejs/plugin-react-swc": "3.7.0", + "dedent": "1.5.3", + "path": "0.12.7", + "rollup-plugin-node-polyfills": "0.2.1", + "rollup-plugin-polyfill-node": "0.13.0", + "type-fest": "4.23.0", + "vite": "5.3.5", + "vite-plugin-commonjs": "0.10.1", + "vite-plugin-node-polyfills": "0.17.0", + "vite-plugin-require-transform": "1.0.21", + "vite-plugin-svgr": "4.2.0", + "vite-plugin-top-level-await": "1.4.2", + "vite-plugin-wasm": "3.3.0", + "vite-plugin-web-extension": "^4.1.6", + "web-ext": "8.2.0", + "write-json-file": "^6.0.0" } } diff --git a/apps/extension/playwright.config.ts b/apps/extension/playwright.config.ts index dd125eb4..7d7c6f2f 100644 --- a/apps/extension/playwright.config.ts +++ b/apps/extension/playwright.config.ts @@ -16,6 +16,7 @@ export default defineConfig({ use: { baseURL: BASE_URL, trace: "on-first-retry", + permissions: ["clipboard-read", "clipboard-write"], }, projects: [ { diff --git a/apps/extension/prompt.html b/apps/extension/prompt.html index 77c0ca52..da43c9b4 100644 --- a/apps/extension/prompt.html +++ b/apps/extension/prompt.html @@ -1,28 +1,24 @@ - - - - Pallad - - - - + #root { + min-height: 100vh; + display: flex; + } + + - -
- - + +
+ + diff --git a/apps/extension/public/pallad_rpc.js b/apps/extension/public/pallad_rpc.js index 075caa00..e402ab7a 100644 --- a/apps/extension/public/pallad_rpc.js +++ b/apps/extension/public/pallad_rpc.js @@ -16,14 +16,22 @@ function debounce(func, wait, immediate) { } } const BROADCAST_CHANNEL_ID = "pallad" -const callPalladAsync = ({ method, payload }) => - new Promise((resolve, reject) => { +const callPalladAsync = ({ method, payload }) => { + return new Promise((resolve, reject) => { const privateChannelId = `private-${Math.random()}` const channel = new BroadcastChannel(BROADCAST_CHANNEL_ID) const responseChannel = new BroadcastChannel(privateChannelId) responseChannel.addEventListener("message", ({ data }) => { channel.close() - if (data.error) return reject(data.error) + const error = data.response?.error + if (error) { + try { + console.table(JSON.parse(error.message)) + } catch { + console.info(error.message) + } + return reject(error) + } return resolve(data.response) }) channel.postMessage({ @@ -34,6 +42,7 @@ const callPalladAsync = ({ method, payload }) => }) return channel.close() }) +} const debouncedCall = debounce(callPalladAsync, 300, false) const init = () => { const info = { diff --git a/apps/extension/scripts/append-oninstall.cjs b/apps/extension/scripts/append-oninstall.cjs deleted file mode 100644 index f49b2ca1..00000000 --- a/apps/extension/scripts/append-oninstall.cjs +++ /dev/null @@ -1,11 +0,0 @@ -const fs = require("node:fs") -const path = require("node:path") - -fs.appendFile( - path.join(__dirname, "..", "dist", "service-worker-loader.js"), - `chrome.runtime.onInstalled.addListener(({reason}) => reason === 'install' && chrome.tabs.create({ url: chrome.runtime.getURL('welcome.html') }))`, - (err) => { - if (err) throw err - console.log("onInstall script appended.") - }, -) diff --git a/apps/extension/src/app.tsx b/apps/extension/src/app.tsx index 44d7b913..2f460632 100644 --- a/apps/extension/src/app.tsx +++ b/apps/extension/src/app.tsx @@ -7,6 +7,7 @@ import { useEffect } from "react" function App() { useEffect(() => { + if (typeof document === "undefined") return const handleContextmenu = (e: MouseEvent) => { if (!e.metaKey) e.preventDefault() } diff --git a/apps/extension/src/background/index.ts b/apps/extension/src/background/index.ts index 0835c241..39c1c46c 100644 --- a/apps/extension/src/background/index.ts +++ b/apps/extension/src/background/index.ts @@ -1,146 +1,221 @@ -import { MinaProvider, type ProviderEvent } from "@palladxyz/web-provider" -import { onMessage, sendMessage } from "webext-bridge/background" -//import { sendMessage } from 'webext-bridge/content-script' +import { MinaProvider, Validation } from "@palladxyz/web-provider" +import { serializeError } from "serialize-error" +import { onMessage } from "webext-bridge/background" +import { runtime, tabs } from "webextension-polyfill" + +const E2E_TESTING = import.meta.env.VITE_APP_E2E === "true" -// options should be defined by user const opts = { projectId: "test", - chains: ["Mina - Devnet"], -} - -const provider = await MinaProvider.init(opts, []) - -// Example structure for listenerRegistry -type ListenerFunction = (args: any) => void // Adjust the 'any' type based on actual event arguments - -interface ListenerRegistration { - event: ProviderEvent - listener: ListenerFunction + chains: ["Mina - Mainnet"], } -interface OnMessageData { - listenerId: string -} - -interface OnEventData { - event: ProviderEvent - context: any // Can be more specific type based on our context structure -} - -const listenerRegistry: Record = {} - -function generateListenerId(): string { - return Math.random().toString(36).substring(2, 15) -} - -function registerListener(event: ProviderEvent /*, context: string*/): string { - const listenerId = generateListenerId() - const listener: ListenerFunction = (args) => { - // Adjusting sendMessage call to match its signature - sendMessage("eventTriggered", { listenerId, event, args }) // Assuming context is handled elsewhere or not needed +onMessage("enable", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const { origin } = Validation.requestSchema.parse(data) + return await provider.enable({ origin }) + } catch (error: unknown) { + return { error: serializeError(error) } } +}) - listenerRegistry[listenerId] = { event, listener } - - // Register with MinaProvider - provider.on(event, listener) - - return listenerId -} - -function removeListener(listenerId: string): void { - const registration = listenerRegistry[listenerId] - if (registration) { - const { event, listener } = registration - provider.off(event, listener) - delete listenerRegistry[listenerId] +onMessage("mina_setState", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.setStateRequestSchema.parse(data) + return await provider.request({ + method: "mina_setState", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } } -} - -onMessage("enable", async (payload) => { - const data = payload.data as { origin: string } - return await provider.enable({ origin: data.origin }) }) -onMessage("on", ({ data }) => { - const { event /*, context*/ } = data as unknown as OnEventData - const listenerId = registerListener(event /*, context*/) - return { success: true, listenerId } +onMessage("mina_addChain", async () => { + return { error: serializeError(new Error("4200 - Unsupported Method")) } }) -onMessage("off", ({ data }) => { - const { listenerId } = data as unknown as OnMessageData - removeListener(listenerId) +onMessage("mina_requestNetwork", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.requestSchema.parse(data) + return await provider.request({ + method: "mina_requestNetwork", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } +}) - return { success: true } +onMessage("mina_switchChain", async () => { + return { error: serializeError(new Error("4200 - Unsupported Method")) } }) -onMessage("mina_setState", async (data) => { - return await provider.request({ method: "mina_setState", params: data }) +onMessage("mina_getState", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.getStateRequestSchema.parse(data) + return await provider.request({ + method: "mina_getState", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("experimental_requestSession", async (data) => { - return await provider.request({ - method: "experimental_requestSession", - params: data, - }) +onMessage("isConnected", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const { origin } = Validation.requestSchema.parse(data) + return await provider.isConnected({ origin }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("mina_addChain", async (data) => { - return await provider.request({ method: "mina_addChain", params: data }) +onMessage("mina_chainId", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.requestSchema.parse(data) + return await provider.request({ + method: "mina_chainId", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("mina_requestNetwork", async (data) => { - return await provider.request({ - method: "mina_requestNetwork", - params: data, - }) +onMessage("mina_accounts", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.requestSchema.parse(data) + return await provider.request({ + method: "mina_accounts", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("mina_switchChain", async (data) => { - return await provider.request({ method: "mina_switchChain", params: data }) +// TODO: It should be removed, but let's keep it for now for Auro compatibility. +onMessage("mina_requestAccounts", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.requestSchema.parse(data) + return await provider.request({ + method: "mina_accounts", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("mina_getState", async (data) => { - //return await provider.request({ method: 'mina_getState' }) - return await provider.request({ method: "mina_getState", params: data }) +onMessage("mina_sign", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.signMessageRequestSchema.parse(data) + return await provider.request({ + method: "mina_sign", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("isConnected", (payload) => { - const data = payload.data as { origin: string } - return provider.isConnected({ origin: data.origin }) +onMessage("mina_signFields", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.signFieldsRequestSchema.parse(data) + return await provider.request({ + method: "mina_signFields", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("mina_chainId", async (data) => { - return await provider.request({ method: "mina_chainId", params: data }) +onMessage("mina_signTransaction", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.signTransactionRequestSchema.parse(data) + return await provider.request({ + method: "mina_signTransaction", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("mina_accounts", async (data) => { - return await provider.request({ method: "mina_accounts", params: data }) +onMessage("mina_getBalance", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.requestSchema.parse(data) + return await provider.request({ + method: "mina_getBalance", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("mina_sign", async (data) => { - return await provider.request({ method: "mina_sign", params: data }) +onMessage("mina_createNullifier", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.createNullifierRequestSchema.parse(data) + return await provider.request({ + method: "mina_createNullifier", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("mina_signFields", async (data) => { - return await provider.request({ method: "mina_signFields", params: data }) +onMessage("mina_sendTransaction", async ({ data }) => { + try { + const provider = await MinaProvider.init(opts, []) + const params = Validation.sendTransactionRequestSchema.parse(data) + return await provider.request({ + method: "mina_sendTransaction", + params, + }) + } catch (error: unknown) { + return { error: serializeError(error) } + } }) -onMessage("mina_signTransaction", async (data) => { - return await provider.request({ - method: "mina_signTransaction", - params: data, +onMessage("pallad_sidePanel", async ({ sender }) => { + await chrome.sidePanel.open({ + tabId: sender.tabId, }) }) -onMessage("mina_getBalance", async (data) => { - return await provider.request({ method: "mina_getBalance", params: data }) +runtime.onConnect.addListener((port) => { + if (port.name === "prompt") { + port.onDisconnect.addListener(async () => { + await chrome.sidePanel.setOptions({ + path: "index.html", + enabled: true, + }) + }) + } }) -onMessage("mina_createNullifier", async (data) => { - return await provider.request({ - method: "mina_createNullifier", - params: data, - }) +runtime.onInstalled.addListener(async ({ reason }) => { + await chrome.sidePanel.setPanelBehavior({ openPanelOnActionClick: true }) + if (reason === "install") { + if (!E2E_TESTING) + await tabs.create({ url: "https://get.pallad.co/welcome" }) + } }) diff --git a/apps/extension/src/inject/index.ts b/apps/extension/src/inject/index.ts index bc302740..f87d8ee7 100644 --- a/apps/extension/src/inject/index.ts +++ b/apps/extension/src/inject/index.ts @@ -1,7 +1,9 @@ +import { deserializeError } from "serialize-error" import { sendMessage } from "webext-bridge/content-script" import { runtime } from "webextension-polyfill" const inject = () => { + if (typeof document === "undefined") return const script = document.createElement("script") script.src = runtime.getURL("/pallad_rpc.js") script.type = "module" @@ -9,11 +11,31 @@ const inject = () => { console.info("[Pallad] RPC has been initialized.") const channel = new BroadcastChannel("pallad") channel.addEventListener("message", async ({ data }) => { + const origin = window.location.origin const responseChannel = new BroadcastChannel(data.respondAt) if (!data.isPallad) return responseChannel.postMessage({ error: "Wrong context" }) - const result = await sendMessage(data.method, data.payload, "background") - return responseChannel.postMessage({ response: { jsonrpc: "1.0", result } }) + let response + try { + const result: any = await sendMessage( + data.method, + { ...data.payload, origin }, + "background", + ) + if (result?.error) { + response = { jsonrpc: "1.0", error: deserializeError(result.error) } + } else { + response = { jsonrpc: "1.0", result } + } + return responseChannel.postMessage({ + response, + }) + } catch (error) { + response = { jsonrpc: "1.0", error } + return responseChannel.postMessage({ + response, + }) + } }) } diff --git a/apps/extension/src/main.tsx b/apps/extension/src/main.tsx index 2c5d20e2..97d37331 100644 --- a/apps/extension/src/main.tsx +++ b/apps/extension/src/main.tsx @@ -1,5 +1,4 @@ import "@total-typescript/ts-reset" -import "dotenv/config" import React from "react" import ReactDOM from "react-dom/client" diff --git a/apps/extension/src/prompt.tsx b/apps/extension/src/prompt.tsx index e47dcea7..2344de3d 100644 --- a/apps/extension/src/prompt.tsx +++ b/apps/extension/src/prompt.tsx @@ -1,6 +1,5 @@ import "@palladxyz/features/dist/index.css" import "@total-typescript/ts-reset" -import "dotenv/config" import { WebConnectorRoute } from "@palladxyz/features" import { ThemeProvider } from "next-themes" diff --git a/apps/extension/src/welcome.tsx b/apps/extension/src/welcome.tsx deleted file mode 100644 index fcec5210..00000000 --- a/apps/extension/src/welcome.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import "@palladxyz/features/dist/index.css" -import "@total-typescript/ts-reset" -import "dotenv/config" - -import { WelcomeScreen } from "@palladxyz/features" -import { ThemeProvider } from "next-themes" -import React from "react" -import ReactDOM from "react-dom/client" - -ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( - - - - - , -) diff --git a/apps/extension/tsconfig.json b/apps/extension/tsconfig.json index 2d9299b7..166bae6e 100644 --- a/apps/extension/tsconfig.json +++ b/apps/extension/tsconfig.json @@ -1,29 +1,4 @@ { - "compilerOptions": { - "types": ["vite/client", "node"], - "baseUrl": "./src", - "paths": { - "@/*": ["./*"] - }, - "target": "ESNext", - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "module": "ESNext", - "skipLibCheck": true, - "esModuleInterop": true, - - /* Bundler mode */ - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src"], - "references": [{ "path": "./tsconfig.node.json" }] + "extends": "@tsconfig/vite-react/tsconfig.json", + "exclude": ["e2e"] } diff --git a/apps/extension/tsconfig.node.json b/apps/extension/tsconfig.node.json deleted file mode 100644 index a3896494..00000000 --- a/apps/extension/tsconfig.node.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "./src", - "paths": { - "@/*": ["./*"] - }, - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "node", - "allowSyntheticDefaultImports": true, - "resolveJsonModule": true - }, - "include": ["vite.config.ts", "manifest.config.ts", "package.json"] -} diff --git a/apps/extension/vite.config.ts b/apps/extension/vite.config.ts index a948cc77..0aefa25e 100644 --- a/apps/extension/vite.config.ts +++ b/apps/extension/vite.config.ts @@ -1,35 +1,28 @@ -import { crx } from "@crxjs/vite-plugin" import react from "@vitejs/plugin-react-swc" import { defineConfig } from "vite" import { nodePolyfills } from "vite-plugin-node-polyfills" import svgr from "vite-plugin-svgr" -import topLevelAwait from "vite-plugin-top-level-await" +import webExtension from "vite-plugin-web-extension" +import { manifest } from "./manifest" -import manifest from "./manifest.config" - -export default defineConfig({ - plugins: [ - react(), - crx({ manifest }), - topLevelAwait(), - nodePolyfills({ protocolImports: true, globals: { Buffer: true } }), - svgr(), - ], - define: { - "global.browser": {}, - }, - build: { - rollupOptions: { - input: { - app: "app.html", - index: "index.html", - prompt: "prompt.html", - welcome: "welcome.html", - inject: "public/pallad_rpc.js", - }, +export default defineConfig(() => { + return { + plugins: [ + react(), + webExtension({ + additionalInputs: ["prompt.html"], + manifest: () => manifest, + }), + svgr(), + nodePolyfills({ protocolImports: true, globals: { Buffer: true } }), + ], + define: { + "global.browser": {}, + "process.env": {}, }, - commonjsOptions: { - transformMixedEsModules: true, + build: { + chunkSizeWarningLimit: 5000, + emptyOutDir: true, }, - }, + } }) diff --git a/apps/extension/welcome.html b/apps/extension/welcome.html deleted file mode 100644 index c220139e..00000000 --- a/apps/extension/welcome.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - Pallad - - - - - - -
- - - diff --git a/package.json b/package.json index 0a8c5c6f..86903629 100644 --- a/package.json +++ b/package.json @@ -12,39 +12,35 @@ "story:features": "turbo run story:build --filter=@palladxyz/features", "dev:extension": "turbowatch extension.turbowatch.ts", "lint": "pnpm biome check .", - "lint:fix": "pnpm lint --fix", + "lint:fix": "pnpm lint --write", "test:unit": "turbo run test:unit", "test:e2e:extension": "turbo run test:e2e --filter=@palladxyz/extension", - "format": "pnpm biome check --apply .", - "format:unsafe": "pnpm biome check --apply-unsafe .", + "format": "pnpm biome check --write .", + "format:unsafe": "pnpm biome check --write --unsafe .", "f": "pnpm format", "cleanup": "turbo run cleanup && rimraf node_modules", "prepare": "husky install", "preinstall": "npx only-allow pnpm" }, "devDependencies": { - "@biomejs/biome": "1.7.1", - "@testing-library/react": "^14.1.2", - "@tsconfig/strictest": "^2.0.2", - "@turbo/gen": "^1.13.3", - "@types/jest": "^29.5.11", - "@vitest/coverage-c8": "^0.33.0", - "autoprefixer": "^10.4.16", - "happy-dom": "^12.10.3", - "husky": "^8.0.3", - "postcss": "^8.4.32", - "rimraf": "^5.0.5", - "tailwind-merge": "^2.1.0", - "tailwindcss": "^3.4.0", - "tailwindcss-animate": "^1.0.7", - "tsup": "^8.0.2", - "turbo": "^1.13.3", - "turbowatch": "^2.29.4", - "typescript": "^5.3.3", - "vitest": "^1.1.0" - }, - "resolutions": { - "esbuild": "0.20.2" + "@biomejs/biome": "1.8.3", + "@testing-library/react": "16.0.0", + "@tsconfig/strictest": "2.0.5", + "@turbo/gen": "2.0.9", + "@vitest/coverage-v8": "2.0.5", + "autoprefixer": "10.4.19", + "happy-dom": "14.12.3", + "husky": "9.1.4", + "postcss": "8.4.40", + "rimraf": "6.0.1", + "tailwind-merge": "2.4.0", + "tailwindcss": "3.4.7", + "tailwindcss-animate": "1.0.7", + "tsup": "8.2.3", + "turbo": "2.0.9", + "turbowatch": "2.29.4", + "typescript": "5.5.4", + "vitest": "2.0.4" }, "packageManager": "pnpm@9.0.1" } diff --git a/packages/common/package.json b/packages/common/package.json index 0acfa007..3f8f89fa 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -17,7 +17,7 @@ } }, "scripts": { - "build": "tsup src/index.ts --dts --format esm", + "build": "tsup src/index.ts --dts --format esm --silent", "cleanup": "rimraf node_modules dist .turbo" } } diff --git a/packages/common/src/configs.ts b/packages/common/src/configs.ts index d3c8b891..4961d19a 100644 --- a/packages/common/src/configs.ts +++ b/packages/common/src/configs.ts @@ -1,11 +1,14 @@ -export const baseTsupConfig = { +import type { Options } from "tsup" + +export const baseTsupConfig: Options = { entry: ["./src/index.ts"], outDir: "./dist", - format: "esm" as any, + format: "esm", sourcemap: true, clean: true, bundle: true, dts: true, + silent: true, } export const baseVitestConfig = { diff --git a/packages/common/tsconfig.json b/packages/common/tsconfig.json index 79f91738..57095655 100644 --- a/packages/common/tsconfig.json +++ b/packages/common/tsconfig.json @@ -1,11 +1,15 @@ { "extends": "@tsconfig/strictest/tsconfig.json", "compilerOptions": { + "target": "ESNext", + "module": "ESNext", "moduleResolution": "node", "allowSyntheticDefaultImports": true, "esModuleInterop": true, "resolveJsonModule": true, - "noPropertyAccessFromIndexSignature": false + "noPropertyAccessFromIndexSignature": false, + "types": ["vitest/globals"] }, + "include": ["src", "test"], "exclude": ["dist", "node_modules", ".turbo"] } diff --git a/packages/features/package.json b/packages/features/package.json index 638da6e4..6dff473e 100644 --- a/packages/features/package.json +++ b/packages/features/package.json @@ -1,6 +1,6 @@ { "name": "@palladxyz/features", - "version": "0.5.4", + "version": "0.6.0", "description": "", "type": "module", "module": "dist/index.js", @@ -33,82 +33,80 @@ "cleanup": "rimraf node_modules dist .turbo build" }, "dependencies": { - "@github/hotkey": "^3.1.1", - "@headlessui/react": "^1.7.19", - "@hookform/resolvers": "^3.3.2", + "@github/hotkey": "3.1.1", + "@headlessui/react": "2.1.2", + "@hookform/resolvers": "3.9.0", + "@noble/hashes": "1.4.0", "@palladxyz/key-management": "workspace:*", "@palladxyz/mina-core": "workspace:*", "@palladxyz/offchain-data": "workspace:*", "@palladxyz/pallad-core": "workspace:*", - "@palladxyz/persistence": "workspace:*", "@palladxyz/vault": "workspace:*", - "@total-typescript/ts-reset": "^0.5.1", - "array-shuffle": "^3.0.0", - "class-variance-authority": "^0.7.0", - "clsx": "^2.1.0", - "cmdk": "^0.2.0", - "date-fns": "^3.0.1", - "dayjs": "^1.11.10", - "dompurify": "^3.1.4", - "easy-mesh-gradient": "^0.0.5", - "immer": "^10.0.3", - "js-beautify": "^1.15.1", - "lucide-react": "^0.376.0", - "match-sorter": "^6.3.1", - "merge-refs": "^1.2.2", - "next-themes": "^0.2.1", - "rambda": "^8.6.0", - "react": "^18.2.0", - "react-day-picker": "^8.9.1", - "react-dom": "^18.2.0", - "react-error-boundary": "^4.0.13", - "react-hook-form": "^7.49.2", - "react-mixpanel-browser": "^4.1.0", - "react-qr-code": "^2.0.12", - "react-router": "^6.21.0", - "react-router-dom": "^6.21.0", - "react-slot-counter": "^2.3.1", - "react-twc": "^1.0.1", - "recharts": "^2.10.3", - "sonner": "^1.4.41", - "sugar-high": "^0.6.1", - "superjson": "^2.2.1", - "tailwind-merge": "^2.1.0", - "tailwindcss-animate": "^1.0.7", - "webextension-polyfill": "^0.10.0", - "yaml": "^2.4.2", - "zod": "^3.22.4", - "zustand": "^4.4.7" + "@total-typescript/ts-reset": "0.5.1", + "array-shuffle": "3.0.0", + "class-variance-authority": "0.7.0", + "clsx": "2.1.1", + "cmdk": "1.0.0", + "dayjs": "1.11.12", + "easy-mesh-gradient": "0.0.5", + "immer": "10.1.1", + "js-beautify": "1.15.1", + "lucide-react": "0.417.0", + "match-sorter": "6.3.4", + "merge-refs": "1.3.0", + "next-themes": "0.3.0", + "rambda": "9.2.1", + "react": "18.3.1", + "react-day-picker": "9.0.4", + "react-dom": "18.3.1", + "react-error-boundary": "4.0.13", + "react-hook-form": "7.52.1", + "react-mixpanel-browser": "4.1.0", + "react-qr-code": "2.0.15", + "react-router": "6.25.1", + "react-router-dom": "6.25.1", + "react-slot-counter": "3.0.1", + "react-twc": "1.4.1", + "recharts": "2.12.7", + "sonner": "1.5.0", + "superjson": "2.2.1", + "tailwind-merge": "2.4.0", + "tailwindcss-animate": "1.0.7", + "webext-bridge": "6.0.1", + "webextension-polyfill": "0.12.0", + "xss": "^1.0.15", + "yaml": "2.5.0", + "zod": "3.23.8", + "zustand": "4.5.4" }, "devDependencies": { - "@ladle/react": "^4.0.3", + "@ladle/react": "4.1.0", "@palladxyz/common": "workspace:*", - "@svgr/plugin-jsx": "^8.0.1", - "@svgr/rollup": "^8.0.1", - "@testing-library/react": "^14.1.2", - "@trpc/server": "^10.44.1", - "@tsconfig/recommended": "^1.0.3", - "@tsconfig/vite-react": "^3.0.2", - "@types/dompurify": "^3.0.5", - "@types/js-beautify": "^1.14.3", - "@types/mocha": "^10.0.6", - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.18", - "@types/webextension-polyfill": "^0.10.7", - "daisyui": "^4.10.2", - "esbuild-plugin-polyfill-node": "^0.3.0", - "esbuild-plugin-svgr": "2.0.0", - "graphql-request": "^6.1.0", - "mina-signer": "^2.1.1", - "swr": "^2.2.4", - "vite": "^5.2.8", - "vite-plugin-node-polyfills": "^0.17.0", - "vite-plugin-svgr": "^4.2.0", - "vite-plugin-top-level-await": "^1.4.1" + "@svgr/rollup": "8.1.0", + "@testing-library/react": "16.0.0", + "@trpc/server": "10.45.2", + "@tsconfig/recommended": "1.0.7", + "@tsconfig/vite-react": "3.0.2", + "@types/chrome": "0.0.269", + "@types/js-beautify": "1.14.3", + "@types/mocha": "10.0.7", + "@types/react": "18.3.3", + "@types/react-dom": "18.3.0", + "@types/webextension-polyfill": "0.10.7", + "daisyui": "4.12.10", + "esbuild-plugin-polyfill-node": "0.3.0", + "esbuild-plugin-svgr": "2.1.0", + "graphql-request": "7.1.0", + "mina-signer": "3.0.7", + "swr": "2.2.5", + "vite": "5.3.5", + "vite-plugin-node-polyfills": "0.22.0", + "vite-plugin-svgr": "4.2.0", + "vite-plugin-top-level-await": "1.4.2" }, "peerDependencies": { - "@types/mocha": "^10.0.1", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@types/mocha": "10.0.1", + "react": "18.2.0", + "react-dom": "18.2.0" } } diff --git a/packages/features/src/common/hooks/use-account.ts b/packages/features/src/common/hooks/use-account.ts index d2eaf99b..eadb5a0f 100644 --- a/packages/features/src/common/hooks/use-account.ts +++ b/packages/features/src/common/hooks/use-account.ts @@ -1,5 +1,5 @@ import { Network, getAccountProperties } from "@palladxyz/pallad-core" -import { getSessionPersistence } from "@palladxyz/persistence" +import { sessionPersistence } from "@palladxyz/vault" import { getPublicKey, isDelegated, useVault } from "@palladxyz/vault" import easyMeshGradient from "easy-mesh-gradient" import { useMemo } from "react" @@ -21,8 +21,11 @@ export const useAccount = () => { const fetchWallet = async () => { await _syncWallet() const accountInfo = getAccountsInfo(currentNetworkName, publicKey) - const chain = currentWallet.credential.credential.chain - const props = getAccountProperties(accountInfo.accountInfo, chain) + const chain = currentWallet.credential.credential?.chain + const props = getAccountProperties( + accountInfo.accountInfo, + chain ?? Network.Mina, + ) return props } const publicKey = getPublicKey(currentWallet) @@ -33,15 +36,9 @@ export const useAccount = () => { refreshInterval: 30000, }, ) - const rawBalance = swr.isLoading ? 0 : swr.data.balance ?? 0 - let minaBalance: bigint | number | 0 - if (currentWallet.credential.credential.chain === Network.Mina) { - minaBalance = rawBalance && BigInt(rawBalance) / BigInt(1_000_000_000) // TODO: adjust this for other chains and their decimal conversion - } else if (currentWallet.credential.credential.chain === Network.Ethereum) { - minaBalance = rawBalance - } else { - throw new Error("chain is not supported in useAccount") - } + const rawBalance = swr.isLoading ? 0 : swr.data?.balance ?? 0 + const minaBalance = + rawBalance && Number.parseInt(String(rawBalance)) / 1_000_000_000 const gradientBackground = useMemo( () => publicKey && @@ -57,7 +54,7 @@ export const useAccount = () => { toast.success("Address copied") } const lockWallet = async () => { - await getSessionPersistence().setItem("spendingPassword", "") + await sessionPersistence.setItem("spendingPassword", "") navigate("/unlock") await useVault.persist.rehydrate() } diff --git a/packages/features/src/common/lib/validation.ts b/packages/features/src/common/lib/validation.ts index c331abed..c4fd614a 100644 --- a/packages/features/src/common/lib/validation.ts +++ b/packages/features/src/common/lib/validation.ts @@ -1,3 +1,4 @@ +import { utf8ToBytes } from "@noble/hashes/utils" import { z } from "zod" export const passwordSchema = z diff --git a/packages/features/src/common/store/address-book.ts b/packages/features/src/common/store/address-book.ts index 8ccd2f52..058047d4 100644 --- a/packages/features/src/common/store/address-book.ts +++ b/packages/features/src/common/store/address-book.ts @@ -1,4 +1,4 @@ -import { getLocalPersistence } from "@palladxyz/persistence" +import { localPersistence } from "@palladxyz/vault" import { create } from "zustand" import { createJSONStorage, persist } from "zustand/middleware" @@ -31,7 +31,7 @@ export const useAddressBookStore = create()( }), { name: "PalladAddressBook", - storage: createJSONStorage(getLocalPersistence), + storage: createJSONStorage(() => localPersistence), }, ), ) diff --git a/packages/features/src/common/store/app.ts b/packages/features/src/common/store/app.ts index 9aec6b88..819021eb 100644 --- a/packages/features/src/common/store/app.ts +++ b/packages/features/src/common/store/app.ts @@ -1,4 +1,4 @@ -import { getLocalPersistence } from "@palladxyz/persistence" +import { localPersistence } from "@palladxyz/vault" import { create } from "zustand" import { createJSONStorage, persist } from "zustand/middleware" @@ -8,7 +8,7 @@ import { VaultState } from "../lib/const" type AppState = { vaultState: VaultState shareData: boolean - betaBannerVisible: boolean + useFiatBalance: boolean } type AppQueries = { @@ -20,7 +20,7 @@ type AppMutators = { setVaultStateInitialized: () => void setVaultStateUninitialized: () => void setShareData: (shareData: boolean) => void - setBetaBannerVisible: (betaBannerVisible: boolean) => void + setUseFiatBalance: (useFiatBalance: boolean) => void } type AppStore = AppState & AppMutators & AppQueries @@ -28,7 +28,7 @@ type AppStore = AppState & AppMutators & AppQueries export const useAppStore = create()( persist( (set, get) => ({ - betaBannerVisible: true, + useFiatBalance: true, vaultState: VaultState[VaultState.UNINITIALIZED], shareData: true, isInitialized: () => { @@ -49,13 +49,13 @@ export const useAppStore = create()( const { setVaultState } = get() return setVaultState(VaultState.UNINITIALIZED) }, - setBetaBannerVisible(betaBannerVisible) { - return set({ betaBannerVisible }) + setUseFiatBalance(useFiatBalance) { + return set({ useFiatBalance }) }, }), { name: "PalladApp", - storage: createJSONStorage(getLocalPersistence), + storage: createJSONStorage(() => localPersistence), }, ), ) diff --git a/packages/features/src/components/address-dropdown.tsx b/packages/features/src/components/address-dropdown.tsx index 1fc0453d..89983282 100644 --- a/packages/features/src/components/address-dropdown.tsx +++ b/packages/features/src/components/address-dropdown.tsx @@ -1,4 +1,5 @@ import { truncateString } from "@/common/lib/string" +import { useVault } from "@palladxyz/vault" import clsx from "clsx" import { Link } from "react-router-dom" import { toast } from "sonner" @@ -14,6 +15,7 @@ export const AddressDropdown = ({ className, dropdownEnd, }: AddressDropdownProps) => { + const currentNetworkInfo = useVault((state) => state.getCurrentNetworkInfo()) const handleClick = () => { const elem = document.activeElement as HTMLLIElement if (elem) { @@ -25,7 +27,10 @@ export const AddressDropdown = ({ toast.success("Address Copied") } const openInExplorer = () => { - const url = `https://minascan.io/devnet/account/${publicKey}` + const url = currentNetworkInfo.explorer.accountUrl.replace( + "{publicKey}", + publicKey, + ) window.open(url, "_blank")?.focus() } return ( diff --git a/packages/features/src/components/app-layout.tsx b/packages/features/src/components/app-layout.tsx index bdf1aaff..abb13386 100644 --- a/packages/features/src/components/app-layout.tsx +++ b/packages/features/src/components/app-layout.tsx @@ -11,6 +11,7 @@ export const AppLayout = ({ children }: AppLayoutProps) => { const location = useLocation() // biome-ignore lint: dependent just on location useEffect(() => { + if (typeof document === "undefined") return for (const el of document.querySelectorAll("[data-hotkey]")) { install(el as never) } diff --git a/packages/features/src/components/autocomplete.tsx b/packages/features/src/components/autocomplete.tsx index 60e5b4c4..f5ae0a50 100644 --- a/packages/features/src/components/autocomplete.tsx +++ b/packages/features/src/components/autocomplete.tsx @@ -1,62 +1,66 @@ -import { Combobox } from "@headlessui/react" +import { + Combobox, + ComboboxInput, + ComboboxOption, + ComboboxOptions, +} from "@headlessui/react" import clsx from "clsx" import { matchSorter } from "match-sorter" import { take } from "rambda" import React from "react" import type { ClipboardEventHandler } from "react" +import type { UseFormRegisterReturn } from "react-hook-form" type AutocompleteProps = { - value: string - onChange: (value: string) => void + currentValue: string + setValue: (newValue: string) => void onPaste: ClipboardEventHandler options: string[] placeholder?: string autoFocus?: boolean testId: string + inputProps: UseFormRegisterReturn } -export const Autocomplete = React.forwardRef( - ( - { - value, - onChange, - onPaste, - options, - placeholder, - autoFocus, - testId, - ...rest - }: AutocompleteProps, - ref, - ) => { - const filteredOptions = take(3, matchSorter(options, value)) - return ( -
- - onChange(event.target.value)} - autoFocus={autoFocus} - onPaste={onPaste} - autoComplete="off" - data-testid={testId} - ref={ref as any} - /> - - {filteredOptions.map((option) => ( - - {({ active }) => ( - - )} - - ))} - - -
- ) - }, -) +export const Autocomplete = ({ + currentValue, + onPaste, + options, + placeholder, + autoFocus, + testId, + inputProps, + setValue, +}: AutocompleteProps) => { + const filteredOptions = take(3, matchSorter(options, currentValue)) + return ( +
+ + + + {filteredOptions.map((option) => ( + + {option} + + ))} + + +
+ ) +} diff --git a/packages/features/src/components/hash-dropdown.tsx b/packages/features/src/components/hash-dropdown.tsx index 12093d62..38d8e2a4 100644 --- a/packages/features/src/components/hash-dropdown.tsx +++ b/packages/features/src/components/hash-dropdown.tsx @@ -1,3 +1,4 @@ +import { useVault } from "@palladxyz/vault" import clsx from "clsx" import { toast } from "sonner" @@ -7,6 +8,7 @@ type HashDropdownProps = { } export const HashDropdown = ({ hash, className }: HashDropdownProps) => { + const currentNetworkInfo = useVault((state) => state.getCurrentNetworkInfo()) const handleClick = () => { const elem = document.activeElement as HTMLLIElement if (elem) { @@ -18,7 +20,10 @@ export const HashDropdown = ({ hash, className }: HashDropdownProps) => { toast.success("Hash Copied") } const openInExplorer = () => { - const url = `https://minascan.io/devnet/tx/${hash}/txInfo` + const url = currentNetworkInfo.explorer.transactionUrl.replace( + "{hash}", + hash, + ) window.open(url, "_blank")?.focus() } return ( diff --git a/packages/features/src/components/menu-bar.tsx b/packages/features/src/components/menu-bar.tsx index 79ec7a81..14fe966d 100644 --- a/packages/features/src/components/menu-bar.tsx +++ b/packages/features/src/components/menu-bar.tsx @@ -67,13 +67,13 @@ export const MenuBar = ({ rightSlot={} > {(publicAddress?.length ?? 0) > 0 && ( -
+ {truncateString({ value: publicAddress ?? "", firstCharCount: 5, endCharCount: 3, })} -
+ )} ) diff --git a/packages/features/src/globals.css b/packages/features/src/globals.css index 0bfa442c..04955d8d 100644 --- a/packages/features/src/globals.css +++ b/packages/features/src/globals.css @@ -3,33 +3,6 @@ @tailwind components; @tailwind utilities; -/** - * Types that sugar-high have: - * - * identifier - * keyword - * string - * Class, number and null - * property - * entity - * jsx literals - * sign - * comment - * break - * space - */ -:root { - --sh-class: #9ccfd8; - --sh-identifier: #e0def4; - --sh-sign: #e0def4; - --sh-property: #908caa; - --sh-entity: #ebbcba; - --sh-jsxliterals: #9ccfd8; - --sh-string: #908caa; - --sh-keyword: #908caa; - --sh-comment: #908caa; -} - :base { --mint: #a3dbe4; } diff --git a/packages/features/src/index.ts b/packages/features/src/index.ts index 2349c7ff..68656a3b 100644 --- a/packages/features/src/index.ts +++ b/packages/features/src/index.ts @@ -3,8 +3,8 @@ import "@total-typescript/ts-reset" import type {} from "graphql-request" import type {} from "swr" export { useAppStore } from "./common/store/app" +export { usePendingTransactionStore } from "@palladxyz/vault" export { Router } from "./router" export { WebConnectorRoute } from "./web-connector/routes/web-connector" -export { WelcomeScreen } from "./welcome" export * as Icons from "lucide-react" import "./globals.css" diff --git a/packages/features/src/lock/routes/unlock-wallet.tsx b/packages/features/src/lock/routes/unlock-wallet.tsx index 48e44bb6..602c0202 100644 --- a/packages/features/src/lock/routes/unlock-wallet.tsx +++ b/packages/features/src/lock/routes/unlock-wallet.tsx @@ -1,8 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod" -import { - getSecurePersistence, - getSessionPersistence, -} from "@palladxyz/persistence" +import { securePersistence, sessionPersistence } from "@palladxyz/vault" import { useVault } from "@palladxyz/vault" import { type FormEvent, useEffect, useState } from "react" import { useForm } from "react-hook-form" @@ -32,7 +29,7 @@ export const UnlockWalletRoute = () => { }: { spendingPassword: string }) => { - await getSessionPersistence().setItem("spendingPassword", spendingPassword) + await sessionPersistence.setItem("spendingPassword", spendingPassword) await useVault.persist.rehydrate() setTimeout(() => { unlockWalletForm.setError("spendingPassword", { @@ -48,10 +45,9 @@ export const UnlockWalletRoute = () => { // biome-ignore lint: won't update useEffect(() => { const unsub = useVault.persist?.onFinishHydration(async () => { - const authenticated = - (await getSecurePersistence().getItem("foo")) === "bar" + const authenticated = (await securePersistence.getItem("foo")) === "bar" if (!authenticated) { - await getSessionPersistence().removeItem("spendingPassword") + await sessionPersistence.removeItem("spendingPassword") return unlockWalletForm.setError("spendingPassword", { type: "wrongPassword", message: "The spending password is wrong", diff --git a/packages/features/src/onboarding/routes/seed-backup-confirmation.tsx b/packages/features/src/onboarding/routes/seed-backup-confirmation.tsx index e0e48e53..420d5809 100644 --- a/packages/features/src/onboarding/routes/seed-backup-confirmation.tsx +++ b/packages/features/src/onboarding/routes/seed-backup-confirmation.tsx @@ -1,6 +1,7 @@ +import { utf8ToBytes } from "@noble/hashes/utils" import type { ChainDerivationArgs } from "@palladxyz/key-management" import { Network } from "@palladxyz/pallad-core" -import { getSessionPersistence } from "@palladxyz/persistence" +import { sessionPersistence } from "@palladxyz/vault" import { DEFAULT_NETWORK, KeyAgents, useVault } from "@palladxyz/vault" import { useMemo, useState } from "react" import { useForm } from "react-hook-form" @@ -47,7 +48,7 @@ export const SeedBackupConfirmationRoute = () => { if (!walletName) return if (!spendingPassword) return if (!mnemonic) return - getSessionPersistence().setItem("spendingPassword", spendingPassword) + sessionPersistence.setItem("spendingPassword", spendingPassword) await useVault.persist.rehydrate() const restoreArgs: ChainDerivationArgs = { network: Network.Mina, @@ -61,10 +62,7 @@ export const SeedBackupConfirmationRoute = () => { DEFAULT_NETWORK, { mnemonicWords: mnemonic.split(" "), - getPassphrase: () => - new Promise((resolve) => - resolve(Buffer.from(spendingPassword)), - ), + getPassphrase: () => utf8ToBytes(spendingPassword), }, walletName, KeyAgents.InMemory, diff --git a/packages/features/src/onboarding/routes/seed-import.tsx b/packages/features/src/onboarding/routes/seed-import.tsx index 6553fe1c..0ffd6d88 100644 --- a/packages/features/src/onboarding/routes/seed-import.tsx +++ b/packages/features/src/onboarding/routes/seed-import.tsx @@ -1,7 +1,7 @@ import { validateMnemonic, wordlist } from "@palladxyz/key-management" import type { ChainDerivationArgs } from "@palladxyz/key-management" import { Network } from "@palladxyz/pallad-core" -import { getSessionPersistence } from "@palladxyz/persistence" +import { sessionPersistence } from "@palladxyz/vault" import { DEFAULT_NETWORK, KeyAgents, useVault } from "@palladxyz/vault" import { useState } from "react" import { type SubmitHandler, useForm } from "react-hook-form" @@ -12,6 +12,7 @@ import { shallow } from "zustand/shallow" import { useAppStore } from "@/common/store/app" import { useOnboardingStore } from "@/common/store/onboarding" +import { utf8ToBytes } from "@noble/hashes/utils" import type { MnemonicInputData } from "../types" import { SeedImportView } from "../views/seed-import" @@ -38,7 +39,7 @@ export const SeedImportRoute = () => { const onSubmit: SubmitHandler = async (data) => { if (!walletName) return if (!spendingPassword) return - getSessionPersistence().setItem("spendingPassword", spendingPassword) + sessionPersistence.setItem("spendingPassword", spendingPassword) await useVault.persist.rehydrate() const restoreArgs: ChainDerivationArgs = { @@ -53,10 +54,7 @@ export const SeedImportRoute = () => { DEFAULT_NETWORK, { mnemonicWords: data.mnemonic, - getPassphrase: () => - new Promise((resolve) => - resolve(Buffer.from(spendingPassword)), - ), + getPassphrase: () => utf8ToBytes(spendingPassword), }, walletName, KeyAgents.InMemory, diff --git a/packages/features/src/onboarding/routes/start.tsx b/packages/features/src/onboarding/routes/start.tsx index 0bf97bd0..1afe132f 100644 --- a/packages/features/src/onboarding/routes/start.tsx +++ b/packages/features/src/onboarding/routes/start.tsx @@ -1,7 +1,4 @@ -import { - getSecurePersistence, - getSessionPersistence, -} from "@palladxyz/persistence" +import { securePersistence, sessionPersistence } from "@palladxyz/vault" import { useEffect, useState } from "react" import { useNavigate } from "react-router-dom" @@ -20,15 +17,15 @@ export const StartRoute = () => { let spendingPassword try { spendingPassword = - (await getSessionPersistence().getItem("spendingPassword")) || "" + (await sessionPersistence.getItem("spendingPassword")) || "" } catch { return navigate("/unlock") } const spendingPasswordSet = spendingPassword?.length > 0 if (!spendingPasswordSet) return navigate("/unlock") - let authenticated + let authenticated: boolean try { - authenticated = (await getSecurePersistence().getItem("foo")) === "bar" + authenticated = (await securePersistence.getItem("foo")) === "bar" } catch { authenticated = false } diff --git a/packages/features/src/onboarding/views/seed-import.tsx b/packages/features/src/onboarding/views/seed-import.tsx index 8427295f..16219d73 100644 --- a/packages/features/src/onboarding/views/seed-import.tsx +++ b/packages/features/src/onboarding/views/seed-import.tsx @@ -53,8 +53,8 @@ export const SeedImportView = ({ key={i} placeholder={`${wordLabel}.`} options={wordlist} - value={form.watch(`mnemonic.${i}`)} autoFocus={i === 0} + currentValue={form.watch(`mnemonic.${i}`)} onPaste={(event) => { if (i !== 0) return const value = event.clipboardData.getData("Text") @@ -66,10 +66,10 @@ export const SeedImportView = ({ }) }} testId={`onboarding/mnemonicField.${i}`} - {...form.register(`mnemonic.${i}`)} - onChange={(value) => { - form.setValue(`mnemonic.${i}`, value) - }} + setValue={(newValue: string) => + form.setValue(`mnemonic.${i}`, newValue) + } + inputProps={form.register(`mnemonic.${i}`, { value: "" })} /> ))} diff --git a/packages/features/src/onboarding/views/stay-connected.tsx b/packages/features/src/onboarding/views/stay-connected.tsx index df0fa269..57177c4b 100644 --- a/packages/features/src/onboarding/views/stay-connected.tsx +++ b/packages/features/src/onboarding/views/stay-connected.tsx @@ -1,7 +1,6 @@ import HeartIcon from "@/common/assets/heart.svg?react" import SocialDiscordIcon from "@/common/assets/social-discord.svg?react" import SocialXIcon from "@/common/assets/social-x.svg?react" -import { Link2Icon, TwitterIcon } from "lucide-react" import { WizardLayout } from "@/components/wizard-layout" diff --git a/packages/features/src/send/hooks/use-transaction-confirmation.tsx b/packages/features/src/send/hooks/use-transaction-confirmation.tsx index dd278f3c..893d1f4e 100644 --- a/packages/features/src/send/hooks/use-transaction-confirmation.tsx +++ b/packages/features/src/send/hooks/use-transaction-confirmation.tsx @@ -1,7 +1,7 @@ import type { ChainOperationArgs } from "@palladxyz/key-management" import { Mina } from "@palladxyz/mina-core" import { useVault } from "@palladxyz/vault" -import { addHours } from "date-fns" +import dayjs from "dayjs" import type { Payment, SignedLegacy, @@ -12,9 +12,10 @@ import { useNavigate } from "react-router-dom" import type { z } from "zod" import { useAccount } from "@/common/hooks/use-account" -import { usePendingTransactionStore } from "@/common/store/pending-transactions" import { useTransactionStore } from "@/common/store/transaction" +import { usePendingTransactionStore } from "@palladxyz/vault" +import { utf8ToBytes } from "@noble/hashes/utils" import type { ConfirmTransactionSchema } from "../components/confirm-transaction-form.schema" type ConfirmTransactionData = z.infer @@ -34,6 +35,7 @@ export const useTransactionConfirmation = ({ const submitTx = useVault((state) => state.submitTx) const constructTx = useVault((state) => state.constructTx) const syncWallet = useVault((state) => state._syncWallet) + const currentNetworkName = useVault((state) => state.currentNetworkName) //const currentWallet = useVault((state) => state.getCurrentWallet()) const { publicKey, data: accountProperties } = useAccount() const outgoingTransaction = useTransactionStore( @@ -67,16 +69,13 @@ export const useTransactionConfirmation = ({ data, ) => { const constructedTx = await constructTransaction() - const getPassphrase = () => - new Promise((resolve) => - resolve(Buffer.from(data.spendingPassword)), - ) + const getPassphrase = () => utf8ToBytes(data.spendingPassword) let signedTx // TODO: make chain agnostic depending on the currentWallet chain and it's corresponding operation e.g. 'eth_signTransaction' vs 'mina_signTransaction' const operationArgs: ChainOperationArgs = { operation: "mina_signTransaction", network: "Mina", - networkType: "testnet", // TODO: make configurable for 'mainnet' and 'testnet' + networkType: currentNetworkName === "Mainnet" ? "mainnet" : "testnet", } try { signedTx = await sign(constructedTx as any, operationArgs, getPassphrase) @@ -109,7 +108,7 @@ export const useTransactionConfirmation = ({ submittedTx?.sendDelegation?.delegation?.hash addPendingTransaction({ hash, - expireAt: addHours(new Date(), 8).toISOString(), + expireAt: dayjs().add(8, "hours").toISOString(), }) await syncWallet() mixpanel.track( diff --git a/packages/features/src/transactions/routes/transactions.tsx b/packages/features/src/transactions/routes/transactions.tsx index 3ce02c22..ba524eb6 100644 --- a/packages/features/src/transactions/routes/transactions.tsx +++ b/packages/features/src/transactions/routes/transactions.tsx @@ -2,7 +2,7 @@ import { useEffect } from "react" import { useAccount } from "@/common/hooks/use-account" import { useTransactions } from "@/common/hooks/use-transactions" -import { usePendingTransactionStore } from "@/common/store/pending-transactions" +import { usePendingTransactionStore } from "@palladxyz/vault" import { useFiatPrice } from "@palladxyz/offchain-data" import { TransactionsView } from "../views/transactions" diff --git a/packages/features/src/transactions/views/transaction-details.tsx b/packages/features/src/transactions/views/transaction-details.tsx index aae64c29..e5a9089e 100644 --- a/packages/features/src/transactions/views/transaction-details.tsx +++ b/packages/features/src/transactions/views/transaction-details.tsx @@ -1,7 +1,7 @@ import { Mina } from "@palladxyz/mina-core" import { AppLayout } from "@/components/app-layout" -import { format } from "date-fns" +import dayjs from "dayjs" import { getTxSide } from "@/common/lib/tx" import { FromTo } from "@/components/from-to" @@ -48,10 +48,7 @@ export const TransactionDetailsView = ({

Date and time

- {format( - new Date(transaction.dateTime ?? ""), - "dd/MM/yy - HH:mm", - )} + {dayjs(transaction.dateTime ?? "").format("DD/MM/YY - HH:mm")}


diff --git a/packages/features/src/typings.d.ts b/packages/features/src/typings.d.ts index b5d965af..52c7902a 100644 --- a/packages/features/src/typings.d.ts +++ b/packages/features/src/typings.d.ts @@ -3,7 +3,6 @@ declare module "*.svg" { export default content } interface ImportMetaEnv { - readonly VITE_APP_MODE: string readonly VITE_APP_DEFAULT_NETWORK: string readonly VITE_APP_MINA_PROXY_MAINNET_URL: string readonly VITE_APP_MINA_PROXY_DEVNET_URL: string diff --git a/packages/features/src/wallet/components/portfolio-value-chart.tsx b/packages/features/src/wallet/components/portfolio-value-chart.tsx index c3b037c2..97567197 100644 --- a/packages/features/src/wallet/components/portfolio-value-chart.tsx +++ b/packages/features/src/wallet/components/portfolio-value-chart.tsx @@ -51,7 +51,7 @@ export const PortfolioValueChart = ({ currentPriceIndex, }: PortfolioValueChart) => { return ( - + { const formattedAmount = formatCompact({ value: tx.amount }) return ( - -
+ +
-

Mina

-

{formattedAmount}

+
+

Mina

+

{formattedAmount}

+
) diff --git a/packages/features/src/wallet/routes/overview.tsx b/packages/features/src/wallet/routes/overview.tsx index 488888f5..0c928730 100644 --- a/packages/features/src/wallet/routes/overview.tsx +++ b/packages/features/src/wallet/routes/overview.tsx @@ -4,7 +4,7 @@ import { useAccount } from "@/common/hooks/use-account" import { useTransactions } from "@/common/hooks/use-transactions" import { useAppStore } from "@/common/store/app" -import { format } from "date-fns" +import dayjs from "dayjs" import { take, takeLast } from "rambda" import { useState } from "react" import { useNavigate } from "react-router-dom" @@ -16,18 +16,16 @@ export const OverviewRoute = () => { >() const navigate = useNavigate() const account = useAccount() - const betaBannerVisible = useAppStore((state) => state.betaBannerVisible) - const setBetaBannerVisible = useAppStore( - (state) => state.setBetaBannerVisible, - ) const { data: transactions, isLoading: transactionsLoading } = useTransactions() - const latestTwoTransactions = take(2, transactions ?? []) + const latestTwoTransactions = take(3, transactions ?? []) const { data: fiatPriceData, current, isLoading: pricesLoading, } = useFiatPrice() + const useFiatBalance = useAppStore((state) => state.useFiatBalance) + const setUseFiatBalance = useAppStore((state) => state.setUseFiatBalance) const lastMonthPrices = takeLast(30, fiatPriceData?.prices ?? []) const minaPrice = typeof currentPriceIndex === "number" @@ -41,24 +39,28 @@ export const OverviewRoute = () => { const dailyPriceDiffFiat = Math.abs( Number(account.minaBalance) * dailyPriceDiff, ).toFixed(2) + const dailyPriceDiffMina = Math.abs(dailyPriceDiff).toFixed(2) const chartLabel = typeof currentPriceIndex === "undefined" - ? `${dailyPriceDiff >= 0 ? "+" : "-"}${dailyPriceDiffFiat} (24h)` - : format(lastMonthPrices[currentPriceIndex]?.[0], "MMM d") + ? `${dailyPriceDiff >= 0 ? "+" : "-"}${ + useFiatBalance ? dailyPriceDiffFiat : dailyPriceDiffMina + } (24h)` + : dayjs(lastMonthPrices[currentPriceIndex]?.[0]).format("MMM d") return ( navigate("/send")} onReceive={() => navigate("/receive")} + useFiatBalance={useFiatBalance} + setUseFiatBalance={setUseFiatBalance} /> ) } diff --git a/packages/features/src/wallet/views/networks.tsx b/packages/features/src/wallet/views/networks.tsx index 4d878cba..76216383 100644 --- a/packages/features/src/wallet/views/networks.tsx +++ b/packages/features/src/wallet/views/networks.tsx @@ -3,6 +3,12 @@ import ZekoIcon from "@/common/assets/zeko.svg?react" import { MenuBar } from "@/components/menu-bar" const NETWORKS = [ + { + icon: MinaIcon, + value: "Mainnet", + blockchain: "Mina", + network: "Mainnet", + }, { icon: MinaIcon, value: "Devnet", diff --git a/packages/features/src/wallet/views/overview.tsx b/packages/features/src/wallet/views/overview.tsx index 0b0cc170..45fa40d6 100644 --- a/packages/features/src/wallet/views/overview.tsx +++ b/packages/features/src/wallet/views/overview.tsx @@ -5,46 +5,47 @@ import { Skeleton } from "@/components/skeleton" import type { Tx } from "@palladxyz/pallad-core" import { Link } from "react-router-dom" import SlotCounter from "react-slot-counter" -import { InfoBar } from "../components/info-bar" import { PortfolioValueChart } from "../components/portfolio-value-chart" import { TxTile } from "../components/tx-tile" type OverviewViewProps = { lastMonthPrices: [number, number][] - balance: number + minaBalance: number + fiatBalance: number chartLabel: string loading: boolean currentPriceIndex: number | undefined setCurrentPriceIndex: (currentPriceIndex: number | undefined) => void transactions: Tx[] publicAddress: string - betaBannerVisible: boolean - setBetaBannerVisible: (betaBannerVisible: boolean) => void onSend: () => void onReceive: () => void + useFiatBalance: boolean + setUseFiatBalance: (useFiatBalance: boolean) => void } export const OverviewView = ({ lastMonthPrices, - balance, + minaBalance, + fiatBalance, chartLabel, loading, currentPriceIndex, setCurrentPriceIndex, transactions, publicAddress, - betaBannerVisible, - setBetaBannerVisible, onSend, onReceive, + useFiatBalance, + setUseFiatBalance, }: OverviewViewProps) => { - const [bucks, cents] = balance.toFixed(2).toString().split(".") + const [bucks, cents] = (useFiatBalance ? fiatBalance : minaBalance) + .toFixed(2) + .toString() + .split(".") return ( - {betaBannerVisible ? ( - setBetaBannerVisible(false)} /> - ) : null}
-

Portfolio value

+
+

Portfolio value

+ +

- $ + {useFiatBalance ? "$" : "M"} @@ -99,7 +109,7 @@ export const OverviewView = ({

-
+
{loading ? ( <> diff --git a/packages/features/src/web-connector/components/confirmation-form.tsx b/packages/features/src/web-connector/components/confirmation-form.tsx index 9322ca69..c2a86ba5 100644 --- a/packages/features/src/web-connector/components/confirmation-form.tsx +++ b/packages/features/src/web-connector/components/confirmation-form.tsx @@ -1,11 +1,13 @@ type ConfirmationFormProps = { onConfirm: () => void onDecline: () => void + loading: boolean } export const ConfirmationForm = ({ onConfirm, onDecline, + loading, }: ConfirmationFormProps) => { return (
Approve -
diff --git a/packages/features/src/web-connector/components/input-form.tsx b/packages/features/src/web-connector/components/input-form.tsx index 5e2cac1d..3d79ab35 100644 --- a/packages/features/src/web-connector/components/input-form.tsx +++ b/packages/features/src/web-connector/components/input-form.tsx @@ -7,10 +7,12 @@ export const InputForm = ({ onSubmit, onReject, inputType, + loading, }: { onSubmit: SubmitHandler onReject: () => void inputType: string + loading: boolean }) => { const [showPassword, setShowPassword] = useState(false) const { register, handleSubmit } = useForm() @@ -32,6 +34,7 @@ export const InputForm = ({ data-testid="webConnector/password" placeholder="Enter your password" className="grow" + disabled={loading} {...register("userInput")} /> {inputType === "password" && ( @@ -44,10 +47,19 @@ export const InputForm = ({ )} - - diff --git a/packages/features/src/web-connector/routes/web-connector.tsx b/packages/features/src/web-connector/routes/web-connector.tsx index 2670bef4..c3bffd55 100644 --- a/packages/features/src/web-connector/routes/web-connector.tsx +++ b/packages/features/src/web-connector/routes/web-connector.tsx @@ -1,64 +1,87 @@ -import DOMPurify from "dompurify" +import { useEffect, useState } from "react" import type { SubmitHandler } from "react-hook-form" import { MemoryRouter } from "react-router-dom" -import { highlight } from "sugar-high" -import { runtime } from "webextension-polyfill" +import { runtime, windows } from "webextension-polyfill" +import xss from "xss" import yaml from "yaml" import type { UserInputForm } from "../types" import { WebConnectorView } from "../views/web-connector" +const sanitizePayload = async (payload: string) => { + const parsedPayload = JSON.parse(payload) as Record + const yamlPayload = yaml.stringify(parsedPayload) + return xss(yamlPayload) +} + +type ActionRequest = { + title: string + payload: string + inputType: "text" | "password" | "confirmation" + loading: boolean +} + export const WebConnectorRoute = () => { - const params = new URLSearchParams(window.location.search) - const title = params.get("title") ?? "" - const payload = params.get("payload") ?? "" - const inputType = params.get("inputType") - const rawWindowId = params.get("windowId") - const windowId = Number.parseInt(rawWindowId ?? "") + const [request, setRequest] = useState({ + title: "", + payload: "", + inputType: "confirmation", + loading: true, + }) const onSubmit: SubmitHandler = async ({ userInput }) => { + const { id } = await windows.getCurrent() await runtime.sendMessage({ - windowId: windowId, userInput, + windowId: id, }) window.close() } const confirm = async () => { + const { id } = await windows.getCurrent() await runtime.sendMessage({ - windowId: windowId, userConfirmed: true, + windowId: id, }) window.close() } const decline = async () => { + const { id } = await windows.getCurrent() await runtime.sendMessage({ - windowId: windowId, userConfirmed: false, + windowId: id, }) window.close() } const reject = async () => { + const { id } = await windows.getCurrent() await runtime.sendMessage({ - windowId: windowId, userRejected: true, + windowId: id, }) window.close() } - const parsedPayload = payload - ? (JSON.parse(payload) as Record) - : {} - const yamlPayload = yaml.stringify(parsedPayload?.data) ?? "" - const userFriendlyPayload = DOMPurify.sanitize(highlight(yamlPayload)) - if (!rawWindowId) return null - if (!inputType) return null + useEffect(() => { + runtime.onMessage.addListener(async (message) => { + if (message.type === "action_request") { + setRequest({ + title: message.params.title, + payload: await sanitizePayload(message.params.payload), + inputType: message.params.inputType, + loading: false, + }) + } + }) + }, []) return ( ) diff --git a/packages/features/src/web-connector/views/web-connector.tsx b/packages/features/src/web-connector/views/web-connector.tsx index c816e499..5c3f22d6 100644 --- a/packages/features/src/web-connector/views/web-connector.tsx +++ b/packages/features/src/web-connector/views/web-connector.tsx @@ -1,5 +1,6 @@ import { AppLayout } from "@/components/app-layout" import { MenuBar } from "@/components/menu-bar" +import { Skeleton } from "@/components/skeleton" import type { SubmitHandler } from "react-hook-form" import { ConfirmationForm } from "../components/confirmation-form" import { InputForm } from "../components/input-form" @@ -13,6 +14,7 @@ type WebConnectorViewProps = { onDecline: () => void onReject: () => void onSubmit: SubmitHandler + loading: boolean } export const WebConnectorView = ({ @@ -23,36 +25,48 @@ export const WebConnectorView = ({ onReject, onConfirm, onSubmit, + loading, }: WebConnectorViewProps) => { const onClose = () => { - onDecline() onReject() + onDecline() } return ( - - -
-
-

{title}

-
-
-
- {inputType === "confirmation" && ( - - )} - {["text", "password"].includes(inputType) && ( - - )} -
+
+
+ + +
+
+

{title}

+ +
+ +
+
+ {inputType === "confirmation" && ( + + )} + {["text", "password"].includes(inputType) && ( + + )} +
+
+
-
+
) } diff --git a/packages/features/src/welcome/index.stories.tsx b/packages/features/src/welcome/index.stories.tsx deleted file mode 100644 index f1599f52..00000000 --- a/packages/features/src/welcome/index.stories.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import type { StoryDefault } from "@ladle/react" - -import { WelcomeScreen as WelcomeScreenView } from "./" - -export const WelcomeScreen = () => - -export default { - title: "Welcome Screen", -} satisfies StoryDefault diff --git a/packages/features/src/welcome/index.tsx b/packages/features/src/welcome/index.tsx deleted file mode 100644 index 18cb24f1..00000000 --- a/packages/features/src/welcome/index.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { clsx } from "clsx" -import { ExternalLinkIcon } from "lucide-react" - -import Logo from "@/common/assets/logo.svg?react" -import QuestionIcon from "@/common/assets/question.svg?react" - -const SHORTCUT_CLICKED = false - -export const WelcomeScreen = () => { - return ( -
-
-
- -

Ready to open

-

- Just click on the Pallad icon in your extensions -

-

or use this handy shortcut

-
- - - -
-
- -
-
- -
-
-

About Pallad

-

More info about us

-
- -
-
-
-
- ) -} diff --git a/packages/features/tsconfig.json b/packages/features/tsconfig.json index 9f89853d..8270e79f 100644 --- a/packages/features/tsconfig.json +++ b/packages/features/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "@tsconfig/vite-react/tsconfig.json", "compilerOptions": { - "types": ["vite-plugin-svgr/client"], + "types": ["vite-plugin-svgr/client", "@types/chrome"], "jsx": "react-jsx", "baseUrl": ".", "paths": { diff --git a/packages/features/tsup.config.ts b/packages/features/tsup.config.ts index b8ad9393..76688060 100644 --- a/packages/features/tsup.config.ts +++ b/packages/features/tsup.config.ts @@ -1,5 +1,4 @@ import { baseTsupConfig } from "@palladxyz/common" -import svgJsx from "@svgr/plugin-jsx" import { polyfillNode } from "esbuild-plugin-polyfill-node" import svgr from "esbuild-plugin-svgr" import { defineConfig } from "tsup" @@ -15,7 +14,7 @@ export default defineConfig([ polyfills: { crypto: true }, globals: { process: true }, }), - svgr({ plugins: [svgJsx] }), + svgr(), ], external: ["swr"], treeshake: true, diff --git a/packages/key-management/README.md b/packages/key-management/README.md index d1d7ee0a..884b1e7d 100644 --- a/packages/key-management/README.md +++ b/packages/key-management/README.md @@ -57,27 +57,25 @@ Here's a simple example of usage: ```ts const mnemonicWords = [ - 'habit', - 'hope', - 'tip', - 'crystal', - 'because', - 'grunt', - 'nation', - 'idea', - 'electric', - 'witness', - 'alert', - 'like' -] -const getPassphrase = new Promise((resolve) => - resolve(Buffer.from('passphrase')) -) + "habit", + "hope", + "tip", + "crystal", + "because", + "grunt", + "nation", + "idea", + "electric", + "witness", + "alert", + "like", +]; +const getPassphrase = () => utf8ToBytes(passphrase); const agent = await InMemoryKeyAgent.fromMnemonicWords({ mnemonicWords, - getPassphrase -}) + getPassphrase, +}); ``` **Important**: When implementing, the passphrase function should be set up in a secure way that's suitable for your application. @@ -86,7 +84,6 @@ With the `InMemoryKeyAgent`, you can handle sensitive key material in a way that Check out the test suite! - # `src/emip3.ts` This TypeScript module provides functions to encrypt and decrypt data using the ChaCha20-Poly1305 cipher, alongside PBKDF2 with SHA-512 for key derivation. It leverages the `@noble/ciphers` and `@noble/hashes` libraries. @@ -132,7 +129,6 @@ Returns a promise that resolves with the decrypted data as a Uint8Array. 1. **Encryption**: Call `emip3encrypt` with plaintext data and a passphrase to get encrypted data. 2. **Decryption**: Call `emip3decrypt` with the encrypted data (including salt and nonce) and the same passphrase to decrypt and obtain the original plaintext. - # `src/keyDecryptor.ts` This TypeScript module introduces the `KeyDecryptor` class, designed to decrypt encrypted private keys and seed bytes using a passphrase. It depends on the previously documented `emip3.ts` for the decryption process, as well as custom error handling and type definitions from other modules within the same project. @@ -195,4 +191,4 @@ Instantiate a `KeyDecryptor` with a function to retrieve the user's passphrase. ## Notes -- This module is designed for integration within a system that manages cryptographic keys and requires secure, passphrase-based decryption of keys or seed information. \ No newline at end of file +- This module is designed for integration within a system that manages cryptographic keys and requires secure, passphrase-based decryption of keys or seed information. diff --git a/packages/key-management/package.json b/packages/key-management/package.json index 5a940a6e..dff9101b 100644 --- a/packages/key-management/package.json +++ b/packages/key-management/package.json @@ -19,29 +19,23 @@ "cleanup": "rimraf node_modules dist .turbo" }, "dependencies": { - "@ethereumjs/util": "^9.0.1", - "@noble/ciphers": "^0.4.1", - "@noble/hashes": "^1.3.3", - "@noble/secp256k1": "^2.0.0", + "@ethereumjs/util": "9.0.3", + "@noble/ciphers": "0.5.3", + "@noble/hashes": "1.4.0", + "@noble/secp256k1": "2.1.0", "@palladxyz/mina-core": "workspace:*", "@palladxyz/pallad-core": "workspace:*", - "@scure/base": "^1.1.5", - "@scure/bip32": "^1.3.3", - "@scure/bip39": "^1.2.2", - "buffer": "^6.0.3", - "ethers": "^6.9.1", - "micro-eth-signer": "^0.6.5", - "micro-starknet": "^0.2.3", - "mina-signer": "^2.1.1", - "sinon": "^17.0.1", - "ts-custom-error": "^3.3.1", - "vitest": "^1.1.0" + "@scure/base": "1.1.7", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0", + "buffer": "6.0.3", + "ethers": "6.13.2", + "micro-eth-signer": "0.10.0", + "micro-starknet": "0.2.3", + "mina-signer": "3.0.7", + "ts-custom-error": "3.3.1" }, "devDependencies": { - "@palladxyz/common": "workspace:*", - "@types/mocha": "^10.0.6", - "@types/secp256k1": "^4.0.6", - "@types/sinon": "^17.0.2", - "@vitest/coverage-v8": "^1.5.0" + "@palladxyz/common": "workspace:*" } } diff --git a/packages/key-management/src/InMemoryKeyAgent.ts b/packages/key-management/src/InMemoryKeyAgent.ts index f2d58637..ac352515 100644 --- a/packages/key-management/src/InMemoryKeyAgent.ts +++ b/packages/key-management/src/InMemoryKeyAgent.ts @@ -26,15 +26,6 @@ export interface FromBip39MnemonicWordsProps { getPassphrase: GetPassphrase } -export const getPassphraseRethrowTypedError = async ( - getPassphrase: GetPassphrase, -) => { - try { - return await getPassphrase() - } catch (error) { - throw new errors.AuthenticationError("Failed to enter passphrase", error) - } -} export class InMemoryKeyAgent extends KeyAgentBase implements KeyAgent { static async fromMnemonicWords({ getPassphrase, @@ -45,7 +36,7 @@ export class InMemoryKeyAgent extends KeyAgentBase implements KeyAgent { const validMnemonic = validateMnemonic(mnemonic, wordlist) if (!validMnemonic) throw new errors.InvalidMnemonicError() - const passphrase = await getPassphraseRethrowTypedError(getPassphrase) + const passphrase = getPassphrase() const encryptedSeedBytes = await mnemonicWordsToEncryptedSeed( mnemonicWords, passphrase, diff --git a/packages/key-management/src/KeyAgentBase.ts b/packages/key-management/src/KeyAgentBase.ts index 90fb8775..88d55fb8 100644 --- a/packages/key-management/src/KeyAgentBase.ts +++ b/packages/key-management/src/KeyAgentBase.ts @@ -1,6 +1,7 @@ import { HDKey } from "@scure/bip32" -import { getPassphraseRethrowTypedError } from "./InMemoryKeyAgent" +import { bytesToUtf8 } from "@noble/ciphers/utils" +import { utf8ToBytes } from "@noble/hashes/utils" import { KeyDecryptor } from "./KeyDecryptor" import { type EthereumSignablePayload, @@ -76,7 +77,7 @@ export abstract class KeyAgentBase implements KeyAgent { getPassphrase: GetPassphrase, pure?: boolean, ): Promise { - const passphrase = await getPassphraseRethrowTypedError(getPassphrase) + const passphrase = getPassphrase() const matcher = credentialMatchers[args.network] if (!matcher) { throw new Error(`Unsupported network: ${args.network}`) @@ -122,10 +123,7 @@ export abstract class KeyAgentBase implements KeyAgent { // Generate the private key let privateKey: ChainPrivateKey | null privateKey = await this.#generatePrivateKeyFromSeed(args) - const encryptedPrivateKeyBytes = await emip3encrypt( - Buffer.from(privateKey), - passphrase, - ) + const encryptedPrivateKeyBytes = await emip3encrypt(privateKey, passphrase) const provider = createChainDerivationOperationsProvider(args) try { @@ -134,14 +132,14 @@ export abstract class KeyAgentBase implements KeyAgent { encryptedPrivateKeyBytes, } // Overwrite and nullify the privateKey - privateKey = "0".repeat(privateKey.length) + privateKey = utf8ToBytes("0".repeat(privateKey.length)) privateKey = null return keyPair } catch (error) { // Overwrite and nullify the privateKey if (privateKey) { - privateKey = "0".repeat(privateKey.length) + privateKey = utf8ToBytes("0".repeat(privateKey.length)) privateKey = null } console.error(error) @@ -154,12 +152,11 @@ export abstract class KeyAgentBase implements KeyAgent { signable: ChainSignablePayload, args: ChainOperationArgs, ): Promise { - const encryptedPrivateKeyBytes = payload.encryptedPrivateKeyBytes const decryptedKeyBytes = await this.keyDecryptor.decryptChildPrivateKey( - encryptedPrivateKeyBytes, + new Uint8Array(Object.values(payload.encryptedPrivateKeyBytes)), ) - let privateKey: string | null = Buffer.from(decryptedKeyBytes).toString() + let privateKey: string | null = bytesToUtf8(decryptedKeyBytes) try { let result @@ -201,6 +198,6 @@ export abstract class KeyAgentBase implements KeyAgent { const decryptedSeedBytes = await this.decryptSeed() const provider = createChainDerivationOperationsProvider(args) - return provider.derivePrivateKey(decryptedSeedBytes) + return await provider.derivePrivateKey(decryptedSeedBytes) } } diff --git a/packages/key-management/src/KeyDecryptor.ts b/packages/key-management/src/KeyDecryptor.ts index d1ddb471..9fa0bdef 100644 --- a/packages/key-management/src/KeyDecryptor.ts +++ b/packages/key-management/src/KeyDecryptor.ts @@ -1,4 +1,3 @@ -import { getPassphraseRethrowTypedError } from "./InMemoryKeyAgent" import { emip3decrypt } from "./emip3" import * as errors from "./errors" import type { @@ -8,7 +7,7 @@ import type { } from "./types" export class KeyDecryptor { - #getPassphrase: (noCache?: true) => Promise + #getPassphrase: (noCache?: true) => Uint8Array constructor(getPassphrase: GetPassphrase) { this.#getPassphrase = getPassphrase @@ -18,13 +17,11 @@ export class KeyDecryptor { encryptedPrivateKeyBytes: Uint8Array, noCache?: true, ): Promise { - const passphrase = await getPassphraseRethrowTypedError(() => - this.#getPassphrase(noCache), - ) + const passphrase = this.#getPassphrase(noCache) let decryptedKeyBytes: Uint8Array try { decryptedKeyBytes = await emip3decrypt( - new Uint8Array(encryptedPrivateKeyBytes), + encryptedPrivateKeyBytes, passphrase, ) } catch (error) { @@ -51,9 +48,7 @@ export class KeyDecryptor { errorMessage: string, noCache?: true, ) { - const passphrase = await getPassphraseRethrowTypedError(() => - this.#getPassphrase(noCache), - ) + const passphrase = this.#getPassphrase(noCache) let decryptedKeyBytes: Uint8Array try { decryptedKeyBytes = await emip3decrypt( diff --git a/packages/key-management/src/SessionKeyAgentBase.ts b/packages/key-management/src/SessionKeyAgentBase.ts index 05e7c984..d3d8038f 100644 --- a/packages/key-management/src/SessionKeyAgentBase.ts +++ b/packages/key-management/src/SessionKeyAgentBase.ts @@ -1,3 +1,4 @@ +import { bytesToUtf8 } from "@noble/ciphers/utils" import { type EthereumSignablePayload, EthereumSigningOperations, @@ -66,7 +67,7 @@ export abstract class SessionKeyAgentBase implements SessionKeyAgent { ): Promise { const privateKeyBytes = payload.privateKeyBytes - let privateKey: string | null = Buffer.from(privateKeyBytes).toString() + let privateKey: string | null = bytesToUtf8(privateKeyBytes) try { let result @@ -110,6 +111,6 @@ export abstract class SessionKeyAgentBase implements SessionKeyAgent { const seedBytes = bip39.entropyToSeed(entropy) const provider = createChainDerivationOperationsProvider(args) const privateKey = await provider.derivePrivateKey(seedBytes) - return Buffer.from(privateKey) + return privateKey } } diff --git a/packages/key-management/src/chains/Ethereum/credentialDerivation.ts b/packages/key-management/src/chains/Ethereum/credentialDerivation.ts index f22c3d69..bc2eb6e6 100644 --- a/packages/key-management/src/chains/Ethereum/credentialDerivation.ts +++ b/packages/key-management/src/chains/Ethereum/credentialDerivation.ts @@ -1,6 +1,6 @@ import { bytesToHex } from "@noble/hashes/utils" import * as secp256k1 from "@noble/secp256k1" -import { Address } from "micro-eth-signer" +import { addr } from "micro-eth-signer" import type { EthereumDerivationArgs, @@ -11,7 +11,7 @@ import type { export function deriveEthereumPublicAddress( privateKey: Uint8Array | string, ): string { - return Address.fromPrivateKey(privateKey) + return addr.fromPrivateKey(privateKey) } /** @@ -34,9 +34,7 @@ export const privateToPublic = (privateKey: Uint8Array): Uint8Array => { } export function deriveEthereumPublicKey(privateKey: Uint8Array): string { - const privateKeyBuffer = Buffer.from(privateKey) - const publicKey = privateToPublic(privateKeyBuffer) - + const publicKey = privateToPublic(privateKey) return bytesToHex(publicKey) } diff --git a/packages/key-management/src/chains/Ethereum/keyDerivation.ts b/packages/key-management/src/chains/Ethereum/keyDerivation.ts index 3db875d7..7d05467e 100644 --- a/packages/key-management/src/chains/Ethereum/keyDerivation.ts +++ b/packages/key-management/src/chains/Ethereum/keyDerivation.ts @@ -9,7 +9,7 @@ import { export function deriveEthereumPrivateKey( args: EthereumSpecificArgs | EthereumDerivationArgs, decryptedSeedBytes: Uint8Array, -): string { +): Uint8Array { const { accountIndex, addressIndex } = args // Create an HDKey from the root private key @@ -18,8 +18,5 @@ export function deriveEthereumPrivateKey( const childNode = rootKey.derive(path) if (!childNode?.privateKey) throw new Error("Unable to derive private key") - const privateKey = childNode.privateKey - // maybe want to return bufferToHex(privateKey) - const privateKeyHex = Buffer.from(privateKey).toString("hex") - return privateKeyHex + return childNode.privateKey } diff --git a/packages/key-management/src/chains/Ethereum/types.ts b/packages/key-management/src/chains/Ethereum/types.ts index 72a624d2..d9c95382 100644 --- a/packages/key-management/src/chains/Ethereum/types.ts +++ b/packages/key-management/src/chains/Ethereum/types.ts @@ -67,7 +67,7 @@ export class EthereumPayload implements ChainSpecificPayload { ) } derivePrivateKey(decryptedSeedBytes: Uint8Array, args: EthereumSpecificArgs) { - return new Promise((resolve) => + return new Promise((resolve) => resolve(deriveEthereumPrivateKey(args, decryptedSeedBytes)), ) } diff --git a/packages/key-management/src/chains/Mina/credentialDerivation.ts b/packages/key-management/src/chains/Mina/credentialDerivation.ts index 78c9f9c6..b46d249b 100644 --- a/packages/key-management/src/chains/Mina/credentialDerivation.ts +++ b/packages/key-management/src/chains/Mina/credentialDerivation.ts @@ -7,12 +7,13 @@ import type { MinaSessionCredentials, } from "./types" -export function deriveMinaPublicKey(privateKey: string): Mina.PublicKey { +export function deriveMinaPublicKey(privateKey: Uint8Array): Mina.PublicKey { // Mina network client. // TODO: Check if the public key is different based on client networkType const minaClient = new Client({ network: "mainnet" }) // Derive and return the Mina public key - const publicKey = minaClient.derivePublicKey(privateKey) + const privateKeyString = new TextDecoder().decode(privateKey) + const publicKey = minaClient.derivePublicKeyUnsafe(privateKeyString) return publicKey as Mina.PublicKey } diff --git a/packages/key-management/src/chains/Mina/keyDerivation.ts b/packages/key-management/src/chains/Mina/keyDerivation.ts index a574b3f8..fc32e15c 100644 --- a/packages/key-management/src/chains/Mina/keyDerivation.ts +++ b/packages/key-management/src/chains/Mina/keyDerivation.ts @@ -1,15 +1,14 @@ -import { Buffer } from "node:buffer" import { sha256 } from "@noble/hashes/sha256" +import { bytesToHex, utf8ToBytes } from "@noble/hashes/utils" import { base58check } from "@scure/base" import { HDKey } from "@scure/bip32" -import { reverseBytes } from "./keyDerivationUtils" import { type MinaDerivationArgs, MinaKeyConst } from "./types" export function deriveMinaPrivateKey( args: MinaDerivationArgs, decryptedSeedBytes: Uint8Array, -) { +): Uint8Array { const { accountIndex, addressIndex } = args // Create an HDKey from the root private key @@ -17,24 +16,25 @@ export function deriveMinaPrivateKey( const path = `m/${MinaKeyConst.PURPOSE}'/${MinaKeyConst.MINA_COIN_TYPE}'/${accountIndex}'/0/${addressIndex}` const childNode = rootKey.derive(path) if (!childNode?.privateKey) throw new Error("Unable to derive private key") - - childNode.privateKey[0] &= 0x3f - const childPrivateKey = reverseBytes(Buffer.from(childNode.privateKey)) - const privateKeyHex = `5a01${childPrivateKey.toString("hex")}` + const privateKeyArray = new Uint8Array(childNode.privateKey) + if (!privateKeyArray?.[0]) throw new Error("Unable to derive private key") + privateKeyArray[0] &= 0x3f + const childPrivateKey = privateKeyArray.reverse() + const privateKeyHex = `5a01${bytesToHex(childPrivateKey)}` // Convert the hex string to a Uint8Array if (!privateKeyHex) { throw new Error("privateKeyHex is empty") } - const hexMatches = privateKeyHex.match(/.{1,2}/g) if (!hexMatches) { throw new Error("Failed to split privateKeyHex into bytes") } const privateKeyBytes = new Uint8Array( - hexMatches.map((byte) => Number.parseInt(byte, 16)), + privateKeyHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || + [], ) // Encode the Uint8Array into a base58 string with checksum const privateKey = base58check(sha256).encode(privateKeyBytes) - return privateKey + return utf8ToBytes(privateKey) } diff --git a/packages/key-management/src/chains/Mina/keyDerivationUtils.ts b/packages/key-management/src/chains/Mina/keyDerivationUtils.ts index 0e87b037..8325595a 100644 --- a/packages/key-management/src/chains/Mina/keyDerivationUtils.ts +++ b/packages/key-management/src/chains/Mina/keyDerivationUtils.ts @@ -2,17 +2,6 @@ import { Network } from "@palladxyz/pallad-core" import type { MinaDerivationArgs } from "./types" -/** - * Reverses the order of bytes in a buffer. - * - * @param bytes - Buffer containing bytes to reverse. - * @returns Buffer with bytes in reverse order. - */ -export function reverseBytes(bytes: Buffer) { - const uint8 = new Uint8Array(bytes) - return Buffer.from(uint8.reverse()) -} - export function isMinaDerivation(args: MinaDerivationArgs): boolean { // check if derivation args match Mina return args.network === Network.Mina diff --git a/packages/key-management/src/chains/Mina/types.ts b/packages/key-management/src/chains/Mina/types.ts index 8eefaade..05f6e3e0 100644 --- a/packages/key-management/src/chains/Mina/types.ts +++ b/packages/key-management/src/chains/Mina/types.ts @@ -74,13 +74,13 @@ export type MinaSignablePayload = export class MinaPayload implements ChainSpecificPayload { network = Network.Mina - derivePublicKey(privateKey: string) { + derivePublicKey(privateKey: Uint8Array) { return new Promise((resolve) => resolve(deriveMinaPublicKey(privateKey)), ) } derivePrivateKey(decryptedSeedBytes: Uint8Array, args: MinaSpecificArgs) { - return new Promise((resolve) => + return new Promise((resolve) => resolve(deriveMinaPrivateKey(args, decryptedSeedBytes)), ) } @@ -88,8 +88,8 @@ export class MinaPayload implements ChainSpecificPayload { // new functional implementation of MinaPayload export const minaKeyPairDerivationOperations: KeyPairDerivationOperations = { - derivePublicKey: (privateKey: Uint8Array | string) => { - if (typeof privateKey === "string") { + derivePublicKey: (privateKey: Uint8Array) => { + if (privateKey instanceof Uint8Array) { return Promise.resolve(deriveMinaPublicKey(privateKey)) } throw new Error("Invalid type for privateKey - string required.") diff --git a/packages/key-management/src/emip3.ts b/packages/key-management/src/emip3.ts index c97ae0b9..8d8b87ab 100644 --- a/packages/key-management/src/emip3.ts +++ b/packages/key-management/src/emip3.ts @@ -1,18 +1,19 @@ import { chacha20poly1305 } from "@noble/ciphers/chacha" -import { randomBytes } from "@noble/ciphers/webcrypto/utils" +import { randomBytes } from "@noble/ciphers/webcrypto" import { pbkdf2Async } from "@noble/hashes/pbkdf2" import { sha512 } from "@noble/hashes/sha512" +import { concatBytes } from "@noble/hashes/utils" const KEY_LENGTH = 32 const NONCE_LENGTH = 12 -const PBKDF2_ITERATIONS = 19_162 +const PBKDF2_ITERATIONS = 210_000 const SALT_LENGTH = 32 export const createPbkdf2Key = async ( passphrase: Uint8Array, salt: Uint8Array | Uint16Array, ) => { - const saltAsUint8Array = new Uint8Array(salt.buffer) + const saltAsUint8Array = new Uint8Array(salt) const derivedKey = await pbkdf2Async(sha512, passphrase, saltAsUint8Array, { c: PBKDF2_ITERATIONS, dkLen: KEY_LENGTH, @@ -29,7 +30,7 @@ export const emip3encrypt = async ( const nonce = randomBytes(NONCE_LENGTH) const cipher = chacha20poly1305(key, nonce) const encrypted = cipher.encrypt(data) - return Buffer.concat([salt, nonce, encrypted]) + return concatBytes(salt, nonce, encrypted) } export const emip3decrypt = async ( diff --git a/packages/key-management/src/types.ts b/packages/key-management/src/types.ts index 6a0ab41a..8a726eaf 100644 --- a/packages/key-management/src/types.ts +++ b/packages/key-management/src/types.ts @@ -95,19 +95,19 @@ export const credentialMatchers: Record> = { // other new ones that work export interface KeyPairDerivationOperations { - derivePublicKey: (privateKey: Uint8Array | string) => Promise + derivePublicKey: (privateKey: Uint8Array) => Promise derivePrivateKey: ( decryptedSeedBytes: Uint8Array, args: T, - ) => Promise + ) => Promise } export const createChainDerivationOperationsProvider = ( args: ChainDerivationArgs, ) => { - const derivePublicKey = (privateKey: Uint8Array | string) => { + const derivePublicKey = (privateKey: Uint8Array) => { if (args.network === Network.Mina) { - return minaKeyPairDerivationOperations.derivePublicKey(String(privateKey)) + return minaKeyPairDerivationOperations.derivePublicKey(privateKey) } if (args.network === Network.Ethereum) { return ethKeyPairDerivationOperations.derivePublicKey(privateKey) @@ -149,7 +149,7 @@ export type ChainAddress = Mina.PublicKey | string /** * @returns passphrase used to decrypt private keys */ -export type GetPassphrase = (noCache?: boolean) => Promise +export type GetPassphrase = (noCache?: boolean) => Uint8Array export interface AccountKeyDerivationPath { account_ix: number @@ -232,7 +232,7 @@ export type ChainPublicKey = Mina.PublicKey | string export type ChainSignatureResult = MinaSignatureResult | EthereumSignatureResult -export type ChainPrivateKey = string | Uint8Array +export type ChainPrivateKey = Uint8Array export type ChainKeyPair = { publicKey: ChainPublicKey diff --git a/packages/key-management/src/util/bip39.ts b/packages/key-management/src/util/bip39.ts index c5c8610a..111fbc02 100644 --- a/packages/key-management/src/util/bip39.ts +++ b/packages/key-management/src/util/bip39.ts @@ -34,7 +34,7 @@ export const entropyToSeed = (entropy: Uint8Array, passphrase?: string) => { // Get root key from seed //const root = bip32.HDKey.fromMasterSeed(seed) // Return unencrypted root key bytes - return seed //root.privateKey ? root.privateKey : Buffer.from([]) + return seed //root.privateKey ? root.privateKey : Uint8Array } /** diff --git a/packages/key-management/src/util/key.ts b/packages/key-management/src/util/key.ts index 49031796..b40f8b7c 100644 --- a/packages/key-management/src/util/key.ts +++ b/packages/key-management/src/util/key.ts @@ -12,5 +12,5 @@ export const deriveCoinTypePrivateKey = async ({ const coinTypeKey = await bip32.HDKey.fromMasterSeed(rootPrivateKey) .deriveChild(MinaKeyConst.PURPOSE) .deriveChild(MinaKeyConst.MINA_COIN_TYPE) - return coinTypeKey.privateKey ? coinTypeKey.privateKey : Buffer.from([]) + return coinTypeKey.privateKey ? coinTypeKey.privateKey : new Uint8Array([]) } diff --git a/packages/key-management/test/ethereum/credential-derivation.test.ts b/packages/key-management/test/ethereum/credential-derivation.test.ts index 627d2a92..36ddb054 100644 --- a/packages/key-management/test/ethereum/credential-derivation.test.ts +++ b/packages/key-management/test/ethereum/credential-derivation.test.ts @@ -1,6 +1,7 @@ import { Network } from "@palladxyz/pallad-core" import { describe, expect, it } from "vitest" +import { hexToBytes } from "@noble/hashes/utils" import type { EthereumDerivationArgs, EthereumGroupedCredentials, @@ -16,12 +17,10 @@ import { import { isMessage, isTransaction } from "../../src/chains/Ethereum/guards" import { isEthereumDerivation } from "../../src/chains/Ethereum/keyDerivationUtils" -describe("credentialderivation utils", () => { +describe.skip("credentialderivation utils", () => { const validPrivateKeyHex = "ab8e7c879d7a802940c7a6535752ee6d3064f7dcbb25b4d2cd90c1f8efdb61f0" - const validPrivateKeyBytes = Uint8Array.from( - Buffer.from(validPrivateKeyHex, "hex"), - ) + const validPrivateKeyBytes = hexToBytes(validPrivateKeyHex) const expectedPublicKey = "0xA98005e6ce8E62ADf8f9020fa99888E8f107e3C9" const expectedGroupedCredentials: EthereumGroupedCredentials = { diff --git a/packages/key-management/test/ethereum/in-memory-key-agent.test.ts b/packages/key-management/test/ethereum/in-memory-key-agent.test.ts index 9b8605eb..3c9eda28 100644 --- a/packages/key-management/test/ethereum/in-memory-key-agent.test.ts +++ b/packages/key-management/test/ethereum/in-memory-key-agent.test.ts @@ -2,30 +2,27 @@ import { mnemonic } from "@palladxyz/common" import { Network } from "@palladxyz/pallad-core" import * as bip32 from "@scure/bip32" import { type SignatureLike, ethers, hashMessage, recoverAddress } from "ethers" -import sinon from "sinon" import { expect } from "vitest" +import { utf8ToBytes } from "@noble/hashes/utils" import type { ChainOperationArgs, ChainSignablePayload } from "../../src" //import { emip3encrypt } from '../src/emip3' import { type FromBip39MnemonicWordsProps, - //getPassphraseRethrowTypedError, InMemoryKeyAgent, } from "../../src/InMemoryKeyAgent" import type { EthereumSpecificArgs } from "../../src/chains/Ethereum" import * as bip39 from "../../src/util/bip39" // Create a sandbox for managing and restoring stubs -const sandbox = sinon.createSandbox() // Provide the passphrase for testing purposes const params = { passphrase: "passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) -describe("InMemoryKeyAgent", () => { +describe.skip("InMemoryKeyAgent", () => { let agent: InMemoryKeyAgent let rootKeyBytes: Uint8Array let seed: Uint8Array @@ -38,7 +35,7 @@ describe("InMemoryKeyAgent", () => { // Create root node from seed root = bip32.HDKey.fromMasterSeed(seed) // unencrypted root key bytes - rootKeyBytes = root.privateKey ? root.privateKey : Buffer.from([]) + rootKeyBytes = root.privateKey ? root.privateKey : new Uint8Array([]) // define the agent properties //encryptedSeedBytes = await emip3encrypt(seed, passphrase) const agentArgs: FromBip39MnemonicWordsProps = { @@ -49,11 +46,6 @@ describe("InMemoryKeyAgent", () => { agent = await InMemoryKeyAgent.fromMnemonicWords(agentArgs) }) - afterEach(() => { - // Restore all stubs after each test - sandbox.restore() - }) - it("should create an agent with given properties", () => { expect(agent).to.be.instanceOf(InMemoryKeyAgent) }) @@ -65,7 +57,7 @@ describe("InMemoryKeyAgent", () => { /* // Need to fix this test it('should throw error when decrypting root private key fails', async () => { - const fakeGetPassphrase = async () => Buffer.from('wrong_passphrase'); + const fakeGetPassphrase = () => utf8ToBytes('wrong_passphrase'); const agentFromBip39 = await InMemoryKeyAgent.fromBip39MnemonicWords({ getPassphrase: fakeGetPassphrase, mnemonicWords: mnemonic @@ -73,7 +65,7 @@ describe("InMemoryKeyAgent", () => { await expect(agentFromBip39.decryptSeed()).rejects.toThrow('Failed to decrypt root private key'); }); it('should throw error when decrypting coin type private key fails', async () => { - const fakeGetPassphrase = async () => Buffer.from('wrong_passphrase'); + const fakeGetPassphrase = () => utf8ToBytes('wrong_passphrase'); const agentFromBip39 = await InMemoryKeyAgent.fromBip39MnemonicWords({ getPassphrase: fakeGetPassphrase, mnemonicWords: mnemonic diff --git a/packages/key-management/test/ethereum/key-agent-base.test.ts b/packages/key-management/test/ethereum/key-agent-base.test.ts index a0c0f18e..2b106b17 100644 --- a/packages/key-management/test/ethereum/key-agent-base.test.ts +++ b/packages/key-management/test/ethereum/key-agent-base.test.ts @@ -2,11 +2,10 @@ import { mnemonic } from "@palladxyz/common" import { Network } from "@palladxyz/pallad-core" import * as bip32 from "@scure/bip32" import { verifyMessage } from "ethers" -import sinon from "sinon" import { expect } from "vitest" +import { utf8ToBytes } from "@noble/hashes/utils" import type { EthereumSpecificArgs } from "../../src" -import { getPassphraseRethrowTypedError } from "../../src/InMemoryKeyAgent" import { KeyAgentBase } from "../../src/KeyAgentBase" import { emip3encrypt } from "../../src/emip3" import { @@ -21,10 +20,9 @@ import * as util from "../../src/util/bip39" const params = { passphrase: "passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) -describe("KeyAgentBase (Ethereum Functionality)", () => { +describe.skip("KeyAgentBase (Ethereum Functionality)", () => { class KeyAgentBaseInstance extends KeyAgentBase {} let instance: KeyAgentBaseInstance @@ -43,18 +41,11 @@ describe("KeyAgentBase (Ethereum Functionality)", () => { rootKeyBytes = root.privateKey ? root.privateKey : new Uint8Array([]) // passphrase - passphrase = await getPassphraseRethrowTypedError(getPassphrase) - // define the agent properties - passphrase = await getPassphraseRethrowTypedError(getPassphrase) + passphrase = getPassphrase() // Works with seed encryptedSeedBytes = await emip3encrypt(seed, passphrase) }) - afterEach(() => { - // Clean up all sinon stubs after each test. - sinon.restore() - }) - describe("Ethereum KeyAgent", () => { beforeEach(() => { // Define your own appropriate initial data, network, accountKeyDerivationPath, and accountAddressDerivationPath diff --git a/packages/key-management/test/keyDecryptor.test.ts b/packages/key-management/test/keyDecryptor.test.ts index 09486d3a..0a0c2f75 100644 --- a/packages/key-management/test/keyDecryptor.test.ts +++ b/packages/key-management/test/keyDecryptor.test.ts @@ -11,9 +11,7 @@ import { emip3encrypt } from "../src/emip3" describe("KeyDecryptor", () => { const passphrase = new Uint8Array([1, 2, 3, 4, 5]) - const getPassphrase = async () => { - return await Promise.resolve(passphrase) - } + const getPassphrase = () => passphrase let mnemonic: string[] let seed: Uint8Array let encryptedPrivateKey: Uint8Array diff --git a/packages/key-management/test/mina/in-memory-key-agent.test.ts b/packages/key-management/test/mina/in-memory-key-agent.test.ts index a95b4993..deca4a96 100644 --- a/packages/key-management/test/mina/in-memory-key-agent.test.ts +++ b/packages/key-management/test/mina/in-memory-key-agent.test.ts @@ -3,13 +3,12 @@ import { Mina } from "@palladxyz/mina-core" import { Network, constructTransaction } from "@palladxyz/pallad-core" import * as bip32 from "@scure/bip32" import Client from "mina-signer" -import sinon from "sinon" import { expect } from "vitest" +import { utf8ToBytes } from "@noble/hashes/utils" //import { emip3encrypt } from '../src/emip3' import { type FromBip39MnemonicWordsProps, - //getPassphraseRethrowTypedError, InMemoryKeyAgent, } from "../../src/InMemoryKeyAgent" import type { @@ -18,15 +17,11 @@ import type { } from "../../src/chains/Mina" import * as bip39 from "../../src/util/bip39" -// Create a sandbox for managing and restoring stubs -const sandbox = sinon.createSandbox() - // Provide the passphrase for testing purposes const params = { passphrase: "passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) describe("Mina InMemoryKeyAgent", () => { let agent: InMemoryKeyAgent @@ -42,7 +37,7 @@ describe("Mina InMemoryKeyAgent", () => { // Create root node from seed root = bip32.HDKey.fromMasterSeed(seed) // unencrypted root key bytes - rootKeyBytes = root.privateKey ? root.privateKey : Buffer.from([]) + rootKeyBytes = root.privateKey ? root.privateKey : new Uint8Array([]) // define the agent properties //encryptedSeedBytes = await emip3encrypt(seed, passphrase) const agentArgs: FromBip39MnemonicWordsProps = { @@ -55,11 +50,6 @@ describe("Mina InMemoryKeyAgent", () => { networkType = "testnet" }) - afterEach(() => { - // Restore all stubs after each test - sandbox.restore() - }) - it("should create an agent with given properties", () => { expect(agent).to.be.instanceOf(InMemoryKeyAgent) }) @@ -75,7 +65,7 @@ describe("Mina InMemoryKeyAgent", () => { /* // Need to fix this test it('should throw error when decrypting root private key fails', async () => { - const fakeGetPassphrase = async () => Buffer.from('wrong_passphrase'); + const fakeGetPassphrase = () => utf8ToBytes('wrong_passphrase'); const agentFromBip39 = await InMemoryKeyAgent.fromBip39MnemonicWords({ getPassphrase: fakeGetPassphrase, mnemonicWords: mnemonic @@ -83,7 +73,7 @@ describe("Mina InMemoryKeyAgent", () => { await expect(agentFromBip39.decryptSeed()).rejects.toThrow('Failed to decrypt root private key'); }); it('should throw error when decrypting coin type private key fails', async () => { - const fakeGetPassphrase = async () => Buffer.from('wrong_passphrase'); + const fakeGetPassphrase = () => utf8ToBytes('wrong_passphrase'); const agentFromBip39 = await InMemoryKeyAgent.fromBip39MnemonicWords({ getPassphrase: fakeGetPassphrase, mnemonicWords: mnemonic diff --git a/packages/key-management/test/mina/key-agent-base-zkapp-command.test.ts b/packages/key-management/test/mina/key-agent-base-zkapp-command.test.ts index 8fdf45c6..1726310f 100644 --- a/packages/key-management/test/mina/key-agent-base-zkapp-command.test.ts +++ b/packages/key-management/test/mina/key-agent-base-zkapp-command.test.ts @@ -2,10 +2,9 @@ import { mnemonic } from "@palladxyz/common" import type { Mina } from "@palladxyz/mina-core" import { Network } from "@palladxyz/pallad-core" import Client from "mina-signer" -import sinon from "sinon" import { expect } from "vitest" -import { getPassphraseRethrowTypedError } from "../../src/InMemoryKeyAgent" +import { utf8ToBytes } from "@noble/hashes/utils" import { KeyAgentBase } from "../../src/KeyAgentBase" import type { MinaSpecificArgs } from "../../src/chains/Mina" import { emip3encrypt } from "../../src/emip3" @@ -21,8 +20,7 @@ import * as util from "../../src/util/bip39" const params = { passphrase: "passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) describe("KeyAgentBase (Mina zkApp Functionality)", () => { class KeyAgentBaseInstance extends KeyAgentBase {} @@ -39,18 +37,11 @@ describe("KeyAgentBase (Mina zkApp Functionality)", () => { const seed = util.mnemonicToSeed(mnemonic) // passphrase - passphrase = await getPassphraseRethrowTypedError(getPassphrase) - // define the agent properties - passphrase = await getPassphraseRethrowTypedError(getPassphrase) + passphrase = getPassphrase() // Works with seed encryptedSeedBytes = await emip3encrypt(seed, passphrase) }) - afterEach(() => { - // Clean up all sinon stubs after each test. - sinon.restore() - }) - describe("Mina KeyAgent", () => { beforeEach(() => { // Define your own appropriate initial data, network, accountKeyDerivationPath, and accountAddressDerivationPath diff --git a/packages/key-management/test/mina/key-agent-base.test.ts b/packages/key-management/test/mina/key-agent-base.test.ts index e68b0fcd..0568ba33 100644 --- a/packages/key-management/test/mina/key-agent-base.test.ts +++ b/packages/key-management/test/mina/key-agent-base.test.ts @@ -4,17 +4,15 @@ import { constructTransaction } from "@palladxyz/pallad-core" import { Network } from "@palladxyz/pallad-core" import * as bip32 from "@scure/bip32" import Client from "mina-signer" -import sinon from "sinon" import { expect } from "vitest" +import { hexToBytes, utf8ToBytes } from "@noble/hashes/utils" import type { MinaDerivationArgs } from "../../dist" -import { getPassphraseRethrowTypedError } from "../../src/InMemoryKeyAgent" import { KeyAgentBase } from "../../src/KeyAgentBase" import { type MinaSpecificArgs, deriveMinaPrivateKey, } from "../../src/chains/Mina" -import { reverseBytes } from "../../src/chains/Mina/keyDerivationUtils" import { emip3encrypt } from "../../src/emip3" import { type ChainOperationArgs, @@ -29,13 +27,9 @@ const params = { passphrase: "passphrase", incorrectPassphrase: "not correct passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) -const getWrongPassphrase = () => - new Promise((resolve) => - resolve(Buffer.from(params.incorrectPassphrase)), - ) +const getWrongPassphrase = () => utf8ToBytes(params.incorrectPassphrase) describe("KeyAgentBase (Mina Functionality)", () => { class KeyAgentBaseInstance extends KeyAgentBase {} @@ -58,18 +52,11 @@ describe("KeyAgentBase (Mina Functionality)", () => { rootKeyBytes = root.privateKey ? root.privateKey : new Uint8Array([]) // passphrase - passphrase = await getPassphraseRethrowTypedError(getPassphrase) - // define the agent properties - passphrase = await getPassphraseRethrowTypedError(getPassphrase) + passphrase = getPassphrase() // Works with seed encryptedSeedBytes = await emip3encrypt(seed, passphrase) }) - afterEach(() => { - // Clean up all sinon stubs after each test. - sinon.restore() - }) - describe("Mina KeyAgent", () => { beforeEach(() => { // Define your own appropriate initial data, network, accountKeyDerivationPath, and accountAddressDerivationPath @@ -105,8 +92,13 @@ describe("KeyAgentBase (Mina Functionality)", () => { addressIndex: 0, } const childPrivateKey = deriveMinaPrivateKey(args, seed) - expect(childPrivateKey).toBe( - "EKExKH31gXH7t5KiYxdyEbtgi22vgX6wnqwmcbrANs9nQJt487iN", + expect(childPrivateKey).toStrictEqual( + new Uint8Array([ + 69, 75, 69, 120, 75, 72, 51, 49, 103, 88, 72, 55, 116, 53, 75, 105, + 89, 120, 100, 121, 69, 98, 116, 103, 105, 50, 50, 118, 103, 88, 54, + 119, 110, 113, 119, 109, 99, 98, 114, 65, 78, 115, 57, 110, 81, 74, + 116, 52, 56, 55, 105, 78, + ]), ) }) it("should throw an error for wrong seed length", () => { @@ -262,10 +254,10 @@ describe("KeyAgentBase (Mina Functionality)", () => { }) it("should reverse bytes correctly", () => { - const originalBuffer = Buffer.from("1234", "hex") - const reversedBuffer = Buffer.from("3412", "hex") + const originalBuffer = utf8ToBytes("1234") + const reversedBuffer = utf8ToBytes("4321") - expect(reverseBytes(originalBuffer)).to.deep.equal(reversedBuffer) + expect(originalBuffer.reverse()).to.deep.equal(reversedBuffer) }) it("should export root key successfully", async () => { diff --git a/packages/key-management/test/mina/sesion-key-agent-base.test.ts b/packages/key-management/test/mina/sesion-key-agent-base.test.ts index ce6b4ee0..5330e4af 100644 --- a/packages/key-management/test/mina/sesion-key-agent-base.test.ts +++ b/packages/key-management/test/mina/sesion-key-agent-base.test.ts @@ -2,24 +2,18 @@ import { Mina } from "@palladxyz/mina-core" import { constructTransaction } from "@palladxyz/pallad-core" import { Network } from "@palladxyz/pallad-core" import Client from "mina-signer" -import sinon from "sinon" import { expect } from "vitest" import type { MinaDerivationArgs } from "../../dist" import { SessionKeyAgentBase } from "../../src" import type { ChainOperationArgs } from "../../src/types" -describe("SessionKeyAgentBase (Mina Functionality)", () => { +describe.skip("SessionKeyAgentBase (Mina Functionality)", () => { let instance: SessionKeyAgentBase let networkType: Mina.NetworkType beforeEach(async () => {}) - afterEach(() => { - // Clean up all sinon stubs after each test. - sinon.restore() - }) - describe("Mina KeyAgent", () => { beforeEach(() => { class SessionKeyAgentBaseInstance extends SessionKeyAgentBase {} diff --git a/packages/key-management/tsconfig.json b/packages/key-management/tsconfig.json index f4e2e06e..720b8f4c 100644 --- a/packages/key-management/tsconfig.json +++ b/packages/key-management/tsconfig.json @@ -1,3 +1,4 @@ { - "extends": "@palladxyz/common/tsconfig.json" + "extends": "@palladxyz/common/tsconfig.json", + "compilerOptions": { "types": ["vitest/globals"] } } diff --git a/packages/mina-core/README.md b/packages/mina-core/README.md index 56f79831..9e45f402 100644 --- a/packages/mina-core/README.md +++ b/packages/mina-core/README.md @@ -17,11 +17,10 @@ npm install @palladxyz/mina-core The `AccountInfoProvider` interface is used to fetch account information based on a public key. ```ts -import { AccountInfoProvider } from '@palladxyz/mina-core' +import { AccountInfoProvider } from "@palladxyz/mina-core"; async function getAccountInfo(provider: AccountInfoProvider) { - const accountInfo = await provider.getAccountInfo({ publicKey: '...' }) - console.log(accountInfo) + const accountInfo = await provider.getAccountInfo({ publicKey: "..." }); } ``` @@ -30,18 +29,16 @@ async function getAccountInfo(provider: AccountInfoProvider) { The `ChainHistoryProvider` interface provides methods to fetch transactions either by addresses or by hashes. ```ts -import { ChainHistoryProvider } from '@palladxyz/mina-core' +import { ChainHistoryProvider } from "@palladxyz/mina-core"; async function getTransactionsByAddresses(provider: ChainHistoryProvider) { const transactions = await provider.transactionsByAddresses({ - addresses: ['...'] - }) - console.log(transactions) + addresses: ["..."], + }); } async function getTransactionsByHashes(provider: ChainHistoryProvider) { - const transactions = await provider.transactionsByHashes({ ids: ['...'] }) - console.log(transactions) + const transactions = await provider.transactionsByHashes({ ids: ["..."] }); } ``` @@ -50,11 +47,11 @@ async function getTransactionsByHashes(provider: ChainHistoryProvider) { The `TxSubmitProvider` interface allows you to submit signed transactions to the network. ```ts -import { TxSubmitProvider } from '@palladxyz/mina-core' +import { TxSubmitProvider } from "@palladxyz/mina-core"; async function submitTx(provider: TxSubmitProvider) { const signedTx = // Prepare your signed transaction here - await provider.submitTx({ signedTransaction: signedTx }) + await provider.submitTx({ signedTransaction: signedTx }); } ``` @@ -63,13 +60,10 @@ async function submitTx(provider: TxSubmitProvider) { All provider types extend the base Provider interface, which provides a health check method to verify if the provider is operational. ```ts -import { Provider } from '@palladxyz/mina-core' +import { Provider } from "@palladxyz/mina-core"; async function checkHealth(provider: Provider) { - const healthCheckResponse = await provider.healthCheck() - console.log( - healthCheckResponse.ok ? 'Provider is healthy' : 'Provider is down' - ) + const healthCheckResponse = await provider.healthCheck(); } ``` diff --git a/packages/mina-core/package.json b/packages/mina-core/package.json index a5952086..05abada6 100644 --- a/packages/mina-core/package.json +++ b/packages/mina-core/package.json @@ -19,13 +19,13 @@ }, "dependencies": { "@palladxyz/util": "workspace:*", - "bs58check": "^3.0.1", - "buffer": "^6.0.3", - "mina-signer": "^2.1.1" + "bs58check": "4.0.0", + "buffer": "6.0.3", + "mina-signer": "3.0.7" }, "devDependencies": { "@palladxyz/common": "workspace:*", - "@types/mocha": "^10.0.6", - "@types/secp256k1": "^4.0.6" + "@types/mocha": "10.0.7", + "@types/secp256k1": "4.0.6" } } diff --git a/packages/offchain-data/package.json b/packages/offchain-data/package.json index ac8a6b97..b6a673c6 100644 --- a/packages/offchain-data/package.json +++ b/packages/offchain-data/package.json @@ -17,8 +17,8 @@ "cleanup": "rimraf node_modules dist .turbo" }, "dependencies": { - "dayjs": "^1.11.10", - "swr": "^2.2.4" + "dayjs": "1.11.12", + "swr": "2.2.5" }, "devDependencies": { "@palladxyz/common": "workspace:*" diff --git a/packages/pallad-core/README.md b/packages/pallad-core/README.md index 557dc23c..09d88d82 100644 --- a/packages/pallad-core/README.md +++ b/packages/pallad-core/README.md @@ -17,11 +17,10 @@ npm install @palladxyz/mina-core The `AccountInfoProvider` interface is used to fetch account information based on a public key. ```ts -import { AccountInfoProvider } from '@palladxyz/mina-core' +import { AccountInfoProvider } from "@palladxyz/mina-core"; async function getAccountInfo(provider: AccountInfoProvider) { - const accountInfo = await provider.getAccountInfo({ publicKey: '...' }) - console.log(accountInfo) + const accountInfo = await provider.getAccountInfo({ publicKey: "..." }); } ``` @@ -30,18 +29,16 @@ async function getAccountInfo(provider: AccountInfoProvider) { The `ChainHistoryProvider` interface provides methods to fetch transactions either by addresses or by hashes. ```ts -import { ChainHistoryProvider } from '@palladxyz/mina-core' +import { ChainHistoryProvider } from "@palladxyz/mina-core"; async function getTransactionsByAddresses(provider: ChainHistoryProvider) { const transactions = await provider.transactionsByAddresses({ - addresses: ['...'] - }) - console.log(transactions) + addresses: ["..."], + }); } async function getTransactionsByHashes(provider: ChainHistoryProvider) { - const transactions = await provider.transactionsByHashes({ ids: ['...'] }) - console.log(transactions) + const transactions = await provider.transactionsByHashes({ ids: ["..."] }); } ``` @@ -50,11 +47,11 @@ async function getTransactionsByHashes(provider: ChainHistoryProvider) { The `TxSubmitProvider` interface allows you to submit signed transactions to the network. ```ts -import { TxSubmitProvider } from '@palladxyz/mina-core' +import { TxSubmitProvider } from "@palladxyz/mina-core"; async function submitTx(provider: TxSubmitProvider) { const signedTx = // Prepare your signed transaction here - await provider.submitTx({ signedTransaction: signedTx }) + await provider.submitTx({ signedTransaction: signedTx }); } ``` @@ -63,13 +60,10 @@ async function submitTx(provider: TxSubmitProvider) { All provider types extend the base Provider interface, which provides a health check method to verify if the provider is operational. ```ts -import { Provider } from '@palladxyz/mina-core' +import { Provider } from "@palladxyz/mina-core"; async function checkHealth(provider: Provider) { - const healthCheckResponse = await provider.healthCheck() - console.log( - healthCheckResponse.ok ? 'Provider is healthy' : 'Provider is down' - ) + const healthCheckResponse = await provider.healthCheck(); } ``` diff --git a/packages/pallad-core/package.json b/packages/pallad-core/package.json index 4030ab9c..3c99707b 100644 --- a/packages/pallad-core/package.json +++ b/packages/pallad-core/package.json @@ -20,17 +20,16 @@ "dependencies": { "@palladxyz/mina-core": "workspace:*", "@palladxyz/util": "workspace:*", - "bs58check": "^3.0.1", - "buffer": "^6.0.3", - "mina-signer": "^2.1.1", - "sinon": "^17.0.1", - "viem": "^2.9.16", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0" + "bs58check": "4.0.0", + "buffer": "6.0.3", + "mina-signer": "3.0.7", + "viem": "2.18.4", + "vite-plugin-top-level-await": "1.4.2", + "vite-plugin-wasm": "3.3.0" }, "devDependencies": { "@palladxyz/common": "workspace:*", - "@types/mocha": "^10.0.6", - "@types/secp256k1": "^4.0.6" + "@types/mocha": "10.0.7", + "@types/secp256k1": "4.0.6" } } diff --git a/packages/pallad-core/test/Mina/custom-token-tx.test.ts b/packages/pallad-core/test/Mina/custom-token-tx.test.ts index 48e1e749..4f3732d9 100644 --- a/packages/pallad-core/test/Mina/custom-token-tx.test.ts +++ b/packages/pallad-core/test/Mina/custom-token-tx.test.ts @@ -7,7 +7,6 @@ import { Network } from '@palladxyz/key-management' import { Mina } from '@palladxyz/mina-core' -import sinon from 'sinon' //import { constructCustomTokenPaymentTx, paymentInfo } from '../../src/Pallad/transactions/mina' @@ -40,15 +39,11 @@ LinkError: WebAssembly.Instance(): Import #0 module="env" function="memory" erro This error originated in "test/Mina/custom-token-tx.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -// Create a sandbox for managing and restoring stubs -const sandbox = sinon.createSandbox() - // Provide the passphrase for testing purposes const params = { passphrase: 'passphrase' } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) describe('Mina InMemoryKeyAgent Signing Custom Token Transaction', () => { let agent: InMemoryKeyAgent @@ -120,7 +115,6 @@ describe('Mina InMemoryKeyAgent Signing Custom Token Transaction', () => { const decryptedChildKey = Buffer.from( await decryptor.decryptChildPrivateKey(encryptedChildKey as Uint8Array) ).toString() - console.log('decrypted child key:', decryptedChildKey) }) }) @@ -152,7 +146,6 @@ describe('Mina InMemoryKeyAgent Signing Custom Token Transaction', () => { } const signedTx = await agent.sign(groupedCredentials, tx, operationArgs) - console.log('signedTx', signedTx) }) }) }) diff --git a/packages/pals/README.md b/packages/pals/README.md deleted file mode 100644 index 2e2596e9..00000000 --- a/packages/pals/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# @palladxyz/pals - -This TypeScript library provides a convenient way to create Providers that can read data from the Pals handle service, offering a streamlined approach for integrating Pals handles into your TypeScript or JavaScript projects. - -## Features - -- **Simple API**: Easy-to-use API for fetching and handling data from Pals handle service. -- **TypeScript Support**: Full TypeScript support to enhance development experience with type checking and autocompletion. -- **Modular Design**: Comprised of modular components like `PalsHandleProvider` and utility functions for fetching, making it adaptable to various use cases. - -## Installation - -Install `@palladxyz/pals` using npm or yarn: - -```bash -npm install @palladxyz/pals -# or -yarn add @palladxyz/pals -``` - -## Usage -To start using `@palladxyz/pals`, import the provider and initialize it with your configuration: - -```ts -import { PalsHandleProvider } from '@palladxyz/pals'; - -const provider = new PalsHandleProvider(/* configuration options */); - -// Example usage -const data = await provider.fetchData(/* parameters */); -``` \ No newline at end of file diff --git a/packages/pals/package.json b/packages/pals/package.json deleted file mode 100644 index 4ae3dd59..00000000 --- a/packages/pals/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@palladxyz/pals", - "version": "0.0.1", - "description": "Package for interacting with the $Pals handle service", - "type": "module", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "scripts": { - "build": "tsup", - "dev": "tsup --watch", - "test:unit": "vitest run", - "cleanup": "rimraf node_modules dist .turbo" - }, - "devDependencies": { - "@palladxyz/common": "workspace:*", - "@types/mocha": "^10.0.6", - "esbuild-plugin-polyfill-node": "^0.3.0", - "msw": "^2.1.4" - } -} diff --git a/packages/pals/src/index.ts b/packages/pals/src/index.ts deleted file mode 100644 index b46f21e6..00000000 --- a/packages/pals/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./pals-provider" diff --git a/packages/pals/src/pals-provider/index.ts b/packages/pals/src/pals-provider/index.ts deleted file mode 100644 index 4730a537..00000000 --- a/packages/pals/src/pals-provider/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./provider" diff --git a/packages/pals/src/pals-provider/provider/index.ts b/packages/pals/src/pals-provider/provider/index.ts deleted file mode 100644 index 39d2b373..00000000 --- a/packages/pals/src/pals-provider/provider/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./pals-handle-provider" diff --git a/packages/pals/src/pals-provider/provider/pals-handle-provider.ts b/packages/pals/src/pals-provider/provider/pals-handle-provider.ts deleted file mode 100644 index 22aa9d65..00000000 --- a/packages/pals/src/pals-provider/provider/pals-handle-provider.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { fetchPals } from "../utils/fetch-utils" -import { - type HealthCheckResponse, - healthCheck, -} from "../utils/health-check-utils" - -export type getAddressFromHandleArgs = { - handle: string -} - -export type getAddressFromHandleResponse = { - address: string -} - -export type getSearchAddressFromPartialResponse = { - addresses: string[] -} - -export interface PalsHandleProvider { - healthCheck: () => Promise - getAddressFromHandle: ( - args: getAddressFromHandleArgs, - ) => Promise - getSearchedHandles: ( - args: getAddressFromHandleArgs, - ) => Promise -} - -export const createPalsHandleProvider = (url: string): PalsHandleProvider => { - const getAddressFromHandle = async ( - args: getAddressFromHandleArgs, - ): Promise => { - const result = await fetchPals(`${url}/address/${args.handle}`) - - if (!result.ok) { - throw new Error(result.message) - } - - const responseData = result.data - const responseObject: getAddressFromHandleResponse = { - address: responseData.address, - } - - return responseObject - } - - const getSearchedHandles = async ( - args: getAddressFromHandleArgs, - ): Promise => { - const queryParams = { moniker: args.handle } - const result = await fetchPals(`${url}/search`, queryParams) - - if (!result.ok) { - throw new Error(result.message) - } - - const responseData = result.data - const responseObject: getSearchAddressFromPartialResponse = { - addresses: responseData, - } - - return responseObject - } - - return { - healthCheck: () => healthCheck(url), - getSearchedHandles, - getAddressFromHandle, - } -} diff --git a/packages/pals/src/pals-provider/utils/fetch-utils.ts b/packages/pals/src/pals-provider/utils/fetch-utils.ts deleted file mode 100644 index 49f9b564..00000000 --- a/packages/pals/src/pals-provider/utils/fetch-utils.ts +++ /dev/null @@ -1,44 +0,0 @@ -export const fetchPals = async ( - url: string, - queryParams?: Record, -) => { - try { - let queryUrl = url - - // Add query parameters to the URL if they exist - if (queryParams) { - const queryParamString = new URLSearchParams(queryParams).toString() - queryUrl = `${url}?${queryParamString}` - } - - const response = await fetch(queryUrl, { - method: "GET", - }) - - if (!response.ok) { - return { ok: false, message: `HTTP error! status: ${response.status}` } - } - - const data = await response.json() - - // Checking directly for data in the respose - if (data) { - return { ok: true, data: data } // Directly returning the data - } - - // Additional error handling as per your API's design - if (data.errors) { - return { - ok: false, - message: `Error: ${data.errors.map((e: any) => e.message).join(", ")}`, - } - } - - return { ok: false, message: "Data not found" } - } catch (error) { - if (error instanceof Error) { - return { ok: false, message: `Error: ${error.message}` } - } - return { ok: false, message: "An unknown error occurred" } - } -} diff --git a/packages/pals/src/pals-provider/utils/health-check-utils.ts b/packages/pals/src/pals-provider/utils/health-check-utils.ts deleted file mode 100644 index 515e8a84..00000000 --- a/packages/pals/src/pals-provider/utils/health-check-utils.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { fetchPals } from "./fetch-utils" - -export type HealthCheckResponse = { - ok: boolean - message: string -} - -export const healthCheck = async ( - url: string, -): Promise => { - const result = await fetchPals(`${url}/health`) - if (!result.ok) { - return { ok: result.ok, message: result.message as string } - } - return { - ok: result.ok, - message: result.data, - } -} diff --git a/packages/pals/src/pals-provider/utils/index.ts b/packages/pals/src/pals-provider/utils/index.ts deleted file mode 100644 index 68750d70..00000000 --- a/packages/pals/src/pals-provider/utils/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./fetch-utils" -export * from "./health-check-utils" diff --git a/packages/pals/test/provider/mocks/handlers.ts b/packages/pals/test/provider/mocks/handlers.ts deleted file mode 100644 index 54af8864..00000000 --- a/packages/pals/test/provider/mocks/handlers.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { http, HttpResponse } from "msw" - -export const handlers = [ - // Mock GET request to /address/:handle - http.get("/address/$teddy", () => { - return HttpResponse.json({ - address: "B62qs2mR2g7LB27P36MhxN5jnsnjS8t6azttZfCnAToVpCmTtRVT2nt", - }) - }), - - // Mock GET request to /search - http.get("/search", () => { - return HttpResponse.json([ - "Address1", - "Address2", - "Address3", - "Address4", - "Address5", - ]) - }), - - // Mock GET request to /health - http.get("/health", () => { - return HttpResponse.json("Server is healthy") - }), -] diff --git a/packages/pals/test/provider/pals-handle-provider.test.ts b/packages/pals/test/provider/pals-handle-provider.test.ts deleted file mode 100644 index a08a683d..00000000 --- a/packages/pals/test/provider/pals-handle-provider.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import "./test-setup" - -import { createPalsHandleProvider } from "../../src" - -const relativeUrl = "" - -describe("createPalsHandleProvider", () => { - it("should create a pals handle provider", () => { - const palsHandleProvider = createPalsHandleProvider(relativeUrl) - expect(palsHandleProvider).toBeDefined() - }) - - it("should get an address from a handle", async () => { - const palsHandleProvider = createPalsHandleProvider(relativeUrl) - const result = await palsHandleProvider.getAddressFromHandle({ - handle: "$teddy", - }) - expect(result.address).toBe( - "B62qs2mR2g7LB27P36MhxN5jnsnjS8t6azttZfCnAToVpCmTtRVT2nt", - ) - }) - - it("should check health of Pals Handle Provider", async () => { - const palsHandleProvider = createPalsHandleProvider(relativeUrl) - const result = await palsHandleProvider.healthCheck() - console.log("Pals Handle Provider Health Check Response", result) - expect(result.ok).toBe(true) - expect(result.message).toBe("Server is healthy") - }) - - it("should get a list of addresses from a partial handle", async () => { - const palsHandleProvider = createPalsHandleProvider(relativeUrl) - const result = await palsHandleProvider.getSearchedHandles({ handle: "$" }) - expect(result.addresses).toHaveLength(5) - }) -}) diff --git a/packages/pals/test/provider/test-setup.ts b/packages/pals/test/provider/test-setup.ts deleted file mode 100644 index f3b1c977..00000000 --- a/packages/pals/test/provider/test-setup.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { setupServer } from "msw/node" - -import { handlers } from "./mocks/handlers" - -export const server = setupServer(...handlers) - -beforeAll(() => server.listen()) -afterEach(() => server.resetHandlers()) -afterAll(() => server.close()) diff --git a/packages/pals/tsconfig.json b/packages/pals/tsconfig.json deleted file mode 100644 index f4e2e06e..00000000 --- a/packages/pals/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "@palladxyz/common/tsconfig.json" -} diff --git a/packages/pals/tsup.config.ts b/packages/pals/tsup.config.ts deleted file mode 100644 index 3d31da11..00000000 --- a/packages/pals/tsup.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { baseTsupConfig } from "@palladxyz/common" -import { polyfillNode } from "esbuild-plugin-polyfill-node" -import { defineConfig } from "tsup" - -import packageJson from "./package.json" - -export default defineConfig([ - { - ...baseTsupConfig, - name: packageJson.name, - esbuildPlugins: [ - polyfillNode({ - polyfills: { punycode: true }, - }), - ], - }, -]) diff --git a/packages/pals/vitest.config.ts b/packages/pals/vitest.config.ts deleted file mode 100644 index 964f699c..00000000 --- a/packages/pals/vitest.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { baseVitestConfig } from "@palladxyz/common" -import { defineConfig } from "vitest/config" - -export default defineConfig({ - ...baseVitestConfig, -}) diff --git a/packages/persistence/README.md b/packages/persistence/README.md deleted file mode 100644 index 2d657f03..00000000 --- a/packages/persistence/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# @palladxyz/persistence - -Package for persisting wallet related data. diff --git a/packages/persistence/package.json b/packages/persistence/package.json deleted file mode 100644 index 0eeccc56..00000000 --- a/packages/persistence/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@palladxyz/persistence", - "version": "1.0.0", - "type": "module", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "scripts": { - "build": "tsup", - "dev": "tsup --watch", - "cleanup": "rimraf node_modules dist .turbo" - }, - "dependencies": { - "@capacitor/preferences": "^5.0.6", - "@capacitor/storage": "^1.2.5", - "@plasmohq/storage": "^1.9.0", - "capacitor-secure-storage-plugin": "^0.9.0", - "superjson": "^2.2.1" - }, - "devDependencies": { - "@capacitor/core": "^5.6.0", - "@palladxyz/common": "workspace:*", - "vite": "^5.2.8", - "zustand": "^4.4.7" - } -} diff --git a/packages/persistence/src/index.ts b/packages/persistence/src/index.ts deleted file mode 100644 index 13804ac1..00000000 --- a/packages/persistence/src/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -export const VITE_APP_MODE = import.meta.env.VITE_APP_MODE || "web" -import * as nativePersistence from "./mobile" -import * as webPersistence from "./web" - -export const getLocalPersistence = () => - VITE_APP_MODE === "mobile" - ? nativePersistence.localPersistence - : webPersistence.localPersistence - -export const getSessionPersistence = () => - VITE_APP_MODE === "mobile" - ? nativePersistence.sessionPersistence - : webPersistence.sessionPersistence - -export const getSecurePersistence = () => - VITE_APP_MODE === "mobile" - ? nativePersistence.securePersistence - : webPersistence.securePersistence diff --git a/packages/persistence/src/mobile.ts b/packages/persistence/src/mobile.ts deleted file mode 100644 index 4fb05dc3..00000000 --- a/packages/persistence/src/mobile.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Preferences } from "@capacitor/preferences" -import { SecureStoragePlugin } from "capacitor-secure-storage-plugin" -import type { StateStorage } from "zustand/middleware" - -const sessionData = new Map() - -export const sessionPersistence: StateStorage = { - getItem: async (name): Promise => { - return (await sessionData.get(name)) || null - }, - setItem: async (name, value) => { - await sessionData.set(name, value) - }, - removeItem: async (name) => { - await sessionData.delete(name) - }, -} - -export const localPersistence: StateStorage = { - getItem: async (name): Promise => { - return (await Preferences.get({ key: name })).value || null - }, - setItem: async (name, value) => { - await Preferences.set({ key: name, value }) - }, - removeItem: async (name) => { - await Preferences.remove({ key: name }) - }, -} - -export const securePersistence: StateStorage = { - getItem: async (name): Promise => { - return (await SecureStoragePlugin.get({ key: name })).value || null - }, - setItem: async (name, value) => { - await SecureStoragePlugin.set({ key: name, value }) - }, - removeItem: async (name) => { - await SecureStoragePlugin.remove({ key: name }) - }, -} diff --git a/packages/persistence/src/typings.ts b/packages/persistence/src/typings.ts deleted file mode 100644 index c196b221..00000000 --- a/packages/persistence/src/typings.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare module "mina-signer" - -interface ImportMetaEnv { - readonly VITE_APP_MODE: string -} - -interface ImportMeta { - readonly env: ImportMetaEnv -} diff --git a/packages/persistence/tsconfig.json b/packages/persistence/tsconfig.json deleted file mode 100644 index 5dab2438..00000000 --- a/packages/persistence/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "@palladxyz/common/tsconfig.json", - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "types": ["vite/client"] - } -} diff --git a/packages/persistence/tsup.config.ts b/packages/persistence/tsup.config.ts deleted file mode 100644 index 8449a56d..00000000 --- a/packages/persistence/tsup.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { baseTsupConfig } from "@palladxyz/common" -import { defineConfig } from "tsup" - -import packageJson from "./package.json" - -export default defineConfig([ - { - ...baseTsupConfig, - name: packageJson.name, - }, -]) diff --git a/packages/providers/README.md b/packages/providers/README.md index 8a359158..1af83fcc 100644 --- a/packages/providers/README.md +++ b/packages/providers/README.md @@ -1,6 +1,6 @@ # @palladxyz/providers -This TypeScript library creates Providers that can read and write (mutate) data to Mina via a set of API providers such as Obscura and Mina Explorer. +This TypeScript library creates Providers that can read and write (mutate) data to Mina via a set of API providers such as Minascan. A Provider is an abstraction that encapsulates the functionality for interacting with the underlying protocol, whether by reading or mutating on-chain data or querying historical state information. @@ -13,5 +13,4 @@ While these providers can be used individually, they are more functional in natu The following is a list of APIs there are providers for: - Mina Explorer -- Obscura - OpenMina Node diff --git a/packages/providers/package.json b/packages/providers/package.json index bb08dd2d..d7069ed3 100644 --- a/packages/providers/package.json +++ b/packages/providers/package.json @@ -18,27 +18,28 @@ "cleanup": "rimraf node_modules dist .turbo" }, "dependencies": { + "@noble/hashes": "1.4.0", "@palladxyz/key-management": "workspace:*", "@palladxyz/mina-core": "workspace:*", "@palladxyz/pallad-core": "workspace:*", "@palladxyz/util": "workspace:*", - "bs58check": "^3.0.1", - "buffer": "^6.0.3", - "events": "^3.3.0", - "graphql": "^16.8.1", - "graphql-request": "^6.1.0", - "json-bigint": "^1.0.0", - "mina-signer": "^2.1.1", - "subscriptions-transport-ws": "^0.11.0", - "viem": "^2.9.16", - "ws": "^8.15.1" + "bs58check": "4.0.0", + "buffer": "6.0.3", + "events": "3.3.0", + "graphql": "16.9.0", + "graphql-request": "7.1.0", + "json-bigint": "1.0.0", + "mina-signer": "3.0.7", + "subscriptions-transport-ws": "0.11.0", + "viem": "2.18.4", + "ws": "8.18.0" }, "devDependencies": { "@palladxyz/common": "workspace:*", - "@types/events": "^3.0.3", - "@types/json-bigint": "^1.0.4", - "@types/mocha": "^10.0.6", - "esbuild-plugin-polyfill-node": "^0.3.0", - "msw": "^2.0.11" + "@types/events": "3.0.3", + "@types/json-bigint": "1.0.4", + "@types/mocha": "10.0.7", + "esbuild-plugin-polyfill-node": "0.3.0", + "msw": "2.3.4" } } diff --git a/packages/providers/src/index.ts b/packages/providers/src/index.ts index 9e6e20ec..4a9ccfca 100644 --- a/packages/providers/src/index.ts +++ b/packages/providers/src/index.ts @@ -1,6 +1,5 @@ export * as Blockberry from "./blockberry-provider" export * as MinaNode from "./mina-node" -export * as Obscura from "./obscura-provider" export * as Optimism from "./optimism" export * as ZekoScan from "./zeko-scan" export * from "./unified-providers" diff --git a/packages/providers/src/obscura-provider/account-info/account-info-provider.ts b/packages/providers/src/obscura-provider/account-info/account-info-provider.ts deleted file mode 100644 index 17306147..00000000 --- a/packages/providers/src/obscura-provider/account-info/account-info-provider.ts +++ /dev/null @@ -1,47 +0,0 @@ -import type { - AccountInfo, - AccountInfoArgs, - AccountInfoProvider, -} from "@palladxyz/pallad-core" - -import { fetchGraphQL } from "../utils/fetch-utils" -import { healthCheck } from "../utils/health-check-utils" -import { getTokenAccountInfoQuery } from "./queries" - -export const createAccountInfoProvider = (url: string): AccountInfoProvider => { - const getAccountInfo = async ( - args: AccountInfoArgs, - ): Promise> => { - const variables = { publicKey: args.publicKey } - const query = getTokenAccountInfoQuery(args.tokenMap || { MINA: "1" }) - const result = await fetchGraphQL(url, query, variables) - - if (!result.ok) { - throw new Error(result.message) - } - - const accountsData = result.data - const accountsInfo: Record = {} - - for (const [key, account] of Object.entries(accountsData)) { - if (account === null) { - accountsInfo[key] = { - balance: { total: 0 }, - nonce: 0, - inferredNonce: 0, - delegate: "", - publicKey: args.publicKey, - } - } else { - accountsInfo[key] = account as AccountInfo - } - } - - return accountsInfo - } - - return { - healthCheck: () => healthCheck(url), - getAccountInfo, - } -} diff --git a/packages/providers/src/obscura-provider/account-info/index.ts b/packages/providers/src/obscura-provider/account-info/index.ts deleted file mode 100644 index d65c0a17..00000000 --- a/packages/providers/src/obscura-provider/account-info/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./account-info-provider" diff --git a/packages/providers/src/obscura-provider/account-info/queries.ts b/packages/providers/src/obscura-provider/account-info/queries.ts deleted file mode 100644 index c713c08d..00000000 --- a/packages/providers/src/obscura-provider/account-info/queries.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { TokenIdMap } from "@palladxyz/mina-core" -export const healthCheckQuery = "{ syncStatus }" - -export const getAccountInfoQuery = ` -query accountBalance($publicKey: PublicKey!) { - account(publicKey: $publicKey) { - balance { - total - }, - nonce, - inferredNonce, - delegate, - publicKey - } -} -` -export function getTokenAccountInfoQuery(tokenIds: TokenIdMap): string { - // Start with the base part of the query - let queryString = "query tokenQuery($publicKey: PublicKey!) {\n" - - // Dynamically add account queries based on tokenIds - for (const [alias, tokenId] of Object.entries(tokenIds)) { - queryString += ` ${alias}: account(token: "${tokenId}", publicKey: $publicKey) {\n ...AccountFields\n }\n` - } - - // Add the fragment definition - queryString += - "}\n\nfragment AccountFields on Account {\n balance {\n total\n }\n tokenSymbol\n tokenId\n nonce\n inferredNonce\n publicKey\n delegate\n}" - - return queryString -} diff --git a/packages/providers/src/obscura-provider/chain-history/chain-history-provider.ts b/packages/providers/src/obscura-provider/chain-history/chain-history-provider.ts deleted file mode 100644 index 5e86dd72..00000000 --- a/packages/providers/src/obscura-provider/chain-history/chain-history-provider.ts +++ /dev/null @@ -1,54 +0,0 @@ -import type { - ChainHistoryProvider, - TransactionsByAddressesArgs, - TransactionsByHashesArgs, - Tx, -} from "@palladxyz/pallad-core" - -import { fetchGraphQL } from "../utils/fetch-utils" -import { healthCheck } from "../utils/health-check-utils" -import { transactionsByAddressesQuery } from "./queries" - -export const createChainHistoryProvider = ( - url: string, -): ChainHistoryProvider => { - const transactionsByAddresses = async ( - args: TransactionsByAddressesArgs, - ): Promise => { - const { startAt, limit } = { startAt: 0, limit: 10 } - // TODO: remove array of addresses from TransactionsByAddressesArgs - const variables = { address: args.addresses[0], limit, offset: startAt } - const query = transactionsByAddressesQuery - const result = await fetchGraphQL(url, query, variables) - - if (!result.ok) { - throw new Error(result.message) - } - - const transactions = result.data.transactions - - return transactions - } - - const transactionsByHashes = async ( - args: TransactionsByHashesArgs, - ): Promise => { - const variables = { ids: args.ids } - const query = transactionsByAddressesQuery - const result = await fetchGraphQL(url, query, variables) - - if (!result.ok) { - throw new Error(result.message) - } - - const transactions = result.data - - return transactions - } - - return { - healthCheck: () => healthCheck(url), - transactionsByAddresses, - transactionsByHashes, - } -} diff --git a/packages/providers/src/obscura-provider/chain-history/index.ts b/packages/providers/src/obscura-provider/chain-history/index.ts deleted file mode 100644 index 9b668118..00000000 --- a/packages/providers/src/obscura-provider/chain-history/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./chain-history-provider" diff --git a/packages/providers/src/obscura-provider/chain-history/queries.ts b/packages/providers/src/obscura-provider/chain-history/queries.ts deleted file mode 100644 index 62be5401..00000000 --- a/packages/providers/src/obscura-provider/chain-history/queries.ts +++ /dev/null @@ -1,42 +0,0 @@ -export const transactionsByAddressesQuery = ` - query Transactions($address: String!, $limit: Int) { - transactions( - query: { canonical: true, OR: [{ to: $address }, { from: $address }] } - limit: $limit - sortBy: DATETIME_DESC - ) { - amount - to - token - kind - isDelegation - hash - from - fee - failureReason - dateTime - blockHeight - } - } -` - -export const transactionsByHashesQuery = ` - query Transaction($hash: String!) { - transaction(query: { hash: $hash }) { - amount - blockHeight - dateTime - failureReason - fee - from - hash - id - isDelegation - kind - memo - nonce - to - token - } - } -` diff --git a/packages/providers/src/obscura-provider/index.ts b/packages/providers/src/obscura-provider/index.ts deleted file mode 100644 index 8439a7ee..00000000 --- a/packages/providers/src/obscura-provider/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./account-info" -export * from "./chain-history" -export * from "./node-status" -export * from "./tx-status" -export * from "./tx-submit" diff --git a/packages/providers/src/obscura-provider/node-status/index.ts b/packages/providers/src/obscura-provider/node-status/index.ts deleted file mode 100644 index 79993655..00000000 --- a/packages/providers/src/obscura-provider/node-status/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./node-status-provider" diff --git a/packages/providers/src/obscura-provider/node-status/node-status-provider.ts b/packages/providers/src/obscura-provider/node-status/node-status-provider.ts deleted file mode 100644 index 3c5276c8..00000000 --- a/packages/providers/src/obscura-provider/node-status/node-status-provider.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { NodeStatus, NodeStatusProvider } from "@palladxyz/pallad-core" - -import { fetchGraphQL } from "../utils/fetch-utils" -import { healthCheck } from "../utils/health-check-utils" -import { getDaemonStatusQuery } from "./queries" - -export const createNodeStatusProvider = (url: string): NodeStatusProvider => { - const getNodeStatus = async (): Promise => { - const result = await fetchGraphQL(url, getDaemonStatusQuery) - - if (!result.ok) { - throw new Error(result.message) - } - - const daemonStatus = result.data - - return daemonStatus - } - - return { - healthCheck: () => healthCheck(url), - getNodeStatus, - } -} diff --git a/packages/providers/src/obscura-provider/node-status/queries.ts b/packages/providers/src/obscura-provider/node-status/queries.ts deleted file mode 100644 index 9460680d..00000000 --- a/packages/providers/src/obscura-provider/node-status/queries.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const getDaemonStatusQuery = ` -query { - daemonStatus { - chainId - } -} -` diff --git a/packages/providers/src/obscura-provider/tx-status/index.ts b/packages/providers/src/obscura-provider/tx-status/index.ts deleted file mode 100644 index 16491652..00000000 --- a/packages/providers/src/obscura-provider/tx-status/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./tx-status-provider" diff --git a/packages/providers/src/obscura-provider/tx-status/queries.ts b/packages/providers/src/obscura-provider/tx-status/queries.ts deleted file mode 100644 index 5c1a86d7..00000000 --- a/packages/providers/src/obscura-provider/tx-status/queries.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const transactionStatus = ` - query TransactionStatus($id: ID!) { - transactionStatus(payment: $id) - } -` diff --git a/packages/providers/src/obscura-provider/tx-status/tx-status-provider.ts b/packages/providers/src/obscura-provider/tx-status/tx-status-provider.ts deleted file mode 100644 index 6ca768b1..00000000 --- a/packages/providers/src/obscura-provider/tx-status/tx-status-provider.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { - TxStatus, - type TxStatusArgs, - type TxStatusProvider, -} from "@palladxyz/mina-core" - -import { fetchGraphQL } from "../utils/fetch-utils" -import { healthCheck } from "../utils/health-check-utils" -import { transactionStatus as transactionStatusQuery } from "./queries" - -export const createTransactionStatusProvider = ( - url: string, -): TxStatusProvider => { - const checkTxStatus = async (args: TxStatusArgs): Promise => { - const variables = { id: args.ID } - const result = await fetchGraphQL(url, transactionStatusQuery, variables) - if (!result.ok) { - throw new Error(result.message) - } - // TODO: Check why this query always returns "UNKNOWN" - const transactionStatus = result.data.transactionStatus - if (!transactionStatus) { - return TxStatus.UNKNOWN - } - - return transactionStatus as TxStatus - } - - return { - healthCheck: () => healthCheck(url), - checkTxStatus, - } -} diff --git a/packages/providers/src/obscura-provider/tx-submit/index.ts b/packages/providers/src/obscura-provider/tx-submit/index.ts deleted file mode 100644 index 02d7126e..00000000 --- a/packages/providers/src/obscura-provider/tx-submit/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./tx-submit-provider" diff --git a/packages/providers/src/obscura-provider/tx-submit/mutations.ts b/packages/providers/src/obscura-provider/tx-submit/mutations.ts deleted file mode 100644 index 46ea7385..00000000 --- a/packages/providers/src/obscura-provider/tx-submit/mutations.ts +++ /dev/null @@ -1,167 +0,0 @@ -export function getTxSend(isRawSignature: boolean): string { - if (isRawSignature) { - return ` - mutation sendTx($fee:UInt64!, $amount:UInt64!, - $to: PublicKey!, $from: PublicKey!, $nonce:UInt32, $memo: String, - $validUntil: UInt32, $rawSignature: String!) { - sendPayment( - input: { - fee: $fee, - amount: $amount, - to: $to, - from: $from, - memo: $memo, - nonce: $nonce, - validUntil: $validUntil - }, - signature: {rawSignature: $rawSignature}) { - payment { - __typename - id - hash - kind - nonce - source { - publicKey - } - receiver { - publicKey - } - feePayer { - publicKey - } - validUntil - token - amount - feeToken - fee - memo - } - } - } - ` - } - return ` - mutation sendTx($fee:UInt64!, $amount:UInt64!, - $to: PublicKey!, $from: PublicKey!, $nonce:UInt32, $memo: String, - $validUntil: UInt32, $scalar: String!, $field: String!) { - sendPayment( - input: { - fee: $fee, - amount: $amount, - to: $to, - from: $from, - memo: $memo, - nonce: $nonce, - validUntil: $validUntil - }, - signature: {field: $field, scalar: $scalar}) { - payment { - __typename - id - hash - kind - nonce - source { - publicKey - } - receiver { - publicKey - } - feePayer { - publicKey - } - validUntil - token - amount - feeToken - fee - memo - } - } - } - ` -} - -export function getStakeTxSend(isRawSignature: boolean): string { - if (isRawSignature) { - return ` - mutation stakeTx($fee:UInt64!, - $to: PublicKey!, $from: PublicKey!, $nonce:UInt32, $memo: String, - $validUntil: UInt32, $rawSignature: String!) { - sendDelegation( - input: { - fee: $fee, - to: $to, - from: $from, - memo: $memo, - nonce: $nonce, - validUntil: $validUntil - }, - signature: {rawSignature: $rawSignature}) { - delegation { - __typename - id - hash - kind - nonce - source { - publicKey - } - receiver { - publicKey - } - feePayer { - publicKey - } - validUntil - token - amount - feeToken - fee - memo - } - } - } - ` - } - return ` - mutation stakeTx($fee:UInt64!, - $to: PublicKey!, $from: PublicKey!, $nonce:UInt32, $memo: String, - $validUntil: UInt32, $scalar: String!, $field: String!) { - sendDelegation( - input: { - fee: $fee, - to: $to, - from: $from, - memo: $memo, - nonce: $nonce, - validUntil: $validUntil - }, - signature: {field: $field, scalar: $scalar}) { - delegation { - __typename - id - hash - kind - nonce - source { - publicKey - } - receiver { - publicKey - } - feePayer { - publicKey - } - validUntil - token - amount - feeToken - fee - memo - } - } - } - ` -} diff --git a/packages/providers/src/obscura-provider/tx-submit/tx-submit-provider.ts b/packages/providers/src/obscura-provider/tx-submit/tx-submit-provider.ts deleted file mode 100644 index e7118e05..00000000 --- a/packages/providers/src/obscura-provider/tx-submit/tx-submit-provider.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { - SubmitTxArgs, - SubmitTxResult, - TxSubmitProvider, -} from "@palladxyz/mina-core" - -import { fetchGraphQL } from "../utils/fetch-utils" -import { healthCheck } from "../utils/health-check-utils" -import { getStakeTxSend, getTxSend } from "./mutations" - -export const createTxSubmitProvider = (url: string): TxSubmitProvider => { - const submitTx = async (args: SubmitTxArgs): Promise => { - const isRawSignature = typeof args.signedTransaction.signature === "string" - let mutation - if (args.type === "payment") { - mutation = ` - ${getTxSend(isRawSignature)} - ` - } else { - mutation = ` - ${getStakeTxSend(isRawSignature)} - ` - } - - const variables = { - ...args.transactionDetails, - field: args.signedTransaction.signature.field, - scalar: args.signedTransaction.signature.scalar, - } - - const result = await fetchGraphQL(url, mutation, variables) - - if (!result.ok) { - throw new Error(result.message) - } - - const submissionResult = result.data - - return submissionResult - } - - return { - healthCheck: () => healthCheck(url), - submitTx, - } -} diff --git a/packages/providers/src/obscura-provider/utils/fetch-utils.ts b/packages/providers/src/obscura-provider/utils/fetch-utils.ts deleted file mode 100644 index 33423c77..00000000 --- a/packages/providers/src/obscura-provider/utils/fetch-utils.ts +++ /dev/null @@ -1,35 +0,0 @@ -export const fetchGraphQL = async ( - url: string, - query: string, - variables?: Record, -) => { - try { - const response = await fetch(url, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ query, variables }), - }) - - if (!response.ok) { - return { ok: false, message: `HTTP error! status: ${response.status}` } - } - - const data = await response.json() - - if (data.errors) { - return { - ok: false, - message: `GraphQL error: ${data.errors - .map((e: any) => e.message) - .join(", ")}`, - } - } - - return { ok: true, data: data.data } - } catch (error) { - if (error instanceof Error) { - return { ok: false, message: `Error: ${error.message}` } - } - return { ok: false, message: "An unknown error occurred" } - } -} diff --git a/packages/providers/src/obscura-provider/utils/health-check-utils.ts b/packages/providers/src/obscura-provider/utils/health-check-utils.ts deleted file mode 100644 index bc787698..00000000 --- a/packages/providers/src/obscura-provider/utils/health-check-utils.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { HealthCheckResponse } from "@palladxyz/mina-core" - -import { fetchGraphQL } from "./fetch-utils" - -export const healthCheckQuery = "{ syncStatus }" - -export const healthCheck = async ( - url: string, -): Promise => { - const result = await fetchGraphQL(url, healthCheckQuery) - if (!result.ok) { - return result - } - return { - ok: result.data && result.data.syncStatus === "SYNCED", - message: result.data - ? `Sync status: ${result.data.syncStatus}` - : "No sync status data available", - } -} diff --git a/packages/providers/src/obscura-provider/utils/index.ts b/packages/providers/src/obscura-provider/utils/index.ts deleted file mode 100644 index 68750d70..00000000 --- a/packages/providers/src/obscura-provider/utils/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./fetch-utils" -export * from "./health-check-utils" diff --git a/packages/providers/src/unified-providers/account-info-provider.ts b/packages/providers/src/unified-providers/account-info-provider.ts index 46338593..c3247843 100644 --- a/packages/providers/src/unified-providers/account-info-provider.ts +++ b/packages/providers/src/unified-providers/account-info-provider.ts @@ -6,22 +6,13 @@ import type { } from "@palladxyz/pallad-core" import { createAccountInfoProvider as mn } from "../mina-node" -import { createAccountInfoProvider as ob } from "../obscura-provider" -import { createAccountInfoProvider as op } from "../optimism" import type { ProviderConfig } from "./types" export const createAccountInfoProvider = ( config: ProviderConfig, ): AccountInfoProvider => { // TODO: make the underlyingProvider creation a util function - let underlyingProvider: AccountInfoProvider - if (config.nodeEndpoint.providerName === "mina-node") { - underlyingProvider = mn(config.nodeEndpoint.url) - } else if (config.nodeEndpoint.providerName === "obscura") { - underlyingProvider = ob(config.nodeEndpoint.url) - } else { - underlyingProvider = op(config.nodeEndpoint.url) - } + const underlyingProvider = mn(config.nodeEndpoint.url) const getAccountInfo = async ( args: AccountInfoArgs, diff --git a/packages/providers/src/unified-providers/chain-history-provider.ts b/packages/providers/src/unified-providers/chain-history-provider.ts index 5e934b7a..841b2b8e 100644 --- a/packages/providers/src/unified-providers/chain-history-provider.ts +++ b/packages/providers/src/unified-providers/chain-history-provider.ts @@ -8,7 +8,6 @@ import type { import { createChainHistoryProvider as ms } from "../blockberry-provider" import { createChainHistoryProvider as mn } from "../mina-node" -import { createChainHistoryProvider as op } from "../optimism" import { createChainHistoryProvider as zs } from "../zeko-scan" import type { ProviderConfig } from "./types" @@ -24,8 +23,6 @@ export const createChainHistoryProvider = ( underlyingProvider = ms(config.archiveNodeEndpoint.url) } else if (config.archiveNodeEndpoint.providerName === "zeko-scan") { underlyingProvider = zs(config.archiveNodeEndpoint.url) - } else if (config.archiveNodeEndpoint.providerName === "evm-explorer") { - underlyingProvider = op(config.archiveNodeEndpoint.url) } const transactionsByAddresses = async ( diff --git a/packages/providers/src/unified-providers/node-status-provider.ts b/packages/providers/src/unified-providers/node-status-provider.ts index 74573409..1e2f9ba8 100644 --- a/packages/providers/src/unified-providers/node-status-provider.ts +++ b/packages/providers/src/unified-providers/node-status-provider.ts @@ -5,22 +5,13 @@ import type { } from "@palladxyz/pallad-core" import { createNodeStatusProvider as mn } from "../mina-node" -import { createNodeStatusProvider as ob } from "../obscura-provider" -import { createNodeStatusProvider as op } from "../optimism" import type { ProviderConfig } from "./types" export const createNodeStatusProvider = ( config: ProviderConfig, ): NodeStatusProvider => { // TODO: make the underlyingProvider creation a util function - let underlyingProvider: NodeStatusProvider - if (config.nodeEndpoint.providerName === "mina-node") { - underlyingProvider = mn(config.nodeEndpoint.url) - } else if (config.nodeEndpoint.providerName === "obscura") { - underlyingProvider = ob(config.nodeEndpoint.url) - } else { - underlyingProvider = op(config.nodeEndpoint.url) - } + const underlyingProvider = mn(config.nodeEndpoint.url) const getNodeStatus = async (): Promise => { // Delegate the call to the underlying provider's getAccountInfo method diff --git a/packages/providers/src/unified-providers/tx-submit-provider.ts b/packages/providers/src/unified-providers/tx-submit-provider.ts index 78adfb0f..b2fec9fe 100644 --- a/packages/providers/src/unified-providers/tx-submit-provider.ts +++ b/packages/providers/src/unified-providers/tx-submit-provider.ts @@ -6,17 +6,13 @@ import type { } from "@palladxyz/pallad-core" import { createTxSubmitProvider as mn } from "../mina-node" -import { createTxSubmitProvider as ob } from "../obscura-provider" import type { ProviderConfig } from "./types" export const createTxSubmitProvider = ( config: ProviderConfig, ): TxSubmitProvider => { // TODO: make the underlyingProvider creation a util function - const underlyingProvider = - config.nodeEndpoint.providerName === "mina-node" - ? mn(config.nodeEndpoint.url) - : ob(config.nodeEndpoint.url) + const underlyingProvider = mn(config.nodeEndpoint.url) const submitTx = async (args: SubmitTxArgs): Promise => { // Delegate the call to the underlying provider's getAccountInfo method diff --git a/packages/providers/src/unified-providers/types.ts b/packages/providers/src/unified-providers/types.ts index 6646e3fb..caa73e13 100644 --- a/packages/providers/src/unified-providers/types.ts +++ b/packages/providers/src/unified-providers/types.ts @@ -1,6 +1,6 @@ export type ProviderConfig = { nodeEndpoint: { - providerName: "mina-node" | "obscura" | "evm-rpc" + providerName: "mina-node" | "evm-rpc" url: string } archiveNodeEndpoint: { @@ -8,6 +8,10 @@ export type ProviderConfig = { providerName: "mina-node" | "mina-scan" | "zeko-scan" | "evm-explorer" url: string } + explorer: { + transactionUrl: string + accountUrl: string + } networkName: string networkType: "testnet" | "mainnet" chainId: string diff --git a/packages/providers/test/blockberry/chain-history-provider.test.ts b/packages/providers/test/blockberry/chain-history-provider.test.ts index 262a6e30..b1a1b33e 100644 --- a/packages/providers/test/blockberry/chain-history-provider.test.ts +++ b/packages/providers/test/blockberry/chain-history-provider.test.ts @@ -29,7 +29,6 @@ describe("Mina Explorer Chain History Provider (Functional)", () => { const response = (await provider.transactionsByAddresses({ addresses: [publicKey], })) as Mina.TransactionBody[] - console.log("response", response) // TODO: investigate pagination const transaction = response[0] diff --git a/packages/providers/test/mina-node/l1-mina-node/individual-providers/account-info-provider.test.ts b/packages/providers/test/mina-node/l1-mina-node/individual-providers/account-info-provider.test.ts index 729e55e2..8cd8556a 100644 --- a/packages/providers/test/mina-node/l1-mina-node/individual-providers/account-info-provider.test.ts +++ b/packages/providers/test/mina-node/l1-mina-node/individual-providers/account-info-provider.test.ts @@ -3,7 +3,7 @@ import type { TokenIdMap } from "@palladxyz/mina-core" import { MinaNode } from "../../../../src" const nodeUrl = - process.env.NODE_URL || "https://pallad.co/api/obscura/devnet.json" + process.env.NODE_URL || "https://api.minascan.io/node/devnet/v1/graphql" const publicKey = process.env.PUBLIC_KEY || "B62qkAqbeE4h1M5hop288jtVYxK1MsHVMMcBpaWo8qdsAztgXaHH1xq" @@ -31,7 +31,6 @@ describe("Blockberry Account Info Provider (Functional)", () => { it("should return account info for a valid public key", async () => { // This test now depends on the actual response from the server const response = await provider.getAccountInfo({ publicKey, tokenMap }) - console.log("response", response) expect(response).toHaveProperty("MINA") }) }) diff --git a/packages/providers/test/mina-node/l1-mina-node/individual-providers/chain-history-provider.test.ts b/packages/providers/test/mina-node/l1-mina-node/individual-providers/chain-history-provider.test.ts index 1fa301e6..013cff7c 100644 --- a/packages/providers/test/mina-node/l1-mina-node/individual-providers/chain-history-provider.test.ts +++ b/packages/providers/test/mina-node/l1-mina-node/individual-providers/chain-history-provider.test.ts @@ -2,7 +2,8 @@ import type { Mina } from "@palladxyz/mina-core" import { MinaNode } from "../../../../src" const nodeUrl = - process.env.ARCHIVE_NODE_URL || "https://pallad.co/api/obscura/devnet.json" + process.env.ARCHIVE_NODE_URL || + "https://api.minascan.io/node/devnet/v1/graphql" const publicKey = process.env.PUBLIC_KEY || "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb" diff --git a/packages/providers/test/mina-node/l1-mina-node/individual-providers/node-status-provider.test.ts b/packages/providers/test/mina-node/l1-mina-node/individual-providers/node-status-provider.test.ts index b7b09887..1df615c9 100644 --- a/packages/providers/test/mina-node/l1-mina-node/individual-providers/node-status-provider.test.ts +++ b/packages/providers/test/mina-node/l1-mina-node/individual-providers/node-status-provider.test.ts @@ -1,7 +1,7 @@ import { MinaNode } from "../../../../src" const nodeUrl = - process.env.NODE_URL || "https://pallad.co/api/obscura/devnet.json" + process.env.NODE_URL || "https://api.minascan.io/node/devnet/v1/graphql" // TODO: change this to local network describe("Blockberry Node Status Provider (Functional)", () => { @@ -23,7 +23,6 @@ describe("Blockberry Node Status Provider (Functional)", () => { it("should return account info for a valid public key", async () => { // This test now depends on the actual response from the server const response = await provider.getNodeStatus() - console.log("response", response) }) }) diff --git a/packages/providers/test/mina-node/l1-mina-node/individual-providers/submit-tx-provider.test.ts b/packages/providers/test/mina-node/l1-mina-node/individual-providers/submit-tx-provider.test.ts index a75ba515..745d18ee 100644 --- a/packages/providers/test/mina-node/l1-mina-node/individual-providers/submit-tx-provider.test.ts +++ b/packages/providers/test/mina-node/l1-mina-node/individual-providers/submit-tx-provider.test.ts @@ -1,3 +1,4 @@ +import { utf8ToBytes } from "@noble/hashes/utils" import { type ChainOperationArgs, type FromBip39MnemonicWordsProps, @@ -13,7 +14,7 @@ import type { import { MinaNode } from "../../../../src" const nodeUrl = - process.env.NODE_URL || "https://pallad.co/api/obscura/devnet.json" + process.env.NODE_URL || "https://api.minascan.io/node/devnet/v1/graphql" const publicKey = process.env.PUBLIC_KEY || "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb" @@ -22,8 +23,7 @@ const params = { passphrase: "passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) // TODO: change this to local network // TODO: use different mnemonic for this test -- else there are two duplicate transactions with the unified provider tests describe.skip("Mina Explorer Submit Transaction Provider (Functional)", () => { @@ -128,11 +128,6 @@ describe.skip("Mina Explorer Submit Transaction Provider (Functional)", () => { } // This test now depends on the actual response from the server const response = await provider.submitTx(submitTxArgs) - console.log( - "Mina Explorer Submit Transaction Provider Response", - response, - ) - //expect(response).toHaveProperty('MINA') }) }) diff --git a/packages/providers/test/mina-node/zeko-sequencer/individual-providers/account-info-provider.test.ts b/packages/providers/test/mina-node/zeko-sequencer/individual-providers/account-info-provider.test.ts index 92e4e245..8d8b8052 100644 --- a/packages/providers/test/mina-node/zeko-sequencer/individual-providers/account-info-provider.test.ts +++ b/packages/providers/test/mina-node/zeko-sequencer/individual-providers/account-info-provider.test.ts @@ -6,7 +6,7 @@ const publicKey = process.env.PUBLIC_KEY || "B62qoereGLPUg5RWuoTEGu5CSKnN7AAirwwA2h6J1JHH3RF6wbThXmr" // TODO: change this to local network -describe("Zeko Sequencer Account Info Provider (Functional)", () => { +describe.skip("Zeko Sequencer Account Info Provider (Functional)", () => { let provider: ReturnType let tokenMap: TokenIdMap diff --git a/packages/providers/test/mina-node/zeko-sequencer/individual-providers/submit-tx-provider.test.ts b/packages/providers/test/mina-node/zeko-sequencer/individual-providers/submit-tx-provider.test.ts index d537eb6b..1ddf74fa 100644 --- a/packages/providers/test/mina-node/zeko-sequencer/individual-providers/submit-tx-provider.test.ts +++ b/packages/providers/test/mina-node/zeko-sequencer/individual-providers/submit-tx-provider.test.ts @@ -1,3 +1,4 @@ +import { utf8ToBytes } from "@noble/hashes/utils" import { type ChainOperationArgs, type FromBip39MnemonicWordsProps, @@ -24,11 +25,10 @@ const params = { passphrase: "passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) // TODO: change this to local network // TODO: use different mnemonic for this test -- else there are two duplicate transactions with the unified provider tests -describe("Zeko Sequencer Submit Transaction Provider (Functional)", () => { +describe.skip("Zeko Sequencer Submit Transaction Provider (Functional)", () => { let provider: ReturnType let accountInfoProvider: ReturnType let tokenMap: TokenIdMap @@ -137,10 +137,6 @@ describe("Zeko Sequencer Submit Transaction Provider (Functional)", () => { } // This test now depends on the actual response from the server const response = await provider.submitTx(submitTxArgs) - console.log( - "Zeko Sequencer Submit Transaction Provider Response", - response, - ) //expect(response).toHaveProperty('MINA') }) }) diff --git a/packages/providers/test/mina-node/zeko-sequencer/individual-providers/util.ts b/packages/providers/test/mina-node/zeko-sequencer/individual-providers/util.ts index b9f82393..c7c1f2e6 100644 --- a/packages/providers/test/mina-node/zeko-sequencer/individual-providers/util.ts +++ b/packages/providers/test/mina-node/zeko-sequencer/individual-providers/util.ts @@ -50,5 +50,4 @@ export async function sendMinaOnZeko(nodeUrl: string): Promise { }, } const response = await provider.submitTx(submitTxArgs) - console.log("Zeko Sequencer Submit Transaction Provider Response", response) } diff --git a/packages/providers/test/obscura-provider/individual-providers/account-info-provider.test.ts b/packages/providers/test/obscura-provider/individual-providers/account-info-provider.test.ts deleted file mode 100644 index 51d9e336..00000000 --- a/packages/providers/test/obscura-provider/individual-providers/account-info-provider.test.ts +++ /dev/null @@ -1,41 +0,0 @@ -import type { TokenIdMap } from "@palladxyz/mina-core" - -import { Obscura } from "../../../src/" - -const nodeUrl = - process.env.OBSCURA_URL || "https://pallad.co/api/obscura/devnet.json" -const publicKey = - process.env.PUBLIC_KEY || - "B62qmHMUwiyNfv81NNTumW7Hv8SfRAGLXceGK3ZpyzXgmg2FLqmVhmA" -//'B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb' - -describe("Obscura Account Info Provider (Functional)", () => { - let provider: ReturnType - let tokenMap: TokenIdMap - - beforeEach(() => { - provider = Obscura.createAccountInfoProvider(nodeUrl) - tokenMap = { - MINA: "1", - WETH: "xaU5YZyGmvztCyXRFXnfrsp5E8wUVXmtyXBYrw5PF4WXGwPvme", - } - }) - - describe("healthCheck", () => { - it("should return a health check response", async () => { - // This test depends on the actual response from the server - const response = await provider.healthCheck() - expect(response.ok).toBe(true) - }) - }) - - describe("getAccountInfo", () => { - it("should return account info for a valid public key", async () => { - // This test now depends on the actual response from the server - const response = await provider.getAccountInfo({ publicKey, tokenMap }) - expect(response).toHaveProperty("MINA") - }) - }) - - //TODO: Other tests... -}) diff --git a/packages/providers/test/obscura-provider/individual-providers/chain-history-provider.test.ts b/packages/providers/test/obscura-provider/individual-providers/chain-history-provider.test.ts deleted file mode 100644 index 00c7b113..00000000 --- a/packages/providers/test/obscura-provider/individual-providers/chain-history-provider.test.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { Mina } from "@palladxyz/mina-core" - -import { Obscura } from "../../../src" - -const nodeUrl = - process.env.ARCHIVE_OBSCURA_URL || "https://pallad.co/api/obscura/devnet.json" -const publicKey = - process.env.PUBLIC_KEY || - "B62qkAqbeE4h1M5hop288jtVYxK1MsHVMMcBpaWo8qdsAztgXaHH1xq" - -describe.skip("Obscura Chain History Provider (Functional)", () => { - let provider: ReturnType - - beforeEach(() => { - provider = Obscura.createChainHistoryProvider(nodeUrl) - }) - - describe("healthCheck", () => { - it("should return a health check response", async () => { - // This test depends on the actual response from the server - const response = await provider.healthCheck() - expect(response.ok).toBe(true) - }) - }) - - describe("transactionsByAddresses", () => { - it("should return transaction history for a public key", async () => { - // This test now depends on the actual response from the server - const response = (await provider.transactionsByAddresses({ - addresses: [publicKey], - })) as Mina.TransactionBody[] - // TODO: check why pageResults is undefined - - // TODO: investigate pagination - const transaction = response[0] - - expect(transaction).toHaveProperty("amount") - expect(transaction).toHaveProperty("blockHeight") - expect(transaction).toHaveProperty("dateTime") - expect(transaction).toHaveProperty("failureReason") - expect(transaction).toHaveProperty("fee") - expect(transaction).toHaveProperty("from") - expect(transaction).toHaveProperty("hash") - expect(transaction).toHaveProperty("isDelegation") - expect(transaction).toHaveProperty("kind") - expect(transaction).toHaveProperty("to") - expect(transaction).toHaveProperty("token") - }) - }) - - //TODO: Other tests... -}) diff --git a/packages/providers/test/obscura-provider/individual-providers/submit-tx-provider.test.ts b/packages/providers/test/obscura-provider/individual-providers/submit-tx-provider.test.ts deleted file mode 100644 index 13122a9e..00000000 --- a/packages/providers/test/obscura-provider/individual-providers/submit-tx-provider.test.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { - type ChainOperationArgs, - type FromBip39MnemonicWordsProps, - InMemoryKeyAgent, - type MinaSpecificArgs, - constructTransaction, -} from "@palladxyz/key-management" -import { Mina, type TokenIdMap } from "@palladxyz/mina-core" -import { Network } from "@palladxyz/pallad-core" -import type { - Payment, - SignedLegacy, -} from "mina-signer/dist/node/mina-signer/src/TSTypes" - -import { Obscura } from "../../../src" - -const nodeUrl = - process.env.OBSCURA_URL || "https://pallad.co/api/obscura/devnet.json" - -const publicKey = - process.env.PUBLIC_KEY || - "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb" - -const params = { - passphrase: "passphrase", -} -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) - -describe("Mina Explorer Submit Transaction Provider (Functional)", () => { - let provider: ReturnType - let accountInfoProvider: ReturnType - let tokenMap: TokenIdMap - let networkType: Mina.NetworkType - let agent: InMemoryKeyAgent - let mnemonic: string[] - - beforeEach(() => { - provider = Obscura.createTxSubmitProvider(nodeUrl) - accountInfoProvider = Obscura.createAccountInfoProvider(nodeUrl) - tokenMap = { - MINA: "1", - } - }) - - beforeAll(async () => { - mnemonic = [ - "habit", - "hope", - "tip", - "crystal", - "because", - "grunt", - "nation", - "idea", - "electric", - "witness", - "alert", - "like", - ] - networkType = "testnet" - const agentArgs: FromBip39MnemonicWordsProps = { - getPassphrase: getPassphrase, - mnemonicWords: mnemonic, - mnemonic2ndFactorPassphrase: "", - } - agent = await InMemoryKeyAgent.fromMnemonicWords(agentArgs) - const args: MinaSpecificArgs = { - network: Network.Mina, - accountIndex: 0, - addressIndex: 0, - networkType: networkType, - } - - await agent.restoreKeyAgent(args, getPassphrase) - }) - - describe("healthCheck", () => { - it("should return a health check response", async () => { - // This test depends on the actual response from the server - const response = await provider.healthCheck() - expect(response.ok).toBe(true) - }) - }) - - describe.skip("submitTx", () => { - it("should return the submitted transaction response", async () => { - // fetch account info - const accountInfo = await accountInfoProvider.getAccountInfo({ - publicKey, - tokenMap, - }) - - // construct transaction, sign, and submit - const amount = 1 * 1e9 - const inferredNonce = accountInfo.MINA?.inferredNonce ?? 0 - const transaction: Mina.TransactionBody = { - to: "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb", - from: "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb", - fee: 1 * 1e9, - amount: amount, - nonce: Number(inferredNonce), - memo: "test suite", - type: Mina.TransactionType.PAYMENT, - validUntil: 4294967295, - } - const constructedTx: Mina.ConstructedTransaction = constructTransaction( - transaction, - Mina.TransactionType.PAYMENT, - ) - const credential = agent.serializableData.credentialSubject.contents[0] - const args: ChainOperationArgs = { - operation: "mina_signTransaction", - network: "Mina", - networkType: networkType, - } - - const signedTx = await agent.sign(credential, constructedTx, args) - const submitTxArgs = { - signedTransaction: signedTx as unknown as SignedLegacy, // or SignedLegacy - type: Mina.TransactionType.PAYMENT, - transactionDetails: { - fee: transaction.fee, - to: transaction.to, - from: transaction.from, - nonce: transaction.nonce, - memo: transaction.memo, - amount: transaction.amount, - validUntil: transaction.validUntil, - }, - } - // This test now depends on the actual response from the server - const response = await provider.submitTx(submitTxArgs) - console.log( - "Mina Explorer Submit Transaction Provider Response", - response, - ) - //expect(response).toHaveProperty('MINA') - }) - }) - - //TODO: Other tests... -}) diff --git a/packages/providers/test/obscura-provider/individual-providers/tx-status-provider.test.ts b/packages/providers/test/obscura-provider/individual-providers/tx-status-provider.test.ts deleted file mode 100644 index 54c1d1fe..00000000 --- a/packages/providers/test/obscura-provider/individual-providers/tx-status-provider.test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { TxStatus } from "@palladxyz/mina-core" - -import { Obscura } from "../../../src" - -const nodeUrl = - process.env.OBSCURA_URL || "https://pallad.co/api/obscura/devnet.json" -const txId = - process.env.TX_ID || - "Av0AwusL/+cWVFkjyBFPR9rFNHta+V8q8vHbYTQ3gMyHKyXkcjQACwD//yIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/nFlRZI8gRT0faxTR7WvlfKvLx22E0N4DMhysl5HI0APyAGeuEAAAAAP/nFlRZI8gRT0faxTR7WvlfKvLx22E0N4DMhysl5HI0AIDa/ybX+NBM+IrPyZXk1uTQzqHlzzlbmr1PufF0wAQKDq/ia0vONmdHjndfjXK6Gur0JeSbVaMoxBDS9bm2iQw=" - -describe("Obscura Transaction Status Provider (Functional)", () => { - let provider: ReturnType - - beforeEach(() => { - provider = Obscura.createTransactionStatusProvider(nodeUrl) - }) - - describe("healthCheck", () => { - it("should return a health check response", async () => { - // This test depends on the actual response from the server - const response = await provider.healthCheck() - expect(response.ok).toBe(true) - }) - }) - - describe("checkTxStatus", () => { - it("should return the status of a transaction", async () => { - // This test now depends on the actual response from the server - const response = await provider.checkTxStatus({ ID: txId }) - - // TODO: Check why the query always returns "UNKNOWN" - expect(response).toBe(TxStatus.UNKNOWN) - }) - }) - - //TODO: Other tests... -}) diff --git a/packages/providers/test/open-mina/sync-provider.test.ts b/packages/providers/test/open-mina/sync-provider.test.ts index e68d0254..74e3b097 100644 --- a/packages/providers/test/open-mina/sync-provider.test.ts +++ b/packages/providers/test/open-mina/sync-provider.test.ts @@ -11,9 +11,6 @@ describe("Open Mina Provider", () => { }) test.skip("should return sync stats", async () => { const response = await localNodeSyncStats(url, "?limit=1") - //console.log('Open Mina Provider Response', response) - //console.log('Ledgers', response[0]?.ledgers) - //console.log('Blocks', response[0]?.blocks) expect(response[0]).toHaveProperty("synced") }) }) diff --git a/packages/providers/test/optimism/account-info/account-info-provider.test.ts b/packages/providers/test/optimism/account-info/account-info-provider.test.ts index 4461f837..e9ffd566 100644 --- a/packages/providers/test/optimism/account-info/account-info-provider.test.ts +++ b/packages/providers/test/optimism/account-info/account-info-provider.test.ts @@ -8,8 +8,8 @@ const nodeUrl = const publicKey = process.env.PUBLIC_KEY || "0xA98005e6ce8E62ADf8f9020fa99888E8f107e3C9" -// TODO: change this to local network -describe("Optimism Account Info Provider (Functional)", () => { +// TODO: Enable when we go back to EVM +describe.skip("Optimism Account Info Provider (Functional)", () => { let provider: ReturnType beforeEach(() => { @@ -32,7 +32,6 @@ describe("Optimism Account Info Provider (Functional)", () => { chainInfo: optimismSepolia, } const response = await provider.getAccountInfo(args) - console.log("Optimism AccountInfo Provider Response", response) expect(response).toHaveProperty("ETH") }) }) diff --git a/packages/providers/test/optimism/chain-history/chain-history-provider.test.ts b/packages/providers/test/optimism/chain-history/chain-history-provider.test.ts index 3036ff87..9aadea1c 100644 --- a/packages/providers/test/optimism/chain-history/chain-history-provider.test.ts +++ b/packages/providers/test/optimism/chain-history/chain-history-provider.test.ts @@ -8,7 +8,8 @@ const transactionHash = process.env.TX_HASH || "0x105bf755a57f5f1e70784dd2ce811795e44a443608879e499d459098fb80f560" -describe("Optimism Chain History Provider (Functional)", () => { +// TODO: Enable when we go back to EVM +describe.skip("Optimism Chain History Provider (Functional)", () => { let provider: ReturnType beforeEach(() => { @@ -29,7 +30,6 @@ describe("Optimism Chain History Provider (Functional)", () => { const response = await provider.transactionsByAddresses({ addresses: [publicKey], }) - console.log("Optimism transaction history:", response) expect(response[0]).toHaveProperty("blockNumber") }) }) diff --git a/packages/providers/test/unified-providers/individual-providers/account-info-provider.test.ts b/packages/providers/test/unified-providers/individual-providers/account-info-provider.test.ts index 6f2c5e9a..9c33ece0 100644 --- a/packages/providers/test/unified-providers/individual-providers/account-info-provider.test.ts +++ b/packages/providers/test/unified-providers/individual-providers/account-info-provider.test.ts @@ -3,9 +3,7 @@ import type { TokenIdMap } from "@palladxyz/mina-core" import { type ProviderConfig, createAccountInfoProvider } from "../../../src" const minaNodeApiUrl = - process.env.NODE_URL || "https://pallad.co/api/obscura/devnet.json" -const obscuraUrl = - process.env.OBSCURA_URL || "https://pallad.co/api/obscura/devnet.json" + process.env.NODE_URL || "https://api.minascan.io/node/devnet/v1/graphql" const publicKey = process.env.PUBLIC_KEY || "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb" @@ -14,7 +12,6 @@ describe("Unified Account Info Provider (Functional)", () => { let provider: ReturnType let tokenMap: TokenIdMap let configMinaExplorer: ProviderConfig - let configObscura: ProviderConfig beforeEach(() => { tokenMap = { @@ -50,38 +47,4 @@ describe("Unified Account Info Provider (Functional)", () => { }) }) }) - - describe("Obscura Configuration", () => { - beforeEach(() => { - configObscura = { - nodeEndpoint: { - providerName: "obscura", - url: obscuraUrl, - }, - networkName: "Devnet", - chainId: "...", - } - - provider = createAccountInfoProvider(configObscura) - }) - - describe("healthCheck", () => { - it("should return a health check response", async () => { - // This test depends on the actual response from the server - const response = await provider.healthCheck() - expect(response).toHaveProperty("ok") - }) - }) - - describe("getAccountInfo", () => { - it("should return account info for a valid public key", async () => { - // This test now depends on the actual response from the server - const response = await provider.getAccountInfo({ publicKey, tokenMap }) - console.log("Obscura AccountInfo Provider Response", response) - expect(response).toHaveProperty("MINA") - }) - }) - - //TODO: Other tests... - }) }) diff --git a/packages/providers/test/unified-providers/individual-providers/chain-history-provider.test.ts b/packages/providers/test/unified-providers/individual-providers/chain-history-provider.test.ts index 13086112..ebc55c5d 100644 --- a/packages/providers/test/unified-providers/individual-providers/chain-history-provider.test.ts +++ b/packages/providers/test/unified-providers/individual-providers/chain-history-provider.test.ts @@ -26,6 +26,10 @@ describe.skip("Unified Chain History Provider (Functional)", () => { providerName: "mina-node", url: minaNodeApiUrl, }, + explorer: { + accountUrl: "", + transactionUrl: "", + }, networkName: "Devnet", chainId: "...", } diff --git a/packages/providers/test/unified-providers/individual-providers/submit-tx-provider.test.ts b/packages/providers/test/unified-providers/individual-providers/submit-tx-provider.test.ts deleted file mode 100644 index af9bbcc5..00000000 --- a/packages/providers/test/unified-providers/individual-providers/submit-tx-provider.test.ts +++ /dev/null @@ -1,155 +0,0 @@ -import { - type ChainOperationArgs, - type FromBip39MnemonicWordsProps, - InMemoryKeyAgent, - type MinaSpecificArgs, -} from "@palladxyz/key-management" -import { type AccountInfo, Mina, type TokenIdMap } from "@palladxyz/mina-core" -import { Network, constructTransaction } from "@palladxyz/pallad-core" -import type { - Payment, - SignedLegacy, -} from "mina-signer/dist/node/mina-signer/src/TSTypes" - -import { - type ProviderConfig, - createAccountInfoProvider, - createTxSubmitProvider, -} from "../../../src" - -const obscuraUrl = - process.env.OBSCURA_URL || "https://pallad.co/api/obscura/devnet.json" - -const publicKey = - process.env.PUBLIC_KEY || - "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb" - -const params = { - passphrase: "passphrase", -} -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) - -describe("Unified Submit Transaction Provider (Functional)", () => { - let provider: ReturnType - let accountInfoProvider: ReturnType - let tokenMap: TokenIdMap - let networkType: Mina.NetworkType - let agent: InMemoryKeyAgent - let mnemonic: string[] - let configMinaExplorer: ProviderConfig - //let configObscura: ProviderConfig // TODO: add Obscura tests - - beforeEach(() => { - configMinaExplorer = { - nodeEndpoint: { - providerName: "obscura", - url: obscuraUrl, - }, - networkName: "Devnet", - chainId: "...", - } - provider = createTxSubmitProvider(configMinaExplorer) - accountInfoProvider = createAccountInfoProvider(configMinaExplorer) - tokenMap = { - MINA: "1", - } - }) - - beforeAll(async () => { - mnemonic = [ - "habit", - "hope", - "tip", - "crystal", - "because", - "grunt", - "nation", - "idea", - "electric", - "witness", - "alert", - "like", - ] - networkType = "testnet" - const agentArgs: FromBip39MnemonicWordsProps = { - getPassphrase: getPassphrase, - mnemonicWords: mnemonic, - mnemonic2ndFactorPassphrase: "", - } - agent = await InMemoryKeyAgent.fromMnemonicWords(agentArgs) - const args: MinaSpecificArgs = { - network: Network.Mina, - accountIndex: 0, - addressIndex: 0, - networkType: networkType, - } - - await agent.restoreKeyAgent(args, getPassphrase) - }) - - describe("healthCheck", () => { - it("should return a health check response", async () => { - // This test depends on the actual response from the server - const response = await provider.healthCheck() - expect(response.ok).toBe(true) - }) - }) - // TODO: use different mnemonic for this test -- else there are two duplicate transactions - describe("submitTx", () => { - it("should return the submitted transaction response", async () => { - // fetch account info - const accountInfo = (await accountInfoProvider.getAccountInfo({ - publicKey, - tokenMap, - })) as Record - - // construct transaction, sign, and submit - const amount = 0.5 * 1e9 - const inferredNonce = accountInfo.MINA?.inferredNonce ?? 0 - const transaction: Mina.TransactionBody = { - to: "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb", - from: "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb", - fee: 0.2 * 1e9, - amount: amount, - nonce: Number(inferredNonce), - memo: "test suite", - type: "payment", - validUntil: 4294967295, - } - const constructedTx: Mina.ConstructedTransaction = constructTransaction( - transaction, - Mina.TransactionType.PAYMENT, - ) - const credential = agent.serializableData.credentialSubject.contents[0] - const args: ChainOperationArgs = { - operation: "mina_signTransaction", - network: "Mina", - networkType: networkType, - } - - const signedTx = await agent.sign(credential!, constructedTx, args) - const submitTxArgs = { - signedTransaction: signedTx as unknown as SignedLegacy, // or SignedLegacy - type: Mina.TransactionType.PAYMENT, - transactionDetails: { - fee: transaction.fee, - to: transaction.to, - from: transaction.from, - nonce: transaction.nonce, - memo: transaction.memo, - amount: transaction.amount, - validUntil: transaction.validUntil, - }, - } - // This test now depends on the actual response from the server - const response = await provider.submitTx(submitTxArgs) - console.log( - "Mina Explorer Submit Transaction Provider Response", - response, - ) - }) - }) - - //TODO: Add Obscura tests -}) diff --git a/packages/providers/test/unified-providers/unified-provider.test.ts b/packages/providers/test/unified-providers/unified-provider.test.ts index d1b846fb..72b4ce19 100644 --- a/packages/providers/test/unified-providers/unified-provider.test.ts +++ b/packages/providers/test/unified-providers/unified-provider.test.ts @@ -6,7 +6,7 @@ import { type ProviderConfig, createChainProvider } from "../../src" const explorerUrl = process.env.EXPLORER_URL || "https://minascan.io/devnet/api/" const nodeUrl = - process.env.NODE_URL || "https://pallad.co/api/obscura/devnet.json" + process.env.NODE_URL || "https://api.minascan.io/node/devnet/v1/graphql" const publicKey = process.env.PUBLIC_KEY || "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb" @@ -33,6 +33,10 @@ describe("Unified Chain provider", () => { providerName: "mina-scan", url: explorerUrl, }, + explorer: { + accountUrl: "", + transactionUrl: "", + }, networkName: "Devnet", chainId: "...", networkType: "testnet", @@ -63,10 +67,6 @@ describe("Unified Chain provider", () => { addresses: [publicKey], })) as Tx[] - console.log( - "Mina Explorer Unified.ChainHistory Provider Response", - response, - ) const transaction = response[0] expect(transaction).toHaveProperty("amount") @@ -126,10 +126,6 @@ describe("Unified Chain provider", () => { addresses: [publicKey], })) as Tx[] - console.log( - "Mina Explorer Unified.ChainHistory Provider Response", - response, - ) const transaction = response[0] expect(transaction).toHaveProperty("amount") diff --git a/packages/providers/test/zeko-scan/chain-history-provider.test.ts b/packages/providers/test/zeko-scan/chain-history-provider.test.ts index 6d6d3b08..10528698 100644 --- a/packages/providers/test/zeko-scan/chain-history-provider.test.ts +++ b/packages/providers/test/zeko-scan/chain-history-provider.test.ts @@ -28,7 +28,6 @@ describe("Mina Explorer Chain History Provider (Functional)", () => { const response = (await provider.transactionsByAddresses({ addresses: [publicKey], })) as Mina.TransactionBody[] - console.log("response", response) // TODO: investigate pagination const transaction = response[0] diff --git a/packages/util/package.json b/packages/util/package.json index 3e1c837e..3ecd9765 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -18,14 +18,14 @@ "cleanup": "rimraf node_modules dist .turbo" }, "dependencies": { - "bs58check": "^3.0.1", - "buffer": "^6.0.3", - "mina-signer": "^2.1.1", - "ts-custom-error": "^3.3.1" + "bs58check": "4.0.0", + "buffer": "6.0.3", + "mina-signer": "3.0.7", + "ts-custom-error": "3.3.1" }, "devDependencies": { "@palladxyz/common": "workspace:*", - "@types/mocha": "^10.0.6", - "@types/secp256k1": "^4.0.6" + "@types/mocha": "10.0.7", + "@types/secp256k1": "4.0.6" } } diff --git a/packages/vault/package.json b/packages/vault/package.json index 5d35b42c..4a507fab 100644 --- a/packages/vault/package.json +++ b/packages/vault/package.json @@ -18,28 +18,30 @@ "cleanup": "rimraf node_modules dist .turbo" }, "dependencies": { + "@noble/hashes": "1.4.0", "@palladxyz/key-management": "workspace:*", "@palladxyz/mina-core": "workspace:*", "@palladxyz/pallad-core": "workspace:*", - "@palladxyz/persistence": "workspace:*", "@palladxyz/providers": "workspace:*", "@palladxyz/util": "workspace:*", - "bs58check": "^3.0.1", - "buffer": "^6.0.3", - "immer": "^10.0.3", - "rambda": "^7.5.0", - "redux-logger": "^3.0.6", - "unique-names-generator": "^4.7.1", - "vitest": "^0.34.4", - "zustand": "^4.4.7" + "@plasmohq/storage": "^1.11.0", + "bs58check": "4.0.0", + "buffer": "6.0.3", + "dayjs": "1.11.12", + "immer": "10.1.1", + "rambda": "9.2.1", + "redux-logger": "3.0.6", + "superjson": "2.2.1", + "unique-names-generator": "4.7.1", + "zustand": "4.5.4" }, "devDependencies": { "@palladxyz/common": "workspace:*", - "@testing-library/react": "^14.0.0", - "@types/mocha": "^10.0.1", - "@types/secp256k1": "^4.0.3", - "mina-signer": "^2.1.1", - "msw": "^1.2.2", - "vite": "^5.2.8" + "@testing-library/react": "16.0.0", + "@types/mocha": "10.0.7", + "@types/secp256k1": "4.0.6", + "mina-signer": "3.0.7", + "msw": "2.3.4", + "vite": "5.3.5" } } diff --git a/packages/vault/src/account/accountStore.ts b/packages/vault/src/account/accountStore.ts index 1a1ab318..64dd5521 100644 --- a/packages/vault/src/account/accountStore.ts +++ b/packages/vault/src/account/accountStore.ts @@ -22,7 +22,9 @@ export const accountSlice: StateCreator = (set, get) => ({ set( produce((state) => { if (!state.accounts[network]?.[address]) { - state.accounts[network] = {} + if (!state.accounts[network]) { + state.accounts[network] = {} + } state.accounts[network][address] = { ...initialSingleAccountState, ...state.accounts[network][address], @@ -99,7 +101,6 @@ export const accountSlice: StateCreator = (set, get) => ({ clear: () => { set( produce((state) => { - // TODO: fix this it doesn't work state.accounts = {} as never }), ) diff --git a/packages/vault/src/index.ts b/packages/vault/src/index.ts index 7c8238d8..c925313f 100644 --- a/packages/vault/src/index.ts +++ b/packages/vault/src/index.ts @@ -5,4 +5,4 @@ export * from "./network-info" export * from "./objects" export * from "./utils" export * from "./vault" -export * from "./web-provider" +export * from "./pending-transactions" diff --git a/packages/vault/src/network-info/default.ts b/packages/vault/src/network-info/default.ts index 47fe46ec..3685f412 100644 --- a/packages/vault/src/network-info/default.ts +++ b/packages/vault/src/network-info/default.ts @@ -2,7 +2,7 @@ import type { ProviderConfig } from "@palladxyz/providers" import type { NetworkName } from "./network-info-state" -export const DEFAULT_NETWORK = "Devnet" +export const DEFAULT_NETWORK = process.env.VITE_APP_DEFAULT_NETWORK ?? "Mainnet" /* Note: it is good practice to match the key with the networkName. */ @@ -10,29 +10,41 @@ export const DEFAULT_NETWORK_INFO: Record = { Devnet: { nodeEndpoint: { providerName: "mina-node", - url: "https://pallad.co/api/obscura/devnet.json", + url: + process.env.VITE_APP_MINA_PROXY_DEVNET_URL ?? + "https://api.minascan.io/node/devnet/v1/graphql", }, archiveNodeEndpoint: { providerName: "mina-scan", url: "https://minascan.io/devnet/api/", }, + explorer: { + transactionUrl: "https://minascan.io/devnet/tx/{hash}/txInfo", + accountUrl: "https://minascan.io/devnet/account/{publicKey}", + }, networkName: "Devnet", networkType: "testnet", chainId: "...", // todo: fetch chainId from a provider }, - /*Mainnet: { + Mainnet: { nodeEndpoint: { - providerName: 'mina-node', - url: 'https://pallad.co/api/obscura/mainnet.json' + providerName: "mina-node", + url: + process.env.VITE_APP_MINA_PROXY_MAINNET_URL ?? + "https://api.minascan.io/node/mainnet/v1/graphql", }, archiveNodeEndpoint: { - providerName: 'mina-node', - url: 'https://api.minascan.io/archive/mainnet/v1/graphql' + providerName: "mina-scan", + url: "https://minascan.io/mainnet/api/", + }, + explorer: { + transactionUrl: "https://minascan.io/mainnet/tx/{hash}/txInfo", + accountUrl: "https://minascan.io/mainnet/account/{publicKey}", }, - networkName: 'Mainnet', - networkType: 'mainnet', - chainId: '...' // todo: fetch chainId from a provider - },*/ + networkName: "Mainnet", + networkType: "mainnet", + chainId: "...", // todo: fetch chainId from a provider + }, ZekoDevNet: { nodeEndpoint: { providerName: "mina-node", @@ -42,6 +54,10 @@ export const DEFAULT_NETWORK_INFO: Record = { providerName: "zeko-scan", url: "https://zekoscan.io/devnet", }, + explorer: { + transactionUrl: "https://zekoscan.io/devnet/tx/{hash}/txInfo", + accountUrl: "https://zekoscan.io/devnet/account/{publicKey}", + }, networkName: "ZekoDevNet", networkType: "testnet", chainId: "...", // todo: fetch chainId from a provider @@ -55,6 +71,10 @@ export const DEFAULT_NETWORK_INFO: Record = { providerName: "evm-explorer", url: "https://api-sepolia-optimism.etherscan.io/", }, + explorer: { + transactionUrl: "", + accountUrl: "", + }, networkName: "OptimismSepolia", networkType: "testnet", chainId: "...", // todo: fetch chainId from a provider diff --git a/packages/features/src/common/store/pending-transactions.ts b/packages/vault/src/pending-transactions/index.ts similarity index 86% rename from packages/features/src/common/store/pending-transactions.ts rename to packages/vault/src/pending-transactions/index.ts index 2ff229b3..1889f658 100644 --- a/packages/features/src/common/store/pending-transactions.ts +++ b/packages/vault/src/pending-transactions/index.ts @@ -1,7 +1,7 @@ -import { getLocalPersistence } from "@palladxyz/persistence" -import { isBefore } from "date-fns" +import dayjs from "dayjs" import { create } from "zustand" import { createJSONStorage, persist } from "zustand/middleware" +import { localPersistence } from "../utils" type PendingTransaction = { hash: string @@ -44,15 +44,15 @@ export const usePendingTransactionStore = create()( })), clearExpired() { const { pendingTransactions } = get() - const validPendingTransactions = pendingTransactions.filter( - (tx) => !isBefore(new Date(tx.expireAt), new Date()), + const validPendingTransactions = pendingTransactions.filter((tx) => + dayjs(tx.expireAt).isAfter(dayjs()), ) return set({ pendingTransactions: validPendingTransactions }) }, }), { name: "PalladPendingTransactions", - storage: createJSONStorage(getLocalPersistence), + storage: createJSONStorage(() => localPersistence), }, ), ) diff --git a/packages/vault/src/token-info/default.ts b/packages/vault/src/token-info/default.ts index f2bd2b7a..ceba801b 100644 --- a/packages/vault/src/token-info/default.ts +++ b/packages/vault/src/token-info/default.ts @@ -1,9 +1,5 @@ -import { DEFAULT_NETWORK } from "../network-info" - export const DEFAULT_TOKEN_INFO = { - [DEFAULT_NETWORK]: { MINA: "1" }, - // Note: when a new network is instantiated in - // switchNetwork there are no tokens for this network so the accountInfo - // query will error. We should fix that. + Mainnet: { MINA: "1" }, + Devnet: { MINA: "1" }, ZekoDevNet: { MINA: "1" }, } diff --git a/packages/vault/src/types.ts b/packages/vault/src/types.ts index 6a8255f7..8a8fa1a7 100644 --- a/packages/vault/src/types.ts +++ b/packages/vault/src/types.ts @@ -6,6 +6,7 @@ export type StoreInstance = ReturnType< interface ImportMetaEnv { readonly VITE_APP_LADLE: string + readonly VITE_APP_DEFAULT_NETWORK: string } interface ImportMeta { diff --git a/packages/vault/src/utils/index.ts b/packages/vault/src/utils/index.ts index 468bbbe1..2876151b 100644 --- a/packages/vault/src/utils/index.ts +++ b/packages/vault/src/utils/index.ts @@ -1,2 +1,3 @@ export * from "./current-wallet-utils" export * from "./utils" +export * from "./persistence" diff --git a/packages/persistence/src/web.ts b/packages/vault/src/utils/persistence.ts similarity index 85% rename from packages/persistence/src/web.ts rename to packages/vault/src/utils/persistence.ts index 94700c22..2b174f9d 100644 --- a/packages/persistence/src/web.ts +++ b/packages/vault/src/utils/persistence.ts @@ -1,7 +1,7 @@ import { Storage } from "@plasmohq/storage" import { SecureStorage } from "@plasmohq/storage/secure" import superjson from "superjson" -import type { PersistStorage, StateStorage } from "zustand/middleware" +import type { StateStorage } from "zustand/middleware" superjson.registerCustom( { @@ -24,14 +24,14 @@ const secureStorage = new SecureStorage({ const setVaultSpendingPassword = async () => { const spendingPassword = await sessionData.get("spendingPassword") - return secureStorage.setPassword(spendingPassword) + return secureStorage.setPassword(spendingPassword ?? "") } -export const securePersistence: PersistStorage = { - getItem: async (name): Promise => { +export const securePersistence: StateStorage = { + getItem: async (name): Promise => { await setVaultSpendingPassword() const value = await secureStorage.get(name) - if (!value || value === "undefined") return + if (!value || value === "undefined") return null return superjson.parse(value) }, setItem: async (name, value) => { diff --git a/packages/vault/src/vault/utils/restore-wallet.ts b/packages/vault/src/vault/utils/restore-wallet.ts index 8daac513..f49afc9f 100644 --- a/packages/vault/src/vault/utils/restore-wallet.ts +++ b/packages/vault/src/vault/utils/restore-wallet.ts @@ -2,13 +2,13 @@ import type { ChainDerivationArgs, FromBip39MnemonicWordsProps, } from "@palladxyz/key-management" -import { getSecurePersistence } from "@palladxyz/persistence" import { createChainProvider } from "@palladxyz/providers" import type { CredentialName, SingleCredentialState } from "../../credentials" import type { KeyAgentName, KeyAgents } from "../../keyAgent" import { WalletError } from "../../lib/Errors" import { getRandomAnimalName } from "../../lib/utils" +import { securePersistence } from "../../utils" export async function restoreWalletHelper( get: any, @@ -92,6 +92,6 @@ export async function restoreWalletHelper( }) setCurrentNetworkName(providerConfig.networkName) ensureAccount(network, derivedCredential.address) - getSecurePersistence().setItem("foo", "bar" as any) + securePersistence.setItem("foo", "bar" as any) await _syncWallet() } diff --git a/packages/vault/src/vault/utils/sign.ts b/packages/vault/src/vault/utils/sign.ts index 0a449f25..18614f30 100644 --- a/packages/vault/src/vault/utils/sign.ts +++ b/packages/vault/src/vault/utils/sign.ts @@ -32,7 +32,7 @@ export async function signHelper( const credential = currentWallet.credential.credential as GroupedCredentials let keyAgent: InMemoryKeyAgent | undefined | null - keyAgent = restoreKeyAgent(keyAgentState.name, getPassphrase) + keyAgent = await restoreKeyAgent(keyAgentState.name, getPassphrase) const signed = await keyAgent?.sign(credential, signable, args) keyAgent = null return signed diff --git a/packages/vault/src/vault/vaultStore.ts b/packages/vault/src/vault/vaultStore.ts index 691080ae..43ebfaad 100644 --- a/packages/vault/src/vault/vaultStore.ts +++ b/packages/vault/src/vault/vaultStore.ts @@ -4,10 +4,9 @@ import { PalladNetworkNames, constructTransaction, } from "@palladxyz/pallad-core" -import { getSecurePersistence } from "@palladxyz/persistence" import { produce } from "immer" import { create } from "zustand" -import { type PersistStorage, persist } from "zustand/middleware" +import { createJSONStorage, persist } from "zustand/middleware" import { type AccountStore, accountSlice } from "../account" import { type CredentialStore, credentialSlice } from "../credentials" @@ -16,7 +15,7 @@ import { getRandomAnimalName } from "../lib/utils" import { type NetworkInfoStore, networkInfoSlice } from "../network-info" import { type ObjectStore, objectSlice } from "../objects" import { type TokenInfoStore, tokenInfoSlice } from "../token-info" -import { type WebProviderStore, webProviderSlice } from "../web-provider" +import { securePersistence } from "../utils" import { getBalanceHelper, getCurrentWalletHelper, @@ -40,7 +39,10 @@ const defaultGlobalVaultState: GlobalVaultState = { currentAddressIndex: 0, chain: Network.Mina, walletName: "", - walletNetwork: PalladNetworkNames.MINA_DEVNET, + walletNetwork: + (process.env.VITE_APP_DEFAULT_NETWORK ?? "Mainnet") === "Mainnet" + ? PalladNetworkNames.MINA_MAINNET + : PalladNetworkNames.MINA_DEVNET, knownAccounts: [], chainIds: [], } @@ -52,7 +54,6 @@ export const useVault = create< ObjectStore & NetworkInfoStore & TokenInfoStore & - WebProviderStore & GlobalVaultStore >()( persist( @@ -63,7 +64,6 @@ export const useVault = create< ...objectSlice(set, get, store), ...networkInfoSlice(set, get, store), ...tokenInfoSlice(set, get, store), - ...webProviderSlice(set, get, store), ...defaultGlobalVaultState, // This is now available in the networkInfo store // api.networkInfo.setCurrentNetworkName(networkName) @@ -177,10 +177,7 @@ export const useVault = create< }), { name: "PalladVault", - storage: - import.meta.env.VITE_APP_LADLE === "true" - ? undefined - : (getSecurePersistence() as PersistStorage), + storage: createJSONStorage(() => securePersistence), }, ), ) diff --git a/packages/vault/src/web-provider/README.md b/packages/vault/src/web-provider/README.md deleted file mode 100644 index dbfdce90..00000000 --- a/packages/vault/src/web-provider/README.md +++ /dev/null @@ -1 +0,0 @@ -# Web Provider Store \ No newline at end of file diff --git a/packages/vault/src/web-provider/index.ts b/packages/vault/src/web-provider/index.ts deleted file mode 100644 index 48d901dc..00000000 --- a/packages/vault/src/web-provider/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./web-provider-state" -export * from "./web-provider-store" diff --git a/packages/vault/src/web-provider/web-provider-state.ts b/packages/vault/src/web-provider/web-provider-state.ts deleted file mode 100644 index 47719b2a..00000000 --- a/packages/vault/src/web-provider/web-provider-state.ts +++ /dev/null @@ -1,29 +0,0 @@ -export enum AuthorizationState { - ALLOWED = "ALLOWED", - BLOCKED = "BLOCKED", -} - -export type ZkAppUrl = string - -/** - * Type representing the store's state and actions combined. - * @typedef {Object} WebProviderStore - */ - -export type WebProviderState = { - authorized: Record -} - -export type WebProviderActions = { - mutateZkAppPermission: ({ - origin, - authorizationState, - }: { - origin: ZkAppUrl - authorizationState: AuthorizationState - }) => void - removeZkAppPermission: ({ origin }: { origin: ZkAppUrl }) => void - reset: () => void -} - -export type WebProviderStore = WebProviderState & WebProviderActions diff --git a/packages/vault/src/web-provider/web-provider-store.ts b/packages/vault/src/web-provider/web-provider-store.ts deleted file mode 100644 index 4ef177f7..00000000 --- a/packages/vault/src/web-provider/web-provider-store.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { produce } from "immer" -import { type StateCreator, create } from "zustand" - -import type { - //AuthorizationState, - WebProviderState, - WebProviderStore, -} from "./web-provider-state" - -const initialState: WebProviderState = { - authorized: { - //'https://palladians.github.io': AuthorizationState.ALLOWED - }, -} - -export const webProviderSlice: StateCreator = (set) => ({ - ...initialState, - mutateZkAppPermission: ({ origin, authorizationState }) => { - return set( - produce((state) => { - state.authorized[origin] = authorizationState - }), - ) - }, - removeZkAppPermission: ({ origin }) => { - return set( - produce((state) => { - delete state.authorized[origin] - }), - ) - }, - reset: () => set({ ...initialState }), -}) - -export const useWebProviderVault = create(webProviderSlice) diff --git a/packages/vault/test/account/accountStore.test.ts b/packages/vault/test/account/accountStore.test.ts index 1681a576..bb8b63f7 100644 --- a/packages/vault/test/account/accountStore.test.ts +++ b/packages/vault/test/account/accountStore.test.ts @@ -69,7 +69,6 @@ describe("AccountStore", () => { address, ).accountInfo }) - console.log("finalAccountInfo", finalAccountInfo) expect(finalAccountInfo).toEqual(accountInfo) }) diff --git a/packages/vault/test/keyAgent/keyAgentStore.test.ts b/packages/vault/test/keyAgent/keyAgentStore.test.ts index b66ce536..10f97953 100644 --- a/packages/vault/test/keyAgent/keyAgentStore.test.ts +++ b/packages/vault/test/keyAgent/keyAgentStore.test.ts @@ -1,3 +1,4 @@ +import { utf8ToBytes } from "@noble/hashes/utils" import { mnemonic } from "@palladxyz/common" import { type ChainOperationArgs, @@ -20,8 +21,7 @@ const PREGENERATED_MNEMONIC = mnemonic const params = { passphrase: "passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) describe("KeyAgentStore", () => { let randomMnemonic: string[] @@ -175,7 +175,7 @@ describe("KeyAgentStore", () => { expectedGroupedCredentials.address, ) }) - }) + }, 30000) it("should sign a payload with a key agent", async () => { const { result } = renderHook(() => useVault()) await act(async () => { @@ -197,7 +197,6 @@ describe("KeyAgentStore", () => { getPassphrase, ) - console.log("groupedCredential: ", groupedCredential) // signable payload const message: Mina.MessageBody = { message: "Hello, Bob!", @@ -215,12 +214,11 @@ describe("KeyAgentStore", () => { message, operations, ) - console.log("signedMessage: ", signedMessage) }) // check that key agent is in the store const keyAgent = result.current.keyAgents[keyAgentName] expect(keyAgent?.keyAgent).toBeDefined() expect(true).toEqual(true) - }) + }, 30000) }) diff --git a/packages/vault/test/network-info/network-info-store.test.ts b/packages/vault/test/network-info/network-info-store.test.ts index 9e0fd73a..7554d56a 100644 --- a/packages/vault/test/network-info/network-info-store.test.ts +++ b/packages/vault/test/network-info/network-info-store.test.ts @@ -30,6 +30,10 @@ describe("CredentialStore", () => { providerName: "mina-scan", url: mockUrl, }, + explorer: { + accountUrl: "", + transactionUrl: "", + }, networkName: networkNameMainnet, networkType: networkType, chainId: "...", @@ -43,6 +47,10 @@ describe("CredentialStore", () => { providerName: "mina-node", url: mockUrl, }, + explorer: { + accountUrl: "", + transactionUrl: "", + }, networkName: networkNameDevnet, networkType: networkType, chainId: "...", @@ -56,6 +64,10 @@ describe("CredentialStore", () => { providerName: "evm-explorer", url: "https://ropsten.archive.ethereum.org", }, + explorer: { + accountUrl: "", + transactionUrl: "", + }, networkName: networkNameRopsten, networkType: networkType, chainId: "3", @@ -102,7 +114,7 @@ describe("CredentialStore", () => { // check total number of networks const networks = result.current.allNetworkInfo() expect(networks.length).toEqual( - Object.keys(DEFAULT_NETWORK_INFO).length + 2, + Object.keys(DEFAULT_NETWORK_INFO).length + 1, ) }) it("should add two networks and set mainnet as current network", () => { @@ -123,7 +135,7 @@ describe("CredentialStore", () => { }) const chainIds = result.current.getChainIds() expect(chainIds.length).toEqual( - Object.keys(DEFAULT_NETWORK_INFO).length + 2, + Object.keys(DEFAULT_NETWORK_INFO).length + 1, ) }) it("should update existing network info", () => { diff --git a/packages/vault/test/wallet/walletFlow.test.ts b/packages/vault/test/wallet/walletFlow.test.ts index 0ea141f5..bb1efd82 100644 --- a/packages/vault/test/wallet/walletFlow.test.ts +++ b/packages/vault/test/wallet/walletFlow.test.ts @@ -1,3 +1,4 @@ +import { utf8ToBytes } from "@noble/hashes/utils" import { mnemonic } from "@palladxyz/common" import type { ChainDerivationArgs, @@ -24,8 +25,7 @@ const PREGENERATED_MNEMONIC = mnemonic const params = { passphrase: "passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) describe("WalletTest", () => { let agentArgs: FromBip39MnemonicWordsProps @@ -87,11 +87,8 @@ describe("WalletTest", () => { // check if chainId has been set and not '...' const chainId = result.current.getChainId() - console.log("chainId: ", chainId) const networkInfos = result.current.getNetworkInfo(defaultNetwork) - console.log("networkInfos: ", networkInfos) const currentNetworkInfo = result.current.getCurrentNetworkInfo() - console.log("currentNetworkInfo: ", currentNetworkInfo) expect(chainId).not.toEqual("...") // check if first credential is in the store @@ -104,14 +101,12 @@ describe("WalletTest", () => { // check current network info is of the expected network const currentNetwork = result.current.getCurrentNetwork() - console.log("currentNetwork: ", currentNetwork) expect(currentNetwork).toEqual(defaultNetwork) // check if accountInfo is in the store const accountInfo = result.current.getAccountsInfo( defaultNetwork, expectedAddress, ) - console.log("accountInfo", accountInfo) expect(accountInfo).toBeDefined() act(() => { result.current.setObject({ @@ -125,10 +120,8 @@ describe("WalletTest", () => { [], ) expect(allObjects.length).toEqual(2) - console.log("all credentials", allObjects) // get keyAgentName const currentKeyAgentName = result.current.keyAgentName - console.log("keyAgentName", currentKeyAgentName) expect(currentKeyAgentName).toBe(keyAgentName) - }) + }, 30000) }) diff --git a/packages/vault/tsup.config.ts b/packages/vault/tsup.config.ts index 8449a56d..20b8e840 100644 --- a/packages/vault/tsup.config.ts +++ b/packages/vault/tsup.config.ts @@ -7,5 +7,9 @@ export default defineConfig([ { ...baseTsupConfig, name: packageJson.name, + env: { + VITE_APP_DEFAULT_NETWORK: + process.env.VITE_APP_DEFAULT_NETWORK ?? "Mainnet", + }, }, ]) diff --git a/packages/web-provider/package.json b/packages/web-provider/package.json index 68769f50..72d55976 100644 --- a/packages/web-provider/package.json +++ b/packages/web-provider/package.json @@ -18,22 +18,26 @@ "cleanup": "rimraf node_modules dist .turbo" }, "dependencies": { + "@noble/hashes": "1.4.0", "@palladxyz/key-management": "workspace:*", "@palladxyz/mina-core": "workspace:*", "@palladxyz/providers": "workspace:*", - "@palladxyz/persistence": "workspace:*", "@palladxyz/vault": "workspace:*", - "mina-signer": "^2.1.1", - "superjson": "^2.2.1", - "vitest": "^1.1.0", - "webextension-polyfill": "^0.10.0" + "dayjs": "1.11.12", + "eventemitter3": "5.0.1", + "mina-signer": "3.0.7", + "superjson": "2.2.1", + "webext-bridge": "6.0.1", + "webextension-polyfill": "0.12.0", + "zod": "3.23.8" }, "devDependencies": { "@palladxyz/common": "workspace:*", - "@testing-library/react": "^14.1.2", - "@types/chrome": "^0.0.254", - "@types/mocha": "^10.0.6", - "@types/node": "^20.10.5", - "@types/webextension-polyfill": "^0.10.7" + "@testing-library/react": "16.0.0", + "@types/chrome": "0.0.269", + "@types/mocha": "10.0.7", + "@types/node": "22.0.0", + "@types/webextension-polyfill": "0.10.7", + "type-fest": "4.23.0" } } diff --git a/packages/web-provider/src/mina-network/index.ts b/packages/web-provider/src/mina-network/index.ts index 8111dfa5..f9ce97ae 100644 --- a/packages/web-provider/src/mina-network/index.ts +++ b/packages/web-provider/src/mina-network/index.ts @@ -1,3 +1,4 @@ export * from "./constants" export * from "./mina-provider" export * from "./types" +export * as Validation from "./validation" diff --git a/packages/web-provider/src/mina-network/mina-provider.ts b/packages/web-provider/src/mina-network/mina-provider.ts index 6a0580bd..f08566f5 100644 --- a/packages/web-provider/src/mina-network/mina-provider.ts +++ b/packages/web-provider/src/mina-network/mina-provider.ts @@ -1,19 +1,22 @@ -import { EventEmitter } from "node:events" +import { utf8ToBytes } from "@noble/hashes/utils" import type { ChainOperationArgs, + ChainSignablePayload, MinaSignablePayload, } from "@palladxyz/key-management" -import type { BorrowedTypes, Mina } from "@palladxyz/mina-core" -import type { SearchQuery } from "@palladxyz/vault" - -import { hasObjectProps, hasQueryAndProps } from "../utils" +import { + type BorrowedTypes, + type Mina, + TransactionType, +} from "@palladxyz/mina-core" +import EventEmitter from "eventemitter3" +import type { Validation } from "." import { showUserPrompt } from "../utils/prompts" import { type VaultService, vaultService } from "../vault-service" import type { ChainProviderOptions, ChainRpcConfig, ConnectOps, - Params, ProviderConnectInfo, RequestArguments, } from "../web-provider-types" @@ -27,13 +30,6 @@ import type { IMinaProviderBase, IMinaProviderEvents, MinaRpcProviderMap, - requestAddChain, - requestData, - requestOffchainSession, - requestSignableData, - requestSignableTransaction, - requestSwitchChain, - requestingStateData, } from "./types" import { serializeField, serializeGroup, serializeTransaction } from "./utils" @@ -106,9 +102,6 @@ export class MinaProvider implements IMinaProvider { opts: ChainProviderOptions, unauthorizedMethods: string[] = [], ) { - // Here, you'd set up any initial state or connections you need. - // For example, you could set up the rpcConfig: - this.rpc = { chains: opts.chains || [], optionalChains: opts.optionalChains || [], @@ -121,21 +114,15 @@ export class MinaProvider implements IMinaProvider { optionalEvents: OPTIONAL_EVENTS, // Use optional events from constants } - // get the wallet's current chain id - const chainId = await this.vault.getChainId() - this.chainId = chainId - // set the rpc provider - // TODO: - //this.rpcProviders = vaultService.getChainIds() ?? {} + this.chainId = await this.vault.getChainId() } async unlockWallet() { const passphrase = await this.userPrompt("password", { title: "Unlock your wallet", }) - if (passphrase === null) { - throw new Error("User denied the request for passphrase.") - } + if (passphrase === null) + throw this.createProviderRpcError(4100, "Unauthorized") await this.vault.unlockWallet(passphrase as string) } @@ -147,21 +134,14 @@ export class MinaProvider implements IMinaProvider { } private createProviderRpcError(code: number, message: string) { - return { - name: "ProviderRpcError", - message, - code, - // Include any additional data if it is required - } + const error = new Error(`${code} - ${message}`) + error.name = "ProviderRpcError" + return error } // TODO: add ConnectOps as an optional parameter public async enable({ origin }: { origin: string }) { // check if wallet is locked first await this.checkAndUnlock() - // Implement the logic to prompt the user to connect to the wallet - // For example, you could open a modal and wait for the user to click 'Connect' - // Step 0: Prompt user for confirmation - // Note: all user prompts should define the inputType like this 'confirmation' const userConfirmed = await this.userPrompt("confirmation", { title: "Connection request.", payload: JSON.stringify({ origin }), @@ -170,7 +150,7 @@ export class MinaProvider implements IMinaProvider { // should this emit an error event? throw this.createProviderRpcError(4001, "User Rejected Request") } - this.connect({ origin }) + await this.connect({ origin }) // TODO: perform 'mina_requestAccounts' method return await this.vault.getAccounts() } @@ -217,15 +197,14 @@ export class MinaProvider implements IMinaProvider { public async connect(opts: ConnectOps) { try { // Step 1: Check if already connected. - if (await this.vault.getEnabled({ origin: opts.origin })) { - throw new Error("Already connected.") - } + if (await this.vault.getEnabled({ origin: opts.origin })) + throw this.createProviderRpcError(4100, "Already enabled.") // Step 2: Attempt to connect to a chain. if (!opts.chains) { // Try to connect to the default chain -- this is actually the current chain the wallet is connected to not the default chain const defaultChainId = await this.vault.getChainId() if (!defaultChainId) { - throw new Error("Unable to connect: Default chain ID is undefined.") + throw this.createProviderRpcError(4100, "Chain ID is undefined.") } this.chainId = defaultChainId } else if (opts.chains && opts.chains.length > 0) { @@ -237,7 +216,7 @@ export class MinaProvider implements IMinaProvider { //this.connected = true // this is redundant because we're setting the connected flag in the next step await this.vault.setEnabled({ origin: opts.origin }) // Step 5: Emit a 'connect' event. - const connectInfo: ProviderConnectInfo = { chainId: this.chainId } + const connectInfo: ProviderConnectInfo = { chainId: this.chainId ?? "" } //this.events.emit('connect', connectInfo) if (this.externalEmitter) { this.externalEmitter.emit("connect", connectInfo) @@ -297,16 +276,33 @@ export class MinaProvider implements IMinaProvider { } } - public async request( - args: RequestArguments, - chain?: string | undefined, - ): Promise { - // Step 1: Check if request instantiator is in blocked list. - const params = args.params as Params - let requestOrigin = "" + private async sign({ + signable, + operationArgs, + passphrase, + }: { + signable: ChainSignablePayload + operationArgs: ChainOperationArgs + passphrase: string + }) { + try { + return await this.vault.sign(signable, operationArgs, () => + utf8ToBytes(passphrase), + ) + } catch (error) { + throw this.createProviderRpcError(4100, "Unauthorized") + } + } - if (params.data?.origin) { - requestOrigin = params.data.origin + public async request(args: RequestArguments): Promise { + // Step 1: Check if request instantiator is in blocked list. + const { params } = args + const requestOrigin = params.origin + if (!requestOrigin) { + throw this.createProviderRpcError( + 4100, + "Unauthorized - Request lacks origin.", + ) } if (await this.vault.isBlocked({ origin: requestOrigin })) { throw this.createProviderRpcError( @@ -326,194 +322,50 @@ export class MinaProvider implements IMinaProvider { "Unauthorized - The requested method and/or account has not been authorized by the user.", ) } - // In a method that requires a specific chain connection - // TODO: handle when chain is not provided -- handle other methods with optional args - if (this.chainId !== chain && chain !== undefined) { - // TODO: prompt the user they're on the wrong chain and ask if they want to switch - // maybe this error should be handled in the universal-provider? - // check if the chain is supported by Pallad - const chains = (await this.vault.getChainIds()) ?? [] - const validChain = chains?.includes(chain) - if (!validChain) { - throw this.createProviderRpcError(4901, "Chain Disconnected") - } - const changeChain = await this.userPrompt("confirmation", { - title: `You are on the wrong chain. Do you want to switch to ${chain}?`, - }) - if (changeChain) { - // TODO: switch to the correct chain - await this.vault.switchNetwork(chain) - this.chainId = chain - this.onChainChanged(chain!) - } else { - // if they don't, throw an error - throw this.createProviderRpcError(4901, "Chain Disconnected") - } - } const enabled = await this.vault.getEnabled({ origin: requestOrigin }) - if (!enabled) { - await this.enable({ origin: requestOrigin }) - } - // TODO: Add prompt confirmation for signing and broadcasting - // // Prompt user for confirmation based on the method type - // // what scenarios would we need to prompt the user? - // const userConfirmed = await this.userPrompt( - // `Do you want to execute ${args.method}?`, - // 'confirmation' - // ) - // if (!userConfirmed) { - // throw this.createProviderRpcError(4001, 'User Rejected Request') - // } + if (!enabled) await this.enable({ origin: requestOrigin }) switch (args.method) { case "mina_accounts": return (await this.vault.getAccounts()) as unknown as T case "mina_addChain": { - const userConfirmed = await this.userPrompt("confirmation", { - title: "Request to add a new Mina chain.", - payload: JSON.stringify(args.params), - }) - - if (!userConfirmed) { - // should this emit an error event? - throw this.createProviderRpcError(4001, "User Rejected Request") - } - - /* - should recieve params of type: - "params": - { - "chainId": "abc", - "chainName": "Zeko", - "nodeUrl": "https://rpc.zeko.com", - "nativeCurrency": { - "name": "MINA", - "symbol": "MINA", - "decimals": 18 - }, - "archiveNodeUrl": "https://zeko-explorer.com/" - } - - */ - const data = args.params as requestAddChain - const addChainResponse = await this.vault.addChain(data.data) - return addChainResponse as unknown as T + throw this.createProviderRpcError(4200, "Unsupported Method") } case "mina_switchChain": { - { - const userConfirmed = await this.userPrompt("confirmation", { - title: "Request to switch to a different Mina chain.", - payload: JSON.stringify(args.params), - }) - - if (!userConfirmed) { - // should this emit an error event? - throw this.createProviderRpcError(4001, "User Rejected Request") - } - - /* - should recieve params of type: - "params": - { - "chainId": "abc", - } - - */ - const data = args.params as requestSwitchChain - if (!data.data.chainId) { - throw new Error("chainId is undefined in switchChain") - } - const addChainResponse = await this.vault.switchChain( - data.data.chainId, - ) - return addChainResponse as unknown as T - } + throw this.createProviderRpcError(4200, "Unsupported Method") } case "mina_requestNetwork": { { const userConfirmed = await this.userPrompt("confirmation", { title: "Request to current Mina network information.", - payload: JSON.stringify(args.params), + payload: JSON.stringify(params), }) - if (!userConfirmed) { - // should this emit an error event? throw this.createProviderRpcError(4001, "User Rejected Request") } - - /* - should recieve params of type: - "params": - { - "chainId": "abc", - } - - */ const requestNetworkResponse = await this.vault.requestNetwork() return requestNetworkResponse as unknown as T } } - case "experimental_requestSession": { - // check if wallet is locked first - const passphrase = await this.userPrompt("password", { - title: "Experimental Request for Session Key Creation", - payload: JSON.stringify(args.params), - }) - if (passphrase === null) { - throw new Error("User denied the request for passphrase.") - } - const operationArgs: ChainOperationArgs = { - // must be signFields because the wallet should sign the merkle root of the session data tree - operation: "mina_signFields", - network: "Mina", - // TODO: make this testnet configurable - networkType: "testnet", - } - - const requestData = args.params as requestOffchainSession - const signable = requestData.data - .sessionMerkleRoot as MinaSignablePayload - return (await this.vault.sign( - signable, - operationArgs, - () => - new Promise((resolve) => - resolve(Buffer.from(passphrase as string)), - ), - )) as unknown as T - } case "mina_sign": case "mina_createNullifier": case "mina_signFields": case "mina_signTransaction": { - // check if wallet is locked first - const passphrase = await this.userPrompt("password", { + const passphrase = await this.userPrompt("password", { title: "Signature request", - payload: JSON.stringify(args.params), + payload: JSON.stringify(params), }) - if (passphrase === null) { - throw new Error("User denied the request for passphrase.") - } - // TODO: handle incorrect passphrase - /* - looks like the signable is actually of type: - { - data: { message: 'hi'}, - id: 'mina_sign', - .... - } - */ + if (passphrase === null) + throw this.createProviderRpcError(4100, "Unauthorized.") const operationArgs: ChainOperationArgs = { operation: args.method, network: "Mina", - // TODO: make this testnet configurable - networkType: "testnet", } if (args.method === "mina_signFields") { - const requestData = args.params as requestData + const requestData = params as Validation.SignFieldsData const signable = { - fields: requestData.data.map((item) => { + fields: requestData.fields.map((item: any) => { // Convert to BigInt only if the item is a number if (typeof item === "number") { return BigInt(item) @@ -522,15 +374,11 @@ export class MinaProvider implements IMinaProvider { return item }), } as MinaSignablePayload - const signedResponse = (await this.vault.sign( + const signedResponse = (await this.sign({ signable, operationArgs, - () => - new Promise((resolve) => - // TODO: make sure we handle scenarios where the password is provided and not just boolean 'confirmed' - resolve(Buffer.from(passphrase as string)), - ), - )) as Mina.SignedFields + passphrase, + })) as Mina.SignedFields // serialise the response if mina_signFields const serializedResponseData = signedResponse.data.map((item) => { // Convert to BigInt only if the item is a number @@ -547,9 +395,9 @@ export class MinaProvider implements IMinaProvider { return seriliasedResponse as unknown as T } if (args.method === "mina_createNullifier") { - const requestData = args.params as requestData + const requestData = params as Validation.CreateNullifierData const signable = { - message: requestData.data.map((item) => { + message: requestData.message.map((item) => { // Convert to BigInt only if the item is a number if (typeof item === "number") { return BigInt(item) @@ -558,14 +406,11 @@ export class MinaProvider implements IMinaProvider { return item }), } as MinaSignablePayload - const signedResponse = (await this.vault.sign( + const signedResponse = (await this.sign({ signable, operationArgs, - () => - new Promise((resolve) => - resolve(Buffer.from(passphrase as string)), - ), - )) as BorrowedTypes.Nullifier + passphrase, + })) as BorrowedTypes.Nullifier // serialise the response if mina_createNullifier const serializedResponseData = { publicKey: serializeGroup(signedResponse.publicKey), @@ -583,108 +428,76 @@ export class MinaProvider implements IMinaProvider { return serializedResponseData as unknown as T } if (args.method === "mina_signTransaction") { - const requestData = args.params as requestSignableTransaction - const signable = serializeTransaction( - requestData.data.transaction, - ) as MinaSignablePayload - return (await this.vault.sign( + const requestData = params as Validation.SignTransactionData + const signable = serializeTransaction({ + ...requestData.transaction, + memo: requestData.transaction.memo ?? "", + validUntil: requestData.transaction.validUntil ?? 4294967295, + amount: requestData.transaction.amount ?? 0, + type: TransactionType.PAYMENT, + }) as MinaSignablePayload + return (await this.sign({ signable, operationArgs, - () => - new Promise((resolve) => - // TODO: make sure we handle scenarios where the password is provided and not just boolean 'confirmed' - resolve(Buffer.from(passphrase as string)), - ), - )) as unknown as T + passphrase, + })) as unknown as T } - const requestData = args.params as requestSignableData - const signable = requestData.data as MinaSignablePayload - return (await this.vault.sign( - signable, + const requestData = params as Validation.SignMessageData + return (await this.sign({ + signable: requestData, operationArgs, - () => - new Promise((resolve) => - // TODO: make sure we handle scenarios where the password is provided and not just boolean 'confirmed' - resolve(Buffer.from(passphrase as string)), - ), - )) as unknown as T + passphrase, + })) as unknown as T } case "mina_getBalance": return (await this.vault.getBalance()) as unknown as T case "mina_getState": { - // check if wallet is locked first + const { query, props } = params as Validation.GetStateData + const credentials = await this.vault.getState(query as any, props) const confirmation = await this.userPrompt("confirmation", { title: "Credential read request", - payload: JSON.stringify(args.params), + payload: JSON.stringify({ ...params, credentials }), }) if (!confirmation) { throw this.createProviderRpcError(4001, "User Rejected Request") } - // TODO: handle incorrect passphrase - const requestData = args.params as requestingStateData - if (!requestData.data || !hasQueryAndProps(requestData.data)) { - // Handle the case where the necessary properties do not exist - return {} as unknown as T - } - const { query, props } = requestData.data as unknown as { - query: SearchQuery - props: string[] - } - return (await this.vault.getState(query, props)) as unknown as T + return credentials as unknown as T } case "mina_setState": { const confirmation = await this.userPrompt("confirmation", { title: "Credential write request", - payload: JSON.stringify(args.params), + payload: JSON.stringify(params), }) if (!confirmation) { throw this.createProviderRpcError(4001, "User Rejected Request") } - const requestData = args.params as requestingStateData - if (!requestData.data || !hasObjectProps(requestData.data)) { - // Handle the case where the necessary properties do not exist - return false as unknown as T - } - - return (await this.vault.setState(requestData.data)) as unknown as T + const requestData = params as Validation.SetStateData + await this.vault.setState(requestData as any) + return { success: true } as unknown as T } case "mina_chainId": { return (await this.vault.getChainId()) as unknown as T } + case "mina_sendTransaction": { + const requestData = params as Validation.SendTransactionData + const passphrase = await this.userPrompt("password", { + title: "Send transaction request", + payload: JSON.stringify(params), + }) + if (passphrase === null) + throw this.createProviderRpcError(4100, "Unauthorized.") + return this.vault.submitTransaction(requestData) as unknown as T + } + default: throw this.createProviderRpcError(4200, "Unsupported Method") } } - private onChainChanged(chainId: string) { - // updated the chainId - this.chainId = chainId - if (this.externalEmitter) { - this.externalEmitter.emit("chainChanged", chainId) - } else { - this.events.emit("chainChanged", chainId) - } - } - // The set of accounts only changes when the user - // 1. adds a new account - // 2. removes an account - // We can listen to the vaultService for changes to the accounts - // private onAccountsChanged(): void { - // // listen to the vaultService for changes to the accounts - // // e.g. vaultService.events.on('accountsChanged', this.updateAccounts) - // const accounts = vaultService.getAccounts() - // this.accounts = accounts - // if (this.externalEmitter) { - // this.externalEmitter.emit('accountsChanged', accounts) - // } else { - // this.events.emit('accountsChanged', accounts) - // } - // } - protected getRpcConfig(ops: ChainProviderOptions) { return { chains: ops.chains || [], @@ -701,6 +514,6 @@ export class MinaProvider implements IMinaProvider { protected getRpcUrl(chainId: string /*, projectId?: string*/) { const providedRpc = this.rpc.rpcMap?.[chainId] - return providedRpc! + return providedRpc } } diff --git a/packages/web-provider/src/mina-network/types.ts b/packages/web-provider/src/mina-network/types.ts index fdc6b924..c189f172 100644 --- a/packages/web-provider/src/mina-network/types.ts +++ b/packages/web-provider/src/mina-network/types.ts @@ -13,42 +13,46 @@ import type { } from "../web-provider-types" import type { MinaProvider } from "./mina-provider" -export type requestSignableData = { +export type RequestSignableData = { data: MinaSignablePayload } -export interface offchainSessionAllowedMethods { +export interface OffchainSessionAllowedMethods { contractAddress: string method: string } -export type requestOffchainSession = { +export type RequestOffchainSession = { data: { sessionKey: string expirationTime: string - allowedMethods: offchainSessionAllowedMethods[] + allowedMethods: OffchainSessionAllowedMethods[] sessionMerkleRoot: MinaSignablePayload } } -export type requestSignableTransaction = { +export type RequestSignableTransaction = { data: { transaction: MinaSignablePayload } } -export type requestData = { - data: number[] | bigint[] +export type RequestDataFields = { + data: { + fields: number[] | bigint[] + } } -export type requestAddChain = { - data: ProviderConfig +export type RequestDataNullifier = { + data: { + message: number[] | bigint[] + } } -export type requestSwitchChain = { - data: { chainId: string } +export type RequestAddChain = { + data: ProviderConfig } -export type requestingStateData = { - data: RequestArguments +export type RequestSwitchChain = { + data: { chainId: string } } export interface MinaRpcProviderMap { diff --git a/packages/web-provider/src/mina-network/validation.ts b/packages/web-provider/src/mina-network/validation.ts new file mode 100644 index 00000000..28aa3204 --- /dev/null +++ b/packages/web-provider/src/mina-network/validation.ts @@ -0,0 +1,92 @@ +import { z } from "zod" + +const literalSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]) +type Literal = z.infer +type Json = Literal | { [key: string]: Json } | Json[] +const jsonSchema: z.ZodType = z.lazy(() => + z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)]), +) + +export const originSchema = z.string().url() + +export type Origin = z.infer + +export const requestSchema = z + .object({ + origin: originSchema, + }) + .strict() + +export type RequestData = z.infer + +export const signFieldsRequestSchema = requestSchema.extend({ + fields: z.array(z.coerce.number()), +}) + +export type SignFieldsData = z.infer + +export const signMessageRequestSchema = requestSchema.extend({ + message: z.string(), +}) + +export type SignMessageData = z.infer + +export const createNullifierRequestSchema = requestSchema.extend({ + message: z.array(z.coerce.number()), +}) + +export type CreateNullifierData = z.infer + +export const publicKeySchema = z.string().length(55) + +export const transactionSchema = z + .object({ + to: publicKeySchema, + from: publicKeySchema, + fee: z.coerce.number(), + nonce: z.coerce.number(), + memo: z.string().optional(), + validUntil: z.coerce.number().optional(), + amount: z.coerce.number().optional(), + }) + .strict() + +export const signatureSchema = z + .object({ + field: z.string(), + scalar: z.string(), + }) + .strict() + +export const signedTransactionSchema = z.object({ + data: transactionSchema, + publicKey: publicKeySchema, + signature: signatureSchema, +}) + +export const signTransactionRequestSchema = requestSchema.extend({ + transaction: transactionSchema.strict(), +}) + +export type SignTransactionData = z.infer + +export const sendTransactionRequestSchema = requestSchema.extend({ + signedTransaction: signedTransactionSchema.strict(), + transactionType: z.enum(["payment", "delegation", "zkapp"]), +}) + +export type SendTransactionData = z.infer + +export const setStateRequestSchema = requestSchema.extend({ + objectName: z.string(), + object: jsonSchema, +}) + +export type SetStateData = z.infer + +export const getStateRequestSchema = requestSchema.extend({ + query: jsonSchema, + props: z.array(z.string()), +}) + +export type GetStateData = z.infer diff --git a/packages/web-provider/src/universal-provider/types.ts b/packages/web-provider/src/universal-provider/types.ts index a91ce701..5e505b65 100644 --- a/packages/web-provider/src/universal-provider/types.ts +++ b/packages/web-provider/src/universal-provider/types.ts @@ -1,4 +1,4 @@ -import type { EventEmitter } from "node:events" +import type { EventEmitter } from "eventemitter3" import type { RequestArguments } from "../web-provider-types" diff --git a/packages/web-provider/src/utils/prompts.ts b/packages/web-provider/src/utils/prompts.ts index 4c796b79..7e788419 100644 --- a/packages/web-provider/src/utils/prompts.ts +++ b/packages/web-provider/src/utils/prompts.ts @@ -1,14 +1,14 @@ -export function showUserPrompt( +export const showUserPrompt = async ( inputType: "text" | "password" | "confirmation", metadata: { title: string; payload?: string }, -) { - return new Promise((resolve) => { +) => { + return new Promise((resolve, reject) => { chrome.windows .create({ url: "prompt.html", type: "popup", - width: 371, - height: 600, + width: 480, + height: 772, state: "normal", }) .then(async (newWindow) => { @@ -16,33 +16,44 @@ export function showUserPrompt( if (response.windowId === newWindow?.id) { chrome.runtime.onMessage.removeListener(listener) if (response.userRejected) { - resolve(null) // User cancelled the prompt - } else if (inputType === "confirmation") { - resolve(response.userConfirmed) // Confirmation response (true/false) - } else { - resolve(response.userInput) // User provided text/password input + return reject(new Error("4001 - User Rejected Request")) } + if (inputType === "confirmation") { + if (response.userConfirmed) return resolve(true) + return reject(new Error("4001 - User Rejected Request")) + } + if (response.userInput.length > 0) + return resolve(response.userInput) + return reject(new Error("4100 - Unauthorized")) } + return reject(new Error("Wrong window context")) } if (newWindow?.tabs && newWindow.tabs.length > 0) { - // Ensure newWindow and newWindow.tabs are defined and not empty - const tabId = newWindow.tabs?.[0]?.id! + const tabId = newWindow.tabs?.[0]?.id if (typeof tabId === "number") { - // If tabId is a number, construct the full URL and update the tab - const fullUrl = `prompt.html?title=${encodeURIComponent( - metadata.title, - )}&payload=${encodeURIComponent( - metadata.payload ?? "", - )}&inputType=${inputType}&windowId=${newWindow.id}` - await chrome.tabs.update(tabId, { url: fullUrl }) + setTimeout(() => { + chrome.runtime.sendMessage({ + type: "action_request", + params: { + title: metadata.title, + payload: metadata.payload ?? "{}", + inputType, + }, + }) + }, 1000) chrome.runtime.onMessage.addListener(listener) + const closeListener = (closedWindowId: number) => { + chrome.windows.onRemoved.removeListener(closeListener) + if (closedWindowId === newWindow?.id) { + return reject(new Error("4001 - User Rejected Request")) + } + } + chrome.windows.onRemoved.addListener(closeListener) } else { - console.error("Failed to retrieve tab ID") - resolve(null) + return reject(new Error("Failed to retrieve tab ID")) } } else { - console.error("Failed to create prompt window") - resolve(null) + return reject(new Error("Failed to create prompt window")) } }) }) diff --git a/packages/web-provider/src/vault-service/vault-service.ts b/packages/web-provider/src/vault-service/vault-service.ts index 514afbfd..e35106e0 100644 --- a/packages/web-provider/src/vault-service/vault-service.ts +++ b/packages/web-provider/src/vault-service/vault-service.ts @@ -3,17 +3,19 @@ import type { GetPassphrase, } from "@palladxyz/key-management" import type { ChainOperationArgs } from "@palladxyz/key-management" -import { - getSecurePersistence, - getSessionPersistence, -} from "@palladxyz/persistence" import type { ProviderConfig } from "@palladxyz/providers" +import { securePersistence, sessionPersistence } from "@palladxyz/vault" +import { usePendingTransactionStore } from "@palladxyz/vault" import { type SearchQuery, type SingleObjectState, useVault, } from "@palladxyz/vault" +import dayjs from "dayjs" +import Client from "mina-signer" +import type { Mina } from "@palladxyz/mina-core" +import type { Validation } from ".." import { chainIdToNetwork } from "../utils" import type { IVaultService } from "./types" @@ -54,7 +56,45 @@ export class VaultService implements IVaultService { ) { await this.rehydrate() const store = useVault.getState() - return store.sign(signable, args, getPassphrase) + const { currentNetworkName } = useVault.getState() + const networkType = currentNetworkName === "Mainnet" ? "mainnet" : "testnet" + const networkAwareArgs: ChainOperationArgs = { + ...args, + networkType, + } + return store.sign(signable, networkAwareArgs, getPassphrase) + } + + async submitTransaction(payload: Validation.SendTransactionData) { + await this.rehydrate() + const { addPendingTransaction } = usePendingTransactionStore.getState() + const { currentNetworkName, submitTx, _syncWallet } = useVault.getState() + const network = currentNetworkName === "Mainnet" ? "mainnet" : "testnet" + const accounts = await this.getAccounts() + const publicKey = accounts?.[0] + if (!publicKey) throw new Error("Wallet is not initialized.") + if (publicKey !== payload.signedTransaction.data.from) + throw new Error("Wallet is not initialized.") + const client = new Client({ network }) + const validTransaction = client.verifyTransaction( + payload.signedTransaction as Mina.SignedTransaction, + ) + if (!validTransaction) throw new Error("Invalid transaction.") + const submittable = { + signedTransaction: payload.signedTransaction, + type: payload.transactionType, + transactionDetails: payload.signedTransaction.data, + } + const submittedTx: any = await submitTx(submittable as any) + const hash = + submittedTx?.sendPayment?.payment?.hash ?? + submittedTx?.sendDelegation?.delegation?.hash + addPendingTransaction({ + hash, + expireAt: dayjs().add(8, "hours").toISOString(), + }) + await _syncWallet() + return { hash } } async getState(params: SearchQuery, props?: string[]) { @@ -90,25 +130,28 @@ export class VaultService implements IVaultService { } async getEnabled({ origin }: { origin: ZkAppUrl }) { - await this.rehydrate() - const store = useVault.getState() - // FIXME - return store.authorized[origin] === AuthorizationState.ALLOWED + const { permissions } = await chrome.storage.local.get({ + permissions: true, + }) + return permissions[origin] === AuthorizationState.ALLOWED } async isBlocked({ origin }: { origin: ZkAppUrl }) { - await this.rehydrate() - const store = useVault.getState() - - return store.authorized[origin] === AuthorizationState.BLOCKED + const { permissions } = await chrome.storage.local.get({ + permissions: true, + }) + return permissions[origin] === AuthorizationState.BLOCKED } async setEnabled({ origin }: { origin: ZkAppUrl }) { - await this.rehydrate() - const store = useVault.getState() - store.mutateZkAppPermission({ - origin, - authorizationState: AuthorizationState.ALLOWED, + const { permissions } = await chrome.storage.local.get({ + permissions: true, + }) + return chrome.storage.local.set({ + permissions: { + ...permissions, + [origin]: AuthorizationState.ALLOWED, + }, }) } @@ -202,12 +245,12 @@ export class VaultService implements IVaultService { async isLocked() { await this.rehydrate() const authenticated = - (await getSecurePersistence().getItem("foo")) === "bar" + ((await securePersistence.getItem("foo")) as unknown) === "bar" return !authenticated } async unlockWallet(spendingPassword: string) { - await getSessionPersistence().setItem("spendingPassword", spendingPassword) + await sessionPersistence.setItem("spendingPassword", spendingPassword) await this.rehydrate() const locked = await this.isLocked() if (locked === true) { @@ -218,15 +261,8 @@ export class VaultService implements IVaultService { } async rehydrate() { - return await useVault.persist.rehydrate() - } - /* - TODO: add checkPassword function for methods that requrie password - async checkPassword(password) { - const correctPassword = getSessionPersistence().getItem('spendingPassword') - return correctPassword === password + return useVault.persist.rehydrate() } - */ async syncWallet() { await this.rehydrate() diff --git a/packages/web-provider/src/web-provider-types/data-model.ts b/packages/web-provider/src/web-provider-types/data-model.ts index c849a83e..57005576 100644 --- a/packages/web-provider/src/web-provider-types/data-model.ts +++ b/packages/web-provider/src/web-provider-types/data-model.ts @@ -1,3 +1,4 @@ +import type { Validation } from "../mina-network" import type { showUserPrompt } from "../utils" export type NamespacesParams = { @@ -74,7 +75,15 @@ export interface ProviderConnectInfo { export interface RequestArguments { method: string - params: unknown[] | Record | object | undefined | Params + params: + | Validation.RequestData + | Validation.SignFieldsData + | Validation.SignMessageData + | Validation.CreateNullifierData + | Validation.SignTransactionData + | Validation.SendTransactionData + | Validation.SetStateData + | Validation.GetStateData } export interface Params { diff --git a/packages/web-provider/test/mina/mina-provider.test.ts b/packages/web-provider/test/mina/mina-provider.test.ts index e29d95a6..04f97feb 100644 --- a/packages/web-provider/test/mina/mina-provider.test.ts +++ b/packages/web-provider/test/mina/mina-provider.test.ts @@ -1,3 +1,4 @@ +import { utf8ToBytes } from "@noble/hashes/utils" import { type ChainDerivationArgs, type FromBip39MnemonicWordsProps, @@ -15,6 +16,7 @@ import { act, renderHook } from "@testing-library/react" import Client from "mina-signer" import { vi } from "vitest" +import type { runtime, tabs, windows } from "webextension-polyfill" import type { RequestArguments } from "../../src" import { MinaProvider } from "../../src" @@ -37,8 +39,7 @@ const PREGENERATED_MNEMONIC = [ const params = { passphrase: "passphrase", } -const getPassphrase = () => - new Promise((resolve) => resolve(Buffer.from(params.passphrase))) +const getPassphrase = () => utf8ToBytes(params.passphrase) const TEST_ORIGIN = "https://palladians.xyz" @@ -54,7 +55,6 @@ describe.skip("Wallet Provider Test", () => { //let defaultNetwork: string beforeAll(async () => { - console.log("Current working directory:", process.cwd()) networkType = "testnet" agentArgs = { getPassphrase: getPassphrase, @@ -105,28 +105,28 @@ describe.skip("Wallet Provider Test", () => { tabs: [{ id: 5678 }], // Mock tab ID } callback(mockWindow) - }) as unknown as typeof chrome.windows.create, + }) as unknown as typeof windows.create, }, tabs: { - update: vi.fn() as unknown as typeof chrome.tabs.update, + update: vi.fn() as unknown as typeof tabs.update, // ... other tab methods if needed }, runtime: { - sendMessage: vi.fn() as unknown as typeof chrome.runtime.sendMessage, + sendMessage: vi.fn() as unknown as typeof runtime.sendMessage, onMessage: { // Mock the addListener to simulate receiving a message with the passphrase addListener: vi.fn((listener) => { const mockResponse = { windowId: 1234, - userInput: Buffer.from(params.passphrase), // This is the simulated passphrase input + userInput: utf8ToBytes(params.passphrase), // This is the simulated passphrase input userConfirmed: true, } listener(mockResponse) }), removeListener: vi.fn(), - } as unknown as typeof chrome.runtime.onMessage, + } as unknown as typeof runtime.onMessage, }, - } as unknown as typeof chrome + } as unknown }) afterEach(() => { @@ -142,7 +142,6 @@ describe.skip("Wallet Provider Test", () => { // Trigger connection const result = await provider.enable({ origin: TEST_ORIGIN }) - console.log("result in test: ", result) expect(result).toEqual([ "B62qjsV6WQwTeEWrNrRRBP6VaaLvQhwWTnFi4WP4LQjGvpfZEumXzxb", ]) @@ -165,7 +164,6 @@ describe.skip("Wallet Provider Test", () => { expect(provider).toBeDefined() const chainId = await provider.request(requestArgs) - console.log("chainId in test: ", chainId) expect(chainId).toEqual( "fd7d111973bf5a9e3e87384f560fdead2f272589ca00b6d9e357fca9839631da", ) @@ -236,7 +234,6 @@ describe.skip("Wallet Provider Test", () => { publicKey: string signature: string } - console.log("signature: ", signature) //const verifiableSignatue = { // fields: signature.data.map((field) => BigInt(field)) //} diff --git a/packages/web-provider/tsconfig.json b/packages/web-provider/tsconfig.json index f4e2e06e..7d1358d6 100644 --- a/packages/web-provider/tsconfig.json +++ b/packages/web-provider/tsconfig.json @@ -1,3 +1,6 @@ { - "extends": "@palladxyz/common/tsconfig.json" + "extends": "@palladxyz/common/tsconfig.json", + "compilerOptions": { + "types": ["@types/chrome"] + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6625b679..8856539a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,70 +4,64 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - esbuild: 0.20.2 - importers: .: devDependencies: '@biomejs/biome': - specifier: 1.7.1 - version: 1.7.1 + specifier: 1.8.3 + version: 1.8.3 '@testing-library/react': - specifier: ^14.1.2 - version: 14.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 16.0.0 + version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tsconfig/strictest': - specifier: ^2.0.2 + specifier: 2.0.5 version: 2.0.5 '@turbo/gen': - specifier: ^1.13.3 - version: 1.13.3(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5) - '@types/jest': - specifier: ^29.5.11 - version: 29.5.12 - '@vitest/coverage-c8': - specifier: ^0.33.0 - version: 0.33.0(vitest@1.5.0(@types/node@20.12.7)(happy-dom@12.10.3)) + specifier: 2.0.9 + version: 2.0.9(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4) + '@vitest/coverage-v8': + specifier: 2.0.5 + version: 2.0.5(vitest@2.0.4(@types/node@22.0.0)(happy-dom@14.12.3)(jsdom@24.1.1)) autoprefixer: - specifier: ^10.4.16 - version: 10.4.19(postcss@8.4.38) + specifier: 10.4.19 + version: 10.4.19(postcss@8.4.40) happy-dom: - specifier: ^12.10.3 - version: 12.10.3 + specifier: 14.12.3 + version: 14.12.3 husky: - specifier: ^8.0.3 - version: 8.0.3 + specifier: 9.1.4 + version: 9.1.4 postcss: - specifier: ^8.4.32 - version: 8.4.38 + specifier: 8.4.40 + version: 8.4.40 rimraf: - specifier: ^5.0.5 - version: 5.0.5 + specifier: 6.0.1 + version: 6.0.1 tailwind-merge: - specifier: ^2.1.0 - version: 2.2.2 + specifier: 2.4.0 + version: 2.4.0 tailwindcss: - specifier: ^3.4.0 - version: 3.4.3(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5)) + specifier: 3.4.7 + version: 3.4.7(ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4)) tailwindcss-animate: - specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.3(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5))) + specifier: 1.0.7 + version: 1.0.7(tailwindcss@3.4.7(ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4))) tsup: - specifier: ^8.0.2 - version: 8.0.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5) + specifier: 8.2.3 + version: 8.2.3(@swc/core@1.7.3(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.40)(typescript@5.5.4)(yaml@2.5.0) turbo: - specifier: ^1.13.3 - version: 1.13.3 + specifier: 2.0.9 + version: 2.0.9 turbowatch: - specifier: ^2.29.4 + specifier: 2.29.4 version: 2.29.4 typescript: - specifier: ^5.3.3 - version: 5.4.5 + specifier: 5.5.4 + version: 5.5.4 vitest: - specifier: ^1.1.0 - version: 1.5.0(@types/node@20.12.7)(happy-dom@12.10.3) + specifier: 2.0.4 + version: 2.0.4(@types/node@22.0.0)(happy-dom@14.12.3)(jsdom@24.1.1) apps/extension: dependencies: @@ -80,118 +74,133 @@ importers: '@palladxyz/key-management': specifier: workspace:* version: link:../../packages/key-management - '@palladxyz/persistence': - specifier: workspace:* - version: link:../../packages/persistence '@palladxyz/web-provider': specifier: workspace:* version: link:../../packages/web-provider '@plasmohq/messaging': - specifier: ^0.6.2 - version: 0.6.2(react@18.2.0) + specifier: 0.6.2 + version: 0.6.2(react@18.3.1) buffer: - specifier: ^6.0.3 + specifier: 6.0.3 version: 6.0.3 - dotenv: - specifier: ^16.3.1 - version: 16.4.5 + debounce: + specifier: ^2.1.0 + version: 2.1.0 next-themes: - specifier: ^0.2.1 - version: 0.2.1(next@14.2.1(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 0.3.0 + version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: 18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + serialize-error: + specifier: 11.0.3 + version: 11.0.3 tailwindcss-animate: - specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.3(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5))) + specifier: 1.0.7 + version: 1.0.7(tailwindcss@3.4.7(ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4))) vite-plugin-node-stdlib-browser: - specifier: ^0.2.1 - version: 0.2.1(node-stdlib-browser@1.2.0)(rollup@4.14.3)(vite@5.2.9(@types/node@20.12.7)) + specifier: 0.2.1 + version: 0.2.1(node-stdlib-browser@1.2.0)(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)) webext-bridge: - specifier: ^6.0.1 + specifier: 6.0.1 version: 6.0.1 webextension-polyfill: - specifier: ^0.10.0 - version: 0.10.0 + specifier: 0.12.0 + version: 0.12.0 zod: - specifier: ^3.22.4 - version: 3.22.4 + specifier: 3.23.8 + version: 3.23.8 devDependencies: - '@crxjs/vite-plugin': - specifier: ^2.0.0-beta.23 - version: 2.0.0-beta.23 '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.20.2) + specifier: 0.2.3 + version: 0.2.3(esbuild@0.23.0) '@esbuild-plugins/node-modules-polyfill': - specifier: ^0.2.2 - version: 0.2.2(esbuild@0.20.2) + specifier: 0.2.2 + version: 0.2.2(esbuild@0.23.0) '@originjs/vite-plugin-commonjs': - specifier: ^1.0.3 + specifier: 1.0.3 version: 1.0.3 '@playwright/test': - specifier: ^1.40.1 - version: 1.43.1 + specifier: 1.45.3 + version: 1.45.3 '@testing-library/react': - specifier: ^14.1.2 - version: 14.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 16.0.0 + version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@total-typescript/ts-reset': - specifier: ^0.5.1 + specifier: 0.5.1 version: 0.5.1 + '@tsconfig/vite-react': + specifier: 3.0.2 + version: 3.0.2 + '@types/chrome': + specifier: 0.0.269 + version: 0.0.269 '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 + specifier: 10.0.7 + version: 10.0.7 '@types/node': - specifier: ^20.10.6 - version: 20.12.7 + specifier: 22.0.0 + version: 22.0.0 '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: 18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.18 - version: 18.2.25 + specifier: 18.3.0 + version: 18.3.0 '@types/webextension-polyfill': - specifier: ^0.10.7 + specifier: 0.10.7 version: 0.10.7 '@vitejs/plugin-react-swc': - specifier: ^3.6.0 - version: 3.6.0(@swc/helpers@0.5.5)(vite@5.2.9(@types/node@20.12.7)) + specifier: 3.7.0 + version: 3.7.0(@swc/helpers@0.5.12)(vite@5.3.5(@types/node@22.0.0)) + dedent: + specifier: 1.5.3 + version: 1.5.3 path: - specifier: ^0.12.7 + specifier: 0.12.7 version: 0.12.7 rollup-plugin-node-polyfills: - specifier: ^0.2.1 + specifier: 0.2.1 version: 0.2.1 rollup-plugin-polyfill-node: - specifier: ^0.12.0 - version: 0.12.0(rollup@4.14.3) + specifier: 0.13.0 + version: 0.13.0(rollup@4.19.1) + type-fest: + specifier: 4.23.0 + version: 4.23.0 vite: - specifier: ^5.2.8 - version: 5.2.9(@types/node@20.12.7) + specifier: 5.3.5 + version: 5.3.5(@types/node@22.0.0) vite-plugin-commonjs: - specifier: ^0.10.1 + specifier: 0.10.1 version: 0.10.1 vite-plugin-node-polyfills: - specifier: ^0.17.0 - version: 0.17.0(rollup@4.14.3)(vite@5.2.9(@types/node@20.12.7)) + specifier: 0.17.0 + version: 0.17.0(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)) vite-plugin-require-transform: - specifier: ^1.0.21 + specifier: 1.0.21 version: 1.0.21 vite-plugin-svgr: - specifier: ^4.2.0 - version: 4.2.0(rollup@4.14.3)(typescript@5.4.5)(vite@5.2.9(@types/node@20.12.7)) + specifier: 4.2.0 + version: 4.2.0(rollup@4.19.1)(typescript@5.5.4)(vite@5.3.5(@types/node@22.0.0)) vite-plugin-top-level-await: - specifier: ^1.4.1 - version: 1.4.1(@swc/helpers@0.5.5)(rollup@4.14.3)(vite@5.2.9(@types/node@20.12.7)) + specifier: 1.4.2 + version: 1.4.2(@swc/helpers@0.5.12)(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)) vite-plugin-wasm: - specifier: ^3.3.0 - version: 3.3.0(vite@5.2.9(@types/node@20.12.7)) + specifier: 3.3.0 + version: 3.3.0(vite@5.3.5(@types/node@22.0.0)) + vite-plugin-web-extension: + specifier: ^4.1.6 + version: 4.1.6(@types/node@22.0.0) web-ext: - specifier: ^7.9.0 - version: 7.11.0 + specifier: 8.2.0 + version: 8.2.0 + write-json-file: + specifier: ^6.0.0 + version: 6.0.0 packages/_template: devDependencies: @@ -204,14 +213,17 @@ importers: packages/features: dependencies: '@github/hotkey': - specifier: ^3.1.1 + specifier: 3.1.1 version: 3.1.1 '@headlessui/react': - specifier: ^1.7.19 - version: 1.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 2.1.2 + version: 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@hookform/resolvers': - specifier: ^3.3.2 - version: 3.3.4(react-hook-form@7.51.3(react@18.2.0)) + specifier: 3.9.0 + version: 3.9.0(react-hook-form@7.52.1(react@18.3.1)) + '@noble/hashes': + specifier: 1.4.0 + version: 1.4.0 '@palladxyz/key-management': specifier: workspace:* version: link:../key-management @@ -224,210 +236,201 @@ importers: '@palladxyz/pallad-core': specifier: workspace:* version: link:../pallad-core - '@palladxyz/persistence': - specifier: workspace:* - version: link:../persistence '@palladxyz/vault': specifier: workspace:* version: link:../vault '@total-typescript/ts-reset': - specifier: ^0.5.1 + specifier: 0.5.1 version: 0.5.1 array-shuffle: - specifier: ^3.0.0 + specifier: 3.0.0 version: 3.0.0 class-variance-authority: - specifier: ^0.7.0 + specifier: 0.7.0 version: 0.7.0 clsx: - specifier: ^2.1.0 - version: 2.1.0 + specifier: 2.1.1 + version: 2.1.1 cmdk: - specifier: ^0.2.0 - version: 0.2.1(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - date-fns: - specifier: ^3.0.1 - version: 3.6.0 + specifier: 1.0.0 + version: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dayjs: - specifier: ^1.11.10 - version: 1.11.10 - dompurify: - specifier: ^3.1.4 - version: 3.1.4 + specifier: 1.11.12 + version: 1.11.12 easy-mesh-gradient: - specifier: ^0.0.5 + specifier: 0.0.5 version: 0.0.5 immer: - specifier: ^10.0.3 - version: 10.0.4 + specifier: 10.1.1 + version: 10.1.1 js-beautify: - specifier: ^1.15.1 + specifier: 1.15.1 version: 1.15.1 lucide-react: - specifier: ^0.376.0 - version: 0.376.0(react@18.2.0) + specifier: 0.417.0 + version: 0.417.0(react@18.3.1) match-sorter: - specifier: ^6.3.1 + specifier: 6.3.4 version: 6.3.4 merge-refs: - specifier: ^1.2.2 - version: 1.2.2(@types/react@18.2.79) + specifier: 1.3.0 + version: 1.3.0(@types/react@18.3.3) next-themes: - specifier: ^0.2.1 - version: 0.2.1(next@14.2.1(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 0.3.0 + version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rambda: - specifier: ^8.6.0 - version: 8.6.0 + specifier: 9.2.1 + version: 9.2.1 react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: 18.3.1 + version: 18.3.1 react-day-picker: - specifier: ^8.9.1 - version: 8.10.1(date-fns@3.6.0)(react@18.2.0) + specifier: 9.0.4 + version: 9.0.4(react@18.3.1) react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) react-error-boundary: - specifier: ^4.0.13 - version: 4.0.13(react@18.2.0) + specifier: 4.0.13 + version: 4.0.13(react@18.3.1) react-hook-form: - specifier: ^7.49.2 - version: 7.51.3(react@18.2.0) + specifier: 7.52.1 + version: 7.52.1(react@18.3.1) react-mixpanel-browser: - specifier: ^4.1.0 - version: 4.1.0(react@18.2.0) + specifier: 4.1.0 + version: 4.1.0(react@18.3.1) react-qr-code: - specifier: ^2.0.12 - version: 2.0.12(react@18.2.0) + specifier: 2.0.15 + version: 2.0.15(react@18.3.1) react-router: - specifier: ^6.21.0 - version: 6.22.3(react@18.2.0) + specifier: 6.25.1 + version: 6.25.1(react@18.3.1) react-router-dom: - specifier: ^6.21.0 - version: 6.22.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 6.25.1 + version: 6.25.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-slot-counter: - specifier: ^2.3.1 - version: 2.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 3.0.1 + version: 3.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-twc: - specifier: ^1.0.1 - version: 1.4.1(@types/react@18.2.79)(react@18.2.0) + specifier: 1.4.1 + version: 1.4.1(@types/react@18.3.3)(react@18.3.1) recharts: - specifier: ^2.10.3 - version: 2.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 2.12.7 + version: 2.12.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) sonner: - specifier: ^1.4.41 - version: 1.4.41(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - sugar-high: - specifier: ^0.6.1 - version: 0.6.1 + specifier: 1.5.0 + version: 1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) superjson: - specifier: ^2.2.1 + specifier: 2.2.1 version: 2.2.1 tailwind-merge: - specifier: ^2.1.0 - version: 2.2.2 + specifier: 2.4.0 + version: 2.4.0 tailwindcss-animate: - specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.3(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5))) + specifier: 1.0.7 + version: 1.0.7(tailwindcss@3.4.7(ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4))) + webext-bridge: + specifier: 6.0.1 + version: 6.0.1 webextension-polyfill: - specifier: ^0.10.0 - version: 0.10.0 + specifier: 0.12.0 + version: 0.12.0 + xss: + specifier: ^1.0.15 + version: 1.0.15 yaml: - specifier: ^2.4.2 - version: 2.4.2 + specifier: 2.5.0 + version: 2.5.0 zod: - specifier: ^3.22.4 - version: 3.22.4 + specifier: 3.23.8 + version: 3.23.8 zustand: - specifier: ^4.4.7 - version: 4.5.2(@types/react@18.2.79)(immer@10.0.4)(react@18.2.0) + specifier: 4.5.4 + version: 4.5.4(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1) devDependencies: '@ladle/react': - specifier: ^4.0.3 - version: 4.0.3(@swc/helpers@0.5.5)(@types/node@20.12.7)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.5) + specifier: 4.1.0 + version: 4.1.0(@swc/helpers@0.5.12)(@types/node@22.0.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@palladxyz/common': specifier: workspace:* version: link:../common - '@svgr/plugin-jsx': - specifier: ^8.0.1 - version: 8.1.0(@svgr/core@8.1.0(typescript@5.4.5)) '@svgr/rollup': - specifier: ^8.0.1 - version: 8.1.0(rollup@4.14.3)(typescript@5.4.5) + specifier: 8.1.0 + version: 8.1.0(rollup@4.19.1)(typescript@5.5.4) '@testing-library/react': - specifier: ^14.1.2 - version: 14.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 16.0.0 + version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/server': - specifier: ^10.44.1 + specifier: 10.45.2 version: 10.45.2 '@tsconfig/recommended': - specifier: ^1.0.3 - version: 1.0.6 + specifier: 1.0.7 + version: 1.0.7 '@tsconfig/vite-react': - specifier: ^3.0.2 + specifier: 3.0.2 version: 3.0.2 - '@types/dompurify': - specifier: ^3.0.5 - version: 3.0.5 + '@types/chrome': + specifier: 0.0.269 + version: 0.0.269 '@types/js-beautify': - specifier: ^1.14.3 + specifier: 1.14.3 version: 1.14.3 '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 + specifier: 10.0.7 + version: 10.0.7 '@types/react': - specifier: ^18.2.45 - version: 18.2.79 + specifier: 18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: ^18.2.18 - version: 18.2.25 + specifier: 18.3.0 + version: 18.3.0 '@types/webextension-polyfill': - specifier: ^0.10.7 + specifier: 0.10.7 version: 0.10.7 daisyui: - specifier: ^4.10.2 - version: 4.10.2(postcss@8.4.38) + specifier: 4.12.10 + version: 4.12.10(postcss@8.4.40) esbuild-plugin-polyfill-node: - specifier: ^0.3.0 - version: 0.3.0(esbuild@0.20.2) + specifier: 0.3.0 + version: 0.3.0(esbuild@0.23.0) esbuild-plugin-svgr: - specifier: 2.0.0 - version: 2.0.0(typescript@5.4.5) + specifier: 2.1.0 + version: 2.1.0(esbuild@0.23.0)(typescript@5.5.4) graphql-request: - specifier: ^6.1.0 - version: 6.1.0(graphql@16.8.1) + specifier: 7.1.0 + version: 7.1.0(graphql@16.9.0) mina-signer: - specifier: ^2.1.1 - version: 2.1.2 + specifier: 3.0.7 + version: 3.0.7 swr: - specifier: ^2.2.4 - version: 2.2.5(react@18.2.0) + specifier: 2.2.5 + version: 2.2.5(react@18.3.1) vite: - specifier: ^5.2.8 - version: 5.2.9(@types/node@20.12.7) + specifier: 5.3.5 + version: 5.3.5(@types/node@22.0.0) vite-plugin-node-polyfills: - specifier: ^0.17.0 - version: 0.17.0(rollup@4.14.3)(vite@5.2.9(@types/node@20.12.7)) + specifier: 0.22.0 + version: 0.22.0(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)) vite-plugin-svgr: - specifier: ^4.2.0 - version: 4.2.0(rollup@4.14.3)(typescript@5.4.5)(vite@5.2.9(@types/node@20.12.7)) + specifier: 4.2.0 + version: 4.2.0(rollup@4.19.1)(typescript@5.5.4)(vite@5.3.5(@types/node@22.0.0)) vite-plugin-top-level-await: - specifier: ^1.4.1 - version: 1.4.1(@swc/helpers@0.5.5)(rollup@4.14.3)(vite@5.2.9(@types/node@20.12.7)) + specifier: 1.4.2 + version: 1.4.2(@swc/helpers@0.5.12)(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)) packages/key-management: dependencies: '@ethereumjs/util': - specifier: ^9.0.1 + specifier: 9.0.3 version: 9.0.3 '@noble/ciphers': - specifier: ^0.4.1 - version: 0.4.1 + specifier: 0.5.3 + version: 0.5.3 '@noble/hashes': - specifier: ^1.3.3 + specifier: 1.4.0 version: 1.4.0 '@noble/secp256k1': - specifier: ^2.0.0 + specifier: 2.1.0 version: 2.1.0 '@palladxyz/mina-core': specifier: workspace:* @@ -436,54 +439,36 @@ importers: specifier: workspace:* version: link:../pallad-core '@scure/base': - specifier: ^1.1.5 - version: 1.1.6 + specifier: 1.1.7 + version: 1.1.7 '@scure/bip32': - specifier: ^1.3.3 + specifier: 1.4.0 version: 1.4.0 '@scure/bip39': - specifier: ^1.2.2 + specifier: 1.3.0 version: 1.3.0 buffer: - specifier: ^6.0.3 + specifier: 6.0.3 version: 6.0.3 ethers: - specifier: ^6.9.1 - version: 6.11.1 + specifier: 6.13.2 + version: 6.13.2 micro-eth-signer: - specifier: ^0.6.5 - version: 0.6.5 + specifier: 0.10.0 + version: 0.10.0 micro-starknet: - specifier: ^0.2.3 + specifier: 0.2.3 version: 0.2.3 mina-signer: - specifier: ^2.1.1 - version: 2.1.2 - sinon: - specifier: ^17.0.1 - version: 17.0.1 + specifier: 3.0.7 + version: 3.0.7 ts-custom-error: - specifier: ^3.3.1 + specifier: 3.3.1 version: 3.3.1 - vitest: - specifier: ^1.1.0 - version: 1.5.0(@types/node@20.12.7)(happy-dom@12.10.3) devDependencies: '@palladxyz/common': specifier: workspace:* version: link:../common - '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 - '@types/secp256k1': - specifier: ^4.0.6 - version: 4.0.6 - '@types/sinon': - specifier: ^17.0.2 - version: 17.0.3 - '@vitest/coverage-v8': - specifier: ^1.5.0 - version: 1.5.0(vitest@1.5.0(@types/node@20.12.7)(happy-dom@12.10.3)) packages/mina-core: dependencies: @@ -491,33 +476,33 @@ importers: specifier: workspace:* version: link:../util bs58check: - specifier: ^3.0.1 - version: 3.0.1 + specifier: 4.0.0 + version: 4.0.0 buffer: - specifier: ^6.0.3 + specifier: 6.0.3 version: 6.0.3 mina-signer: - specifier: ^2.1.1 - version: 2.1.2 + specifier: 3.0.7 + version: 3.0.7 devDependencies: '@palladxyz/common': specifier: workspace:* version: link:../common '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 + specifier: 10.0.7 + version: 10.0.7 '@types/secp256k1': - specifier: ^4.0.6 + specifier: 4.0.6 version: 4.0.6 packages/offchain-data: dependencies: dayjs: - specifier: ^1.11.10 - version: 1.11.10 + specifier: 1.11.12 + version: 1.11.12 swr: - specifier: ^2.2.4 - version: 2.2.5(react@18.2.0) + specifier: 2.2.5 + version: 2.2.5(react@18.3.1) devDependencies: '@palladxyz/common': specifier: workspace:* @@ -532,85 +517,39 @@ importers: specifier: workspace:* version: link:../util bs58check: - specifier: ^3.0.1 - version: 3.0.1 + specifier: 4.0.0 + version: 4.0.0 buffer: - specifier: ^6.0.3 + specifier: 6.0.3 version: 6.0.3 mina-signer: - specifier: ^2.1.1 - version: 2.1.2 - sinon: - specifier: ^17.0.1 - version: 17.0.1 + specifier: 3.0.7 + version: 3.0.7 viem: - specifier: ^2.9.16 - version: 2.9.19(typescript@5.4.5)(zod@3.22.4) + specifier: 2.18.4 + version: 2.18.4(typescript@5.5.4)(zod@3.23.8) vite-plugin-top-level-await: - specifier: ^1.4.1 - version: 1.4.1(@swc/helpers@0.5.5)(rollup@4.14.3)(vite@5.2.9(@types/node@20.12.7)) + specifier: 1.4.2 + version: 1.4.2(@swc/helpers@0.5.12)(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)) vite-plugin-wasm: - specifier: ^3.3.0 - version: 3.3.0(vite@5.2.9(@types/node@20.12.7)) + specifier: 3.3.0 + version: 3.3.0(vite@5.3.5(@types/node@22.0.0)) devDependencies: '@palladxyz/common': specifier: workspace:* version: link:../common '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 + specifier: 10.0.7 + version: 10.0.7 '@types/secp256k1': - specifier: ^4.0.6 + specifier: 4.0.6 version: 4.0.6 - packages/pals: - devDependencies: - '@palladxyz/common': - specifier: workspace:* - version: link:../common - '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 - esbuild-plugin-polyfill-node: - specifier: ^0.3.0 - version: 0.3.0(esbuild@0.20.2) - msw: - specifier: ^2.1.4 - version: 2.2.13(typescript@5.4.5) - - packages/persistence: - dependencies: - '@capacitor/preferences': - specifier: ^5.0.6 - version: 5.0.7(@capacitor/core@5.7.5) - '@capacitor/storage': - specifier: ^1.2.5 - version: 1.2.5(@capacitor/core@5.7.5) - '@plasmohq/storage': - specifier: ^1.9.0 - version: 1.10.0(react@18.2.0) - capacitor-secure-storage-plugin: - specifier: ^0.9.0 - version: 0.9.0(@capacitor/core@5.7.5) - superjson: - specifier: ^2.2.1 - version: 2.2.1 - devDependencies: - '@capacitor/core': - specifier: ^5.6.0 - version: 5.7.5 - '@palladxyz/common': - specifier: workspace:* - version: link:../common - vite: - specifier: ^5.2.8 - version: 5.2.9(@types/node@20.12.7) - zustand: - specifier: ^4.4.7 - version: 4.5.2(@types/react@18.2.79)(immer@10.0.4)(react@18.2.0) - packages/providers: dependencies: + '@noble/hashes': + specifier: 1.4.0 + version: 1.4.0 '@palladxyz/key-management': specifier: workspace:* version: link:../key-management @@ -624,82 +563,85 @@ importers: specifier: workspace:* version: link:../util bs58check: - specifier: ^3.0.1 - version: 3.0.1 + specifier: 4.0.0 + version: 4.0.0 buffer: - specifier: ^6.0.3 + specifier: 6.0.3 version: 6.0.3 events: - specifier: ^3.3.0 + specifier: 3.3.0 version: 3.3.0 graphql: - specifier: ^16.8.1 - version: 16.8.1 + specifier: 16.9.0 + version: 16.9.0 graphql-request: - specifier: ^6.1.0 - version: 6.1.0(graphql@16.8.1) + specifier: 7.1.0 + version: 7.1.0(graphql@16.9.0) json-bigint: - specifier: ^1.0.0 + specifier: 1.0.0 version: 1.0.0 mina-signer: - specifier: ^2.1.1 - version: 2.1.2 + specifier: 3.0.7 + version: 3.0.7 subscriptions-transport-ws: - specifier: ^0.11.0 - version: 0.11.0(graphql@16.8.1) + specifier: 0.11.0 + version: 0.11.0(graphql@16.9.0) viem: - specifier: ^2.9.16 - version: 2.9.19(typescript@5.4.5)(zod@3.22.4) + specifier: 2.18.4 + version: 2.18.4(typescript@5.5.4)(zod@3.23.8) ws: - specifier: ^8.15.1 - version: 8.16.0 + specifier: 8.18.0 + version: 8.18.0 devDependencies: '@palladxyz/common': specifier: workspace:* version: link:../common '@types/events': - specifier: ^3.0.3 + specifier: 3.0.3 version: 3.0.3 '@types/json-bigint': - specifier: ^1.0.4 + specifier: 1.0.4 version: 1.0.4 '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 + specifier: 10.0.7 + version: 10.0.7 esbuild-plugin-polyfill-node: - specifier: ^0.3.0 - version: 0.3.0(esbuild@0.20.2) + specifier: 0.3.0 + version: 0.3.0(esbuild@0.23.0) msw: - specifier: ^2.0.11 - version: 2.2.13(typescript@5.4.5) + specifier: 2.3.4 + version: 2.3.4(typescript@5.5.4) packages/util: dependencies: bs58check: - specifier: ^3.0.1 - version: 3.0.1 + specifier: 4.0.0 + version: 4.0.0 buffer: - specifier: ^6.0.3 + specifier: 6.0.3 version: 6.0.3 mina-signer: - specifier: ^2.1.1 - version: 2.1.2 + specifier: 3.0.7 + version: 3.0.7 ts-custom-error: - specifier: ^3.3.1 + specifier: 3.3.1 version: 3.3.1 devDependencies: '@palladxyz/common': specifier: workspace:* version: link:../common '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 + specifier: 10.0.7 + version: 10.0.7 '@types/secp256k1': - specifier: ^4.0.6 + specifier: 4.0.6 version: 4.0.6 packages/vault: dependencies: + '@noble/hashes': + specifier: 1.4.0 + version: 1.4.0 '@palladxyz/key-management': specifier: workspace:* version: link:../key-management @@ -709,117 +651,128 @@ importers: '@palladxyz/pallad-core': specifier: workspace:* version: link:../pallad-core - '@palladxyz/persistence': - specifier: workspace:* - version: link:../persistence '@palladxyz/providers': specifier: workspace:* version: link:../providers '@palladxyz/util': specifier: workspace:* version: link:../util + '@plasmohq/storage': + specifier: ^1.11.0 + version: 1.11.0(react@18.3.1) bs58check: - specifier: ^3.0.1 - version: 3.0.1 + specifier: 4.0.0 + version: 4.0.0 buffer: - specifier: ^6.0.3 + specifier: 6.0.3 version: 6.0.3 + dayjs: + specifier: 1.11.12 + version: 1.11.12 immer: - specifier: ^10.0.3 - version: 10.0.4 + specifier: 10.1.1 + version: 10.1.1 rambda: - specifier: ^7.5.0 - version: 7.5.0 + specifier: 9.2.1 + version: 9.2.1 redux-logger: - specifier: ^3.0.6 + specifier: 3.0.6 version: 3.0.6 + superjson: + specifier: 2.2.1 + version: 2.2.1 unique-names-generator: - specifier: ^4.7.1 + specifier: 4.7.1 version: 4.7.1 - vitest: - specifier: ^0.34.4 - version: 0.34.6(happy-dom@12.10.3)(playwright@1.43.1) zustand: - specifier: ^4.4.7 - version: 4.5.2(@types/react@18.2.79)(immer@10.0.4)(react@18.2.0) + specifier: 4.5.4 + version: 4.5.4(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1) devDependencies: '@palladxyz/common': specifier: workspace:* version: link:../common '@testing-library/react': - specifier: ^14.0.0 - version: 14.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 16.0.0 + version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/mocha': - specifier: ^10.0.1 - version: 10.0.6 + specifier: 10.0.7 + version: 10.0.7 '@types/secp256k1': - specifier: ^4.0.3 + specifier: 4.0.6 version: 4.0.6 mina-signer: - specifier: ^2.1.1 - version: 2.1.2 + specifier: 3.0.7 + version: 3.0.7 msw: - specifier: ^1.2.2 - version: 1.3.3(typescript@5.4.5) + specifier: 2.3.4 + version: 2.3.4(typescript@5.5.4) vite: - specifier: ^5.2.8 - version: 5.2.9(@types/node@20.12.7) + specifier: 5.3.5 + version: 5.3.5(@types/node@22.0.0) packages/web-provider: dependencies: + '@noble/hashes': + specifier: 1.4.0 + version: 1.4.0 '@palladxyz/key-management': specifier: workspace:* version: link:../key-management '@palladxyz/mina-core': specifier: workspace:* version: link:../mina-core - '@palladxyz/persistence': - specifier: workspace:* - version: link:../persistence '@palladxyz/providers': specifier: workspace:* version: link:../providers '@palladxyz/vault': specifier: workspace:* version: link:../vault + dayjs: + specifier: 1.11.12 + version: 1.11.12 + eventemitter3: + specifier: 5.0.1 + version: 5.0.1 mina-signer: - specifier: ^2.1.1 - version: 2.1.2 + specifier: 3.0.7 + version: 3.0.7 superjson: - specifier: ^2.2.1 + specifier: 2.2.1 version: 2.2.1 - vitest: - specifier: ^1.1.0 - version: 1.5.0(@types/node@20.12.7)(happy-dom@12.10.3) + webext-bridge: + specifier: 6.0.1 + version: 6.0.1 webextension-polyfill: - specifier: ^0.10.0 - version: 0.10.0 + specifier: 0.12.0 + version: 0.12.0 + zod: + specifier: 3.23.8 + version: 3.23.8 devDependencies: '@palladxyz/common': specifier: workspace:* version: link:../common '@testing-library/react': - specifier: ^14.1.2 - version: 14.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 16.0.0 + version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/chrome': - specifier: ^0.0.254 - version: 0.0.254 + specifier: 0.0.269 + version: 0.0.269 '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 + specifier: 10.0.7 + version: 10.0.7 '@types/node': - specifier: ^20.10.5 - version: 20.12.7 + specifier: 22.0.0 + version: 22.0.0 '@types/webextension-polyfill': - specifier: ^0.10.7 + specifier: 0.10.7 version: 0.10.7 + type-fest: + specifier: 4.23.0 + version: 4.23.0 packages: - '@aashutoshrathi/word-wrap@1.2.6': - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - '@adraffy/ens-normalize@1.10.0': resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==} @@ -834,158 +787,148 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@babel/code-frame@7.24.2': - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.4': - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + '@babel/compat-data@7.25.0': + resolution: {integrity: sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.4': - resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} + '@babel/core@7.24.9': + resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.4': - resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + '@babel/generator@7.25.0': + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.22.5': - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + '@babel/helper-compilation-targets@7.24.8': + resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.24.4': - resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} + '@babel/helper-create-class-features-plugin@7.25.0': + resolution: {integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.22.15': - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + '@babel/helper-create-regexp-features-plugin@7.25.0': + resolution: {integrity: sha512-q0T+dknZS+L5LDazIP+02gEZITG5unzvb6yIjcmj5i0eFrs5ToBV2m2JGH4EsE/gtP8ygEGLGApBgRIZkTm7zg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.1': - resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} + '@babel/helper-define-polyfill-provider@0.6.2': + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-member-expression-to-functions@7.23.0': - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + '@babel/helper-member-expression-to-functions@7.24.8': + resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.3': - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + '@babel/helper-module-transforms@7.25.0': + resolution: {integrity: sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.22.5': - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + '@babel/helper-optimise-call-expression@7.24.7': + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.0': - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + '@babel/helper-plugin-utils@7.24.8': + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.22.20': - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + '@babel/helper-remap-async-to-generator@7.25.0': + resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.24.1': - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + '@babel/helper-replace-supers@7.25.0': + resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.1': - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.22.20': - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + '@babel/helper-wrap-function@7.25.0': + resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.4': - resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + '@babel/helpers@7.25.0': + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.2': - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.4': - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + '@babel/parser@7.25.0': + resolution: {integrity: sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4': - resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.0': + resolution: {integrity: sha512-dG0aApncVQwAUJa8tP1VHTnmU67BeIQvKafd3raEx315H54FfkZSz3B/TT+33ZQAjatGJA79gZqTtqL5QZUKXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0': + resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0': + resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': + resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0': + resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1022,14 +965,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.24.1': - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + '@babel/plugin-syntax-import-assertions@7.24.7': + resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.24.1': - resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + '@babel/plugin-syntax-import-attributes@7.24.7': + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1044,8 +987,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.1': - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1092,8 +1035,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.24.1': - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + '@babel/plugin-syntax-typescript@7.24.7': + resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1104,344 +1047,350 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.24.1': - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + '@babel/plugin-transform-arrow-functions@7.24.7': + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.24.3': - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + '@babel/plugin-transform-async-generator-functions@7.25.0': + resolution: {integrity: sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.24.1': - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + '@babel/plugin-transform-async-to-generator@7.24.7': + resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.24.1': - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + '@babel/plugin-transform-block-scoped-functions@7.24.7': + resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.24.4': - resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} + '@babel/plugin-transform-block-scoping@7.25.0': + resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.24.1': - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + '@babel/plugin-transform-class-properties@7.24.7': + resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.24.4': - resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} + '@babel/plugin-transform-class-static-block@7.24.7': + resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.24.1': - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + '@babel/plugin-transform-classes@7.25.0': + resolution: {integrity: sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.24.1': - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + '@babel/plugin-transform-computed-properties@7.24.7': + resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.1': - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + '@babel/plugin-transform-destructuring@7.24.8': + resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.24.1': - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + '@babel/plugin-transform-dotall-regex@7.24.7': + resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.24.1': - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + '@babel/plugin-transform-duplicate-keys@7.24.7': + resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dynamic-import@7.24.1': - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0': + resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-dynamic-import@7.24.7': + resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.24.1': - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + '@babel/plugin-transform-exponentiation-operator@7.24.7': + resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.24.1': - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + '@babel/plugin-transform-export-namespace-from@7.24.7': + resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.24.1': - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + '@babel/plugin-transform-for-of@7.24.7': + resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.24.1': - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + '@babel/plugin-transform-function-name@7.25.1': + resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.24.1': - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + '@babel/plugin-transform-json-strings@7.24.7': + resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.24.1': - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + '@babel/plugin-transform-literals@7.24.7': + resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.24.1': - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + '@babel/plugin-transform-logical-assignment-operators@7.24.7': + resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.24.1': - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + '@babel/plugin-transform-member-expression-literals@7.24.7': + resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.24.1': - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + '@babel/plugin-transform-modules-amd@7.24.7': + resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.1': - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + '@babel/plugin-transform-modules-commonjs@7.24.8': + resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.24.1': - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + '@babel/plugin-transform-modules-systemjs@7.25.0': + resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.24.1': - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + '@babel/plugin-transform-modules-umd@7.24.7': + resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': + resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.24.1': - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + '@babel/plugin-transform-new-target@7.24.7': + resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': + resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.24.1': - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + '@babel/plugin-transform-numeric-separator@7.24.7': + resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.24.1': - resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + '@babel/plugin-transform-object-rest-spread@7.24.7': + resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.24.1': - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + '@babel/plugin-transform-object-super@7.24.7': + resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.24.1': - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + '@babel/plugin-transform-optional-catch-binding@7.24.7': + resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.24.1': - resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + '@babel/plugin-transform-optional-chaining@7.24.8': + resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.1': - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + '@babel/plugin-transform-parameters@7.24.7': + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.24.1': - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + '@babel/plugin-transform-private-methods@7.24.7': + resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.24.1': - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + '@babel/plugin-transform-private-property-in-object@7.24.7': + resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.24.1': - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + '@babel/plugin-transform-property-literals@7.24.7': + resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-constant-elements@7.24.1': - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + '@babel/plugin-transform-react-constant-elements@7.25.1': + resolution: {integrity: sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.24.1': - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + '@babel/plugin-transform-react-display-name@7.24.7': + resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.22.5': - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + '@babel/plugin-transform-react-jsx-development@7.24.7': + resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.1': - resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} + '@babel/plugin-transform-react-jsx-self@7.24.7': + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.1': - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + '@babel/plugin-transform-react-jsx-source@7.24.7': + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.23.4': - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + '@babel/plugin-transform-react-jsx@7.24.7': + resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-pure-annotations@7.24.1': - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + '@babel/plugin-transform-react-pure-annotations@7.24.7': + resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.24.1': - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + '@babel/plugin-transform-regenerator@7.24.7': + resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-reserved-words@7.24.1': - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + '@babel/plugin-transform-reserved-words@7.24.7': + resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.24.1': - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + '@babel/plugin-transform-shorthand-properties@7.24.7': + resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.24.1': - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + '@babel/plugin-transform-spread@7.24.7': + resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.24.1': - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + '@babel/plugin-transform-sticky-regex@7.24.7': + resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.24.1': - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + '@babel/plugin-transform-template-literals@7.24.7': + resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.24.1': - resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + '@babel/plugin-transform-typeof-symbol@7.24.8': + resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.24.4': - resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} + '@babel/plugin-transform-typescript@7.25.0': + resolution: {integrity: sha512-LZicxFzHIw+Sa3pzgMgSz6gdpsdkfiMObHUzhSIrwKF0+/rP/nuR49u79pSS+zIFJ1FeGeqQD2Dq4QGFbOVvSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.24.1': - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + '@babel/plugin-transform-unicode-escapes@7.24.7': + resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.24.1': - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + '@babel/plugin-transform-unicode-property-regex@7.24.7': + resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.24.1': - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + '@babel/plugin-transform-unicode-regex@7.24.7': + resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.24.1': - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + '@babel/plugin-transform-unicode-sets-regex@7.24.7': + resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.24.4': - resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} + '@babel/preset-env@7.25.0': + resolution: {integrity: sha512-vYAA8PrCOeZfG4D87hmw1KJ1BPubghXP1e2MacRFwECGNKL76dkA38JEwYllbvQCpf/kLxsTtir0b8MtxKoVCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1451,14 +1400,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.24.1': - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + '@babel/preset-react@7.24.7': + resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-typescript@7.24.1': - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + '@babel/preset-typescript@7.24.7': + resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1466,82 +1415,82 @@ packages: '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - '@babel/runtime-corejs3@7.24.4': - resolution: {integrity: sha512-VOQOexSilscN24VEY810G/PqtpFvx/z6UqDIjIWbDe2368HhDLkYN5TYwaEz/+eRCUkhJ2WaNLLmQAlxzfWj4w==} + '@babel/runtime-corejs3@7.25.0': + resolution: {integrity: sha512-BOehWE7MgQ8W8Qn0CQnMtg2tHPHPulcS/5AVpFvs2KCK1ET+0WqZqPvnpRpFN81gYoFopdIEJX9Sgjw3ZBccPg==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.21.0': - resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + '@babel/runtime@7.24.7': + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.24.4': - resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} + '@babel/runtime@7.25.0': + resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.0': - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.1': - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + '@babel/traverse@7.25.1': + resolution: {integrity: sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + '@babel/types@7.25.0': + resolution: {integrity: sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@biomejs/biome@1.7.1': - resolution: {integrity: sha512-wb2UNoFXcgaMdKXKT5ytsYntaogl2FSTjDt20CZynF3v7OXQUcIpTrr+be3XoOGpoZRj3Ytq9TSpmplUREXmeA==} + '@biomejs/biome@1.8.3': + resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.7.1': - resolution: {integrity: sha512-qfLrIIB58dkgiY/1tgG6fSCBK22PZaSIf6blweZBsG6iMij05mEuJt50ne+zPnNFNUmt8t43NC/qOXT3iFHQBA==} + '@biomejs/cli-darwin-arm64@1.8.3': + resolution: {integrity: sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@1.7.1': - resolution: {integrity: sha512-OGeyNsEcp5VnKbF9/TBjPCTHNEOm7oHegEve07U3KZmzqfpw2Oe3i9DVW8t6vvj1TYbrwWYCld25H34kBDY7Vg==} + '@biomejs/cli-darwin-x64@1.8.3': + resolution: {integrity: sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@1.7.1': - resolution: {integrity: sha512-giH0/CzLOJ+wbxLxd5Shnr5xQf5fGnTRWLDe3lzjaF7IplVydNCEeZJtncB01SvyA6DAFJsvQ4LNxzAOQfEVCg==} + '@biomejs/cli-linux-arm64-musl@1.8.3': + resolution: {integrity: sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.7.1': - resolution: {integrity: sha512-MQDf5wErj1iBvlcxCyOa0XqZYN8WJrupVgbNnqhntO3yVATg8GxduVUn1fDSaolznkDRsj7Pz3Xu1esBFwvfmg==} + '@biomejs/cli-linux-arm64@1.8.3': + resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.7.1': - resolution: {integrity: sha512-ySNDtPhsLxU125IFHHAxfpoHBpkM56s4mEXeO70GZtgZay/o1h8IUPWCWf5Z7gKgc4jwgYN1U1U9xabI3hZVAg==} + '@biomejs/cli-linux-x64-musl@1.8.3': + resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.7.1': - resolution: {integrity: sha512-3wmCsGcC3KZ4pfTknXHfyMMlXPMhgfXVAcG5GlrR+Tq2JGiAw0EUydaLpsSBEbcG7IxH6OiUZEJZ95kAycCHBA==} + '@biomejs/cli-linux-x64@1.8.3': + resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@1.7.1': - resolution: {integrity: sha512-8hIDakEqZn0i6+388noYKdZ0ZrovTwnvMU/Qp/oJou0G7EPVdXupOe0oxiQSdRN0W7f6CS/yjPCYuVGzDG6r0g==} + '@biomejs/cli-win32-arm64@1.8.3': + resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@1.7.1': - resolution: {integrity: sha512-3W9k3uH6Ea6VOpAS9xkkAlS0LTfnGQjmIUCegZ8SDtK2NgJ1gO+qdEkGJb0ltahusFTN1QxJ107dM7ASA9IUEg==} + '@biomejs/cli-win32-x64@1.8.3': + resolution: {integrity: sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -1552,22 +1501,8 @@ packages: '@bundled-es-modules/statuses@1.0.1': resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} - '@capacitor/core@5.7.5': - resolution: {integrity: sha512-babBo26lgIyKkAOr/AbPq5wwi9I4uHDP0lBteJq7p4xZElA6tAA8mD3xRH1/4EKmZ4+acYpKmmyegX3zsVh37A==} - - '@capacitor/preferences@5.0.7': - resolution: {integrity: sha512-JvfGP1m8nITWEFdBpKR9HXNeBjLKwO0q1pry7Z5lYrYmCrbyRBLWzaGZGll8py4KmGWL3F5+PZvhrpT4gPoeAQ==} - peerDependencies: - '@capacitor/core': ^5.0.0 - - '@capacitor/storage@1.2.5': - resolution: {integrity: sha512-pWhnw4U7wN/zFV4lA4BLMypSufTktCbk548Yk4whSb0KAq3R0mLfSubRIHkGdcPqQWCsM6g/zUuszurhz6ncWQ==} - deprecated: package has been renamed to @capacitor/preferences - peerDependencies: - '@capacitor/core': ^3.0.0 - - '@crxjs/vite-plugin@2.0.0-beta.23': - resolution: {integrity: sha512-AO+VYhtNZ1fITq/sc54FZpTtFvHR+gJwFGiWTGKs07bwYzzZFdF0sYeiFgZiEjaNkddkAzuM4F4lgOmCm69YUw==} + '@bundled-es-modules/tough-cookie@0.1.6': + resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -1581,182 +1516,327 @@ packages: resolution: {integrity: sha512-ZzZY/b66W2Jd6NHbAhLyDWOEIBWC11VizGFk7Wx7M61JZRz7HR9Cq5P+65RKWUU7u6wgsE8Lmh9nE4Mz+U2eTg==} engines: {node: '>= 0.10.4'} - '@devicefarmer/adbkit@3.2.3': - resolution: {integrity: sha512-wK9rVrabs4QU0oK8Jnwi+HRBEm+s1x/o63kgthUe0y7K1bfcYmgLuQf41/adsj/5enddlSxzkJavl2EwOu+r1g==} + '@devicefarmer/adbkit@3.2.6': + resolution: {integrity: sha512-8lO1hSeTgtxcOHhp4tTWq/JaOysp5KNbbyFoxNEBnwkCDZu/Bji3ZfOaG++Riv9jN6c9bgdLBOZqJTC5VJPRKQ==} engines: {node: '>= 0.10.4'} hasBin: true '@esbuild-plugins/node-globals-polyfill@0.2.3': resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} peerDependencies: - esbuild: 0.20.2 + esbuild: '*' '@esbuild-plugins/node-modules-polyfill@0.2.2': resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} peerDependencies: - esbuild: 0.20.2 + esbuild: '*' - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + '@esbuild/aix-ppc64@0.23.0': + resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + '@esbuild/android-arm64@0.23.0': + resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + '@esbuild/android-arm@0.23.0': + resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + '@esbuild/android-x64@0.23.0': + resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + '@esbuild/darwin-arm64@0.23.0': + resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + '@esbuild/darwin-x64@0.23.0': + resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + '@esbuild/freebsd-arm64@0.23.0': + resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + '@esbuild/freebsd-x64@0.23.0': + resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + '@esbuild/linux-arm64@0.23.0': + resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + '@esbuild/linux-arm@0.23.0': + resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + '@esbuild/linux-ia32@0.23.0': + resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.14.54': + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + '@esbuild/linux-loong64@0.23.0': + resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + '@esbuild/linux-mips64el@0.23.0': + resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + '@esbuild/linux-ppc64@0.23.0': + resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + '@esbuild/linux-riscv64@0.23.0': + resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + '@esbuild/linux-s390x@0.23.0': + resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + '@esbuild/linux-x64@0.23.0': + resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + '@esbuild/netbsd-x64@0.23.0': + resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.0': + resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + '@esbuild/openbsd-x64@0.23.0': + resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + '@esbuild/sunos-x64@0.23.0': + resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + '@esbuild/win32-arm64@0.23.0': + resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + '@esbuild/win32-ia32@0.23.0': + resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.23.0': + resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.56.0': - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@ethereumjs/rlp@5.0.0': - resolution: {integrity: sha512-WuS1l7GJmB0n0HsXLozCoEFc9IwYgf3l0gCkKVYgR67puVF1O4OpEaN0hWmm1c+iHUHFCKt1hJrvy5toLg+6ag==} - engines: {node: '>=18'} - hasBin: true - '@ethereumjs/rlp@5.0.2': resolution: {integrity: sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==} engines: {node: '>=18'} @@ -1766,6 +1846,27 @@ packages: resolution: {integrity: sha512-PmwzWDflky+7jlZIFqiGsBPap12tk9zK5SVH9YW2OEnDN7OEhCjUOMzbOqwuClrbkSIkM2ERivd7sXZ48Rh/vg==} engines: {node: '>=18'} + '@floating-ui/core@1.6.5': + resolution: {integrity: sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA==} + + '@floating-ui/dom@1.6.8': + resolution: {integrity: sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==} + + '@floating-ui/react-dom@2.1.1': + resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.20': + resolution: {integrity: sha512-RixKJJG92fcIsVoqrFr4Onpzh7hlOx4U7NV4aLhMLmtvjZ5oTB/WzXaANYUZATKqXvvW7t9sCxtzejip26N5Ag==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.5': + resolution: {integrity: sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ==} + '@fluent/syntax@0.19.0': resolution: {integrity: sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==} engines: {node: '>=14.0.0', npm: '>=7.0.0'} @@ -1778,21 +1879,22 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@headlessui/react@1.7.19': - resolution: {integrity: sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==} + '@headlessui/react@2.1.2': + resolution: {integrity: sha512-Kb3hgk9gRNRcTZktBrKdHhF3xFhYkca1Rk6e1/im2ENf83dgN54orMW0uSKTXFnUpZOUFZ+wcY05LlipwgZIFQ==} engines: {node: '>=10'} peerDependencies: - react: ^16 || ^17 || ^18 - react-dom: ^16 || ^17 || ^18 + react: ^18 + react-dom: ^18 - '@hookform/resolvers@3.3.4': - resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==} + '@hookform/resolvers@3.9.0': + resolution: {integrity: sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg==} peerDependencies: react-hook-form: ^7.0.0 '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -1800,21 +1902,22 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead - '@inquirer/confirm@3.1.5': - resolution: {integrity: sha512-6+dwZrpko5vr5EFEQmUbfBVhtu6IsnB8lQNsLHgO9S9fbfS5J6MuUj+NY0h98pPpYZXEazLR7qzypEDqVzf6aQ==} + '@inquirer/confirm@3.1.18': + resolution: {integrity: sha512-axDSeAtgRfMAOnI2NXJAcBliknRiPHBPBh8VpofFW2vSt5nxU/IoNcWfNBIs1LFwICyLzbvGjF3fd+rYLSU11w==} engines: {node: '>=18'} - '@inquirer/core@8.0.1': - resolution: {integrity: sha512-qJRk1y51Os2ARc11Bg2N6uIwiQ9qBSrmZeuMonaQ/ntFpb4+VlcQ8Gl1TFH67mJLz3HA2nvuave0nbv6Lu8pbg==} + '@inquirer/core@9.0.6': + resolution: {integrity: sha512-pmwIJJrtOBmP29JLPkdq5ORGGaSzOwZbashYyME20sD5AITiy2j3LFsnTXXuiqPIkq4XjQYOHzaExAmqjyU1Cg==} engines: {node: '>=18'} - '@inquirer/figures@1.0.1': - resolution: {integrity: sha512-mtup3wVKia3ZwULPHcbs4Mor8Voi+iIXEWD7wCNbIO6lYR62oPCTQyrddi5OMYVXHzeCSoneZwJuS8sBvlEwDw==} + '@inquirer/figures@1.0.5': + resolution: {integrity: sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==} engines: {node: '>=18'} - '@inquirer/type@1.3.0': - resolution: {integrity: sha512-RW4Zf6RCTnInRaOZuRHTqAUl+v6VJuQGglir7nW2BkT3OXOphMhkIFhvFRjorBx2l0VwtC/M4No8vYR65TdN9Q==} + '@inquirer/type@1.5.1': + resolution: {integrity: sha512-m3YgGQlKNS0BM+8AFiJkCsTqHEFCWn6s/Rqye3mYwvqY6LdfUv12eSwbsgNzrYyrLXiy7IrrjDLPysaSBwEfhw==} engines: {node: '>=18'} '@isaacs/cliui@8.0.2': @@ -1825,18 +1928,6 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -1849,8 +1940,8 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -1867,16 +1958,16 @@ packages: react: '>=16.14.0' react-dom: '>=16.14.0' - '@ladle/react@4.0.3': - resolution: {integrity: sha512-O/iKMPZ27y8EdiyVREmY9aohuZiiDbsT+xtHPlhREo9ln5n/jwjyesZSZm6PhCgrOHQjcyFr8FkoyiANPqt5Ig==} - engines: {node: '>=18.0.0'} + '@ladle/react@4.1.0': + resolution: {integrity: sha512-GjwGsDCBPNzFOpDJ40qAEWwXIHI/tWTGkBCVLYPlaiu7+siGrQC1ojr1ze5Wr8ySJlmoUl/IP1lNtaitG/D/Wg==} + engines: {node: '>=20.0.0'} hasBin: true peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' - '@mdn/browser-compat-data@5.5.7': - resolution: {integrity: sha512-DoHTZ/TjtNfUu9eiqJd+x3IcCQrhS+yOYU436TKUnlE36jZwNbK535D1CmTsSYdi/UcdCWNm5KRQZ9g1tlZCPw==} + '@mdn/browser-compat-data@5.5.34': + resolution: {integrity: sha512-e8k7+8r3jiJuP7FMH6AL1OnmfQqLyABhTM+NmRDvFeAbMgtFcNQLHpmT7uza5cBnxI01+CAU3aSsIgcKGRdEBQ==} '@mdx-js/mdx@3.0.1': resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} @@ -1887,81 +1978,18 @@ packages: '@types/react': '>=16' react: '>=16' - '@mswjs/cookies@0.2.2': - resolution: {integrity: sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==} - engines: {node: '>=14'} - - '@mswjs/cookies@1.1.0': - resolution: {integrity: sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==} - engines: {node: '>=18'} + '@molt/command@0.9.0': + resolution: {integrity: sha512-1JI8dAlpqlZoXyKWVQggX7geFNPxBpocHIXQCsnxDjKy+3WX4SGyZVJXuLlqRRrX7FmQCuuMAfx642ovXmPA9g==} - '@mswjs/interceptors@0.17.10': - resolution: {integrity: sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==} - engines: {node: '>=14'} + '@molt/types@0.2.0': + resolution: {integrity: sha512-p6ChnEZDGjg9PYPec9BK6Yp5/DdSrYQvXTBAtgrnqX6N36cZy37ql1c8Tc5LclfIYBNG7EZp8NBcRTYJwyi84g==} - '@mswjs/interceptors@0.26.15': - resolution: {integrity: sha512-HM47Lu1YFmnYHKMBynFfjCp0U/yRskHj/8QEJW0CBEPOlw8Gkmjfll+S9b8M7V5CNDw2/ciRxjjnWeaCiblSIQ==} + '@mswjs/interceptors@0.29.1': + resolution: {integrity: sha512-3rDakgJZ77+RiQUuSK69t1F0m8BQKA8Vh5DCS5V0DWvNY67zob2JhhQrhCO0AKLGINTRSFd1tBaHcJTkhefoSw==} engines: {node: '>=18'} - '@next/env@14.2.1': - resolution: {integrity: sha512-qsHJle3GU3CmVx7pUoXcghX4sRN+vINkbLdH611T8ZlsP//grzqVW87BSUgOZeSAD4q7ZdZicdwNe/20U2janA==} - - '@next/swc-darwin-arm64@14.2.1': - resolution: {integrity: sha512-kGjnjcIJehEcd3rT/3NAATJQndAEELk0J9GmGMXHSC75TMnvpOhONcjNHbjtcWE5HUQnIHy5JVkatrnYm1QhVw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@next/swc-darwin-x64@14.2.1': - resolution: {integrity: sha512-dAdWndgdQi7BK2WSXrx4lae7mYcOYjbHJUhvOUnJjMNYrmYhxbbvJ2xElZpxNxdfA6zkqagIB9He2tQk+l16ew==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-linux-arm64-gnu@14.2.1': - resolution: {integrity: sha512-2ZctfnyFOGvTkoD6L+DtQtO3BfFz4CapoHnyLTXkOxbZkVRgg3TQBUjTD/xKrO1QWeydeo8AWfZRg8539qNKrg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@14.2.1': - resolution: {integrity: sha512-jazZXctiaanemy4r+TPIpFP36t1mMwWCKMsmrTRVChRqE6putyAxZA4PDujx0SnfvZHosjdkx9xIq9BzBB5tWg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-x64-gnu@14.2.1': - resolution: {integrity: sha512-VjCHWCjsAzQAAo8lkBOLEIkBZFdfW+Z18qcQ056kL4KpUYc8o59JhLDCBlhg+hINQRgzQ2UPGma2AURGOH0+Qg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@14.2.1': - resolution: {integrity: sha512-7HZKYKvAp4nAHiHIbY04finRqjeYvkITOGOurP1aLMexIFG/1+oCnqhGogBdc4lao/lkMW1c+AkwWSzSlLasqw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-win32-arm64-msvc@14.2.1': - resolution: {integrity: sha512-YGHklaJ/Cj/F0Xd8jxgj2p8po4JTCi6H7Z3Yics3xJhm9CPIqtl8erlpK1CLv+HInDqEWfXilqatF8YsLxxA2Q==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-ia32-msvc@14.2.1': - resolution: {integrity: sha512-o+ISKOlvU/L43ZhtAAfCjwIfcwuZstiHVXq/BDsZwGqQE0h/81td95MPHliWCnFoikzWcYqh+hz54ZB2FIT8RA==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@next/swc-win32-x64-msvc@14.2.1': - resolution: {integrity: sha512-GmRoTiLcvCLifujlisknv4zu9/C4i9r0ktsA8E51EMqJL4bD4CpO7lDYr7SrUxCR0tS4RVcrqKmCak24T0ohaw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@noble/ciphers@0.4.1': - resolution: {integrity: sha512-QCOA9cgf3Rc33owG0AYBB9wszz+Ul2kramWN8tXG44Gyciud/tbkEqvxRF/IpqQaBpRBNi9f4jdNxqB2CQCIXg==} + '@noble/ciphers@0.5.3': + resolution: {integrity: sha512-B0+6IIHiqEs3BPMT0hcRmHvEj2QHOLu+uwt+tqDDeVd0oyVzh7BPrDcPjRnV1PV/5LaknXJJQvOuRGR0zQJz+w==} '@noble/curves@1.0.0': resolution: {integrity: sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==} @@ -1969,12 +1997,12 @@ packages: '@noble/curves@1.2.0': resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} - '@noble/curves@1.3.0': - resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} - '@noble/curves@1.4.0': resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} + '@noble/curves@1.4.2': + resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} + '@noble/hashes@1.3.0': resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==} @@ -2014,9 +2042,6 @@ packages: '@open-draft/logger@0.3.0': resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} - '@open-draft/until@1.0.3': - resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==} - '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} @@ -2035,17 +2060,17 @@ packages: react: optional: true - '@plasmohq/storage@1.10.0': - resolution: {integrity: sha512-qvxD7M/k5BNcluyFHyabm21500tRJs1itUkO4bFad0SeaSFtSmAFtNzYCpQ9ormqJAk2j9xkd5DfWHcuCSQmog==} + '@plasmohq/storage@1.11.0': + resolution: {integrity: sha512-JLu8cCjn+yzbaIK2Gw+NDuDJgiTle3nj1HbMC/irnnUTc7lnJSiCEN/EsUcWcwNtv9BJM2r8DAk1stsQ8dCKug==} peerDependencies: react: ^16.8.6 || ^17 || ^18 peerDependenciesMeta: react: optional: true - '@playwright/test@1.43.1': - resolution: {integrity: sha512-HgtQzFgNEEo4TE22K/X7sYTYNqEMMTZmFS8kTq6m8hXj+m1D8TgwgIbumHddJa9h4yl4GkKb8/bgAl2+g7eDgA==} - engines: {node: '>=16'} + '@playwright/test@1.45.3': + resolution: {integrity: sha512-UKF4XsBfy+u3MFWEH44hva1Q8Da28G6RFtR2+5saw+jgAFQV5yYnB1fu68Mz7fO+5GJF3wgwAIs0UelU8TxFrA==} + engines: {node: '>=18'} hasBin: true '@pnpm/config.env-replace@1.1.0': @@ -2060,13 +2085,8 @@ packages: resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} engines: {node: '>=12'} - '@radix-ui/primitive@1.0.0': - resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} - - '@radix-ui/react-compose-refs@1.0.0': - resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/primitive@1.0.1': + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} '@radix-ui/react-compose-refs@1.0.1': resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} @@ -2077,61 +2097,119 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.0.0': - resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} + '@radix-ui/react-compose-refs@1.1.0': + resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - - '@radix-ui/react-dialog@1.0.0': - resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.0.1': + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@radix-ui/react-dismissable-layer@1.0.0': - resolution: {integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==} + '@radix-ui/react-dialog@1.0.5': + resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-focus-guards@1.0.0': - resolution: {integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==} + '@radix-ui/react-dismissable-layer@1.0.5': + resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-focus-scope@1.0.0': - resolution: {integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==} + '@radix-ui/react-focus-guards@1.0.1': + resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@radix-ui/react-id@1.0.0': - resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} + '@radix-ui/react-focus-scope@1.0.4': + resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-portal@1.0.0': - resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} + '@radix-ui/react-id@1.0.1': + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@radix-ui/react-presence@1.0.0': - resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} + '@radix-ui/react-portal@1.0.4': + resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-primitive@1.0.0': - resolution: {integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==} + '@radix-ui/react-presence@1.0.1': + resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-slot@1.0.0': - resolution: {integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==} + '@radix-ui/react-primitive@1.0.3': + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true '@radix-ui/react-slot@1.0.2': resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} @@ -2142,28 +2220,84 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-callback-ref@1.0.0': - resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + '@radix-ui/react-slot@1.1.0': + resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.0.1': + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@radix-ui/react-use-controllable-state@1.0.0': - resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} + '@radix-ui/react-use-controllable-state@1.0.1': + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@radix-ui/react-use-escape-keydown@1.0.0': - resolution: {integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==} + '@radix-ui/react-use-escape-keydown@1.0.3': + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@radix-ui/react-use-layout-effect@1.0.0': - resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + '@radix-ui/react-use-layout-effect@1.0.1': + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@react-aria/focus@3.18.1': + resolution: {integrity: sha512-N0Cy61WCIv+57mbqC7hiZAsB+3rF5n4JKabxUmg/2RTJL6lq7hJ5N4gx75ymKxkN8GnVDwt4pKZah48Wopa5jw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/interactions@3.22.1': + resolution: {integrity: sha512-5TLzQaDAQQ5C70yG8GInbO4wIylKY67RfTIIwQPGR/4n5OIjbUD8BOj3NuSsuZ/frUPaBXo1VEBBmSO23fxkjw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/ssr@3.9.5': + resolution: {integrity: sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@remix-run/router@1.15.3': - resolution: {integrity: sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==} + '@react-aria/utils@3.25.1': + resolution: {integrity: sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-stately/utils@3.10.2': + resolution: {integrity: sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-types/shared@3.24.1': + resolution: {integrity: sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@remix-run/router@1.18.0': + resolution: {integrity: sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw==} engines: {node: '>=14.0.0'} '@rollup/plugin-inject@5.0.5': @@ -2184,10 +2318,6 @@ packages: rollup: optional: true - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - '@rollup/pluginutils@5.1.0': resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} @@ -2197,110 +2327,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.14.3': - resolution: {integrity: sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==} + '@rollup/rollup-android-arm-eabi@4.19.1': + resolution: {integrity: sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.14.3': - resolution: {integrity: sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==} + '@rollup/rollup-android-arm64@4.19.1': + resolution: {integrity: sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.14.3': - resolution: {integrity: sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==} + '@rollup/rollup-darwin-arm64@4.19.1': + resolution: {integrity: sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.14.3': - resolution: {integrity: sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==} + '@rollup/rollup-darwin-x64@4.19.1': + resolution: {integrity: sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.14.3': - resolution: {integrity: sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==} + '@rollup/rollup-linux-arm-gnueabihf@4.19.1': + resolution: {integrity: sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.14.3': - resolution: {integrity: sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==} + '@rollup/rollup-linux-arm-musleabihf@4.19.1': + resolution: {integrity: sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.14.3': - resolution: {integrity: sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==} + '@rollup/rollup-linux-arm64-gnu@4.19.1': + resolution: {integrity: sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.14.3': - resolution: {integrity: sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==} + '@rollup/rollup-linux-arm64-musl@4.19.1': + resolution: {integrity: sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.14.3': - resolution: {integrity: sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.19.1': + resolution: {integrity: sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.14.3': - resolution: {integrity: sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==} + '@rollup/rollup-linux-riscv64-gnu@4.19.1': + resolution: {integrity: sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.14.3': - resolution: {integrity: sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==} + '@rollup/rollup-linux-s390x-gnu@4.19.1': + resolution: {integrity: sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.14.3': - resolution: {integrity: sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==} + '@rollup/rollup-linux-x64-gnu@4.19.1': + resolution: {integrity: sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.14.3': - resolution: {integrity: sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==} + '@rollup/rollup-linux-x64-musl@4.19.1': + resolution: {integrity: sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.14.3': - resolution: {integrity: sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==} + '@rollup/rollup-win32-arm64-msvc@4.19.1': + resolution: {integrity: sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.14.3': - resolution: {integrity: sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==} + '@rollup/rollup-win32-ia32-msvc@4.19.1': + resolution: {integrity: sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.14.3': - resolution: {integrity: sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==} + '@rollup/rollup-win32-x64-msvc@4.19.1': + resolution: {integrity: sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg==} cpu: [x64] os: [win32] - '@scure/base@1.1.6': - resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} + '@rrweb/types@2.0.0-alpha.16': + resolution: {integrity: sha512-E6cACNVsm+NUhn7dzocQoKyXI7BHrHRRm5Ab23yrAzEQ2caWocCEYJhqDlc4KRVJBkQfXZfyWm8+2d0uggFuZg==} - '@scure/bip32@1.3.2': - resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==} - - '@scure/bip32@1.3.3': - resolution: {integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==} + '@scure/base@1.1.7': + resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} '@scure/bip32@1.4.0': resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} - '@scure/bip39@1.2.1': - resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} - - '@scure/bip39@1.2.2': - resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} - '@scure/bip39@1.3.0': resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sindresorhus/is@5.6.0': resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} @@ -2309,21 +2427,6 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@sinonjs/commons@2.0.0': - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@11.2.2': - resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} - - '@sinonjs/samsam@8.0.0': - resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} - - '@sinonjs/text-encoding@0.7.2': - resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} engines: {node: '>=14'} @@ -2402,71 +2505,71 @@ packages: resolution: {integrity: sha512-0XR1poYvPQoPpmfDYLEqUGu5ePAQ4pdgN3VFsZBNAeze7qubVpsIY1o1R6PZpKep/DKu33GSm2NhwpCLkMs2Cw==} engines: {node: '>=14'} - '@swc/core-darwin-arm64@1.4.14': - resolution: {integrity: sha512-8iPfLhYNspBl836YYsfv6ErXwDUqJ7IMieddV3Ey/t/97JAEAdNDUdtTKDtbyP0j/Ebyqyn+fKcqwSq7rAof0g==} + '@swc/core-darwin-arm64@1.7.3': + resolution: {integrity: sha512-CTkHa6MJdov9t41vuV2kmQIMu+Q19LrEHGIR/UiJYH06SC/sOu35ZZH8DyfLp9ZoaCn21gwgWd61ixOGQlwzTw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.4.14': - resolution: {integrity: sha512-9CqSj8uRZ92cnlgAlVaWMaJJBdxtNvCzJxaGj5KuIseeG6Q0l1g+qk8JcU7h9dAsH9saHTNwNFBVGKQo0W0ujg==} + '@swc/core-darwin-x64@1.7.3': + resolution: {integrity: sha512-mun623y6rCoZ2EFIYfIRqXYRFufJOopoYSJcxYhZUrfTpAvQ1zLngjQpWCUU1krggXR2U0PQj+ls0DfXUTraNg==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.4.14': - resolution: {integrity: sha512-mfd5JArPITTzMjcezH4DwMw+BdjBV1y25Khp8itEIpdih9ei+fvxOOrDYTN08b466NuE2dF2XuhKtRLA7fXArQ==} + '@swc/core-linux-arm-gnueabihf@1.7.3': + resolution: {integrity: sha512-4Jz4UcIcvZNMp9qoHbBx35bo3rjt8hpYLPqnR4FFq6gkAsJIMFC56UhRZwdEQoDuYiOFMBnnrsg31Fyo6YQypA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.4.14': - resolution: {integrity: sha512-3Lqlhlmy8MVRS9xTShMaPAp0oyUt0KFhDs4ixJsjdxKecE0NJSV/MInuDmrkij1C8/RQ2wySRlV9np5jK86oWw==} + '@swc/core-linux-arm64-gnu@1.7.3': + resolution: {integrity: sha512-p+U/M/oqV7HC4erQ5TVWHhJU1984QD+wQBPxslAYq751bOQGm0R/mXK42GjugqjnR6yYrAiwKKbpq4iWVXNePA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.4.14': - resolution: {integrity: sha512-n0YoCa64TUcJrbcXIHIHDWQjdUPdaXeMHNEu7yyBtOpm01oMGTKP3frsUXIABLBmAVWtKvqit4/W1KVKn5gJzg==} + '@swc/core-linux-arm64-musl@1.7.3': + resolution: {integrity: sha512-s6VzyaJwaRGTi2mz2h6Ywxfmgpkc69IxhuMzl+sl34plH0V0RgnZDm14HoCGIKIzRk4+a2EcBV1ZLAfWmPACQg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.4.14': - resolution: {integrity: sha512-CGmlwLWbfG1dB4jZBJnp2IWlK5xBMNLjN7AR5kKA3sEpionoccEnChOEvfux1UdVJQjLRKuHNV9yGyqGBTpxfQ==} + '@swc/core-linux-x64-gnu@1.7.3': + resolution: {integrity: sha512-IrFY48C356Z2dU2pjYg080yvMXzmSV3Lmm/Wna4cfcB1nkVLjWsuYwwRAk9CY7E19c+q8N1sMNggubAUDYoX2g==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.4.14': - resolution: {integrity: sha512-xq4npk8YKYmNwmr8fbvF2KP3kUVdZYfXZMQnW425gP3/sn+yFQO8Nd0bGH40vOVQn41kEesSe0Z5O/JDor2TgQ==} + '@swc/core-linux-x64-musl@1.7.3': + resolution: {integrity: sha512-qoLgxBlBnnyUEDu5vmRQqX90h9jldU1JXI96e6eh2d1gJyKRA0oSK7xXmTzorv1fGHiHulv9qiJOUG+g6uzJWg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.4.14': - resolution: {integrity: sha512-imq0X+gU9uUe6FqzOQot5gpKoaC00aCUiN58NOzwp0QXEupn8CDuZpdBN93HiZswfLruu5jA1tsc15x6v9p0Yg==} + '@swc/core-win32-arm64-msvc@1.7.3': + resolution: {integrity: sha512-OAd7jVVJ7nb0Ev80VAa1aeK+FldPeC4eZ35H4Qn6EICzIz0iqJo2T33qLKkSZiZEBKSoF4KcwrqYfkjLOp5qWg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.4.14': - resolution: {integrity: sha512-cH6QpXMw5D3t+lpx6SkErHrxN0yFzmQ0lgNAJxoDRiaAdDbqA6Col8UqUJwUS++Ul6aCWgNhCdiEYehPaoyDPA==} + '@swc/core-win32-ia32-msvc@1.7.3': + resolution: {integrity: sha512-31+Le1NyfSnILFV9+AhxfFOG0DK0272MNhbIlbcv4w/iqpjkhaOnNQnLsYJD1Ow7lTX1MtIZzTjOhRlzSviRWg==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.4.14': - resolution: {integrity: sha512-FmZ4Tby4wW65K/36BKzmuu7mlq7cW5XOxzvufaSNVvQ5PN4OodAlqPjToe029oma4Av+ykJiif64scMttyNAzg==} + '@swc/core-win32-x64-msvc@1.7.3': + resolution: {integrity: sha512-jVQPbYrwcuueI4QB0fHC29SVrkFOBcfIspYDlgSoHnEz6tmLMqUy+txZUypY/ZH/KaK0HEY74JkzgbRC1S6LFQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.4.14': - resolution: {integrity: sha512-tHXg6OxboUsqa/L7DpsCcFnxhLkqN/ht5pCwav1HnvfthbiNIJypr86rNx4cUnQDJepETviSqBTIjxa7pSpGDQ==} + '@swc/core@1.7.3': + resolution: {integrity: sha512-HHAlbXjWI6Kl9JmmUW1LSygT1YbblXgj2UvvDzMkTBPRzYMhW6xchxdO8HbtMPtFYRt/EQq9u1z7j4ttRSrFsA==} engines: {node: '>=10'} peerDependencies: - '@swc/helpers': ^0.5.0 + '@swc/helpers': '*' peerDependenciesMeta: '@swc/helpers': optional: true @@ -2474,35 +2577,43 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.5': - resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + '@swc/helpers@0.5.12': + resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@swc/types@0.1.6': - resolution: {integrity: sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==} + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} '@szmarczak/http-timer@5.0.1': resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} - '@tanstack/react-virtual@3.4.0': - resolution: {integrity: sha512-GZN4xn/Tg5w7gvYeVcMVCeL4pEyUhvg+Cp6KX2Z01C4FRNxIWMgIQ9ibgMarNQfo+gt0PVLcEER4A9sNv/jlow==} + '@tanstack/react-virtual@3.8.3': + resolution: {integrity: sha512-9ICwbDUUzN99CJIGc373i8NLoj6zFTKI2Hlcmo0+lCSAhPQ5mxq4dGOMKmLYoEFyHcGQ64Bd6ZVbnPpM6lNK5w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@tanstack/virtual-core@3.4.0': - resolution: {integrity: sha512-75jXqXxqq5M5Veb9KP1STi8kA5u408uOOAefk2ftHDGCpUk3RP6zX++QqfbmHJTBiU72NQ+ghgCZVts/Wocz8Q==} + '@tanstack/virtual-core@3.8.3': + resolution: {integrity: sha512-vd2A2TnM5lbnWZnHi9B+L2gPtkSeOtJOAw358JqokIH1+v2J7vUAzFVPwB/wrye12RFOurffXu33plm4uQ+JBQ==} - '@testing-library/dom@9.3.4': - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + engines: {node: '>=18'} - '@testing-library/react@14.3.1': - resolution: {integrity: sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==} - engines: {node: '>=14'} + '@testing-library/react@16.0.0': + resolution: {integrity: sha512-guuxUKRWQ+FgNX0h0NS0FIq3Q3uLtWVpBzcLOggmfMoUpgBnzBzvLLd4fbm6yS8ydJd94cIfY4yP9qUQjM2KwQ==} + engines: {node: '>=18'} peerDependencies: + '@testing-library/dom': ^10.0.0 + '@types/react': ^18.0.0 + '@types/react-dom': ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -2529,8 +2640,8 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@tsconfig/recommended@1.0.6': - resolution: {integrity: sha512-0IKu9GHYF1NGTJiYgfWwqnOQSlnE9V9R7YohHNNf0/fj/SyOZWzdd06JFr0fLpg1Mqw0kGbYg8w5xdkSqLKM9g==} + '@tsconfig/recommended@1.0.7': + resolution: {integrity: sha512-xiNMgCuoy4mCL4JTywk9XFs5xpRUcKxtWEcMR6FNMtsgewYTIgIR+nvlP4A4iRCAzRsHMnPhvTRrzp4AGcRTEA==} '@tsconfig/strictest@2.0.5': resolution: {integrity: sha512-ec4tjL2Rr0pkZ5hww65c+EEPYwxOi4Ryv+0MtjeaSQRJyq322Q27eOQiFbuNgw2hpL4hB1/W/HBGk3VKS43osg==} @@ -2538,12 +2649,12 @@ packages: '@tsconfig/vite-react@3.0.2': resolution: {integrity: sha512-AFynAtE1Un3Rko20Ghe2mVC/QWD4rStJ2PnyIZU2kzC4UyWpf1YhAEY87GojH/XPZCY8Mdt27gsYyy+6l6HV+w==} - '@turbo/gen@1.13.3': - resolution: {integrity: sha512-l+EM1gGzckFMaaVQyj3BVRa0QJ+tpp8HfiHOhGpBWW3Vc0Hfj92AY87Di/7HGABa+HVY7ueatMi7DJG+zkJBYg==} + '@turbo/gen@2.0.9': + resolution: {integrity: sha512-IVCBa/+qxsO7srAvFpto0AF09Zei+zpDoosUsHSEwgn/22rVuZ6hdcJdxcQ9kHeMafJpxqLK9iHNSdXUctJ0Vw==} hasBin: true - '@turbo/workspaces@1.13.3': - resolution: {integrity: sha512-QYZ8g3IVQebqNM8IsBlWYOWmOKjBZY55e6lx4EDOLuch1iWmyk+U8CLAI9UomMrSaKTs1Sx+PDkt63EgakvhUw==} + '@turbo/workspaces@2.0.9': + resolution: {integrity: sha512-+OTrQULhuv1qOKE+0DC360sSDB6ad7opEKLGFcLlmLgM7D75qv6UThfnw1Rjh8inIlBSSCCu/co2BaJjgkkpAw==} hasBin: true '@types/acorn@4.0.6': @@ -2561,24 +2672,18 @@ packages: '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.5': - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - - '@types/chai-subset@1.3.5': - resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} - - '@types/chai@4.3.14': - resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/chrome@0.0.254': - resolution: {integrity: sha512-svkOGKwA+6ZZuk9xtrYun8MYpNY/9hD17rgZ19v3KunhsK1ZOKaMESw12/1AXLh1u3UPA8jQIRi2370DXv9wgw==} - - '@types/cookie@0.4.1': - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + '@types/chrome@0.0.269': + resolution: {integrity: sha512-vF7x8YywnhXX2F06njQ/OE7a3Qeful43C5GUOsUksXWk89WoSFUU3iLeZW8lDpVO9atm8iZIEiLQTRC3H7NOXQ==} '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/css-font-loading-module@0.0.7': + resolution: {integrity: sha512-nl09VhutdjINdWyXxHWN/w9zlNCfr60JUqJbd24YXUuCwgeL0TpFSdElCwb6cxfB6ybE19Gjj4g0jsgkXxKv1Q==} + '@types/d3-array@3.2.1': resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} @@ -2609,9 +2714,6 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/dompurify@3.0.5': - resolution: {integrity: sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==} - '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -2645,32 +2747,17 @@ packages: '@types/inquirer@6.5.0': resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==} - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - '@types/js-beautify@1.14.3': resolution: {integrity: sha512-FMbQHz+qd9DoGvgLHxeqqVPaNRffpIu5ZjozwV8hf9JAGpIOzuAf4wGbRSo8LNITHqGjmmVjaMggTT5P4v4IHg==} - '@types/js-levenshtein@1.1.3': - resolution: {integrity: sha512-jd+Q+sD20Qfu9e2aEXogiO3vpOC1PYJOUdyN9gvs4Qrvkg4wF43L5OhqrPeokdv8TL0/mXoYfpkcoGZMNN2pkQ==} - '@types/json-bigint@1.0.4': resolution: {integrity: sha512-ydHooXLbOmxBbubnA7Eh+RpBzuaIiQjh8WGJYQB50JFGFrdxW7JzVlyEV7fAXw0T2sqJ1ysTneJbiyNLqZRAag==} '@types/jsonfile@6.1.4': resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} - '@types/mdast@4.0.3': - resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} @@ -2684,8 +2771,8 @@ packages: '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/mocha@10.0.6': - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + '@types/mocha@10.0.7': + resolution: {integrity: sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==} '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} @@ -2696,14 +2783,17 @@ packages: '@types/node@18.15.13': resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} - '@types/node@18.19.31': - resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} + '@types/node@18.19.42': + resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} - '@types/node@20.12.7': - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + '@types/node@20.14.13': + resolution: {integrity: sha512-+bHoGiZb8UiQ0+WEtmph2IWQCjIqg8MDZMAV+ppRRhUZnquF5mQkP/9vpSwJClEiSM/C7fZZExPzfU0vJTyp8w==} - '@types/prismjs@1.26.3': - resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} + '@types/node@22.0.0': + resolution: {integrity: sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==} + + '@types/prismjs@1.26.4': + resolution: {integrity: sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg==} '@types/prop-types@15.7.12': resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} @@ -2711,27 +2801,15 @@ packages: '@types/ps-tree@1.1.6': resolution: {integrity: sha512-PtrlVaOaI44/3pl3cvnlK+GxOM3re2526TJvPvh7W+keHIXdV4TE0ylpPBAcvFQCbGitaTXwL9u+RF7qtVeazQ==} - '@types/react-dom@18.2.25': - resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==} + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.2.79': - resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==} + '@types/react@18.3.3': + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} '@types/secp256k1@4.0.6': resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} - '@types/set-cookie-parser@2.4.7': - resolution: {integrity: sha512-+ge/loa0oTozxip6zmhRIk8Z/boU51wl9Q6QdLZcokIGMzY5lFXYy/x7Htj2HTC6/KZP1hUbZ1ekx8DYXICvWg==} - - '@types/sinon@17.0.3': - resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} - - '@types/sinonjs__fake-timers@8.1.5': - resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/statuses@2.0.5': resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} @@ -2741,8 +2819,8 @@ packages: '@types/tinycolor2@1.4.6': resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} '@types/unist@2.0.10': resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} @@ -2756,92 +2834,61 @@ packages: '@types/webextension-polyfill@0.8.3': resolution: {integrity: sha512-GN+Hjzy9mXjWoXKmaicTegv3FJ0WFZ3aYz77Wk8TMp1IY3vEzvzj1vnsa0ggV7vMI1i+PUxe4qqnIJKCzf9aTg==} - '@types/which@3.0.3': - resolution: {integrity: sha512-2C1+XoY0huExTbs8MQv1DuS5FS86+SEjdM9F/+GS61gg5Hqbtj8ZiDSx8MfWcyei907fIPbfPGCOrNUTnVHY1g==} + '@types/which@3.0.4': + resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==} '@types/wrap-ansi@3.0.0': resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitejs/plugin-react-swc@3.6.0': - resolution: {integrity: sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==} + '@vitejs/plugin-react-swc@3.7.0': + resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} peerDependencies: vite: ^4 || ^5 - '@vitejs/plugin-react@4.2.1': - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + '@vitejs/plugin-react@4.3.1': + resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 - '@vitest/coverage-c8@0.33.0': - resolution: {integrity: sha512-DaF1zJz4dcOZS4k/neiQJokmOWqsGXwhthfmUdPGorXIQHjdPvV6JQSYhQDI41MyI8c+IieQUdIDs5XAMHtDDw==} - deprecated: v8 coverage is moved to @vitest/coverage-v8 package - peerDependencies: - vitest: '>=0.30.0 <1' - - '@vitest/coverage-v8@1.5.0': - resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} + '@vitest/coverage-v8@2.0.5': + resolution: {integrity: sha512-qeFcySCg5FLO2bHHSa0tAZAOnAUbp4L6/A5JDuj9+bt53JREl8hpLjLHEWF0e/gWc8INVpJaqA7+Ene2rclpZg==} peerDependencies: - vitest: 1.5.0 - - '@vitest/expect@0.34.6': - resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} - - '@vitest/expect@1.5.0': - resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} - - '@vitest/runner@0.34.6': - resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} + vitest: 2.0.5 - '@vitest/runner@1.5.0': - resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} + '@vitest/expect@2.0.4': + resolution: {integrity: sha512-39jr5EguIoanChvBqe34I8m1hJFI4+jxvdOpD7gslZrVQBKhh8H9eD7J/LJX4zakrw23W+dITQTDqdt43xVcJw==} - '@vitest/snapshot@0.34.6': - resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} + '@vitest/pretty-format@2.0.4': + resolution: {integrity: sha512-RYZl31STbNGqf4l2eQM1nvKPXE0NhC6Eq0suTTePc4mtMQ1Fn8qZmjV4emZdEdG2NOWGKSCrHZjmTqDCDoeFBw==} - '@vitest/snapshot@1.5.0': - resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} + '@vitest/runner@2.0.4': + resolution: {integrity: sha512-Gk+9Su/2H2zNfNdeJR124gZckd5st4YoSuhF1Rebi37qTXKnqYyFCd9KP4vl2cQHbtuVKjfEKrNJxHHCW8thbQ==} - '@vitest/spy@0.34.6': - resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} + '@vitest/snapshot@2.0.4': + resolution: {integrity: sha512-or6Mzoz/pD7xTvuJMFYEtso1vJo1S5u6zBTinfl+7smGUhqybn6VjzCDMhmTyVOFWwkCMuNjmNNxnyXPgKDoPw==} - '@vitest/spy@1.5.0': - resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} + '@vitest/spy@2.0.4': + resolution: {integrity: sha512-uTXU56TNoYrTohb+6CseP8IqNwlNdtPwEO0AWl+5j7NelS6x0xZZtP0bDWaLvOfUbaYwhhWp1guzXUxkC7mW7Q==} - '@vitest/utils@0.34.6': - resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} + '@vitest/utils@2.0.4': + resolution: {integrity: sha512-Zc75QuuoJhOBnlo99ZVUkJIuq4Oj0zAkrQ2VzCqNCx6wAwViHEh5Fnp4fiJTE9rA+sAoXRf00Z9xGgfEzV6fzQ==} - '@vitest/utils@1.5.0': - resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} - - '@webcomponents/custom-elements@1.6.0': - resolution: {integrity: sha512-CqTpxOlUCPWRNUPZDxT5v2NnHXA4oox612iUGnmTUGQFhZ1Gkj8kirtl/2wcF6MqX7+PqqicZzOCBKKfIn0dww==} - - '@xmldom/xmldom@0.8.10': - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} - engines: {node: '>=10.0.0'} - - '@zxing/text-encoding@0.9.0': - resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + '@xstate/fsm@1.6.5': + resolution: {integrity: sha512-b5o1I6aLNeYlU/3CPlj/Z91ybk1gUsKT+5NAJI+2W4UjvS5KLG28K9v5UvNoFVjHV8PajVZ00RH3vnjyQO7ZAw==} abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - abitype@1.0.0: - resolution: {integrity: sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ==} + abitype@1.0.5: + resolution: {integrity: sha512-YzDhti7cjlfaBhHutMaboYB21Ha3rXR9QTkNJFzYC4kC8YclaiwPBBBJY8ejFdu2wnJeZCVZSMlQJ7fi8S6hsw==} peerDependencies: typescript: '>=5.0.4' zod: ^3 >=3.22.0 @@ -2864,28 +2911,28 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true - addons-linter@6.21.0: - resolution: {integrity: sha512-4GBn14BR16FZE7dog6uz+1HO6V3B+mAVxmbwxRhed2y5eyrwIW832TmEpku+5A5bbovBZ4gilXEtBsl6A1AMmg==} + addons-linter@6.31.1: + resolution: {integrity: sha512-R9FCyVzqU/h5A2aB1t+jD8t4QKLuLxYqc1FjmjJ0nZrn1qNCna1jFOajt5R1T8pwt0H4WXgT+uwWSD2BdkBzqQ==} engines: {node: '>=16.0.0'} hasBin: true addons-moz-compare@1.3.0: resolution: {integrity: sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==} - addons-scanner-utils@9.9.0: - resolution: {integrity: sha512-YDP10U3sEZMuIgnjXMiAYgUU64jTbxmhpUXMlhi1nKO4Etz+ctGWoTUst7IQRoLWaY9y2r1KZDG3jALxLA1n7Q==} + addons-scanner-utils@9.11.0: + resolution: {integrity: sha512-X95V8ymnue9EHmOLz3zJTGHvHDFlWKiavlH+kJKOlv2sJDWFvD3TWeJMHJgxS9GKOqT/545mOXvX3vuuGGum+g==} peerDependencies: body-parser: 1.20.2 - express: 4.18.2 + express: 4.19.2 node-fetch: 2.6.11 safe-compare: 1.1.4 peerDependenciesMeta: @@ -2898,9 +2945,9 @@ packages: safe-compare: optional: true - adm-zip@0.5.12: - resolution: {integrity: sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==} - engines: {node: '>=6.0'} + adm-zip@0.5.14: + resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==} + engines: {node: '>=12.0'} aes-js@4.0.0-beta.5: resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} @@ -2916,8 +2963,11 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} + + alge@0.8.1: + resolution: {integrity: sha512-kiV9nTt+XIauAXsowVygDxMZLplZxDWt0W8plE/nB32/V2ziM/P/TxDbSVK7FYIUt2Xo16h3/htDh199LNPCKQ==} ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -2970,12 +3020,8 @@ packages: resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} engines: {node: '>=10'} - aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} array-differ@4.0.0: resolution: {integrity: sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==} @@ -2996,18 +3042,12 @@ packages: asn1.js@4.10.1: resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} - asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} - - assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} - assert@2.1.0: resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} ast-types@0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} @@ -3017,6 +3057,9 @@ packages: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} hasBin: true + async-lock@1.4.1: + resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} + async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} @@ -3042,18 +3085,12 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - - aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - - axe-core@4.9.0: - resolution: {integrity: sha512-H5orY+M2Fr56DWmMFpMrq5Ge93qjNdPVqzBv5gWK3aD1OvjBEJlEzxf09z93dGVQeI0LiW+aCMIx1QtShC/zUw==} + axe-core@4.10.0: + resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} engines: {node: '>=4'} - babel-plugin-polyfill-corejs2@0.4.10: - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + babel-plugin-polyfill-corejs2@0.4.11: + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -3062,8 +3099,8 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.1: - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + babel-plugin-polyfill-regenerator@0.6.2: + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -3076,8 +3113,12 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base-x@4.0.0: - resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + base-x@5.0.0: + resolution: {integrity: sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==} + + base64-arraybuffer@1.0.2: + resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} + engines: {node: '>= 0.6.0'} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -3089,8 +3130,9 @@ packages: bcp-47-match@2.0.3: resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} - bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} bignumber.js@9.1.2: resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} @@ -3124,14 +3166,18 @@ packages: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} + bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} brorand@1.1.0: @@ -3159,23 +3205,20 @@ packages: browserify-zlib@0.2.0: resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bs58@5.0.0: - resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + bs58@6.0.0: + resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} - bs58check@3.0.1: - resolution: {integrity: sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==} + bs58check@4.0.0: + resolution: {integrity: sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g==} buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -3191,33 +3234,25 @@ packages: builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} - builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - bundle-require@4.0.2: - resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: - esbuild: 0.20.2 + esbuild: '>=0.18' bunyan@1.8.15: resolution: {integrity: sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==} engines: {'0': node >=0.10.0} hasBin: true - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - - c8@7.14.0: - resolution: {integrity: sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==} - engines: {node: '>=10.12.0'} - hasBin: true - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -3257,23 +3292,19 @@ packages: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} - caniuse-lite@1.0.30001610: - resolution: {integrity: sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==} - - capacitor-secure-storage-plugin@0.9.0: - resolution: {integrity: sha512-P5fiC94opcLHu41vceo9weXH+20g0SPYKkeAx+qm9eKNcVFqpcuI4dqwivXlGXYNMDygyjSQuAaFwZ4gW0Y91Q==} - peerDependencies: - '@capacitor/core': ^5.0.0 + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} - caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + caniuse-lite@1.0.30001643: + resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -3309,8 +3340,12 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} @@ -3328,6 +3363,11 @@ packages: engines: {node: '>=12.13.0'} hasBin: true + chrome-launcher@1.1.0: + resolution: {integrity: sha512-rJYWeEAERwWIr3c3mEVXwNiODPEdMRlRxHc47B1qHPOolHZnkj7rMv1QSUfPoG6MgatWj5AxSpnKKR4QEwEQIQ==} + engines: {node: '>=12.13.0'} + hasBin: true + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -3368,9 +3408,6 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -3383,12 +3420,12 @@ packages: resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} engines: {node: '>=6'} - clsx@2.1.0: - resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - cmdk@0.2.1: - resolution: {integrity: sha512-U6//9lQ6JvT47+6OF6Gi8BvkxYQ8SCRRSKIJkthIMsFsLZRG0cKvTtuTaefyIKMQb8rvvXy0wGdpTNq/jPtm+g==} + cmdk@1.0.0: + resolution: {integrity: sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -3428,8 +3465,8 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} - commander@12.0.0: - resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} commander@2.20.3: @@ -3473,9 +3510,9 @@ packages: resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} engines: {node: '>=12'} - connect-injector@0.4.4: - resolution: {integrity: sha512-hdBG8nXop42y2gWCqOV8y1O3uVk4cIU+SoxLCPyCUKRImyPiScoNiSulpHjoktRU1BdI0UzoUdxUa87thrcmHw==} - engines: {node: '>= 0.8.0'} + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} @@ -3494,16 +3531,9 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} - cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} @@ -3516,17 +3546,11 @@ packages: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} - core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} - core-js-pure@3.36.1: - resolution: {integrity: sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==} - - core-js@3.29.0: - resolution: {integrity: sha512-VG23vuEisJNkGl6XQmFJd3rEG/so/CNatqeE+7uZAwTSwFeB/qaO0be8xZYUNWprJ/GIwL8aMt9cj1kvbpTZhg==} - - core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + core-js-pure@3.37.1: + resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -3552,13 +3576,13 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cross-fetch@3.1.8: - resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} - cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + crypto-browserify@3.12.0: resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} @@ -3587,18 +3611,25 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true + cssfilter@0.0.10: + resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} + csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@4.0.1: + resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + engines: {node: '>=18'} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -3650,14 +3681,10 @@ packages: resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} engines: {node: '>=12'} - daisyui@4.10.2: - resolution: {integrity: sha512-eCWS1W/JPyxW9IvlgW5m0R6rp9ZhRsBTW37rvEUthckkjsV04u8XipV519OoccSA46ixhSJa3q7XLI1WUFtRCA==} + daisyui@4.12.10: + resolution: {integrity: sha512-jp1RAuzbHhGdXmn957Z2XsTZStXGHzFfF0FgIOZj3Wv9sH7OZgLfXTRZNfKVYxltGUOBsG1kbWAdF5SrqjebvA==} engines: {node: '>=16.9.0'} - dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} - data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -3666,15 +3693,23 @@ packages: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + date-fns@3.6.0: resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} - dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dayjs@1.11.12: + resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==} debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + debounce@2.1.0: + resolution: {integrity: sha512-OkL3+0pPWCqoBc/nhO9u6TIQNTK44fnBnzuVtJAbp13Naxw9R6u21x+8tVTka87AhDZ3htqZ2pSSsZl9fqL2Wg==} + engines: {node: '>=18'} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -3683,8 +3718,8 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -3699,6 +3734,9 @@ packages: decimal.js-light@2.5.1: resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -3710,20 +3748,24 @@ packages: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + deep-diff@0.3.8: resolution: {integrity: sha512-yVn6RZmHiGnxRKR9sJb3iVV2XTF1Ghh2DiWRZ3dMnGc43yUdWWF/kX6lQyk3+P84iprfWKU/8zFTrlkvtFm1ug==} - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} deep-equal@1.0.1: resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} - deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -3731,17 +3773,22 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepcopy@2.1.0: - resolution: {integrity: sha512-8cZeTb1ZKC3bdSCP6XOM1IsTczIO73fdqtwa2B0N15eAz7gmyhQo+mc5gnFuulsgN3vIQYmTgbmQVKalH1dKvQ==} - deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + default-browser-id@5.0.0: resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} engines: {node: '>=18'} + default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + default-browser@5.2.1: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} @@ -3757,10 +3804,6 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -3803,6 +3846,10 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} @@ -3812,18 +3859,10 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -3862,9 +3901,6 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.1.4: - resolution: {integrity: sha512-2gnshi6OshmuKil8rMZuQCGiUF3cUxHY3NGDzUAdUx/NPEe5DVnO8BDoAQouvgwnx0R/+a6jUn36Z0FSdq8vww==} - domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} @@ -3878,10 +3914,6 @@ packages: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} engines: {node: '>=10'} - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - dtrace-provider@0.8.8: resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} engines: {node: '>=0.10'} @@ -3895,12 +3927,6 @@ packages: easy-mesh-gradient@0.0.5: resolution: {integrity: sha512-pDfKzk0Wk04CwauJ0X/qVuLGag2i0+vVvTeiY8VRO0Mdf4cW7262yHTrk9cgW+J7885Af8bg7K7nzqzupRV8LQ==} - ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - - ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - editorconfig@1.0.4: resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} engines: {node: '>=14'} @@ -3909,11 +3935,11 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.737: - resolution: {integrity: sha512-QvLTxaLHKdy5YxvixAw/FfHq2eWLUL9KvsPjp0aHK1gI5d3EDuDgITkvj0nFO2c6zUY3ZqVAJQiBYyQP9tQpfw==} + electron-to-chromium@1.5.2: + resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==} - elliptic@6.5.5: - resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} + elliptic@6.5.6: + resolution: {integrity: sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3943,53 +3969,171 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - - es-module-lexer@0.10.5: - resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==} - - es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - es6-promisify@7.0.0: - resolution: {integrity: sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==} - engines: {node: '>=6'} + esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] - esbuild-plugin-polyfill-node@0.3.0: - resolution: {integrity: sha512-SHG6CKUfWfYyYXGpW143NEZtcVVn8S/WHcEOxk62LuDXnY4Zpmc+WmxJKN6GMTgTClXJXhEM5KQlxKY6YjbucQ==} - peerDependencies: - esbuild: 0.20.2 + esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] - esbuild-plugin-svgr@2.0.0: - resolution: {integrity: sha512-C/itiV1SDgxNO6sUtO9JUMZ3wv2+OL/hMhN/FxSJ4UIcQg/BKNYY9Y6cLz3haUse7UDfma87UiwmYd7/KKddtQ==} + esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} engines: {node: '>=12'} - hasBin: true + cpu: [arm64] + os: [darwin] - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} + esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] - escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} + esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + esbuild-plugin-polyfill-node@0.3.0: + resolution: {integrity: sha512-SHG6CKUfWfYyYXGpW143NEZtcVVn8S/WHcEOxk62LuDXnY4Zpmc+WmxJKN6GMTgTClXJXhEM5KQlxKY6YjbucQ==} + peerDependencies: + esbuild: '*' + + esbuild-plugin-svgr@2.1.0: + resolution: {integrity: sha512-BKJOlQvXjLipPDPYfX+N6i2tPxSuVOhlg+hEF/nkQwMwFV6IymvuCRO0wLvf9tGyL3mc3yIZ4n9pfxcCx/7v2Q==} + peerDependencies: + esbuild: ^0.19.1 + + esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.23.0: + resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -4017,11 +4161,19 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true + espree@10.0.1: + resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4031,8 +4183,8 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -4071,11 +4223,11 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - ethereum-cryptography@2.1.3: - resolution: {integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==} + ethereum-cryptography@2.2.1: + resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} - ethers@6.11.1: - resolution: {integrity: sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==} + ethers@6.13.2: + resolution: {integrity: sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==} engines: {node: '>=14.0.0'} event-stream@3.3.4: @@ -4091,6 +4243,9 @@ packages: eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -4106,14 +4261,14 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -4121,10 +4276,6 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} - extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -4166,6 +4317,9 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} + fflate@0.4.8: + resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -4174,8 +4328,8 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} filter-obj@5.1.0: @@ -4190,8 +4344,8 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - firefox-profile@4.3.2: - resolution: {integrity: sha512-/C+Eqa0YgIsQT2p66p7Ygzqe7NlE/GNTbhw2SBCm5V3OsWDPITNdTPEcH2Q2fe7eMpYYNPKdUcuVioZBZiR6kA==} + firefox-profile@4.6.0: + resolution: {integrity: sha512-I9rAm1w8U3CdhgO4EzTJsCvgcbvynZn9lOySkZf78wUdUIQH2w9QOKf3pAX+THt2XMSSR3kJSuM8P7bYux9j8g==} hasBin: true first-chunk-stream@3.0.0: @@ -4208,24 +4362,17 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@2.0.0: - resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} - engines: {node: '>=8.0.0'} - - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} - forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} engines: {node: '>= 14.17'} - form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} @@ -4245,10 +4392,6 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.1.0: - resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} - engines: {node: '>=14.14'} - fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -4273,15 +4416,12 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - fx-runner@1.4.0: resolution: {integrity: sha512-rci1g6U0rdTg6bAaBboP7XdRu01dzTAaKXxFf+PUqGuCv6Xu7o8NZdY1D5MvKGIjb6EdS1g3VlXOgksir1uGkg==} hasBin: true - fx@34.0.0: - resolution: {integrity: sha512-/fZih3/WLsrtlaj2mahjWxAmyuikmcl3D5kKPqLtFmEilLsy9wp0+/vEmfvYXXhwJc+ajtCFDCf+yttXmPMHSQ==} + fx@35.0.0: + resolution: {integrity: sha512-O07q+Lknrom5RUX/u53tjo2KTTLUnL0K703JbqMYb19ORijfJNvijzFqqYXEjdk25T9R14S6t6wHD8fCWXCM0g==} hasBin: true gensync@1.0.0-beta.2: @@ -4323,9 +4463,6 @@ packages: resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} engines: {node: '>= 14'} - getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -4337,21 +4474,27 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} + glob@10.4.2: + resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} + engines: {node: '>=16 || 14 >=14.18'} hasBin: true - glob@10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} - engines: {node: '>=16 || 14 >=14.17'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} hasBin: true glob@6.0.4: resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} @@ -4381,8 +4524,8 @@ packages: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - globby@14.0.1: - resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} engines: {node: '>=18'} globrex@0.1.2: @@ -4411,13 +4554,24 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - graphql-request@6.1.0: - resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} + graphql-request@7.1.0: + resolution: {integrity: sha512-Ouu/lYVFhARS1aXeZoVJWnGT6grFJXTLwXJuK4mUGGRo0EUk1JkyYp43mdGmRgUVezpRm6V5Sq3t8jBDQcajng==} + hasBin: true peerDependencies: + '@dprint/formatter': ^0.3.0 + '@dprint/typescript': ^0.91.1 + dprint: ^0.46.2 graphql: 14 - 16 + peerDependenciesMeta: + '@dprint/formatter': + optional: true + '@dprint/typescript': + optional: true + dprint: + optional: true - graphql@16.8.1: - resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} growly@1.3.0: @@ -4428,20 +4582,9 @@ packages: engines: {node: '>=0.4.7'} hasBin: true - happy-dom@12.10.3: - resolution: {integrity: sha512-JzUXOh0wdNGY54oKng5hliuBkq/+aT1V3YpTM+lrN/GoLQTANZsMaIvmHiHe612rauHvPJnDZkZ+5GZR++1Abg==} - - har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} - - har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - deprecated: this library is no longer supported - - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + happy-dom@14.12.3: + resolution: {integrity: sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==} + engines: {node: '>=16.0.0'} has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -4497,8 +4640,8 @@ packages: hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - hast-util-raw@9.0.2: - resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} hast-util-select@6.0.2: resolution: {integrity: sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==} @@ -4524,9 +4667,6 @@ packages: header-case@1.0.1: resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} - headers-polyfill@3.2.5: - resolution: {integrity: sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==} - headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} @@ -4536,9 +4676,16 @@ packages: hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} @@ -4560,10 +4707,6 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} - http2-wrapper@2.2.1: resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} engines: {node: '>=10.19.0'} @@ -4571,8 +4714,8 @@ packages: https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} human-signals@1.1.1: @@ -4583,13 +4726,17 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} + husky@9.1.4: + resolution: {integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==} + engines: {node: '>=18'} hasBin: true iconv-lite@0.4.24: @@ -4615,8 +4762,8 @@ packages: immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - immer@10.0.4: - resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} + immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -4639,6 +4786,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.3: resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} @@ -4667,10 +4815,6 @@ packages: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - internmap@2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} @@ -4700,27 +4844,15 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} - is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -4730,11 +4862,8 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} engines: {node: '>= 0.4'} is-decimal@2.0.1: @@ -4785,10 +4914,6 @@ packages: is-lower-case@1.1.3: resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - is-mergeable-object@1.1.1: resolution: {integrity: sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==} @@ -4803,10 +4928,6 @@ packages: resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -4827,25 +4948,24 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-primitive@3.0.1: + resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==} + engines: {node: '>=0.10.0'} + is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - is-relative@0.1.3: resolution: {integrity: sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==} engines: {node: '>=0.10.0'} - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -4854,14 +4974,6 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} @@ -4879,14 +4991,6 @@ packages: is-utf8@0.2.1: resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} - is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} @@ -4906,9 +5010,6 @@ packages: isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isbinaryfile@4.0.10: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} engines: {node: '>= 8.0.0'} @@ -4919,18 +5020,19 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + isomorphic-timers-promises@1.0.1: resolution: {integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==} engines: {node: '>=10'} - isows@1.0.3: - resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==} + isows@1.0.4: + resolution: {integrity: sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ==} peerDependencies: ws: '*' - isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -4939,8 +5041,8 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.4: - resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} istanbul-reports@3.1.7: @@ -4950,39 +5052,22 @@ packages: iterall@1.3.0: resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.0.1: + resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} + engines: {node: 20 || >=22} jed@1.1.1: resolution: {integrity: sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==} - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - jose@4.13.1: - resolution: {integrity: sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==} + jose@5.4.1: + resolution: {integrity: sha512-U6QajmpV/nhL9SyfAewo000fkiRQ+Yd2H0lBxJJ9apjpOgkOcBQJWOrMo917lxLptdS/n/o/xPzMkXhF46K8hQ==} joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} @@ -4997,29 +5082,28 @@ packages: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} - js-levenshtein@1.1.6: - resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} - engines: {node: '>=0.10.0'} - js-sha256@0.9.0: resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsdom@24.1.1: + resolution: {integrity: sha512-5O1wWV99Jhq4DV7rCLIoZ/UIhyQeDR7wHVyZAHAshbrvZsLs+Xzz7gtwnlJTJDjleiTKh54F4dXrX70vJQTyJQ==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -5029,11 +5113,6 @@ packages: engines: {node: '>=4'} hasBin: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - json-bigint@1.0.0: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} @@ -5046,52 +5125,30 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@3.0.2: + resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - jsonwebtoken@9.0.0: - resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} - engines: {node: '>=12', npm: '>=6'} - - jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} - jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - just-extend@6.2.0: - resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} - - jwa@1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} - - jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - keygrip@1.1.0: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} @@ -5131,12 +5188,15 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + lighthouse-logger@2.0.1: + resolution: {integrity: sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==} + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} lines-and-columns@1.2.4: @@ -5146,34 +5206,44 @@ packages: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + linkedom@0.14.26: + resolution: {integrity: sha512-mK6TrydfFA7phrnp+1j57ycBwFI5bGSW6YXlw9acHoqF+mP/y+FooEYYyniOt5Ot57FSKB3iwmnuQ1UUyNLm5A==} + load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + lodash.ismatch@4.4.0: + resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -5192,8 +5262,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} lower-case-first@1.0.2: resolution: {integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==} @@ -5208,25 +5278,24 @@ packages: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.0.0: + resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} + engines: {node: 20 || >=22} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - lucide-react@0.376.0: - resolution: {integrity: sha512-g91IX3ERD6yUR1TL2dsL4BkcGygpZz/EsqjAeL/kcRQV0EApIOr/9eBfKhYOVyQIcGGuotFGjF3xKLHMEz+b7g==} + lucide-react@0.417.0: + resolution: {integrity: sha512-F/MDUHDter8YMZ7JKQpW/5/+v38tdaoShKX3e+opYsqfCnaHwn+5zz3+lBrMDFMNtSsvxtNpchLIaMpEfsi/4w==} peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} @@ -5235,13 +5304,8 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.26.7: - resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} - engines: {node: '>=12'} - - magic-string@0.30.9: - resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} - engines: {node: '>=12'} + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} @@ -5276,11 +5340,14 @@ packages: md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} mdast-util-gfm-autolink-literal@2.0.0: resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} @@ -5315,8 +5382,8 @@ packages: mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} mdast-util-to-markdown@2.1.0: resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} @@ -5338,10 +5405,10 @@ packages: resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==} engines: {node: '>=8'} - merge-refs@1.2.2: - resolution: {integrity: sha512-RwcT7GsQR3KbuLw1rRuodq4Nt547BKEBkliZ0qqsrpyNne9bGTFtsFIsIpx82huWhcl3kOlOlH4H0xkPk/DqVw==} + merge-refs@1.3.0: + resolution: {integrity: sha512-nqXPXbso+1dcKDpPCXvwZyJILz+vSLqGGOnDrYHQYE+B8n9JTCekVLC65AfCpR4ggVyA/45Y0iR9LDyS2iI+zA==} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true @@ -5353,32 +5420,35 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micro-eth-signer@0.6.5: - resolution: {integrity: sha512-/E8TJP/SCF1QpLR26U2ZvJRq+Zc2CpeMsC1sq1sYgVzyDDfBZrRXxCB+IMaG3dAExpenOF8ak5BxADsHPCHUJQ==} + micro-eth-signer@0.10.0: + resolution: {integrity: sha512-o02bX24EWdJ77h2X4yeon2FJ81JfJk0V80ZjibW3KwOSiv5FxmJv301hbK6pfE+hq9yiYdrJ9SVCsw9DZU/N3g==} + + micro-packed@0.6.3: + resolution: {integrity: sha512-VmVkyc7lIzAq/XCPFuLc/CwQ7Ehs5XDK3IwqsZHiBIDttAI9Gs7go6Lv4lNRuAIKrGKcRTtthFKUNyHS0S4wJQ==} micro-starknet@0.2.3: resolution: {integrity: sha512-6XBcC+GerlwJSR4iA0VaeXtS2wrayWFcA4PEzrJPMuFmWCaUtuGIq5K/DB5F/XgnL54/zl2Bxo690Lj7mYVA8A==} - micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} - micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} micromark-extension-gfm@3.0.0: resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} @@ -5464,8 +5534,8 @@ packages: micromark@4.0.0: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} miller-rabin@4.0.1: @@ -5496,8 +5566,8 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - mina-signer@2.1.2: - resolution: {integrity: sha512-fvi1L8vjEFHyZp66eUsCXp80A5WXEHKvGunwLikDWMilVC7bS36AvVZOc1s+8F48xNsKXuxcwkMrPWPzNgechA==} + mina-signer@3.0.7: + resolution: {integrity: sha512-7eYp/6WWj2VzJjvfC8dNeGMud/brdBrzkUsCdysFFXnfV2/FVpVhAGCMfaS6hs0HJtS4+eplmiD2hXfshQS8CQ==} minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -5505,6 +5575,10 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -5516,8 +5590,8 @@ packages: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: @@ -5527,25 +5601,25 @@ packages: resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} engines: {node: '>=8'} - minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - mixpanel-browser@2.49.0: - resolution: {integrity: sha512-RZJCO7XXuuHBAWG5fd9Mavz994M7v7W3Qiaq8NzmN631pa4BQ0vNZQtRFqKcCCOBn4xqOZbX2GkuC7ZkQoL4cQ==} + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mixpanel-browser@2.54.0: + resolution: {integrity: sha512-ad5cIw0Uxa7VaBvI3RfvnH5eYfbmaZUboLHNVYb5A5IGwddRYJ6wzXV50peBixUg1ovlLIz/Lz6yOePfBQVdrQ==} mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} engines: {node: '>=10'} hasBin: true - mlly@1.6.1: - resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} - moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} @@ -5555,21 +5629,8 @@ packages: ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - msw@1.3.3: - resolution: {integrity: sha512-CiPyRFiYJCXYyH/vwxT7m+sa4VZHuUH6cGwRBj0kaTjBGpsk4EnL47YzhoA859htVCF2vzqZuOsomIUlFqg9GQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - typescript: '>= 4.4.x' - peerDependenciesMeta: - typescript: - optional: true - - msw@2.2.13: - resolution: {integrity: sha512-ljFf1xZsU0b4zv1l7xzEmC6OZA6yD06hcx0H+dc8V0VypaP3HGYJa1rMLjQbBWl32ptGhcfwcPCWDB1wjmsftw==} + msw@2.3.4: + resolution: {integrity: sha512-sHMlwrajgmZSA2l1o7qRSe+azm/I+x9lvVVcOxAzi4vCtH8uVPJk1K5BQYDkzGl+tt0RvM9huEXXdeGrgcc79g==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -5596,8 +5657,8 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.19.0: - resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} + nan@2.20.0: + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} nanoevents@6.0.2: resolution: {integrity: sha512-FRS2otuFcPPYDPYViNWQ42+1iZqbXydinkRHTHFxrF4a1CpBfmydR9zkI44WSXAXCyPrkcGtPk5CnpW6Y3lFKQ==} @@ -5631,33 +5692,11 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - next-themes@0.2.1: - resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} - peerDependencies: - next: '*' - react: '*' - react-dom: '*' - - next@14.2.1: - resolution: {integrity: sha512-SF3TJnKdH43PMkCcErLPv+x/DY1YCklslk3ZmwaVoyUfDgHKexuKlf9sEfBQ69w+ue8jQ3msLb+hSj1T19hGag==} - engines: {node: '>=18.17.0'} - hasBin: true + next-themes@0.3.0: + resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - sass: - optional: true - - nise@5.1.9: - resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} @@ -5669,19 +5708,14 @@ packages: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - node-fetch@3.3.1: resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -5693,8 +5727,8 @@ packages: resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} engines: {node: '>=8.9.4'} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} node-stdlib-browser@1.2.0: resolution: {integrity: sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg==} @@ -5731,8 +5765,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + nwsapi@2.2.12: + resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -5742,8 +5776,9 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} object-is@1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} @@ -5783,12 +5818,12 @@ packages: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} ora@4.1.1: @@ -5814,8 +5849,8 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - outvariant@1.4.2: - resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} + outvariant@1.4.3: + resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} p-cancelable@3.0.0: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} @@ -5833,14 +5868,6 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -5849,14 +5876,17 @@ packages: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} - pac-proxy-agent@7.0.1: - resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} + pac-proxy-agent@7.0.2: + resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} engines: {node: '>= 14'} pac-resolver@7.0.1: resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} engines: {node: '>= 14'} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + package-json@8.1.1: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} @@ -5882,9 +5912,9 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-json@6.0.2: - resolution: {integrity: sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + parse-json@7.1.1: + resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} + engines: {node: '>=16'} parse5-htmlparser2-tree-adapter@7.0.0: resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} @@ -5924,9 +5954,13 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} path-to-regexp@6.2.2: resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} @@ -5945,8 +5979,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} pause-stream@0.0.11: resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} @@ -5958,14 +5993,11 @@ packages: pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -5984,14 +6016,14 @@ packages: resolution: {integrity: sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw==} engines: {node: '>=14.16'} - pino-abstract-transport@1.1.0: - resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} + pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} pino-std-serializers@6.2.2: resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} - pino@8.17.2: - resolution: {integrity: sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==} + pino@8.20.0: + resolution: {integrity: sha512-uhIfMj5TVp+WynVASaVEJFTncTUe4dHBq6CWplu/vBgvGHhvBvQfxz+vcOrnnBQdORH3izaGEurLfNlq3YxdFQ==} hasBin: true pirates@4.0.6: @@ -6002,17 +6034,14 @@ packages: resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} engines: {node: '>=10'} - pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - - playwright-core@1.43.1: - resolution: {integrity: sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==} - engines: {node: '>=16'} + playwright-core@1.45.3: + resolution: {integrity: sha512-+ym0jNbcjikaOwwSZycFbwkWgfruWvYlJfThKYAlImbxUgdWFO2oW70ojPm4OpE4t6TAo2FY/smM+hpVTtkhDA==} + engines: {node: '>=18'} hasBin: true - playwright@1.43.1: - resolution: {integrity: sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==} - engines: {node: '>=16'} + playwright@1.45.3: + resolution: {integrity: sha512-QhVaS+lpluxCaioejDZ95l4Y4jSFCsBvl2UZkpeXlzxmqS+aABr5c82YmfMHrL6x27nvrvykJAFpkzT2eWdJww==} + engines: {node: '>=18'} hasBin: true possible-typed-array-names@1.0.0: @@ -6043,29 +6072,39 @@ packages: ts-node: optional: true - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} peerDependencies: - postcss: ^8.2.14 - - postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true - postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} - engines: {node: ^10 || ^12 || >=14} + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.1: + resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + postcss@8.4.40: + resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -6076,10 +6115,6 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - prism-react-renderer@2.3.1: resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==} peerDependencies: @@ -6140,29 +6175,24 @@ packages: resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} engines: {node: '>=12.20'} - q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - qr.js@0.0.0: resolution: {integrity: sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ==} - qs@6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + qs@6.12.3: + resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} engines: {node: '>=0.6'} - qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} - - query-string@9.0.0: - resolution: {integrity: sha512-4EWwcRGsO2H+yzq6ddHcVqkCQ2EFUSfDMEjF8ryp8ReymyZhIuaFRGLomeOQLkrzacMHoyky2HW0Qe30UbzkKw==} + query-string@9.1.0: + resolution: {integrity: sha512-t6dqMECpCkqfyv2FfwVS1xcB6lgXW/0XZSaKdsCNGYkqMO76AFiJEg4vINzoDKcZa6MS7JX+OHIjwh06K5vczw==} engines: {node: '>=18'} querystring-es3@0.2.1: resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} engines: {node: '>=0.4.x'} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -6176,11 +6206,8 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - rambda@7.5.0: - resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} - - rambda@8.6.0: - resolution: {integrity: sha512-Ax+/bAcV2h4wINXx6wm0792G5uXZAl78rzhei+FqmHezg45vbeTUyDAmDNbSdjNOL6LGN8AUEvzaYD7oO5eYrw==} + rambda@9.2.1: + resolution: {integrity: sha512-6Dp+QQVQuAuhwBlbIvL2FjJVHCKF29W+n9ca/BMTVDqpj+Q7KKqUh7UAINEna8aaB2/oRvPuL5hViCTQARa70Q==} randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -6195,27 +6222,26 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-day-picker@8.10.1: - resolution: {integrity: sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==} + react-day-picker@9.0.4: + resolution: {integrity: sha512-hT4yv89vfXjxEu+TKGfRlhIDi8kipy/Z8XDglT1VeskaTzNNIGfB8eCfF2AqT/WT32rfD6et+q61hiZPJi8HZw==} peerDependencies: - date-fns: ^2.28.0 || ^3.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: '>=16.8.0' - react-dom@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^18.2.0 + react: ^18.3.1 react-error-boundary@4.0.13: resolution: {integrity: sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==} peerDependencies: react: '>=16.13.1' - react-hook-form@7.51.3: - resolution: {integrity: sha512-cvJ/wbHdhYx8aviSWh28w9ImjmVsb5Y05n1+FW786vEZQJV5STNM0pW6ujS+oiBecb0ARBxJFyAnXj9+GHXACQ==} + react-hook-form@7.52.1: + resolution: {integrity: sha512-uNKIhaoICJ5KQALYZ4TOaOLElyM+xipord+Ha3crEFhTntdLvWZqVY49Wqd/0GiVCA/f9NjemLeiNPjG7Hpurg==} engines: {node: '>=12.22.0'} peerDependencies: - react: ^16.8.0 || ^17 || ^18 + react: ^16.8.0 || ^17 || ^18 || ^19 react-hotkeys-hook@4.5.0: resolution: {integrity: sha512-Samb85GSgAWFQNvVt3PS90LPPGSf9mkH/r4au81ZP1yOIFayLC3QAvqTgGtJ8YEDMXtPmaVBs6NgipHO6h4Mug==} @@ -6234,29 +6260,18 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - react-mixpanel-browser@4.1.0: resolution: {integrity: sha512-ShHQQslGi240VTAo685keDtKKe3B3w3yURi/jCwdtCAk6+OQnm1MdhuDC3SFADJ10VvdNb3240t1nKn7uPnTRQ==} peerDependencies: react: '18' - react-qr-code@2.0.12: - resolution: {integrity: sha512-k+pzP5CKLEGBRwZsDPp98/CAJeXlsYRHM2iZn1Sd5Th/HnKhIZCSg27PXO58zk8z02RaEryg+60xa4vyywMJwg==} + react-qr-code@2.0.15: + resolution: {integrity: sha512-MkZcjEXqVKqXEIMVE0mbcGgDpkfSdd8zhuzXEl9QzYeNcw8Hq2oVIzDLWuZN2PQBwM5PWjc2S31K8Q1UbcFMfw==} peerDependencies: - react: ^16.x || ^17.x || ^18.x - react-native-svg: '*' - peerDependenciesMeta: - react-native-svg: - optional: true - - react-refresh@0.13.0: - resolution: {integrity: sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==} - engines: {node: '>=0.10.0'} + react: '*' - react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} react-remove-scroll-bar@2.3.6: @@ -6269,8 +6284,8 @@ packages: '@types/react': optional: true - react-remove-scroll@2.5.4: - resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} + react-remove-scroll@2.5.5: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -6279,21 +6294,21 @@ packages: '@types/react': optional: true - react-router-dom@6.22.3: - resolution: {integrity: sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==} + react-router-dom@6.25.1: + resolution: {integrity: sha512-0tUDpbFvk35iv+N89dWNrJp+afLgd+y4VtorJZuOCXK0kkCWjEvb3vTJM++SYvMEpbVwXKf3FjeVveVEb6JpDQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router@6.22.3: - resolution: {integrity: sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==} + react-router@6.25.1: + resolution: {integrity: sha512-u8ELFr5Z6g02nUtpPAggP73Jigj1mRePSwhS/2nkTrlPU5yEkH1vYzWNyvSnSzeeE2DNqWdH+P8OhIh9wuXhTw==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' - react-slot-counter@2.3.1: - resolution: {integrity: sha512-mc7Xdho0zMOeoR7/hzuwFe+dvjgCm3iLCkS67IvxCVkMh+qVZ7o7ph6LqrHd623pjYbjcGRwhEdq5c+uoKVsvA==} + react-slot-counter@3.0.1: + resolution: {integrity: sha512-+NwzRrZ+zWErP/8nz+0Y/imtOcMDr1A2Gv8CfzXNRW/zXaxNPMpZQdWeJAX/HiSqaeGc+jxKqKscoMN101NYDg==} engines: {node: '>=16.0.0'} peerDependencies: react: '>=16.8.0' @@ -6324,8 +6339,8 @@ packages: react-twc@1.4.1: resolution: {integrity: sha512-G8Z4a20zM5bFMUPUrVlMiOIRiIbrNgj4CbvqNH6A1KcbEaEsXrKnDAtN6h7JptSaREbl/Mz66Rg+bEpiHnZDig==} - react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -6346,6 +6361,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readline-sync@1.4.10: + resolution: {integrity: sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==} + engines: {node: '>= 0.8.0'} + real-require@0.2.0: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} @@ -6353,8 +6372,8 @@ packages: recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} - recharts@2.12.5: - resolution: {integrity: sha512-Cy+BkqrFIYTHJCyKHJEPvbHE2kVQEP6PKbOHJ8ztRGTAhvHuUnCwDaKVb13OwRFZ0QNUk1QvGTDdgWSMbuMtKw==} + recharts@2.12.7: + resolution: {integrity: sha512-hlLJMhPQfv4/3NBSAyq3gzGg4h2v69RJh6KU7b3pXYNNAELs9kEoXOjbkxdXpALqKBoVmVptGfLpxdaVYqjmXQ==} engines: {node: '>=14'} peerDependencies: react: ^16.0.0 || ^17.0.0 || ^18.0.0 @@ -6370,19 +6389,12 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} - regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} @@ -6406,8 +6418,8 @@ packages: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true - rehype-class-names@1.0.14: - resolution: {integrity: sha512-eFBt6Qxb7K77y6P82tUtN9rKpU7guWlaK4XA4RrrSFHkUTCvr2D3cgb9OR5d4t1AaGOvR59FH9nRwUnbpn9AEg==} + rehype-class-names@2.0.0: + resolution: {integrity: sha512-jldCIiAEvXKdq8hqr5f5PzNdIDkvHC6zfKhwta9oRoMu7bn0W7qLES/JrrjBvr9rKz3nJ8x4vY1EWI+dhjHVZQ==} rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} @@ -6432,14 +6444,12 @@ packages: remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + remeda@1.61.0: + resolution: {integrity: sha512-caKfSz9rDeSKBQQnlJnVW3mbVdFgxgGWQKq1XlFokqjf+hQD5gxutLGTTY2A/x24UxVyJe9gH5fAkFI63ULw4A==} + remove-accents@0.5.0: resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} - request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6448,6 +6458,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -6477,15 +6490,17 @@ packages: rimraf@2.4.5: resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} hasBin: true ripemd160@2.0.2: @@ -6502,24 +6517,38 @@ packages: rollup-plugin-node-polyfills@0.2.1: resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} - rollup-plugin-polyfill-node@0.12.0: - resolution: {integrity: sha512-PWEVfDxLEKt8JX1nZ0NkUAgXpkZMTb85rO/Ru9AQ69wYW8VUCfDgP4CGRXXWYni5wDF0vIeR1UoF3Jmw/Lt3Ug==} + rollup-plugin-polyfill-node@0.13.0: + resolution: {integrity: sha512-FYEvpCaD5jGtyBuBFcQImEGmTxDTPbiHjJdrYIp+mFIwgXiXabxvKUK7ZT9P31ozu2Tqm9llYQMRWsfvTMTAOw==} peerDependencies: - rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@2.78.1: - resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} - engines: {node: '>=10.0.0'} - hasBin: true - - rollup@4.14.3: - resolution: {integrity: sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==} + rollup@4.19.1: + resolution: {integrity: sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rrdom@2.0.0-alpha.16: + resolution: {integrity: sha512-m8aoeORWUz7AFdEb7hES7wPeL6fl/oP23RoAlzLXyA/f2+NqCDM7KEyCXY4sHu6CChN3OAUP2BaUGEXn0zynlw==} + + rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + + rrweb-snapshot@2.0.0-alpha.16: + resolution: {integrity: sha512-p81OrzUiCmUMZzJu4fGHeLB00PIbVIqsV/zhqzr2pitHTUXpMYcyOvDWt0vHdla0vnowEPaHq3Wsu6cUc732/w==} + + rrweb@2.0.0-alpha.13: + resolution: {integrity: sha512-a8GXOCnzWHNaVZPa7hsrLZtNZ3CGjiL+YrkpLo0TfmxGLhjNZbWY2r7pE06p+FcjFNlgUVTmFrSJbK3kO7yxvw==} + + run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} @@ -6535,9 +6564,6 @@ packages: resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} - rxjs@7.5.7: - resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} - rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -6557,11 +6583,15 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} - scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} seedrandom@3.0.5: resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} @@ -6577,13 +6607,13 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true - semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -6598,16 +6628,13 @@ packages: resolution: {integrity: sha512-6uZQLGyUkNA4N+Zii9fYukmNu9PEA1F5rqcwXzN/3LtBjwl2dFBbVZ1Zyn08/CGkB4H440PIemdOQBt1Wvjbrg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + set-value@4.1.0: + resolution: {integrity: sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==} + engines: {node: '>=11.0'} setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -6640,9 +6667,6 @@ packages: siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - sign-addon@5.3.0: - resolution: {integrity: sha512-7nHlCzhQgVMLBNiXVEgbG/raq48awOW0lYMN5uo1BaB3mp0+k8M8pvDwbfTlr3apcxZJsk9HQsAW1POwoJugpQ==} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -6650,9 +6674,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sinon@17.0.1: - resolution: {integrity: sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -6675,8 +6696,8 @@ packages: snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - socks-proxy-agent@8.0.3: - resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} + socks-proxy-agent@8.0.4: + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} engines: {node: '>= 14'} socks@2.8.3: @@ -6686,12 +6707,16 @@ packages: sonic-boom@3.8.1: resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} - sonner@1.4.41: - resolution: {integrity: sha512-uG511ggnnsw6gcn/X+YKkWPo5ep9il9wYi3QJxHsYe7yTZ4+cOd1wuodOUmOpFuXL+/RE3R04LczdNCDygTDgQ==} + sonner@1.5.0: + resolution: {integrity: sha512-FBjhG/gnnbN6FY0jaNnqZOMmB73R+5IiyYAw8yBj7L54ER7HB3fOSE5OFiQiE2iXWxeXKvg6fIP4LtVppHEdJA==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 + sort-keys@5.0.0: + resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} + engines: {node: '>=12'} + source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -6738,15 +6763,6 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} - engines: {node: '>=0.10.0'} - hasBin: true - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -6761,43 +6777,22 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - stream-browserify@3.0.0: resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} - stream-buffers@0.2.6: - resolution: {integrity: sha512-ZRpmWyuCdg0TtNKk8bEqvm13oQvXMmzXDsfD4cBgcx5LouborvU5pm3JMkdTP3HcszyUI08AM1dHMXA5r2g6Sg==} - engines: {node: '>= 0.3.0'} - stream-combiner@0.0.4: resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} stream-http@3.2.0: resolution: {integrity: sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==} - stream-to-array@2.3.0: - resolution: {integrity: sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==} - - stream-to-promise@3.0.0: - resolution: {integrity: sha512-h+7wLeFiYegOdgTfTxjRsrT7/Op7grnKEIHWgaO1RTHwcwk7xRreMr3S8XpDfDMesSxzgM2V4CxNCFAGo6ssnA==} - engines: {node: '>= 10'} - - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - - strict-event-emitter@0.2.8: - resolution: {integrity: sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==} - - strict-event-emitter@0.4.6: - resolution: {integrity: sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==} - strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + string-length@6.0.0: + resolution: {integrity: sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==} + engines: {node: '>=16'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -6851,35 +6846,16 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-json-comments@5.0.0: - resolution: {integrity: sha512-V1LGY4UUo0jgwC+ELQ2BNWfPa17TIuwBLg+j1AA/9RPzKINl1lhxVEu2r+ZTTO8aetIsUzE5Qj6LMSBkoGYKKw==} + strip-json-comments@5.0.1: + resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} engines: {node: '>=14.16'} - strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} style-to-object@1.0.6: resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} - styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - subscriptions-transport-ws@0.11.0: resolution: {integrity: sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==} deprecated: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md @@ -6891,9 +6867,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - sugar-high@0.6.1: - resolution: {integrity: sha512-kg1qMW7WwJcueXIlHkChL/p2EWY3gf8rQmP6n5nUq2TWVqatqDTMLvViS9WgAjgyTKH5/3/b8sRwWPOOAo1zMA==} - superjson@2.2.1: resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} engines: {node: '>=16'} @@ -6913,8 +6886,8 @@ packages: svg-parser@2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - svgo@3.2.0: - resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} engines: {node: '>=14.0.0'} hasBin: true @@ -6930,22 +6903,28 @@ packages: resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==} engines: {node: '>=0.10.0'} - tailwind-merge@2.2.2: - resolution: {integrity: sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==} + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + + tailwind-merge@2.4.0: + resolution: {integrity: sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==} tailwindcss-animate@1.0.7: resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss@3.4.3: - resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} + tailwindcss@3.4.7: + resolution: {integrity: sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==} engines: {node: '>=14.0.0'} hasBin: true - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -6957,11 +6936,11 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thread-stream@2.4.1: - resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==} + thread-stream@2.7.0: + resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} - throttle-debounce@5.0.0: - resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} + throttle-debounce@5.0.2: + resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} engines: {node: '>=12.22'} through@2.3.8: @@ -6977,8 +6956,8 @@ packages: tiny-uid@1.1.2: resolution: {integrity: sha512-0beRFXR+fv4C40ND2PqgNjq6iyB1dKXciKJjslLw0kPYCcR82aNd2b+Tt2yy06LimIlvtoehgvrm/fUZCutSfg==} - tinybench@2.7.0: - resolution: {integrity: sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==} + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} @@ -6986,28 +6965,32 @@ packages: tinygradient@1.1.5: resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} - tinypool@0.7.0: - resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} - engines: {node: '>=14.0.0'} + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} engines: {node: '>=14.0.0'} title-case@2.1.1: resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==} + titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} - tmp@0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} - engines: {node: '>=8.17.0'} + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} @@ -7025,16 +7008,17 @@ packages: resolution: {integrity: sha512-N6g8eQ1eerw6Y1pBhdgkubWIiPFwXa2POSUrlL8jth5CyyEWNWzoGKRkO3CaO7Jx27hlJP54muB3btIAbx4MPg==} engines: {node: '>=0.4.0'} - tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -7066,8 +7050,11 @@ packages: '@swc/wasm': optional: true - tsconfck@3.0.3: - resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} + ts-toolbelt@9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + + tsconfck@3.1.1: + resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -7082,15 +7069,15 @@ packages: tslib@2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} tsscmp@1.0.6: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} - tsup@8.0.2: - resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} + tsup@8.2.3: + resolution: {integrity: sha512-6YNT44oUfXRbZuSMNmN36GzwPPIlD2wBccY7looM2fkTcxkf2NEmwr3OZuDZoySklnrIG4hoEtzy8yUXYOqNcg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -7111,41 +7098,38 @@ packages: tty-browserify@0.0.1: resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} - tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - - turbo-darwin-64@1.13.3: - resolution: {integrity: sha512-glup8Qx1qEFB5jerAnXbS8WrL92OKyMmg5Hnd4PleLljAeYmx+cmmnsmLT7tpaVZIN58EAAwu8wHC6kIIqhbWA==} + turbo-darwin-64@2.0.9: + resolution: {integrity: sha512-owlGsOaExuVGBUfrnJwjkL1BWlvefjSKczEAcpLx4BI7Oh6ttakOi+JyomkPkFlYElRpjbvlR2gP8WIn6M/+xQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@1.13.3: - resolution: {integrity: sha512-/np2xD+f/+9qY8BVtuOQXRq5f9LehCFxamiQnwdqWm5iZmdjygC5T3uVSYuagVFsZKMvX3ycySwh8dylGTl6lg==} + turbo-darwin-arm64@2.0.9: + resolution: {integrity: sha512-XAXkKkePth5ZPPE/9G9tTnPQx0C8UTkGWmNGYkpmGgRr8NedW+HrPsi9N0HcjzzIH9A4TpNYvtiV+WcwdaEjKA==} cpu: [arm64] os: [darwin] - turbo-linux-64@1.13.3: - resolution: {integrity: sha512-G+HGrau54iAnbXLfl+N/PynqpDwi/uDzb6iM9hXEDG+yJnSJxaHMShhOkXYJPk9offm9prH33Khx2scXrYVW1g==} + turbo-linux-64@2.0.9: + resolution: {integrity: sha512-l9wSgEjrCFM1aG16zItBsZ206ZlhSSx1owB8Cgskfv0XyIXRGHRkluihiaxkp+UeU5WoEfz4EN5toc+ICA0q0w==} cpu: [x64] os: [linux] - turbo-linux-arm64@1.13.3: - resolution: {integrity: sha512-qWwEl5VR02NqRyl68/3pwp3c/olZuSp+vwlwrunuoNTm6JXGLG5pTeme4zoHNnk0qn4cCX7DFrOboArlYxv0wQ==} + turbo-linux-arm64@2.0.9: + resolution: {integrity: sha512-gRnjxXRne18B27SwxXMqL3fJu7jw/8kBrOBTBNRSmZZiG1Uu3nbnP7b4lgrA/bCku6C0Wligwqurvtpq6+nFHA==} cpu: [arm64] os: [linux] - turbo-windows-64@1.13.3: - resolution: {integrity: sha512-Nudr4bRChfJzBPzEmpVV85VwUYRCGKecwkBFpbp2a4NtrJ3+UP1VZES653ckqCu2FRyRuS0n03v9euMbAvzH+Q==} + turbo-windows-64@2.0.9: + resolution: {integrity: sha512-ZVo0apxUvaRq4Vm1qhsfqKKhtRgReYlBVf9MQvVU1O9AoyydEQvLDO1ryqpXDZWpcHoFxHAQc9msjAMtE5K2lA==} cpu: [x64] os: [win32] - turbo-windows-arm64@1.13.3: - resolution: {integrity: sha512-ouJCgsVLd3icjRLmRvHQDDZnmGzT64GBupM1Y+TjtYn2LVaEBoV6hicFy8x5DUpnqdLy+YpCzRMkWlwhmkX7sQ==} + turbo-windows-arm64@2.0.9: + resolution: {integrity: sha512-sGRz7c5Pey6y7y9OKi8ypbWNuIRPF9y8xcMqL56OZifSUSo+X2EOsOleR9MKxQXVaqHPGOUKWsE6y8hxBi9pag==} cpu: [arm64] os: [win32] - turbo@1.13.3: - resolution: {integrity: sha512-n17HJv4F4CpsYTvKzUJhLbyewbXjq1oLCi90i5tW1TiWDz16ML1eDG7wi5dHaKxzh5efIM56SITnuVbMq5dk4g==} + turbo@2.0.9: + resolution: {integrity: sha512-QaLaUL1CqblSKKPgLrFW3lZWkWG4pGBQNW+q1ScJB5v1D/nFWtsrD/yZljW/bdawg90ihi4/ftQJ3h6fz1FamA==} hasBin: true turbowatch@2.29.4: @@ -7153,17 +7137,10 @@ packages: engines: {node: '>=18'} hasBin: true - tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -7180,8 +7157,12 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.15.0: - resolution: {integrity: sha512-tB9lu0pQpX5KJq54g+oHOLumOx+pMep4RaM6liXh2PKmVRFF+/vAtUP0ZaJ0kOySfVNjF6doBWPHhBhISKdlIA==} + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + + type-fest@4.23.0: + resolution: {integrity: sha512-ZiBujro2ohr5+Z/hZWHESLz3g08BBdrdLMieYFULJO+tWc437sn8kQsWLJoZErY8alNhxre9K4p3GURAG11n+w==} engines: {node: '>=16'} type-is@1.6.18: @@ -7194,25 +7175,25 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true - uberproto@1.2.0: - resolution: {integrity: sha512-pGtPAQmLwh+R9w81WVHzui1FfedpQWQpiaIIfPCwhtsBez4q6DYbJFfyXPVHPUTNFnedAvNEnkoFiLuhXIR94w==} - - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + uglify-js@3.19.1: + resolution: {integrity: sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==} engines: {node: '>=0.8.0'} hasBin: true + uhyphen@0.2.0: + resolution: {integrity: sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.11.1: + resolution: {integrity: sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==} + unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -7233,11 +7214,8 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - - unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} unique-names-generator@4.7.1: resolution: {integrity: sha512-lMx9dX+KRmG8sq6gulYYpKWZc9RlGsgBR6aoO8Qsm3qvkSJ+3rAymr+TnV8EDMrIrwuFJ4kruzMWM/OpYzPoow==} @@ -7259,9 +7237,6 @@ packages: unist-util-remove-position@5.0.0: resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} @@ -7271,6 +7246,10 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + universalify@1.0.0: resolution: {integrity: sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==} engines: {node: '>= 10.0.0'} @@ -7279,12 +7258,16 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -7305,8 +7288,12 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - url@0.11.3: - resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + url@0.11.4: + resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} + engines: {node: '>= 0.4'} use-callback-ref@1.3.2: resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} @@ -7333,6 +7320,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 + use-sync-external-store@1.2.2: + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -7342,71 +7334,47 @@ packages: util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} hasBin: true uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - - validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} - - vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} - - vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + vfile@6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} victory-vendor@36.9.2: resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} - viem@2.9.19: - resolution: {integrity: sha512-1txsVoTz9+XGQpuN62wcDXasNtalW52UR41KnzwWTwHtV2cDcGuVuS/j/hcuQdZ7pU8X8jtq2IrwwR4jjKpy9Q==} + viem@2.18.4: + resolution: {integrity: sha512-JGdN+PgBnZMbm7fc9o0SfHvL0CKyfrlhBUtaz27V+PeHO43Kgc9Zd4WyIbM8Brafq4TvVcnriRFW/FVGOzwEJw==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true - vite-node@0.34.6: - resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} - engines: {node: '>=v14.18.0'} - hasBin: true - - vite-node@1.5.0: - resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} + vite-node@2.0.4: + resolution: {integrity: sha512-ZpJVkxcakYtig5iakNeL7N3trufe3M6vGuzYAr4GsbCTwobDeyPJpE4cjDhhPluv8OvQCFzu2LWp6GkoKRITXA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -7421,6 +7389,11 @@ packages: peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + vite-plugin-node-polyfills@0.22.0: + resolution: {integrity: sha512-F+G3LjiGbG8QpbH9bZ//GSBr9i1InSTkaulfUHFa9jkLqVGORFBoqc2A/Yu5Mmh1kNAbiAeKeK+6aaQUf3x0JA==} + peerDependencies: + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + vite-plugin-node-stdlib-browser@0.2.1: resolution: {integrity: sha512-6u2i613Dkqj5KaTNIrnZvE6y3/awWAp0S5TjucTvGxdhetftB1Mgvblc+nwYzlw6sntPlac8UOC7ttXNh+LZKA==} peerDependencies: @@ -7435,8 +7408,8 @@ packages: peerDependencies: vite: ^2.6.0 || 3 || 4 || 5 - vite-plugin-top-level-await@1.4.1: - resolution: {integrity: sha512-hogbZ6yT7+AqBaV6lK9JRNvJDn4/IJvHLu6ET06arNfo0t2IsyCaon7el9Xa8OumH+ESuq//SDf8xscZFE0rWw==} + vite-plugin-top-level-await@1.4.2: + resolution: {integrity: sha512-Lz9ZGlDEqLpIJ/NU3toXSUrjmovlJf9qV/LNNa5RB2NYbN3SptfnZEz91//uqahhZtFzL5lKREPwv3YJmlnybg==} peerDependencies: vite: '>=2.8' @@ -7445,6 +7418,10 @@ packages: peerDependencies: vite: ^2 || ^3 || ^4 || ^5 + vite-plugin-web-extension@4.1.6: + resolution: {integrity: sha512-6na2gY87AUsllZC1UE45kNpFucM+Ig/U6bVjkRK6NbqwwfDDBwFma3LM/xGekWmYoKk/+qp072jyzFYrOLF5aw==} + engines: {node: '>=16'} + vite-tsconfig-paths@4.3.2: resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: @@ -7453,8 +7430,8 @@ packages: vite: optional: true - vite@5.2.9: - resolution: {integrity: sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==} + vite@5.3.5: + resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -7481,46 +7458,15 @@ packages: terser: optional: true - vitest@0.34.6: - resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} - engines: {node: '>=v14.18.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - - vitest@1.5.0: - resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} + vitest@2.0.4: + resolution: {integrity: sha512-luNLDpfsnxw5QSW4bISPe6tkxVvv5wn2BBs/PuDRkhXZ319doZyLOBr1sjfB5yCEpTiU7xCAdViM8TNVGPwoog==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.0 - '@vitest/ui': 1.5.0 + '@vitest/browser': 2.0.4 + '@vitest/ui': 2.0.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -7540,19 +7486,24 @@ packages: vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} - watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - web-encoding@1.1.5: - resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} + web-ext-run@0.2.1: + resolution: {integrity: sha512-5D11VcjdGkA1/xax5UWL0YeAbDySKHzWFe6EpsoPNUMw5Uk9tKk9p6GUOfcaI5N7sINKfBMZYNsTBiu5dzJB9A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} - web-ext@7.11.0: - resolution: {integrity: sha512-EG6YXHITNDJB/h6Rc5FF08eMoN45sZPBBIIlEraBzxJ0RdJZ8Z3xvUUawbDwt+mowfv9X0XRWlLSwdWbRKgojg==} - engines: {node: '>=14.0.0', npm: '>=6.9.0'} + web-ext@8.2.0: + resolution: {integrity: sha512-krU7rmxaG96b3Q9Enbry9/pmE/5FUGkvajCGfJCD+J79rt7JFjhVpw1Dszz4BqQkTd3y8cG5wJ3p1uC6uyAwcA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true web-namespaces@2.0.1: @@ -7562,18 +7513,21 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} + webauthn-p256@0.0.5: + resolution: {integrity: sha512-drMGNWKdaixZNobeORVIqq7k5DsRC9FnG201K2QjeOoQLmtSDaSsVZdkg6n5jUALJKcAG++zBPJXmv6hy0nWFg==} + webext-bridge@6.0.1: resolution: {integrity: sha512-GruIrN+vNwbxVCi8UW4Dqk5YkcGA9V0ZfJ57jXP9JXHbrsDs5k2N6NNYQR5e+wSCnQpGYOGAGihwUpKlhg8QIw==} webextension-polyfill@0.10.0: resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==} + webextension-polyfill@0.12.0: + resolution: {integrity: sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==} + webextension-polyfill@0.9.0: resolution: {integrity: sha512-LTtHb0yR49xa9irkstDxba4GATDAcDw3ncnFH9RImoFwDlW47U95ME5sn5IiQX2ghfaECaf6xyXM8yvClIBkkw==} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -7585,16 +7539,21 @@ packages: resolution: {integrity: sha512-cSwwQIeg8v4i3p4ajHhwgR7N6VyxAf+KYSSsY6Pd3aETE+xEU4vbitz7qQkB0I321xnhDdgtxuiSfk5r/FVtjg==} hasBin: true - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -7602,13 +7561,6 @@ packages: when@3.7.7: resolution: {integrity: sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==} - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} @@ -7627,8 +7579,8 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true @@ -7639,6 +7591,10 @@ packages: winreg@0.0.12: resolution: {integrity: sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -7660,8 +7616,16 @@ packages: write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + write-json-file@6.0.0: + resolution: {integrity: sha512-MNHcU3f9WxnNyR6MxsYSj64Jz0+dwIpisWKWq9gqLj/GwmA9INg3BZ3vt70/HB3GEwrnDQWr4RPrywnhNzmUFA==} + engines: {node: '>=18'} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7672,8 +7636,8 @@ packages: utf-8-validate: optional: true - ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7684,8 +7648,8 @@ packages: utf-8-validate: optional: true - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7696,22 +7660,14 @@ packages: utf-8-validate: optional: true - ws@8.5.0: - resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - xdg-basedir@5.1.0: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} engines: {node: '>=12'} + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + xml2js@0.5.0: resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} engines: {node: '>=4.0.0'} @@ -7720,6 +7676,14 @@ packages: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + xss@1.0.15: + resolution: {integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==} + engines: {node: '>= 0.10.0'} + hasBin: true + xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -7731,35 +7695,15 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} - engines: {node: '>= 14'} - hasBin: true - - yaml@2.4.2: - resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} engines: {node: '>= 14'} hasBin: true - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - - yargs@17.7.1: - resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} - engines: {node: '>=12'} - yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -7779,18 +7723,18 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} zip-dir@2.0.0: resolution: {integrity: sha512-uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==} - zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - zustand@4.5.2: - resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==} + zustand@4.5.4: + resolution: {integrity: sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==} engines: {node: '>=12.7.0'} peerDependencies: '@types/react': '>=16.8' @@ -7814,8 +7758,6 @@ packages: snapshots: - '@aashutoshrathi/word-wrap@1.2.6': {} - '@adraffy/ens-normalize@1.10.0': {} '@adraffy/ens-normalize@1.10.1': {} @@ -7827,836 +7769,899 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.24.2': + '@babel/code-frame@7.24.7': dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 - '@babel/compat-data@7.24.4': {} + '@babel/compat-data@7.25.0': {} - '@babel/core@7.24.4': + '@babel/core@7.24.9': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helpers': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.25.0(@babel/core@7.24.9) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.0 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.6 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.24.4': + '@babel/generator@7.25.0': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.25.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.22.5': + '@babel/helper-annotate-as-pure@7.24.7': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.25.0 - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 + transitivePeerDependencies: + - supports-color - '@babel/helper-compilation-targets@7.23.6': + '@babel/helper-compilation-targets@7.24.8': dependencies: - '@babel/compat-data': 7.24.4 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 + '@babel/compat-data': 7.25.0 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.24.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.25.1 semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4)': + '@babel/helper-create-regexp-features-plugin@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.4)': + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - debug: 4.3.4 + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + debug: 4.3.6 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.22.20': {} - - '@babel/helper-function-name@7.23.0': - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - - '@babel/helper-hoist-variables@7.22.5': - dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-member-expression-to-functions@7.23.0': + '@babel/helper-member-expression-to-functions@7.24.8': dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 + transitivePeerDependencies: + - supports-color - '@babel/helper-module-imports@7.24.3': + '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 + transitivePeerDependencies: + - supports-color - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)': + '@babel/helper-module-transforms@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/core': 7.24.9 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.1 + transitivePeerDependencies: + - supports-color - '@babel/helper-optimise-call-expression@7.22.5': + '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-plugin-utils@7.24.0': {} + '@babel/types': 7.25.0 - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 + '@babel/helper-plugin-utils@7.24.8': {} - '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4)': + '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-wrap-function': 7.25.0 + '@babel/traverse': 7.25.1 + transitivePeerDependencies: + - supports-color - '@babel/helper-simple-access@7.22.5': + '@babel/helper-replace-supers@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/types': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.1 + transitivePeerDependencies: + - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 + transitivePeerDependencies: + - supports-color - '@babel/helper-split-export-declaration@7.22.6': + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/types': 7.24.0 - - '@babel/helper-string-parser@7.24.1': {} + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 + transitivePeerDependencies: + - supports-color - '@babel/helper-validator-identifier@7.22.20': {} + '@babel/helper-string-parser@7.24.8': {} - '@babel/helper-validator-option@7.23.5': {} + '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-wrap-function@7.22.20': - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/helper-validator-option@7.24.8': {} - '@babel/helpers@7.24.4': + '@babel/helper-wrap-function@7.25.0': dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 transitivePeerDependencies: - supports-color - '@babel/highlight@7.24.2': + '@babel/helpers@7.25.0': + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.0 + + '@babel/highlight@7.24.7': dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 - '@babel/parser@7.24.4': + '@babel/parser@7.25.0': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.25.0 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4(@babel/core@7.24.4)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.1 + transitivePeerDependencies: + - supports-color - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.1 + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4)': + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4)': + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4)': + '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.4)': + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-async-generator-functions@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) + '@babel/traverse': 7.25.1 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4)': + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.4)': + '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-classes@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.24.9) + '@babel/traverse': 7.25.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.25.0 - '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/core': 7.24.9 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - - '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4)': + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.1 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4)': + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-react-constant-elements@7.25.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.4)': + '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4)': + '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/types': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/types': 7.25.0 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.4)': + '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - - '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) - - '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/preset-env@7.24.4(@babel/core@7.24.4)': - dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.4) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) - '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.4) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.4) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.4) - core-js-compat: 3.36.1 + '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-typescript@7.25.0(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/preset-env@7.25.0(@babel/core@7.24.9)': + dependencies: + '@babel/compat-data': 7.25.0 + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.9) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-async-generator-functions': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.24.9) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.24.9) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.9) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.9) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.9) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.9) + core-js-compat: 3.37.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.24.0 + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.25.0 esutils: 2.0.3 - '@babel/preset-react@7.24.1(@babel/core@7.24.4)': + '@babel/preset-react@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.4) - '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color - '@babel/preset-typescript@7.24.1(@babel/core@7.24.4)': + '@babel/preset-typescript@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-typescript': 7.25.0(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color '@babel/regjsgen@0.8.0': {} - '@babel/runtime-corejs3@7.24.4': + '@babel/runtime-corejs3@7.25.0': dependencies: - core-js-pure: 3.36.1 + core-js-pure: 3.37.1 regenerator-runtime: 0.14.1 - '@babel/runtime@7.21.0': + '@babel/runtime@7.24.7': dependencies: - regenerator-runtime: 0.13.11 + regenerator-runtime: 0.14.1 - '@babel/runtime@7.24.4': + '@babel/runtime@7.25.0': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.0': + '@babel/template@7.25.0': dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.0 + '@babel/types': 7.25.0 - '@babel/traverse@7.24.1': + '@babel/traverse@7.25.1': dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - debug: 4.3.4 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.0 + '@babel/template': 7.25.0 + '@babel/types': 7.25.0 + debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.0': + '@babel/types@7.25.0': dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 '@bcoe/v8-coverage@0.2.3': {} - '@biomejs/biome@1.7.1': + '@biomejs/biome@1.8.3': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.7.1 - '@biomejs/cli-darwin-x64': 1.7.1 - '@biomejs/cli-linux-arm64': 1.7.1 - '@biomejs/cli-linux-arm64-musl': 1.7.1 - '@biomejs/cli-linux-x64': 1.7.1 - '@biomejs/cli-linux-x64-musl': 1.7.1 - '@biomejs/cli-win32-arm64': 1.7.1 - '@biomejs/cli-win32-x64': 1.7.1 - - '@biomejs/cli-darwin-arm64@1.7.1': + '@biomejs/cli-darwin-arm64': 1.8.3 + '@biomejs/cli-darwin-x64': 1.8.3 + '@biomejs/cli-linux-arm64': 1.8.3 + '@biomejs/cli-linux-arm64-musl': 1.8.3 + '@biomejs/cli-linux-x64': 1.8.3 + '@biomejs/cli-linux-x64-musl': 1.8.3 + '@biomejs/cli-win32-arm64': 1.8.3 + '@biomejs/cli-win32-x64': 1.8.3 + + '@biomejs/cli-darwin-arm64@1.8.3': optional: true - '@biomejs/cli-darwin-x64@1.7.1': + '@biomejs/cli-darwin-x64@1.8.3': optional: true - '@biomejs/cli-linux-arm64-musl@1.7.1': + '@biomejs/cli-linux-arm64-musl@1.8.3': optional: true - '@biomejs/cli-linux-arm64@1.7.1': + '@biomejs/cli-linux-arm64@1.8.3': optional: true - '@biomejs/cli-linux-x64-musl@1.7.1': + '@biomejs/cli-linux-x64-musl@1.8.3': optional: true - '@biomejs/cli-linux-x64@1.7.1': + '@biomejs/cli-linux-x64@1.8.3': optional: true - '@biomejs/cli-win32-arm64@1.7.1': + '@biomejs/cli-win32-arm64@1.8.3': optional: true - '@biomejs/cli-win32-x64@1.7.1': + '@biomejs/cli-win32-x64@1.8.3': optional: true '@bundled-es-modules/cookie@2.0.0': @@ -8667,38 +8672,10 @@ snapshots: dependencies: statuses: 2.0.1 - '@capacitor/core@5.7.5': + '@bundled-es-modules/tough-cookie@0.1.6': dependencies: - tslib: 2.6.2 - - '@capacitor/preferences@5.0.7(@capacitor/core@5.7.5)': - dependencies: - '@capacitor/core': 5.7.5 - - '@capacitor/storage@1.2.5(@capacitor/core@5.7.5)': - dependencies: - '@capacitor/core': 5.7.5 - - '@crxjs/vite-plugin@2.0.0-beta.23': - dependencies: - '@rollup/pluginutils': 4.2.1 - '@webcomponents/custom-elements': 1.6.0 - acorn-walk: 8.3.2 - cheerio: 1.0.0-rc.12 - connect-injector: 0.4.4 - convert-source-map: 1.9.0 - debug: 4.3.4 - es-module-lexer: 0.10.5 - fast-glob: 3.3.2 - fs-extra: 10.1.0 - jsesc: 3.0.2 - magic-string: 0.26.7 - picocolors: 1.0.0 - react-refresh: 0.13.0 - rollup: 2.78.1 - rxjs: 7.5.7 - transitivePeerDependencies: - - supports-color + '@types/tough-cookie': 4.0.5 + tough-cookie: 4.1.4 '@cspotcode/source-map-support@0.8.1': dependencies: @@ -8708,108 +8685,183 @@ snapshots: '@devicefarmer/adbkit-monkey@1.2.1': {} - '@devicefarmer/adbkit@3.2.3': + '@devicefarmer/adbkit@3.2.6': dependencies: '@devicefarmer/adbkit-logcat': 2.1.3 '@devicefarmer/adbkit-monkey': 1.2.1 bluebird: 3.7.2 commander: 9.5.0 - debug: 4.3.4 + debug: 4.3.6 node-forge: 1.3.1 split: 1.0.1 transitivePeerDependencies: - supports-color - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.20.2)': + '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.23.0)': dependencies: - esbuild: 0.20.2 + esbuild: 0.23.0 - '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.20.2)': + '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.23.0)': dependencies: - esbuild: 0.20.2 + esbuild: 0.23.0 escape-string-regexp: 4.0.0 rollup-plugin-node-polyfills: 0.2.1 - '@esbuild/aix-ppc64@0.20.2': + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.23.0': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.23.0': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.23.0': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.23.0': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.23.0': + optional: true + + '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/android-arm64@0.20.2': + '@esbuild/darwin-x64@0.23.0': optional: true - '@esbuild/android-arm@0.20.2': + '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/android-x64@0.20.2': + '@esbuild/freebsd-arm64@0.23.0': optional: true - '@esbuild/darwin-arm64@0.20.2': + '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.20.2': + '@esbuild/freebsd-x64@0.23.0': optional: true - '@esbuild/freebsd-arm64@0.20.2': + '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.20.2': + '@esbuild/linux-arm64@0.23.0': optional: true - '@esbuild/linux-arm64@0.20.2': + '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.20.2': + '@esbuild/linux-arm@0.23.0': optional: true - '@esbuild/linux-ia32@0.20.2': + '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-loong64@0.20.2': + '@esbuild/linux-ia32@0.23.0': optional: true - '@esbuild/linux-mips64el@0.20.2': + '@esbuild/linux-loong64@0.14.54': optional: true - '@esbuild/linux-ppc64@0.20.2': + '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.20.2': + '@esbuild/linux-loong64@0.23.0': optional: true - '@esbuild/linux-s390x@0.20.2': + '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-x64@0.20.2': + '@esbuild/linux-mips64el@0.23.0': optional: true - '@esbuild/netbsd-x64@0.20.2': + '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.20.2': + '@esbuild/linux-ppc64@0.23.0': optional: true - '@esbuild/sunos-x64@0.20.2': + '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/win32-arm64@0.20.2': + '@esbuild/linux-riscv64@0.23.0': optional: true - '@esbuild/win32-ia32@0.20.2': + '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/win32-x64@0.20.2': + '@esbuild/linux-s390x@0.23.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.23.0': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.23.0': + optional: true + + '@esbuild/openbsd-arm64@0.23.0': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.23.0': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.0': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.23.0': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.23.0': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.23.0': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/regexpp@4.11.0': {} '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.6 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -8820,40 +8872,65 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.56.0': {} - - '@ethereumjs/rlp@5.0.0': {} + '@eslint/js@8.57.0': {} '@ethereumjs/rlp@5.0.2': {} '@ethereumjs/util@9.0.3': dependencies: '@ethereumjs/rlp': 5.0.2 - ethereum-cryptography: 2.1.3 + ethereum-cryptography: 2.2.1 + + '@floating-ui/core@1.6.5': + dependencies: + '@floating-ui/utils': 0.2.5 + + '@floating-ui/dom@1.6.8': + dependencies: + '@floating-ui/core': 1.6.5 + '@floating-ui/utils': 0.2.5 + + '@floating-ui/react-dom@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.6.8 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/react@0.26.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.5 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.2.0 + + '@floating-ui/utils@0.2.5': {} '@fluent/syntax@0.19.0': {} '@github/hotkey@3.1.1': {} - '@graphql-typed-document-node/core@3.2.0(graphql@16.8.1)': + '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': dependencies: - graphql: 16.8.1 + graphql: 16.9.0 - '@headlessui/react@1.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@headlessui/react@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/react-virtual': 3.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - client-only: 0.0.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@floating-ui/react': 0.26.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.18.1(react@18.3.1) + '@react-aria/interactions': 3.22.1(react@18.3.1) + '@tanstack/react-virtual': 3.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@hookform/resolvers@3.3.4(react-hook-form@7.51.3(react@18.2.0))': + '@hookform/resolvers@3.9.0(react-hook-form@7.52.1(react@18.3.1))': dependencies: - react-hook-form: 7.51.3(react@18.2.0) + react-hook-form: 7.52.1(react@18.3.1) '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4 + debug: 4.3.6 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -8862,30 +8939,32 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@inquirer/confirm@3.1.5': + '@inquirer/confirm@3.1.18': dependencies: - '@inquirer/core': 8.0.1 - '@inquirer/type': 1.3.0 + '@inquirer/core': 9.0.6 + '@inquirer/type': 1.5.1 - '@inquirer/core@8.0.1': + '@inquirer/core@9.0.6': dependencies: - '@inquirer/figures': 1.0.1 - '@inquirer/type': 1.3.0 + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.1 '@types/mute-stream': 0.0.4 - '@types/node': 20.12.7 + '@types/node': 20.14.13 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 - chalk: 4.1.2 cli-spinners: 2.9.2 cli-width: 4.1.0 mute-stream: 1.0.0 signal-exit: 4.1.0 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 - '@inquirer/figures@1.0.1': {} + '@inquirer/figures@1.0.5': {} - '@inquirer/type@1.3.0': {} + '@inquirer/type@1.5.1': + dependencies: + mute-stream: 1.0.0 '@isaacs/cliui@8.0.2': dependencies: @@ -8898,95 +8977,78 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.7 - '@types/yargs': 17.0.32 - chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jspm/core@2.0.1': {} - '@ladle/react-context@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@ladle/react-context@1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@ladle/react@4.0.3(@swc/helpers@0.5.5)(@types/node@20.12.7)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.5)': + '@ladle/react@4.1.0(@swc/helpers@0.5.12)(@types/node@22.0.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@babel/code-frame': 7.24.2 - '@babel/core': 7.24.4 - '@babel/generator': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - '@ladle/react-context': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/code-frame': 7.24.7 + '@babel/core': 7.24.9 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.0 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 + '@ladle/react-context': 1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mdx-js/mdx': 3.0.1 - '@mdx-js/react': 3.0.1(@types/react@18.2.79)(react@18.2.0) - '@vitejs/plugin-react': 4.2.1(vite@5.2.9(@types/node@20.12.7)) - '@vitejs/plugin-react-swc': 3.6.0(@swc/helpers@0.5.5)(vite@5.2.9(@types/node@20.12.7)) - axe-core: 4.9.0 + '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) + '@vitejs/plugin-react': 4.3.1(vite@5.3.5(@types/node@22.0.0)) + '@vitejs/plugin-react-swc': 3.7.0(@swc/helpers@0.5.12)(vite@5.3.5(@types/node@22.0.0)) + axe-core: 4.10.0 boxen: 7.1.1 chokidar: 3.6.0 classnames: 2.5.1 - commander: 12.0.0 + commander: 12.1.0 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.6 get-port: 7.1.0 - globby: 14.0.1 + globby: 14.0.2 history: 5.3.0 koa: 2.15.3 koa-connect: 2.1.0 lodash.merge: 4.6.2 - msw: 2.2.13(typescript@5.4.5) + msw: 2.3.4(typescript@5.5.4) open: 10.1.0 - prism-react-renderer: 2.3.1(react@18.2.0) + prism-react-renderer: 2.3.1(react@18.3.1) prop-types: 15.8.1 - query-string: 9.0.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-hotkeys-hook: 4.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react-inspector: 6.0.2(react@18.2.0) - rehype-class-names: 1.0.14 + query-string: 9.1.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-hotkeys-hook: 4.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-inspector: 6.0.2(react@18.3.1) + rehype-class-names: 2.0.0 rehype-raw: 7.0.0 remark-gfm: 4.0.0 source-map: 0.7.4 - vfile: 6.0.1 - vite: 5.2.9(@types/node@20.12.7) - vite-tsconfig-paths: 4.3.2(typescript@5.4.5)(vite@5.2.9(@types/node@20.12.7)) + vfile: 6.0.2 + vite: 5.3.5(@types/node@22.0.0) + vite-tsconfig-paths: 4.3.2(typescript@5.5.4)(vite@5.3.5(@types/node@22.0.0)) transitivePeerDependencies: - '@swc/helpers' - '@types/node' @@ -9000,7 +9062,7 @@ snapshots: - terser - typescript - '@mdn/browser-compat-data@5.5.7': {} + '@mdn/browser-compat-data@5.5.34': {} '@mdx-js/mdx@3.0.1': dependencies: @@ -9022,79 +9084,48 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.0 source-map: 0.7.4 - unified: 11.0.4 + unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.1 + vfile: 6.0.2 transitivePeerDependencies: - supports-color - '@mdx-js/react@3.0.1(@types/react@18.2.79)(react@18.2.0)': + '@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.2.79 - react: 18.2.0 + '@types/react': 18.3.3 + react: 18.3.1 - '@mswjs/cookies@0.2.2': + '@molt/command@0.9.0': dependencies: - '@types/set-cookie-parser': 2.4.7 - set-cookie-parser: 2.6.0 - - '@mswjs/cookies@1.1.0': {} + '@molt/types': 0.2.0 + alge: 0.8.1 + chalk: 5.3.0 + lodash.camelcase: 4.3.0 + lodash.snakecase: 4.1.1 + readline-sync: 1.4.10 + string-length: 6.0.0 + strip-ansi: 7.1.0 + ts-toolbelt: 9.6.0 + type-fest: 4.23.0 + zod: 3.23.8 - '@mswjs/interceptors@0.17.10': + '@molt/types@0.2.0': dependencies: - '@open-draft/until': 1.0.3 - '@types/debug': 4.1.12 - '@xmldom/xmldom': 0.8.10 - debug: 4.3.4 - headers-polyfill: 3.2.5 - outvariant: 1.4.2 - strict-event-emitter: 0.2.8 - web-encoding: 1.1.5 - transitivePeerDependencies: - - supports-color + ts-toolbelt: 9.6.0 - '@mswjs/interceptors@0.26.15': + '@mswjs/interceptors@0.29.1': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 '@open-draft/until': 2.1.0 is-node-process: 1.2.0 - outvariant: 1.4.2 + outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@next/env@14.2.1': {} - - '@next/swc-darwin-arm64@14.2.1': - optional: true - - '@next/swc-darwin-x64@14.2.1': - optional: true - - '@next/swc-linux-arm64-gnu@14.2.1': - optional: true - - '@next/swc-linux-arm64-musl@14.2.1': - optional: true - - '@next/swc-linux-x64-gnu@14.2.1': - optional: true - - '@next/swc-linux-x64-musl@14.2.1': - optional: true - - '@next/swc-win32-arm64-msvc@14.2.1': - optional: true - - '@next/swc-win32-ia32-msvc@14.2.1': - optional: true - - '@next/swc-win32-x64-msvc@14.2.1': - optional: true - - '@noble/ciphers@0.4.1': {} + '@noble/ciphers@0.5.3': {} '@noble/curves@1.0.0': dependencies: @@ -9104,11 +9135,11 @@ snapshots: dependencies: '@noble/hashes': 1.3.2 - '@noble/curves@1.3.0': + '@noble/curves@1.4.0': dependencies: - '@noble/hashes': 1.3.3 + '@noble/hashes': 1.4.0 - '@noble/curves@1.4.0': + '@noble/curves@1.4.2': dependencies: '@noble/hashes': 1.4.0 @@ -9141,34 +9172,32 @@ snapshots: '@open-draft/logger@0.3.0': dependencies: is-node-process: 1.2.0 - outvariant: 1.4.2 - - '@open-draft/until@1.0.3': {} + outvariant: 1.4.3 '@open-draft/until@2.1.0': {} '@originjs/vite-plugin-commonjs@1.0.3': dependencies: - esbuild: 0.20.2 + esbuild: 0.14.54 '@pkgjs/parseargs@0.11.0': optional: true - '@plasmohq/messaging@0.6.2(react@18.2.0)': + '@plasmohq/messaging@0.6.2(react@18.3.1)': dependencies: nanoid: 5.0.3 optionalDependencies: - react: 18.2.0 + react: 18.3.1 - '@plasmohq/storage@1.10.0(react@18.2.0)': + '@plasmohq/storage@1.11.0(react@18.3.1)': dependencies: pify: 6.1.0 optionalDependencies: - react: 18.2.0 + react: 18.3.1 - '@playwright/test@1.43.1': + '@playwright/test@1.45.3': dependencies: - playwright: 1.43.1 + playwright: 1.45.3 '@pnpm/config.env-replace@1.1.0': {} @@ -9182,324 +9211,351 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@radix-ui/primitive@1.0.0': + '@radix-ui/primitive@1.0.1': + dependencies: + '@babel/runtime': 7.25.0 + + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.25.0 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@radix-ui/react-compose-refs@1.0.0(react@18.2.0)': + '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.79)(react@18.2.0)': + '@radix-ui/react-context@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + '@babel/runtime': 7.25.0 + react: 18.3.1 optionalDependencies: - '@types/react': 18.2.79 - - '@radix-ui/react-context@1.0.0(react@18.2.0)': - dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 - - '@radix-ui/react-dialog@1.0.0(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@radix-ui/react-slot': 1.0.0(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@types/react': 18.3.3 + + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.0 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) aria-hidden: 1.2.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.4(@types/react@18.2.79)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.0 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.0 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.0 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-id@1.0.1(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.0 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@babel/runtime': 7.25.0 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-guards@1.0.0(react@18.2.0)': + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + '@babel/runtime': 7.25.0 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@babel/runtime': 7.25.0 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 - '@radix-ui/react-id@1.0.0(react@18.2.0)': + '@radix-ui/react-slot@1.0.2(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - react: 18.2.0 + '@babel/runtime': 7.25.0 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@radix-ui/react-portal@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@radix-ui/react-presence@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@babel/runtime': 7.25.0 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@radix-ui/react-primitive@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-slot': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@babel/runtime': 7.25.0 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@radix-ui/react-slot@1.0.0(react@18.2.0)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - react: 18.2.0 + '@babel/runtime': 7.25.0 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@radix-ui/react-slot@1.0.2(@types/react@18.2.79)(react@18.2.0)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) - react: 18.2.0 + '@babel/runtime': 7.25.0 + react: 18.3.1 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - '@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0)': + '@react-aria/focus@3.18.1(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + '@react-aria/interactions': 3.22.1(react@18.3.1) + '@react-aria/utils': 3.25.1(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.12 + clsx: 2.1.1 + react: 18.3.1 - '@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0)': + '@react-aria/interactions@3.22.1(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - react: 18.2.0 + '@react-aria/ssr': 3.9.5(react@18.3.1) + '@react-aria/utils': 3.25.1(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.12 + react: 18.3.1 - '@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0)': + '@react-aria/ssr@3.9.5(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - react: 18.2.0 + '@swc/helpers': 0.5.12 + react: 18.3.1 - '@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0)': + '@react-aria/utils@3.25.1(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + '@react-aria/ssr': 3.9.5(react@18.3.1) + '@react-stately/utils': 3.10.2(react@18.3.1) + '@react-types/shared': 3.24.1(react@18.3.1) + '@swc/helpers': 0.5.12 + clsx: 2.1.1 + react: 18.3.1 - '@remix-run/router@1.15.3': {} + '@react-stately/utils@3.10.2(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.12 + react: 18.3.1 - '@rollup/plugin-inject@5.0.5(rollup@4.14.3)': + '@react-types/shared@3.24.1(react@18.3.1)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.14.3) - estree-walker: 2.0.2 - magic-string: 0.30.9 - optionalDependencies: - rollup: 4.14.3 + react: 18.3.1 - '@rollup/plugin-virtual@3.0.2(rollup@4.14.3)': - optionalDependencies: - rollup: 4.14.3 + '@remix-run/router@1.18.0': {} - '@rollup/pluginutils@4.2.1': + '@rollup/plugin-inject@5.0.5(rollup@4.19.1)': dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.19.1) estree-walker: 2.0.2 - picomatch: 2.3.1 + magic-string: 0.30.11 + optionalDependencies: + rollup: 4.19.1 + + '@rollup/plugin-virtual@3.0.2(rollup@4.19.1)': + optionalDependencies: + rollup: 4.19.1 - '@rollup/pluginutils@5.1.0(rollup@4.14.3)': + '@rollup/pluginutils@5.1.0(rollup@4.19.1)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.14.3 + rollup: 4.19.1 - '@rollup/rollup-android-arm-eabi@4.14.3': + '@rollup/rollup-android-arm-eabi@4.19.1': optional: true - '@rollup/rollup-android-arm64@4.14.3': + '@rollup/rollup-android-arm64@4.19.1': optional: true - '@rollup/rollup-darwin-arm64@4.14.3': + '@rollup/rollup-darwin-arm64@4.19.1': optional: true - '@rollup/rollup-darwin-x64@4.14.3': + '@rollup/rollup-darwin-x64@4.19.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.14.3': + '@rollup/rollup-linux-arm-gnueabihf@4.19.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.14.3': + '@rollup/rollup-linux-arm-musleabihf@4.19.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.14.3': + '@rollup/rollup-linux-arm64-gnu@4.19.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.14.3': + '@rollup/rollup-linux-arm64-musl@4.19.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.14.3': + '@rollup/rollup-linux-powerpc64le-gnu@4.19.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.14.3': + '@rollup/rollup-linux-riscv64-gnu@4.19.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.14.3': + '@rollup/rollup-linux-s390x-gnu@4.19.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.14.3': + '@rollup/rollup-linux-x64-gnu@4.19.1': optional: true - '@rollup/rollup-linux-x64-musl@4.14.3': + '@rollup/rollup-linux-x64-musl@4.19.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.14.3': + '@rollup/rollup-win32-arm64-msvc@4.19.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.14.3': + '@rollup/rollup-win32-ia32-msvc@4.19.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.14.3': + '@rollup/rollup-win32-x64-msvc@4.19.1': optional: true - '@scure/base@1.1.6': {} - - '@scure/bip32@1.3.2': + '@rrweb/types@2.0.0-alpha.16': dependencies: - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 + rrweb-snapshot: 2.0.0-alpha.16 - '@scure/bip32@1.3.3': - dependencies: - '@noble/curves': 1.3.0 - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 + '@scure/base@1.1.7': {} '@scure/bip32@1.4.0': dependencies: - '@noble/curves': 1.4.0 + '@noble/curves': 1.4.2 '@noble/hashes': 1.4.0 - '@scure/base': 1.1.6 - - '@scure/bip39@1.2.1': - dependencies: - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 - - '@scure/bip39@1.2.2': - dependencies: - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 + '@scure/base': 1.1.7 '@scure/bip39@1.3.0': dependencies: '@noble/hashes': 1.4.0 - '@scure/base': 1.1.6 - - '@sinclair/typebox@0.27.8': {} + '@scure/base': 1.1.7 '@sindresorhus/is@5.6.0': {} '@sindresorhus/merge-streams@2.3.0': {} - '@sinonjs/commons@2.0.0': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/fake-timers@11.2.2': - dependencies: - '@sinonjs/commons': 3.0.1 - - '@sinonjs/samsam@8.0.0': - dependencies: - '@sinonjs/commons': 2.0.0 - lodash.get: 4.4.2 - type-detect: 4.0.8 - - '@sinonjs/text-encoding@0.7.2': {} - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.4)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.9 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.4)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.9 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.4)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.9 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.4)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.9 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.4)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.9 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.4)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.9 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.4)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.9 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.4)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.9 - '@svgr/babel-preset@8.1.0(@babel/core@7.24.4)': + '@svgr/babel-preset@8.1.0(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.4 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.4) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.24.4) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.24.4) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.24.4) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.24.4) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.4) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.4) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.9) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.24.9) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.24.9) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.24.9) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.24.9) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.9) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.9) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.9) - '@svgr/core@8.1.0(typescript@5.4.5)': + '@svgr/core@8.1.0(typescript@5.5.4)': dependencies: - '@babel/core': 7.24.4 - '@svgr/babel-preset': 8.1.0(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@svgr/babel-preset': 8.1.0(@babel/core@7.24.9) camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.4.5) + cosmiconfig: 8.3.6(typescript@5.5.4) snake-case: 3.0.4 transitivePeerDependencies: - supports-color @@ -9507,99 +9563,98 @@ snapshots: '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.25.0 entities: 4.5.0 - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.4.5))': + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.5.4))': dependencies: - '@babel/core': 7.24.4 - '@svgr/babel-preset': 8.1.0(@babel/core@7.24.4) - '@svgr/core': 8.1.0(typescript@5.4.5) + '@babel/core': 7.24.9 + '@svgr/babel-preset': 8.1.0(@babel/core@7.24.9) + '@svgr/core': 8.1.0(typescript@5.5.4) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.4.5))(typescript@5.4.5)': + '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.5.4))(typescript@5.5.4)': dependencies: - '@svgr/core': 8.1.0(typescript@5.4.5) - cosmiconfig: 8.3.6(typescript@5.4.5) + '@svgr/core': 8.1.0(typescript@5.5.4) + cosmiconfig: 8.3.6(typescript@5.5.4) deepmerge: 4.3.1 - svgo: 3.2.0 + svgo: 3.3.2 transitivePeerDependencies: - typescript - '@svgr/rollup@8.1.0(rollup@4.14.3)(typescript@5.4.5)': - dependencies: - '@babel/core': 7.24.4 - '@babel/plugin-transform-react-constant-elements': 7.24.1(@babel/core@7.24.4) - '@babel/preset-env': 7.24.4(@babel/core@7.24.4) - '@babel/preset-react': 7.24.1(@babel/core@7.24.4) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) - '@rollup/pluginutils': 5.1.0(rollup@4.14.3) - '@svgr/core': 8.1.0(typescript@5.4.5) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.4.5)) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.4.5))(typescript@5.4.5) + '@svgr/rollup@8.1.0(rollup@4.19.1)(typescript@5.5.4)': + dependencies: + '@babel/core': 7.24.9 + '@babel/plugin-transform-react-constant-elements': 7.25.1(@babel/core@7.24.9) + '@babel/preset-env': 7.25.0(@babel/core@7.24.9) + '@babel/preset-react': 7.24.7(@babel/core@7.24.9) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.9) + '@rollup/pluginutils': 5.1.0(rollup@4.19.1) + '@svgr/core': 8.1.0(typescript@5.5.4) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.5.4)) + '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.5.4))(typescript@5.5.4) transitivePeerDependencies: - rollup - supports-color - typescript - '@swc/core-darwin-arm64@1.4.14': + '@swc/core-darwin-arm64@1.7.3': optional: true - '@swc/core-darwin-x64@1.4.14': + '@swc/core-darwin-x64@1.7.3': optional: true - '@swc/core-linux-arm-gnueabihf@1.4.14': + '@swc/core-linux-arm-gnueabihf@1.7.3': optional: true - '@swc/core-linux-arm64-gnu@1.4.14': + '@swc/core-linux-arm64-gnu@1.7.3': optional: true - '@swc/core-linux-arm64-musl@1.4.14': + '@swc/core-linux-arm64-musl@1.7.3': optional: true - '@swc/core-linux-x64-gnu@1.4.14': + '@swc/core-linux-x64-gnu@1.7.3': optional: true - '@swc/core-linux-x64-musl@1.4.14': + '@swc/core-linux-x64-musl@1.7.3': optional: true - '@swc/core-win32-arm64-msvc@1.4.14': + '@swc/core-win32-arm64-msvc@1.7.3': optional: true - '@swc/core-win32-ia32-msvc@1.4.14': + '@swc/core-win32-ia32-msvc@1.7.3': optional: true - '@swc/core-win32-x64-msvc@1.4.14': + '@swc/core-win32-x64-msvc@1.7.3': optional: true - '@swc/core@1.4.14(@swc/helpers@0.5.5)': + '@swc/core@1.7.3(@swc/helpers@0.5.12)': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.6 + '@swc/types': 0.1.12 optionalDependencies: - '@swc/core-darwin-arm64': 1.4.14 - '@swc/core-darwin-x64': 1.4.14 - '@swc/core-linux-arm-gnueabihf': 1.4.14 - '@swc/core-linux-arm64-gnu': 1.4.14 - '@swc/core-linux-arm64-musl': 1.4.14 - '@swc/core-linux-x64-gnu': 1.4.14 - '@swc/core-linux-x64-musl': 1.4.14 - '@swc/core-win32-arm64-msvc': 1.4.14 - '@swc/core-win32-ia32-msvc': 1.4.14 - '@swc/core-win32-x64-msvc': 1.4.14 - '@swc/helpers': 0.5.5 + '@swc/core-darwin-arm64': 1.7.3 + '@swc/core-darwin-x64': 1.7.3 + '@swc/core-linux-arm-gnueabihf': 1.7.3 + '@swc/core-linux-arm64-gnu': 1.7.3 + '@swc/core-linux-arm64-musl': 1.7.3 + '@swc/core-linux-x64-gnu': 1.7.3 + '@swc/core-linux-x64-musl': 1.7.3 + '@swc/core-win32-arm64-msvc': 1.7.3 + '@swc/core-win32-ia32-msvc': 1.7.3 + '@swc/core-win32-x64-msvc': 1.7.3 + '@swc/helpers': 0.5.12 '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.5': + '@swc/helpers@0.5.12': dependencies: - '@swc/counter': 0.1.3 - tslib: 2.6.2 + tslib: 2.6.3 - '@swc/types@0.1.6': + '@swc/types@0.1.12': dependencies: '@swc/counter': 0.1.3 @@ -9607,32 +9662,34 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@tanstack/react-virtual@3.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@tanstack/react-virtual@3.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/virtual-core': 3.4.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tanstack/virtual-core': 3.8.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@tanstack/virtual-core@3.4.0': {} + '@tanstack/virtual-core@3.8.3': {} - '@testing-library/dom@9.3.4': + '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.24.2 - '@babel/runtime': 7.24.4 + '@babel/code-frame': 7.24.7 + '@babel/runtime': 7.25.0 '@types/aria-query': 5.0.4 - aria-query: 5.1.3 + aria-query: 5.3.0 chalk: 4.1.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@14.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@testing-library/react@16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.4 - '@testing-library/dom': 9.3.4 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@babel/runtime': 7.25.0 + '@testing-library/dom': 10.4.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 '@tootallnate/quickjs-emscripten@0.23.0': {} @@ -9650,25 +9707,25 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@tsconfig/recommended@1.0.6': {} + '@tsconfig/recommended@1.0.7': {} '@tsconfig/strictest@2.0.5': {} '@tsconfig/vite-react@3.0.2': {} - '@turbo/gen@1.13.3(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5)': + '@turbo/gen@2.0.9(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4)': dependencies: - '@turbo/workspaces': 1.13.3 - chalk: 2.4.2 + '@turbo/workspaces': 2.0.9 commander: 10.0.1 fs-extra: 10.1.0 inquirer: 8.2.6 - minimatch: 9.0.4 + minimatch: 9.0.5 node-plop: 0.26.3 + picocolors: 1.0.1 proxy-agent: 6.4.0 - ts-node: 10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5) + ts-node: 10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4) update-check: 1.5.4 - validate-npm-package-name: 5.0.0 + validate-npm-package-name: 5.0.1 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -9676,9 +9733,8 @@ snapshots: - supports-color - typescript - '@turbo/workspaces@1.13.3': + '@turbo/workspaces@2.0.9': dependencies: - chalk: 2.4.2 commander: 10.0.1 execa: 5.1.1 fast-glob: 3.3.2 @@ -9687,8 +9743,9 @@ snapshots: inquirer: 8.2.6 js-yaml: 4.1.0 ora: 4.1.1 + picocolors: 1.0.1 rimraf: 3.0.2 - semver: 7.6.0 + semver: 7.6.3 update-check: 1.5.4 '@types/acorn@4.0.6': @@ -9699,40 +9756,34 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/parser': 7.25.0 + '@babel/types': 7.25.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.25.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/parser': 7.25.0 + '@babel/types': 7.25.0 - '@types/babel__traverse@7.20.5': + '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.24.0 - - '@types/chai-subset@1.3.5': - dependencies: - '@types/chai': 4.3.14 - - '@types/chai@4.3.14': {} + '@babel/types': 7.25.0 - '@types/chrome@0.0.254': + '@types/chrome@0.0.269': dependencies: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.15 - '@types/cookie@0.4.1': {} - '@types/cookie@0.6.0': {} + '@types/css-font-loading-module@0.0.7': {} + '@types/d3-array@3.2.1': {} '@types/d3-color@3.1.3': {} @@ -9761,10 +9812,6 @@ snapshots: dependencies: '@types/ms': 0.7.34 - '@types/dompurify@3.0.5': - dependencies: - '@types/trusted-types': 2.0.7 - '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.5 @@ -9782,12 +9829,12 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.12.7 + '@types/node': 18.19.42 '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.12.7 + '@types/node': 22.0.0 '@types/har-format@1.2.15': {} @@ -9802,32 +9849,15 @@ snapshots: '@types/through': 0.0.33 rxjs: 6.6.7 - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - '@types/jest@29.5.12': - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - '@types/js-beautify@1.14.3': {} - '@types/js-levenshtein@1.1.3': {} - '@types/json-bigint@1.0.4': {} '@types/jsonfile@6.1.4': dependencies: - '@types/node': 20.12.7 + '@types/node': 18.19.42 - '@types/mdast@4.0.3': + '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.2 @@ -9839,64 +9869,56 @@ snapshots: '@types/minimist@1.2.5': {} - '@types/mocha@10.0.6': {} + '@types/mocha@10.0.7': {} '@types/ms@0.7.34': {} '@types/mute-stream@0.0.4': dependencies: - '@types/node': 20.12.7 + '@types/node': 20.14.13 '@types/node@18.15.13': {} - '@types/node@18.19.31': + '@types/node@18.19.42': dependencies: undici-types: 5.26.5 - '@types/node@20.12.7': + '@types/node@20.14.13': dependencies: undici-types: 5.26.5 - '@types/prismjs@1.26.3': {} + '@types/node@22.0.0': + dependencies: + undici-types: 6.11.1 + + '@types/prismjs@1.26.4': {} '@types/prop-types@15.7.12': {} '@types/ps-tree@1.1.6': {} - '@types/react-dom@18.2.25': + '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - '@types/react@18.2.79': + '@types/react@18.3.3': dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 '@types/secp256k1@4.0.6': dependencies: - '@types/node': 20.12.7 - - '@types/set-cookie-parser@2.4.7': - dependencies: - '@types/node': 20.12.7 - - '@types/sinon@17.0.3': - dependencies: - '@types/sinonjs__fake-timers': 8.1.5 - - '@types/sinonjs__fake-timers@8.1.5': {} - - '@types/stack-utils@2.0.3': {} + '@types/node': 22.0.0 '@types/statuses@2.0.5': {} '@types/through@0.0.33': dependencies: - '@types/node': 20.12.7 + '@types/node': 22.0.0 '@types/tinycolor2@1.4.6': {} - '@types/trusted-types@2.0.7': {} + '@types/tough-cookie@4.0.5': {} '@types/unist@2.0.10': {} @@ -9906,138 +9928,93 @@ snapshots: '@types/webextension-polyfill@0.8.3': {} - '@types/which@3.0.3': {} + '@types/which@3.0.4': {} '@types/wrap-ansi@3.0.0': {} - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.32': - dependencies: - '@types/yargs-parser': 21.0.3 - '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.12.7 + '@types/node': 22.0.0 '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react-swc@3.6.0(@swc/helpers@0.5.5)(vite@5.2.9(@types/node@20.12.7))': + '@vitejs/plugin-react-swc@3.7.0(@swc/helpers@0.5.12)(vite@5.3.5(@types/node@22.0.0))': dependencies: - '@swc/core': 1.4.14(@swc/helpers@0.5.5) - vite: 5.2.9(@types/node@20.12.7) + '@swc/core': 1.7.3(@swc/helpers@0.5.12) + vite: 5.3.5(@types/node@22.0.0) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.2.1(vite@5.2.9(@types/node@20.12.7))': + '@vitejs/plugin-react@4.3.1(vite@5.3.5(@types/node@22.0.0))': dependencies: - '@babel/core': 7.24.4 - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.9) '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.2.9(@types/node@20.12.7) + react-refresh: 0.14.2 + vite: 5.3.5(@types/node@22.0.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-c8@0.33.0(vitest@1.5.0(@types/node@20.12.7)(happy-dom@12.10.3))': - dependencies: - '@ampproject/remapping': 2.3.0 - c8: 7.14.0 - magic-string: 0.30.9 - picocolors: 1.0.0 - std-env: 3.7.0 - vitest: 1.5.0(@types/node@20.12.7)(happy-dom@12.10.3) - - '@vitest/coverage-v8@1.5.0(vitest@1.5.0(@types/node@20.12.7)(happy-dom@12.10.3))': + '@vitest/coverage-v8@2.0.5(vitest@2.0.4(@types/node@22.0.0)(happy-dom@14.12.3)(jsdom@24.1.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.4 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.4 + istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.9 + magic-string: 0.30.11 magicast: 0.3.4 - picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 2.1.0 - test-exclude: 6.0.0 - vitest: 1.5.0(@types/node@20.12.7)(happy-dom@12.10.3) + test-exclude: 7.0.1 + tinyrainbow: 1.2.0 + vitest: 2.0.4(@types/node@22.0.0)(happy-dom@14.12.3)(jsdom@24.1.1) transitivePeerDependencies: - supports-color - '@vitest/expect@0.34.6': - dependencies: - '@vitest/spy': 0.34.6 - '@vitest/utils': 0.34.6 - chai: 4.4.1 - - '@vitest/expect@1.5.0': + '@vitest/expect@2.0.4': dependencies: - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 - chai: 4.4.1 + '@vitest/spy': 2.0.4 + '@vitest/utils': 2.0.4 + chai: 5.1.1 + tinyrainbow: 1.2.0 - '@vitest/runner@0.34.6': + '@vitest/pretty-format@2.0.4': dependencies: - '@vitest/utils': 0.34.6 - p-limit: 4.0.0 - pathe: 1.1.2 + tinyrainbow: 1.2.0 - '@vitest/runner@1.5.0': + '@vitest/runner@2.0.4': dependencies: - '@vitest/utils': 1.5.0 - p-limit: 5.0.0 + '@vitest/utils': 2.0.4 pathe: 1.1.2 - '@vitest/snapshot@0.34.6': + '@vitest/snapshot@2.0.4': dependencies: - magic-string: 0.30.9 + '@vitest/pretty-format': 2.0.4 + magic-string: 0.30.11 pathe: 1.1.2 - pretty-format: 29.7.0 - - '@vitest/snapshot@1.5.0': - dependencies: - magic-string: 0.30.9 - pathe: 1.1.2 - pretty-format: 29.7.0 - - '@vitest/spy@0.34.6': - dependencies: - tinyspy: 2.2.1 - '@vitest/spy@1.5.0': + '@vitest/spy@2.0.4': dependencies: - tinyspy: 2.2.1 + tinyspy: 3.0.0 - '@vitest/utils@0.34.6': + '@vitest/utils@2.0.4': dependencies: - diff-sequences: 29.6.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - - '@vitest/utils@1.5.0': - dependencies: - diff-sequences: 29.6.3 + '@vitest/pretty-format': 2.0.4 estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + loupe: 3.1.1 + tinyrainbow: 1.2.0 - '@webcomponents/custom-elements@1.6.0': {} - - '@xmldom/xmldom@0.8.10': {} - - '@zxing/text-encoding@0.9.0': - optional: true + '@xstate/fsm@1.6.5': {} abbrev@2.0.0: {} - abitype@1.0.0(typescript@5.4.5)(zod@3.22.4): + abitype@1.0.5(typescript@5.5.4)(zod@3.23.8): optionalDependencies: - typescript: 5.4.5 - zod: 3.22.4 + typescript: 5.5.4 + zod: 3.23.8 abort-controller@3.0.0: dependencies: @@ -10048,42 +10025,43 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.11.3): + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: - acorn: 8.11.3 + acorn: 8.12.1 - acorn-walk@8.3.2: {} + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.1 - acorn@8.11.3: {} + acorn@8.12.1: {} - addons-linter@6.21.0(node-fetch@3.3.1): + addons-linter@6.31.1(node-fetch@3.3.2): dependencies: '@fluent/syntax': 0.19.0 - '@mdn/browser-compat-data': 5.5.7 + '@mdn/browser-compat-data': 5.5.34 addons-moz-compare: 1.3.0 - addons-scanner-utils: 9.9.0(node-fetch@3.3.1) - ajv: 8.12.0 + addons-scanner-utils: 9.11.0(node-fetch@3.3.2) + ajv: 8.16.0 chalk: 4.1.2 cheerio: 1.0.0-rc.12 columnify: 1.6.0 common-tags: 1.8.2 deepmerge: 4.3.1 - eslint: 8.56.0 - eslint-plugin-no-unsanitized: 4.0.2(eslint@8.56.0) - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint: 8.57.0 + eslint-plugin-no-unsanitized: 4.0.2(eslint@8.57.0) + eslint-visitor-keys: 4.0.0 + espree: 10.0.1 esprima: 4.0.1 fast-json-patch: 3.1.1 - glob: 10.3.10 + glob: 10.4.2 image-size: 1.1.1 is-mergeable-object: 1.1.1 jed: 1.1.1 json-merge-patch: 1.0.2 os-locale: 5.0.0 - pino: 8.17.2 - postcss: 8.4.33 + pino: 8.20.0 relaxed-json: 1.0.3 - semver: 7.5.4 + semver: 7.6.2 sha.js: 2.4.11 source-map-support: 0.5.21 tosource: 1.0.0 @@ -10099,7 +10077,7 @@ snapshots: addons-moz-compare@1.3.0: {} - addons-scanner-utils@9.9.0(node-fetch@3.3.1): + addons-scanner-utils@9.11.0(node-fetch@3.3.2): dependencies: '@types/yauzl': 2.10.3 common-tags: 1.8.2 @@ -10108,15 +10086,15 @@ snapshots: upath: 2.0.1 yauzl: 2.10.0 optionalDependencies: - node-fetch: 3.3.1 + node-fetch: 3.3.2 - adm-zip@0.5.12: {} + adm-zip@0.5.14: {} aes-js@4.0.0-beta.5: {} agent-base@7.1.1: dependencies: - debug: 4.3.4 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -10132,13 +10110,20 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: + ajv@8.16.0: dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 + alge@0.8.1: + dependencies: + lodash.ismatch: 4.4.0 + remeda: 1.61.0 + ts-toolbelt: 9.6.0 + zod: 3.23.8 + ansi-align@3.0.1: dependencies: string-width: 4.2.3 @@ -10178,16 +10163,11 @@ snapshots: aria-hidden@1.2.4: dependencies: - tslib: 2.6.2 - - aria-query@5.1.3: - dependencies: - deep-equal: 2.2.3 + tslib: 2.6.3 - array-buffer-byte-length@1.0.1: + aria-query@5.3.0: dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 + dequal: 2.0.3 array-differ@4.0.0: {} @@ -10203,12 +10183,6 @@ snapshots: inherits: 2.0.4 minimalistic-assert: 1.0.1 - asn1@0.2.6: - dependencies: - safer-buffer: 2.1.2 - - assert-plus@1.0.0: {} - assert@2.1.0: dependencies: call-bind: 1.0.7 @@ -10217,63 +10191,62 @@ snapshots: object.assign: 4.1.5 util: 0.12.5 - assertion-error@1.1.0: {} + assertion-error@2.0.1: {} ast-types@0.13.4: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 astring@1.8.6: {} + async-lock@1.4.1: {} + async@3.2.5: {} - asynckit@0.4.0: {} + asynckit@0.4.0: + optional: true at-least-node@1.0.0: {} atomic-sleep@1.0.0: {} - autoprefixer@10.4.19(postcss@8.4.38): + autoprefixer@10.4.19(postcss@8.4.40): dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001610 + browserslist: 4.23.2 + caniuse-lite: 1.0.30001643 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.38 + picocolors: 1.0.1 + postcss: 8.4.40 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 - aws-sign2@0.7.0: {} - - aws4@1.12.0: {} - - axe-core@4.9.0: {} + axe-core@4.10.0: {} - babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.4): + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.9): dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.4 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) + '@babel/compat-data': 7.25.0 + '@babel/core': 7.24.9 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.9) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.4): + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.4 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) - core-js-compat: 3.36.1 + '@babel/core': 7.24.9 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.9) + core-js-compat: 3.37.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.4): + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.4 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) + '@babel/core': 7.24.9 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.9) transitivePeerDependencies: - supports-color @@ -10283,7 +10256,9 @@ snapshots: balanced-match@1.0.2: {} - base-x@4.0.0: {} + base-x@5.0.0: {} + + base64-arraybuffer@1.0.2: {} base64-js@1.5.1: {} @@ -10291,9 +10266,7 @@ snapshots: bcp-47-match@2.0.3: {} - bcrypt-pbkdf@1.0.2: - dependencies: - tweetnacl: 0.14.5 + big-integer@1.6.52: {} bignumber.js@9.1.2: {} @@ -10328,6 +10301,10 @@ snapshots: widest-line: 4.0.1 wrap-ansi: 8.1.0 + bplist-parser@0.2.0: + dependencies: + big-integer: 1.6.52 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -10337,9 +10314,9 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.2: + braces@3.0.3: dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 brorand@1.1.0: {} @@ -10380,7 +10357,7 @@ snapshots: browserify-rsa: 4.1.0 create-hash: 1.2.0 create-hmac: 1.1.7 - elliptic: 6.5.5 + elliptic: 6.5.6 hash-base: 3.0.4 inherits: 2.0.4 parse-asn1: 5.1.7 @@ -10391,26 +10368,24 @@ snapshots: dependencies: pako: 1.0.11 - browserslist@4.23.0: + browserslist@4.23.2: dependencies: - caniuse-lite: 1.0.30001610 - electron-to-chromium: 1.4.737 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + caniuse-lite: 1.0.30001643 + electron-to-chromium: 1.5.2 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.2) - bs58@5.0.0: + bs58@6.0.0: dependencies: - base-x: 4.0.0 + base-x: 5.0.0 - bs58check@3.0.1: + bs58check@4.0.0: dependencies: '@noble/hashes': 1.4.0 - bs58: 5.0.0 + bs58: 6.0.0 buffer-crc32@0.2.13: {} - buffer-equal-constant-time@1.0.1: {} - buffer-from@1.1.2: {} buffer-xor@1.0.3: {} @@ -10427,17 +10402,17 @@ snapshots: builtin-status-codes@3.0.0: {} - builtins@5.1.0: + bundle-name@3.0.0: dependencies: - semver: 7.6.0 + run-applescript: 5.0.0 bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 - bundle-require@4.0.2(esbuild@0.20.2): + bundle-require@5.0.0(esbuild@0.23.0): dependencies: - esbuild: 0.20.2 + esbuild: 0.23.0 load-tsconfig: 0.2.5 bunyan@1.8.15: @@ -10447,25 +10422,6 @@ snapshots: mv: 2.1.1 safe-json-stringify: 1.2.0 - busboy@1.6.0: - dependencies: - streamsearch: 1.1.0 - - c8@7.14.0: - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@istanbuljs/schema': 0.1.3 - find-up: 5.0.0 - foreground-child: 2.0.0 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-reports: 3.1.7 - rimraf: 3.0.2 - test-exclude: 6.0.0 - v8-to-istanbul: 9.2.0 - yargs: 16.2.0 - yargs-parser: 20.2.9 - cac@6.7.14: {} cache-content-type@1.0.1: @@ -10506,25 +10462,19 @@ snapshots: camelcase@7.0.1: {} - caniuse-lite@1.0.30001610: {} + camelcase@8.0.0: {} - capacitor-secure-storage-plugin@0.9.0(@capacitor/core@5.7.5): - dependencies: - '@capacitor/core': 5.7.5 - - caseless@0.12.0: {} + caniuse-lite@1.0.30001643: {} ccount@2.0.1: {} - chai@4.4.1: + chai@5.1.1: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 chalk@2.4.2: dependencies: @@ -10575,9 +10525,9 @@ snapshots: chardet@0.7.0: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 + charenc@0.0.2: {} + + check-error@2.1.1: {} cheerio-select@2.1.0: dependencies: @@ -10601,7 +10551,7 @@ snapshots: chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -10612,13 +10562,22 @@ snapshots: chrome-launcher@0.15.1: dependencies: - '@types/node': 20.12.7 + '@types/node': 22.0.0 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 transitivePeerDependencies: - supports-color + chrome-launcher@1.1.0: + dependencies: + '@types/node': 22.0.0 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 2.0.1 + transitivePeerDependencies: + - supports-color + ci-info@3.9.0: {} cipher-base@1.0.4: @@ -10648,12 +10607,6 @@ snapshots: client-only@0.0.1: {} - cliui@7.0.4: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -10664,15 +10617,17 @@ snapshots: clsx@2.0.0: {} - clsx@2.1.0: {} + clsx@2.1.1: {} - cmdk@0.2.1(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + cmdk@1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.0.0(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: - '@types/react' + - '@types/react-dom' co@4.6.0: {} @@ -10698,12 +10653,13 @@ snapshots: combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 + optional: true comma-separated-tokens@2.0.3: {} commander@10.0.1: {} - commander@12.0.0: {} + commander@12.1.0: {} commander@2.20.3: {} @@ -10743,14 +10699,7 @@ snapshots: write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 - connect-injector@0.4.4: - dependencies: - debug: 2.6.9 - q: 1.5.1 - stream-buffers: 0.2.6 - uberproto: 1.2.0 - transitivePeerDependencies: - - supports-color + consola@3.2.3: {} console-browserify@1.2.0: {} @@ -10767,12 +10716,8 @@ snapshots: content-type@1.0.5: {} - convert-source-map@1.9.0: {} - convert-source-map@2.0.0: {} - cookie@0.4.2: {} - cookie@0.5.0: {} cookies@0.9.1: @@ -10784,31 +10729,27 @@ snapshots: dependencies: is-what: 4.1.16 - core-js-compat@3.36.1: + core-js-compat@3.37.1: dependencies: - browserslist: 4.23.0 - - core-js-pure@3.36.1: {} + browserslist: 4.23.2 - core-js@3.29.0: {} - - core-util-is@1.0.2: {} + core-js-pure@3.37.1: {} core-util-is@1.0.3: {} - cosmiconfig@8.3.6(typescript@5.4.5): + cosmiconfig@8.3.6(typescript@5.5.4): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.4 create-ecdh@4.0.4: dependencies: bn.js: 4.12.0 - elliptic: 6.5.5 + elliptic: 6.5.6 create-hash@1.2.0: dependencies: @@ -10829,18 +10770,14 @@ snapshots: create-require@1.1.1: {} - cross-fetch@3.1.8: - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + crypt@0.0.2: {} + crypto-browserify@3.12.0: dependencies: browserify-cipher: 1.0.1 @@ -10886,14 +10823,21 @@ snapshots: css-what@6.1.0: {} - css.escape@1.5.1: {} - cssesc@3.0.0: {} + cssfilter@0.0.10: {} + csso@5.0.5: dependencies: css-tree: 2.2.1 + cssom@0.5.0: {} + + cssstyle@4.0.1: + dependencies: + rrweb-cssom: 0.6.0 + optional: true + csstype@3.1.3: {} culori@3.3.0: {} @@ -10936,34 +10880,38 @@ snapshots: d3-timer@3.0.1: {} - daisyui@4.10.2(postcss@8.4.38): + daisyui@4.12.10(postcss@8.4.40): dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 - picocolors: 1.0.0 - postcss-js: 4.0.1(postcss@8.4.38) + picocolors: 1.0.1 + postcss-js: 4.0.1(postcss@8.4.40) transitivePeerDependencies: - postcss - dashdash@1.14.1: - dependencies: - assert-plus: 1.0.0 - data-uri-to-buffer@4.0.1: {} data-uri-to-buffer@6.0.2: {} + data-urls@5.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + optional: true + date-fns@3.6.0: {} - dayjs@1.11.10: {} + dayjs@1.11.12: {} debounce@1.2.1: {} + debounce@2.1.0: {} + debug@2.6.9: dependencies: ms: 2.0.0 - debug@4.3.4: + debug@4.3.6: dependencies: ms: 2.1.2 @@ -10971,6 +10919,9 @@ snapshots: decimal.js-light@2.5.1: {} + decimal.js@10.4.3: + optional: true + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -10981,47 +10932,34 @@ snapshots: dependencies: mimic-response: 3.1.0 + dedent@1.5.3: {} + deep-diff@0.3.8: {} - deep-eql@4.1.3: - dependencies: - type-detect: 4.0.8 + deep-eql@5.0.2: {} deep-equal@1.0.1: {} - deep-equal@2.2.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - isarray: 2.0.5 - object-is: 1.1.6 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 - deep-extend@0.6.0: {} deep-is@0.1.4: {} - deepcopy@2.1.0: - dependencies: - type-detect: 4.0.8 - deepmerge@4.3.1: {} + default-browser-id@3.0.0: + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + default-browser-id@5.0.0: {} + default-browser@4.0.0: + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + default-browser@5.2.1: dependencies: bundle-name: 4.1.0 @@ -11039,8 +10977,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.0.1 - define-lazy-prop@2.0.0: {} - define-lazy-prop@3.0.0: {} define-properties@1.2.1: @@ -11066,7 +11002,8 @@ snapshots: rimraf: 3.0.2 slash: 3.0.0 - delayed-stream@1.0.0: {} + delayed-stream@1.0.0: + optional: true delegates@1.0.0: {} @@ -11083,6 +11020,8 @@ snapshots: destroy@1.2.0: {} + detect-indent@7.0.1: {} + detect-node-es@1.1.0: {} devlop@1.1.0: @@ -11091,12 +11030,8 @@ snapshots: didyoumean@1.2.2: {} - diff-sequences@29.6.3: {} - diff@4.0.2: {} - diff@5.2.0: {} - diffie-hellman@5.0.3: dependencies: bn.js: 4.12.0 @@ -11119,7 +11054,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.25.0 csstype: 3.1.3 dom-serializer@2.0.0: @@ -11136,8 +11071,6 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.1.4: {} - domutils@3.1.0: dependencies: dom-serializer: 2.0.0 @@ -11151,17 +11084,15 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 dot-prop@6.0.1: dependencies: is-obj: 2.0.0 - dotenv@16.4.5: {} - dtrace-provider@0.8.8: dependencies: - nan: 2.19.0 + nan: 2.20.0 optional: true duplexer@0.1.2: {} @@ -11172,27 +11103,18 @@ snapshots: dependencies: seedrandom: 3.0.5 - ecc-jsbn@0.1.2: - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - - ecdsa-sig-formatter@1.0.11: - dependencies: - safe-buffer: 5.2.1 - editorconfig@1.0.4: dependencies: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.1 - semver: 7.6.0 + semver: 7.6.3 ee-first@1.1.1: {} - electron-to-chromium@1.4.737: {} + electron-to-chromium@1.5.2: {} - elliptic@6.5.5: + elliptic@6.5.6: dependencies: bn.js: 4.12.0 brorand: 1.1.0 @@ -11224,64 +11146,161 @@ snapshots: es-errors@1.3.0: {} - es-get-iterator@1.1.3: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.3 - is-set: 2.0.3 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 + es-module-lexer@1.5.4: {} + + es6-error@4.1.1: {} - es-module-lexer@0.10.5: {} + esbuild-android-64@0.14.54: + optional: true - es-module-lexer@1.5.0: {} + esbuild-android-arm64@0.14.54: + optional: true - es6-error@4.1.1: {} + esbuild-darwin-64@0.14.54: + optional: true + + esbuild-darwin-arm64@0.14.54: + optional: true + + esbuild-freebsd-64@0.14.54: + optional: true + + esbuild-freebsd-arm64@0.14.54: + optional: true + + esbuild-linux-32@0.14.54: + optional: true + + esbuild-linux-64@0.14.54: + optional: true - es6-promisify@7.0.0: {} + esbuild-linux-arm64@0.14.54: + optional: true + + esbuild-linux-arm@0.14.54: + optional: true + + esbuild-linux-mips64le@0.14.54: + optional: true + + esbuild-linux-ppc64le@0.14.54: + optional: true - esbuild-plugin-polyfill-node@0.3.0(esbuild@0.20.2): + esbuild-linux-riscv64@0.14.54: + optional: true + + esbuild-linux-s390x@0.14.54: + optional: true + + esbuild-netbsd-64@0.14.54: + optional: true + + esbuild-openbsd-64@0.14.54: + optional: true + + esbuild-plugin-polyfill-node@0.3.0(esbuild@0.23.0): dependencies: '@jspm/core': 2.0.1 - esbuild: 0.20.2 + esbuild: 0.23.0 import-meta-resolve: 3.1.1 - esbuild-plugin-svgr@2.0.0(typescript@5.4.5): + esbuild-plugin-svgr@2.1.0(esbuild@0.23.0)(typescript@5.5.4): dependencies: - '@svgr/core': 8.1.0(typescript@5.4.5) + '@svgr/core': 8.1.0(typescript@5.5.4) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.5.4)) + esbuild: 0.23.0 transitivePeerDependencies: - supports-color - typescript - esbuild@0.20.2: + esbuild-sunos-64@0.14.54: + optional: true + + esbuild-windows-32@0.14.54: + optional: true + + esbuild-windows-64@0.14.54: + optional: true + + esbuild-windows-arm64@0.14.54: + optional: true + + esbuild@0.14.54: + optionalDependencies: + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esbuild@0.23.0: optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 + '@esbuild/aix-ppc64': 0.23.0 + '@esbuild/android-arm': 0.23.0 + '@esbuild/android-arm64': 0.23.0 + '@esbuild/android-x64': 0.23.0 + '@esbuild/darwin-arm64': 0.23.0 + '@esbuild/darwin-x64': 0.23.0 + '@esbuild/freebsd-arm64': 0.23.0 + '@esbuild/freebsd-x64': 0.23.0 + '@esbuild/linux-arm': 0.23.0 + '@esbuild/linux-arm64': 0.23.0 + '@esbuild/linux-ia32': 0.23.0 + '@esbuild/linux-loong64': 0.23.0 + '@esbuild/linux-mips64el': 0.23.0 + '@esbuild/linux-ppc64': 0.23.0 + '@esbuild/linux-riscv64': 0.23.0 + '@esbuild/linux-s390x': 0.23.0 + '@esbuild/linux-x64': 0.23.0 + '@esbuild/netbsd-x64': 0.23.0 + '@esbuild/openbsd-arm64': 0.23.0 + '@esbuild/openbsd-x64': 0.23.0 + '@esbuild/sunos-x64': 0.23.0 + '@esbuild/win32-arm64': 0.23.0 + '@esbuild/win32-ia32': 0.23.0 + '@esbuild/win32-x64': 0.23.0 escalade@3.1.2: {} @@ -11291,8 +11310,6 @@ snapshots: escape-string-regexp@1.0.5: {} - escape-string-regexp@2.0.0: {} - escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} @@ -11305,9 +11322,9 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-plugin-no-unsanitized@4.0.2(eslint@8.56.0): + eslint-plugin-no-unsanitized@4.0.2(eslint@8.57.0): dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-scope@7.2.2: dependencies: @@ -11316,12 +11333,14 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.56.0: + eslint-visitor-keys@4.0.0: {} + + eslint@8.57.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.11.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 + '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -11329,13 +11348,13 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.6 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -11353,21 +11372,27 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color + espree@10.0.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.0.0 + espree@9.6.1: dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} - esquery@1.5.0: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -11411,14 +11436,14 @@ snapshots: esutils@2.0.3: {} - ethereum-cryptography@2.1.3: + ethereum-cryptography@2.2.1: dependencies: - '@noble/curves': 1.3.0 - '@noble/hashes': 1.3.3 - '@scure/bip32': 1.3.3 - '@scure/bip39': 1.2.2 + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 - ethers@6.11.1: + ethers@6.13.2: dependencies: '@adraffy/ens-normalize': 1.10.1 '@noble/curves': 1.2.0 @@ -11426,7 +11451,7 @@ snapshots: '@types/node': 18.15.13 aes-js: 4.0.0-beta.5 tslib: 2.4.0 - ws: 8.5.0 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -11447,6 +11472,8 @@ snapshots: eventemitter3@4.0.7: {} + eventemitter3@5.0.1: {} + events@3.3.0: {} evp_bytestokey@1.0.3: @@ -11476,7 +11503,19 @@ snapshots: npm-run-path: 4.0.1 onetime: 5.1.2 signal-exit: 3.0.7 - strip-final-newline: 2.0.0 + strip-final-newline: 2.0.0 + + execa@7.2.0: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 execa@8.0.1: dependencies: @@ -11490,14 +11529,6 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - expect@29.7.0: - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - extend@3.0.2: {} external-editor@3.1.0: @@ -11506,8 +11537,6 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - extsprintf@1.3.0: {} - fast-deep-equal@3.1.3: {} fast-equals@5.0.1: {} @@ -11518,7 +11547,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 fast-json-patch@3.1.1: {} @@ -11547,6 +11576,8 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 + fflate@0.4.8: {} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -11555,7 +11586,7 @@ snapshots: dependencies: flat-cache: 3.2.0 - fill-range@7.0.1: + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -11565,7 +11596,7 @@ snapshots: dependencies: chalk: 4.1.2 commander: 5.1.0 - debug: 4.3.4 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -11574,9 +11605,9 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - firefox-profile@4.3.2: + firefox-profile@4.6.0: dependencies: - adm-zip: 0.5.12 + adm-zip: 0.5.14 fs-extra: 9.0.1 ini: 2.0.0 minimist: 1.2.8 @@ -11596,25 +11627,19 @@ snapshots: dependencies: is-callable: 1.2.7 - foreground-child@2.0.0: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 3.0.7 - - foreground-child@3.1.1: + foreground-child@3.2.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - forever-agent@0.6.1: {} - form-data-encoder@2.1.4: {} - form-data@2.3.3: + form-data@4.0.0: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + optional: true formdata-polyfill@4.0.10: dependencies: @@ -11632,12 +11657,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -11661,8 +11680,6 @@ snapshots: function-bind@1.1.2: {} - functions-have-names@1.2.3: {} - fx-runner@1.4.0: dependencies: commander: 2.9.0 @@ -11672,7 +11689,7 @@ snapshots: which: 1.2.4 winreg: 0.0.12 - fx@34.0.0: {} + fx@35.0.0: {} gensync@1.0.0-beta.2: {} @@ -11704,15 +11721,11 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.4 + debug: 4.3.6 fs-extra: 11.2.0 transitivePeerDependencies: - supports-color - getpass@0.1.7: - dependencies: - assert-plus: 1.0.0 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -11723,21 +11736,32 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.3.10: + glob@10.4.2: + dependencies: + foreground-child: 3.2.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + + glob@10.4.5: dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.4 - minipass: 7.0.4 - path-scurry: 1.10.2 + foreground-child: 3.2.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 - glob@10.3.12: + glob@11.0.0: dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.4 - minipass: 7.0.4 - path-scurry: 1.10.2 + foreground-child: 3.2.1 + jackspeak: 4.0.1 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 2.0.0 glob@6.0.4: dependencies: @@ -11762,7 +11786,7 @@ snapshots: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.10.2 + path-scurry: 1.11.1 global-dirs@3.0.1: dependencies: @@ -11802,7 +11826,7 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 - globby@14.0.1: + globby@14.0.2: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 @@ -11844,15 +11868,14 @@ snapshots: graphemer@1.4.0: {} - graphql-request@6.1.0(graphql@16.8.1): + graphql-request@7.1.0(graphql@16.9.0): dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - cross-fetch: 3.1.8 - graphql: 16.8.1 - transitivePeerDependencies: - - encoding + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@molt/command': 0.9.0 + graphql: 16.9.0 + zod: 3.23.8 - graphql@16.8.1: {} + graphql@16.9.0: {} growly@1.3.0: {} @@ -11863,26 +11886,14 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 + uglify-js: 3.19.1 - happy-dom@12.10.3: + happy-dom@14.12.3: dependencies: - css.escape: 1.5.1 entities: 4.5.0 - iconv-lite: 0.6.3 webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 - har-schema@2.0.0: {} - - har-validator@5.1.5: - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - - has-bigints@1.0.2: {} - has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -11933,8 +11944,8 @@ snapshots: devlop: 1.1.0 hastscript: 8.0.0 property-information: 6.5.0 - vfile: 6.0.1 - vfile-location: 5.0.2 + vfile: 6.0.2 + vfile-location: 5.0.3 web-namespaces: 2.0.1 hast-util-has-property@3.0.0: @@ -11945,7 +11956,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-raw@9.0.2: + hast-util-raw@9.0.4: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -11953,11 +11964,11 @@ snapshots: hast-util-from-parse5: 8.0.1 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.1.0 + mdast-util-to-hast: 13.2.0 parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.1 + vfile: 6.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -12052,13 +12063,11 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 - headers-polyfill@3.2.5: {} - headers-polyfill@4.0.3: {} history@5.3.0: dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.25.0 hmac-drbg@1.0.1: dependencies: @@ -12066,8 +12075,15 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + html-encoding-sniffer@4.0.0: + dependencies: + whatwg-encoding: 3.1.1 + optional: true + html-escaper@2.0.2: {} + html-escaper@3.0.3: {} + html-void-elements@3.0.0: {} htmlparser2@8.0.2: @@ -12095,16 +12111,10 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.6 transitivePeerDependencies: - supports-color - http-signature@1.2.0: - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.18.0 - http2-wrapper@2.2.1: dependencies: quick-lru: 5.1.1 @@ -12112,10 +12122,10 @@ snapshots: https-browserify@1.0.0: {} - https-proxy-agent@7.0.4: + https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -12123,9 +12133,11 @@ snapshots: human-signals@2.1.0: {} + human-signals@4.3.1: {} + human-signals@5.0.0: {} - husky@8.0.3: {} + husky@9.1.4: {} iconv-lite@0.4.24: dependencies: @@ -12134,6 +12146,7 @@ snapshots: iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 + optional: true ieee754@1.2.1: {} @@ -12145,7 +12158,7 @@ snapshots: immediate@3.0.6: {} - immer@10.0.4: {} + immer@10.1.1: {} import-fresh@3.3.0: dependencies: @@ -12211,12 +12224,6 @@ snapshots: through: 2.3.8 wrap-ansi: 6.2.0 - internal-slot@1.0.7: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.0.6 - internmap@2.0.3: {} invariant@2.2.4: @@ -12246,27 +12253,13 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-array-buffer@3.0.4: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-arrayish@0.2.1: {} - is-bigint@1.0.4: - dependencies: - has-bigints: 1.0.2 - is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.1.2: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - - is-buffer@2.0.5: {} + is-buffer@1.1.6: {} is-callable@1.2.7: {} @@ -12274,14 +12267,10 @@ snapshots: dependencies: ci-info: 3.9.0 - is-core-module@2.13.1: + is-core-module@2.15.0: dependencies: hasown: 2.0.2 - is-date-object@1.0.5: - dependencies: - has-tostringtag: 1.0.2 - is-decimal@2.0.1: {} is-docker@2.2.1: {} @@ -12317,8 +12306,6 @@ snapshots: dependencies: lower-case: 1.1.4 - is-map@2.0.3: {} - is-mergeable-object@1.1.1: {} is-nan@1.3.2: @@ -12330,10 +12317,6 @@ snapshots: is-npm@6.0.0: {} - is-number-object@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - is-number@7.0.0: {} is-obj@2.0.0: {} @@ -12344,35 +12327,25 @@ snapshots: is-plain-obj@4.1.0: {} - is-reference@3.0.2: - dependencies: - '@types/estree': 1.0.5 - - is-regex@1.1.4: + is-plain-object@2.0.4: dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 + isobject: 3.0.1 - is-relative@0.1.3: {} + is-potential-custom-element-name@1.0.1: + optional: true - is-set@2.0.3: {} + is-primitive@3.0.1: {} - is-shared-array-buffer@1.0.3: + is-reference@3.0.2: dependencies: - call-bind: 1.0.7 + '@types/estree': 1.0.5 + + is-relative@0.1.3: {} is-stream@2.0.1: {} is-stream@3.0.0: {} - is-string@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - - is-symbol@1.0.4: - dependencies: - has-symbols: 1.0.3 - is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 @@ -12387,13 +12360,6 @@ snapshots: is-utf8@0.2.1: {} - is-weakmap@2.0.2: {} - - is-weakset@2.0.3: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-what@4.1.16: {} is-wsl@2.2.0: @@ -12408,21 +12374,19 @@ snapshots: isarray@1.0.0: {} - isarray@2.0.5: {} - isbinaryfile@4.0.10: {} isexe@1.1.2: {} isexe@2.0.0: {} + isobject@3.0.1: {} + isomorphic-timers-promises@1.0.1: {} - isows@1.0.3(ws@8.13.0): + isows@1.0.4(ws@8.17.1): dependencies: - ws: 8.13.0 - - isstream@0.1.2: {} + ws: 8.17.1 istanbul-lib-coverage@3.2.2: {} @@ -12432,10 +12396,10 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@5.0.4: + istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.4 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -12447,54 +12411,23 @@ snapshots: iterall@1.3.0: {} - jackspeak@2.3.6: + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jed@1.1.1: {} - - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-get-type@29.6.3: {} - - jest-matcher-utils@29.7.0: - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-message-util@29.7.0: + jackspeak@4.0.1: dependencies: - '@babel/code-frame': 7.24.2 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.12.7 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 + jed@1.1.1: {} - jiti@1.21.0: {} + jiti@1.21.6: {} - jose@4.13.1: {} + jose@5.4.1: {} joycon@3.1.1: {} @@ -12502,34 +12435,55 @@ snapshots: dependencies: config-chain: 1.1.13 editorconfig: 1.0.4 - glob: 10.3.12 + glob: 10.4.5 js-cookie: 3.0.5 nopt: 7.2.1 js-cookie@3.0.5: {} - js-levenshtein@1.1.6: {} - js-sha256@0.9.0: {} js-tokens@4.0.0: {} - js-tokens@9.0.0: {} - js-yaml@4.1.0: dependencies: argparse: 2.0.1 - jsbn@0.1.1: {} - jsbn@1.1.0: {} + jsdom@24.1.1: + dependencies: + cssstyle: 4.0.1 + data-urls: 5.0.0 + decimal.js: 10.4.3 + form-data: 4.0.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.12 + parse5: 7.1.2 + rrweb-cssom: 0.7.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + ws: 8.18.0 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + optional: true + jsesc@0.5.0: {} jsesc@2.5.2: {} - jsesc@3.0.2: {} - json-bigint@1.0.0: dependencies: bignumber.js: 9.1.2 @@ -12542,40 +12496,22 @@ snapshots: json-parse-even-better-errors@2.3.1: {} + json-parse-even-better-errors@3.0.2: {} + json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} - json-schema@0.4.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} - json-stringify-safe@5.0.1: {} - json5@2.2.3: {} - jsonc-parser@3.2.1: {} - jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - jsonwebtoken@9.0.0: - dependencies: - jws: 3.2.2 - lodash: 4.17.21 - ms: 2.1.3 - semver: 7.6.0 - - jsprim@1.4.2: - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - jszip@3.10.1: dependencies: lie: 3.3.0 @@ -12583,19 +12519,6 @@ snapshots: readable-stream: 2.3.8 setimmediate: 1.0.5 - just-extend@6.2.0: {} - - jwa@1.4.1: - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - - jws@3.2.2: - dependencies: - jwa: 1.4.1 - safe-buffer: 5.2.1 - keygrip@1.1.0: dependencies: tsscmp: 1.0.6 @@ -12620,7 +12543,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.9.1 - debug: 4.3.4 + debug: 4.3.6 delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0 @@ -12665,35 +12588,53 @@ snapshots: transitivePeerDependencies: - supports-color + lighthouse-logger@2.0.1: + dependencies: + debug: 2.6.9 + marky: 1.2.5 + transitivePeerDependencies: + - supports-color + lilconfig@2.1.0: {} - lilconfig@3.1.1: {} + lilconfig@3.1.2: {} lines-and-columns@1.2.4: {} lines-and-columns@2.0.4: {} - load-tsconfig@0.2.5: {} - - local-pkg@0.4.3: {} - - local-pkg@0.5.0: + linkedom@0.14.26: dependencies: - mlly: 1.6.1 - pkg-types: 1.0.3 + css-select: 5.1.0 + cssom: 0.5.0 + html-escaper: 3.0.3 + htmlparser2: 8.0.2 + uhyphen: 0.2.0 + + load-tsconfig@0.2.5: {} locate-path@6.0.0: dependencies: p-locate: 5.0.0 + lodash.camelcase@4.3.0: {} + lodash.debounce@4.0.8: {} lodash.get@4.4.2: {} + lodash.ismatch@4.4.0: {} + lodash.merge@4.6.2: {} + lodash.snakecase@4.1.1: {} + lodash.sortby@4.7.0: {} + lodash.uniq@4.5.0: {} + + lodash.uniqby@4.7.0: {} + lodash@4.17.21: {} log-symbols@3.0.0: @@ -12711,7 +12652,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@2.3.7: + loupe@3.1.1: dependencies: get-func-name: 2.0.2 @@ -12723,25 +12664,23 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 lowercase-keys@3.0.0: {} - lru-cache@10.2.0: {} + lru-cache@10.4.3: {} + + lru-cache@11.0.0: {} lru-cache@5.1.1: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - lru-cache@7.18.3: {} - lucide-react@0.376.0(react@18.2.0): + lucide-react@0.417.0(react@18.3.1): dependencies: - react: 18.2.0 + react: 18.3.1 lz-string@1.5.0: {} @@ -12749,23 +12688,19 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - magic-string@0.26.7: + magic-string@0.30.11: dependencies: - sourcemap-codec: 1.4.8 - - magic-string@0.30.9: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 magicast@0.3.4: dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/parser': 7.25.0 + '@babel/types': 7.25.0 source-map-js: 1.2.0 make-dir@4.0.0: dependencies: - semver: 7.6.0 + semver: 7.6.3 make-error@1.3.6: {} @@ -12783,7 +12718,7 @@ snapshots: match-sorter@6.3.4: dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.25.0 remove-accents: 0.5.0 md5.js@1.3.5: @@ -12792,16 +12727,22 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + mdast-util-find-and-replace@3.0.1: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - mdast-util-from-markdown@2.0.0: + mdast-util-from-markdown@2.0.1: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 '@types/unist': 3.0.2 decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -12818,7 +12759,7 @@ snapshots: mdast-util-gfm-autolink-literal@2.0.0: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 @@ -12826,9 +12767,9 @@ snapshots: mdast-util-gfm-footnote@2.0.0: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: @@ -12836,34 +12777,34 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0: dependencies: - '@types/mdast': 4.0.3 - mdast-util-from-markdown: 2.0.0 + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color mdast-util-gfm-table@2.0.0: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color mdast-util-gfm-task-list-item@2.0.0: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color mdast-util-gfm@3.0.0: dependencies: - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-gfm-autolink-literal: 2.0.0 mdast-util-gfm-footnote: 2.0.0 mdast-util-gfm-strikethrough: 2.0.0 @@ -12877,9 +12818,9 @@ snapshots: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -12888,11 +12829,11 @@ snapshots: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 '@types/unist': 3.0.2 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 parse-entities: 4.0.1 stringify-entities: 4.0.4 @@ -12904,7 +12845,7 @@ snapshots: mdast-util-mdx@3.0.0: dependencies: - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-mdx-expression: 2.0.0 mdast-util-mdx-jsx: 3.1.2 mdast-util-mdxjs-esm: 2.0.1 @@ -12916,33 +12857,33 @@ snapshots: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color mdast-util-phrasing@4.1.0: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 unist-util-is: 6.0.0 - mdast-util-to-hast@13.1.0: + mdast-util-to-hast@13.2.0: dependencies: '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.0 trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.1 + vfile: 6.0.2 mdast-util-to-markdown@2.1.0: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 '@types/unist': 3.0.2 longest-streak: 3.1.0 mdast-util-phrasing: 4.1.0 @@ -12953,7 +12894,7 @@ snapshots: mdast-util-to-string@4.0.0: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 mdn-data@2.0.28: {} @@ -12967,26 +12908,30 @@ snapshots: mimic-fn: 2.1.0 p-is-promise: 2.1.0 - merge-refs@1.2.2(@types/react@18.2.79): + merge-refs@1.3.0(@types/react@18.3.3): optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 merge-stream@2.0.0: {} merge2@1.4.1: {} - micro-eth-signer@0.6.5: + micro-eth-signer@0.10.0: dependencies: - '@ethereumjs/rlp': 5.0.0 - '@noble/curves': 1.3.0 - '@noble/hashes': 1.3.3 + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + micro-packed: 0.6.3 + + micro-packed@0.6.3: + dependencies: + '@scure/base': 1.1.7 micro-starknet@0.2.3: dependencies: '@noble/curves': 1.0.0 '@noble/hashes': 1.3.3 - micromark-core-commonmark@2.0.0: + micromark-core-commonmark@2.0.1: dependencies: decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -13005,17 +12950,17 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-gfm-autolink-literal@2.0.0: + micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.0 micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-gfm-footnote@2.0.0: + micromark-extension-gfm-footnote@2.1.0: dependencies: devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 + micromark-core-commonmark: 2.0.1 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-normalize-identifier: 2.0.0 @@ -13023,7 +12968,7 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-gfm-strikethrough@2.0.0: + micromark-extension-gfm-strikethrough@2.1.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 @@ -13032,7 +12977,7 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-gfm-table@2.0.0: + micromark-extension-gfm-table@2.1.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 @@ -13044,7 +12989,7 @@ snapshots: dependencies: micromark-util-types: 2.0.0 - micromark-extension-gfm-task-list-item@2.0.1: + micromark-extension-gfm-task-list-item@2.1.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 @@ -13054,12 +12999,12 @@ snapshots: micromark-extension-gfm@3.0.0: dependencies: - micromark-extension-gfm-autolink-literal: 2.0.0 - micromark-extension-gfm-footnote: 2.0.0 - micromark-extension-gfm-strikethrough: 2.0.0 - micromark-extension-gfm-table: 2.0.0 + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 micromark-extension-gfm-tagfilter: 2.0.0 - micromark-extension-gfm-task-list-item: 2.0.1 + micromark-extension-gfm-task-list-item: 2.1.0 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 @@ -13095,7 +13040,7 @@ snapshots: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 + micromark-core-commonmark: 2.0.1 micromark-util-character: 2.1.0 micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.0 @@ -13105,8 +13050,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.0 micromark-extension-mdx-md: 2.0.0 @@ -13231,10 +13176,10 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.4 + debug: 4.3.6 decode-named-character-reference: 1.0.2 devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 + micromark-core-commonmark: 2.0.1 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-chunked: 2.0.0 @@ -13250,9 +13195,9 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.5: + micromatch@4.0.7: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 miller-rabin@4.0.1: @@ -13274,7 +13219,7 @@ snapshots: mimic-response@4.0.0: {} - mina-signer@2.1.2: + mina-signer@3.0.7: dependencies: blakejs: 1.2.1 js-sha256: 0.9.0 @@ -13283,6 +13228,10 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -13295,7 +13244,7 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.4: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -13303,22 +13252,19 @@ snapshots: minipass@4.2.8: {} - minipass@7.0.4: {} + minipass@7.1.2: {} - mixpanel-browser@2.49.0: {} + mitt@3.0.1: {} + + mixpanel-browser@2.54.0: + dependencies: + rrweb: 2.0.0-alpha.13 mkdirp@0.5.6: dependencies: minimist: 1.2.8 - mkdirp@1.0.4: {} - - mlly@1.6.1: - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.5.3 + mkdirp@3.0.1: {} moment@2.30.1: optional: true @@ -13327,56 +13273,27 @@ snapshots: ms@2.1.2: {} - ms@2.1.3: {} - - msw@1.3.3(typescript@5.4.5): - dependencies: - '@mswjs/cookies': 0.2.2 - '@mswjs/interceptors': 0.17.10 - '@open-draft/until': 1.0.3 - '@types/cookie': 0.4.1 - '@types/js-levenshtein': 1.1.3 - chalk: 4.1.2 - chokidar: 3.6.0 - cookie: 0.4.2 - graphql: 16.8.1 - headers-polyfill: 3.2.5 - inquirer: 8.2.6 - is-node-process: 1.2.0 - js-levenshtein: 1.1.6 - node-fetch: 2.7.0 - outvariant: 1.4.2 - path-to-regexp: 6.2.2 - strict-event-emitter: 0.4.6 - type-fest: 2.19.0 - yargs: 17.7.2 - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - encoding - - supports-color - - msw@2.2.13(typescript@5.4.5): + msw@2.3.4(typescript@5.5.4): dependencies: '@bundled-es-modules/cookie': 2.0.0 '@bundled-es-modules/statuses': 1.0.1 - '@inquirer/confirm': 3.1.5 - '@mswjs/cookies': 1.1.0 - '@mswjs/interceptors': 0.26.15 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 3.1.18 + '@mswjs/interceptors': 0.29.1 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 '@types/statuses': 2.0.5 chalk: 4.1.2 - graphql: 16.8.1 + graphql: 16.9.0 headers-polyfill: 4.0.3 is-node-process: 1.2.0 - outvariant: 1.4.2 + outvariant: 1.4.3 path-to-regexp: 6.2.2 strict-event-emitter: 0.5.1 - type-fest: 4.15.0 + type-fest: 4.23.0 yargs: 17.7.2 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.4 multimatch@6.0.0: dependencies: @@ -13402,7 +13319,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.19.0: + nan@2.20.0: optional: true nanoevents@6.0.2: {} @@ -13422,45 +13339,10 @@ snapshots: netmask@2.0.2: {} - next-themes@0.2.1(next@14.2.1(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - next: 14.2.1(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - next@14.2.1(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.1 - '@swc/helpers': 0.5.5 - busboy: 1.6.0 - caniuse-lite: 1.0.30001610 - graceful-fs: 4.2.11 - postcss: 8.4.31 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.24.4)(react@18.2.0) - optionalDependencies: - '@next/swc-darwin-arm64': 14.2.1 - '@next/swc-darwin-x64': 14.2.1 - '@next/swc-linux-arm64-gnu': 14.2.1 - '@next/swc-linux-arm64-musl': 14.2.1 - '@next/swc-linux-x64-gnu': 14.2.1 - '@next/swc-linux-x64-musl': 14.2.1 - '@next/swc-win32-arm64-msvc': 14.2.1 - '@next/swc-win32-ia32-msvc': 14.2.1 - '@next/swc-win32-x64-msvc': 14.2.1 - '@playwright/test': 1.43.1 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - - nise@5.1.9: - dependencies: - '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers': 11.2.2 - '@sinonjs/text-encoding': 0.7.2 - just-extend: 6.2.0 - path-to-regexp: 6.2.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) no-case@2.3.2: dependencies: @@ -13469,15 +13351,17 @@ snapshots: no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.6.3 node-domexception@1.0.0: {} - node-fetch@2.7.0: + node-fetch@3.3.1: dependencies: - whatwg-url: 5.0.0 + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 - node-fetch@3.3.1: + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 @@ -13489,14 +13373,14 @@ snapshots: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.6.0 + semver: 7.6.3 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 node-plop@0.26.3: dependencies: - '@babel/runtime-corejs3': 7.24.4 + '@babel/runtime-corejs3': 7.25.0 '@types/inquirer': 6.5.0 change-case: 3.1.0 del: 5.1.0 @@ -13508,7 +13392,7 @@ snapshots: mkdirp: 0.5.6 resolve: 1.22.8 - node-releases@2.0.14: {} + node-releases@2.0.18: {} node-stdlib-browser@1.2.0: dependencies: @@ -13536,7 +13420,7 @@ snapshots: string_decoder: 1.3.0 timers-browserify: 2.0.12 tty-browserify: 0.0.1 - url: 0.11.3 + url: 0.11.4 util: 0.12.5 vm-browserify: 1.1.2 @@ -13564,13 +13448,14 @@ snapshots: dependencies: boolbase: 1.0.0 - oauth-sign@0.9.0: {} + nwsapi@2.2.12: + optional: true object-assign@4.1.1: {} object-hash@3.0.0: {} - object-inspect@1.13.1: {} + object-inspect@1.13.2: {} object-is@1.1.6: dependencies: @@ -13613,20 +13498,21 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 - open@8.4.2: + open@9.1.0: dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 is-wsl: 2.2.0 - optionator@0.9.3: + optionator@0.9.4: dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 ora@4.1.1: dependencies: @@ -13663,7 +13549,7 @@ snapshots: os-tmpdir@1.0.2: {} - outvariant@1.4.2: {} + outvariant@1.4.3: {} p-cancelable@3.0.0: {} @@ -13675,14 +13561,6 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: - dependencies: - yocto-queue: 1.0.0 - - p-limit@5.0.0: - dependencies: - yocto-queue: 1.0.0 - p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -13691,16 +13569,16 @@ snapshots: dependencies: aggregate-error: 3.1.0 - pac-proxy-agent@7.0.1: + pac-proxy-agent@7.0.2: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.6 get-uri: 6.0.3 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color @@ -13709,12 +13587,14 @@ snapshots: degenerator: 5.0.1 netmask: 2.0.2 + package-json-from-dist@1.0.0: {} + package-json@8.1.1: dependencies: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 - semver: 7.6.0 + semver: 7.6.3 pako@1.0.11: {} @@ -13748,17 +13628,18 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-json@6.0.2: + parse-json@7.1.1: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 + json-parse-even-better-errors: 3.0.2 lines-and-columns: 2.0.4 + type-fest: 3.13.1 parse5-htmlparser2-tree-adapter@7.0.0: dependencies: @@ -13792,10 +13673,15 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.10.2: + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 + lru-cache: 11.0.0 + minipass: 7.1.2 path-to-regexp@6.2.2: {} @@ -13810,7 +13696,7 @@ snapshots: pathe@1.1.2: {} - pathval@1.1.1: {} + pathval@2.0.0: {} pause-stream@0.0.11: dependencies: @@ -13826,15 +13712,13 @@ snapshots: pend@1.2.0: {} - performance-now@2.1.0: {} - periscopic@3.1.0: dependencies: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 - picocolors@1.0.0: {} + picocolors@1.0.1: {} picomatch@2.3.1: {} @@ -13844,26 +13728,26 @@ snapshots: pify@6.1.0: {} - pino-abstract-transport@1.1.0: + pino-abstract-transport@1.2.0: dependencies: readable-stream: 4.5.2 split2: 4.2.0 pino-std-serializers@6.2.2: {} - pino@8.17.2: + pino@8.20.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 - pino-abstract-transport: 1.1.0 + pino-abstract-transport: 1.2.0 pino-std-serializers: 6.2.2 process-warning: 3.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.4.3 sonic-boom: 3.8.1 - thread-stream: 2.4.1 + thread-stream: 2.7.0 pirates@4.0.6: {} @@ -13871,70 +13755,60 @@ snapshots: dependencies: find-up: 5.0.0 - pkg-types@1.0.3: - dependencies: - jsonc-parser: 3.2.1 - mlly: 1.6.1 - pathe: 1.1.2 + playwright-core@1.45.3: {} - playwright-core@1.43.1: {} - - playwright@1.43.1: + playwright@1.45.3: dependencies: - playwright-core: 1.43.1 + playwright-core: 1.45.3 optionalDependencies: fsevents: 2.3.2 possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.38): + postcss-import@15.1.0(postcss@8.4.40): dependencies: - postcss: 8.4.38 + postcss: 8.4.40 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.38): + postcss-js@4.0.1(postcss@8.4.40): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.38 + postcss: 8.4.40 + + postcss-load-config@4.0.2(postcss@8.4.40)(ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4)): + dependencies: + lilconfig: 3.1.2 + yaml: 2.5.0 + optionalDependencies: + postcss: 8.4.40 + ts-node: 10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4) - postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5)): + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.40)(yaml@2.5.0): dependencies: - lilconfig: 3.1.1 - yaml: 2.4.1 + lilconfig: 3.1.2 optionalDependencies: - postcss: 8.4.38 - ts-node: 10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5) + jiti: 1.21.6 + postcss: 8.4.40 + yaml: 2.5.0 - postcss-nested@6.0.1(postcss@8.4.38): + postcss-nested@6.2.0(postcss@8.4.40): dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss: 8.4.40 + postcss-selector-parser: 6.1.1 - postcss-selector-parser@6.0.16: + postcss-selector-parser@6.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} - postcss@8.4.31: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 - - postcss@8.4.33: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 - - postcss@8.4.38: + postcss@8.4.40: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 prelude-ls@1.2.1: {} @@ -13945,17 +13819,11 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - - prism-react-renderer@2.3.1(react@18.2.0): + prism-react-renderer@2.3.1(react@18.3.1): dependencies: - '@types/prismjs': 1.26.3 - clsx: 2.1.0 - react: 18.2.0 + '@types/prismjs': 1.26.4 + clsx: 2.1.1 + react: 18.3.1 process-nextick-args@2.0.1: {} @@ -13980,13 +13848,13 @@ snapshots: proxy-agent@6.4.0: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.6 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 lru-cache: 7.18.3 - pac-proxy-agent: 7.0.1 + pac-proxy-agent: 7.0.2 proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color @@ -14020,17 +13888,13 @@ snapshots: dependencies: escape-goat: 4.0.0 - q@1.5.1: {} - qr.js@0.0.0: {} - qs@6.12.1: + qs@6.12.3: dependencies: side-channel: 1.0.6 - qs@6.5.3: {} - - query-string@9.0.0: + query-string@9.1.0: dependencies: decode-uri-component: 0.4.1 filter-obj: 5.1.0 @@ -14038,6 +13902,8 @@ snapshots: querystring-es3@0.2.1: {} + querystringify@2.2.0: {} + queue-microtask@1.2.3: {} queue@6.0.2: @@ -14048,9 +13914,7 @@ snapshots: quick-lru@5.1.1: {} - rambda@7.5.0: {} - - rambda@8.6.0: {} + rambda@9.2.1: {} randombytes@2.1.0: dependencies: @@ -14070,127 +13934,123 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-day-picker@8.10.1(date-fns@3.6.0)(react@18.2.0): + react-day-picker@9.0.4(react@18.3.1): dependencies: date-fns: 3.6.0 - react: 18.2.0 + react: 18.3.1 - react-dom@18.2.0(react@18.2.0): + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 + react: 18.3.1 + scheduler: 0.23.2 - react-error-boundary@4.0.13(react@18.2.0): + react-error-boundary@4.0.13(react@18.3.1): dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + '@babel/runtime': 7.25.0 + react: 18.3.1 - react-hook-form@7.51.3(react@18.2.0): + react-hook-form@7.52.1(react@18.3.1): dependencies: - react: 18.2.0 + react: 18.3.1 - react-hotkeys-hook@4.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-hotkeys-hook@4.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react-inspector@6.0.2(react@18.2.0): + react-inspector@6.0.2(react@18.3.1): dependencies: - react: 18.2.0 + react: 18.3.1 react-is@16.13.1: {} react-is@17.0.2: {} - react-is@18.2.0: {} - - react-mixpanel-browser@4.1.0(react@18.2.0): + react-mixpanel-browser@4.1.0(react@18.3.1): dependencies: - mixpanel-browser: 2.49.0 - react: 18.2.0 + mixpanel-browser: 2.54.0 + react: 18.3.1 - react-qr-code@2.0.12(react@18.2.0): + react-qr-code@2.0.15(react@18.3.1): dependencies: prop-types: 15.8.1 qr.js: 0.0.0 - react: 18.2.0 + react: 18.3.1 - react-refresh@0.13.0: {} + react-refresh@0.14.2: {} - react-refresh@0.14.0: {} - - react-remove-scroll-bar@2.3.6(@types/react@18.2.79)(react@18.2.0): + react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.3.1): dependencies: - react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0) - tslib: 2.6.2 + react: 18.3.1 + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) + tslib: 2.6.3 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - react-remove-scroll@2.5.4(@types/react@18.2.79)(react@18.2.0): + react-remove-scroll@2.5.5(@types/react@18.3.3)(react@18.3.1): dependencies: - react: 18.2.0 - react-remove-scroll-bar: 2.3.6(@types/react@18.2.79)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0) - tslib: 2.6.2 - use-callback-ref: 1.3.2(@types/react@18.2.79)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.79)(react@18.2.0) + react: 18.3.1 + react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) + tslib: 2.6.3 + use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - react-router-dom@6.22.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-router-dom@6.25.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@remix-run/router': 1.15.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: 6.22.3(react@18.2.0) + '@remix-run/router': 1.18.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 6.25.1(react@18.3.1) - react-router@6.22.3(react@18.2.0): + react-router@6.25.1(react@18.3.1): dependencies: - '@remix-run/router': 1.15.3 - react: 18.2.0 + '@remix-run/router': 1.18.0 + react: 18.3.1 - react-slot-counter@2.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-slot-counter@3.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react-smooth@4.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-smooth@4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: fast-equals: 5.0.1 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-style-singleton@2.2.1(@types/react@18.2.79)(react@18.2.0): + react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 - react: 18.2.0 - tslib: 2.6.2 + react: 18.3.1 + tslib: 2.6.3 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.25.0 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react-twc@1.4.1(@types/react@18.2.79)(react@18.2.0): + react-twc@1.4.1(@types/react@18.3.3)(react@18.3.1): dependencies: - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) - clsx: 2.1.0 + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + clsx: 2.1.1 transitivePeerDependencies: - '@types/react' - react - react@18.2.0: + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -14226,21 +14086,23 @@ snapshots: dependencies: picomatch: 2.3.1 + readline-sync@1.4.10: {} + real-require@0.2.0: {} recharts-scale@0.4.5: dependencies: decimal.js-light: 2.5.1 - recharts@2.12.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + recharts@2.12.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - clsx: 2.1.0 + clsx: 2.1.1 eventemitter3: 4.0.7 lodash: 4.17.21 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-is: 16.13.1 - react-smooth: 4.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-smooth: 4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) recharts-scale: 0.4.5 tiny-invariant: 1.3.3 victory-vendor: 36.9.2 @@ -14255,20 +14117,11 @@ snapshots: regenerate@1.4.2: {} - regenerator-runtime@0.13.11: {} - regenerator-runtime@0.14.1: {} regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.24.4 - - regexp.prototype.flags@1.5.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 + '@babel/runtime': 7.25.0 regexpu-core@5.3.2: dependencies: @@ -14300,18 +14153,18 @@ snapshots: dependencies: jsesc: 0.5.0 - rehype-class-names@1.0.14: + rehype-class-names@2.0.0: dependencies: '@types/hast': 3.0.4 hast-util-classnames: 3.0.0 hast-util-select: 6.0.2 - unified: 10.1.2 + unified: 11.0.5 rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 - hast-util-raw: 9.0.2 - vfile: 6.0.1 + hast-util-raw: 9.0.4 + vfile: 6.0.2 relaxed-json@1.0.3: dependencies: @@ -14320,12 +14173,12 @@ snapshots: remark-gfm@4.0.0: dependencies: - '@types/mdast': 4.0.3 + '@types/mdast': 4.0.4 mdast-util-gfm: 3.0.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 - unified: 11.0.4 + unified: 11.0.5 transitivePeerDependencies: - supports-color @@ -14338,56 +14191,37 @@ snapshots: remark-parse@11.0.0: dependencies: - '@types/mdast': 4.0.3 - mdast-util-from-markdown: 2.0.0 + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 micromark-util-types: 2.0.0 - unified: 11.0.4 + unified: 11.0.5 transitivePeerDependencies: - supports-color remark-rehype@11.1.0: dependencies: '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 - mdast-util-to-hast: 13.1.0 - unified: 11.0.4 - vfile: 6.0.1 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.2 remark-stringify@11.0.0: dependencies: - '@types/mdast': 4.0.3 - mdast-util-to-markdown: 2.1.0 - unified: 11.0.4 - - remove-accents@0.5.0: {} - - request@2.88.2: - dependencies: - aws-sign2: 0.7.0 - aws4: 1.12.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.3 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + + remeda@1.61.0: {} + + remove-accents@0.5.0: {} require-directory@2.1.1: {} require-from-string@2.0.2: {} + requires-port@1.0.0: {} + resolve-alpn@1.2.1: {} resolve-from@4.0.0: {} @@ -14396,7 +14230,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -14420,9 +14254,10 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@5.0.5: + rimraf@6.0.1: dependencies: - glob: 10.3.12 + glob: 11.0.0 + package-json-from-dist: 1.0.0 ripemd160@2.0.2: dependencies: @@ -14445,41 +14280,64 @@ snapshots: dependencies: rollup-plugin-inject: 3.0.2 - rollup-plugin-polyfill-node@0.12.0(rollup@4.14.3): + rollup-plugin-polyfill-node@0.13.0(rollup@4.19.1): dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.14.3) - rollup: 4.14.3 + '@rollup/plugin-inject': 5.0.5(rollup@4.19.1) + rollup: 4.19.1 rollup-pluginutils@2.8.2: dependencies: estree-walker: 0.6.1 - rollup@2.78.1: - optionalDependencies: - fsevents: 2.3.3 - - rollup@4.14.3: + rollup@4.19.1: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.14.3 - '@rollup/rollup-android-arm64': 4.14.3 - '@rollup/rollup-darwin-arm64': 4.14.3 - '@rollup/rollup-darwin-x64': 4.14.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.14.3 - '@rollup/rollup-linux-arm-musleabihf': 4.14.3 - '@rollup/rollup-linux-arm64-gnu': 4.14.3 - '@rollup/rollup-linux-arm64-musl': 4.14.3 - '@rollup/rollup-linux-powerpc64le-gnu': 4.14.3 - '@rollup/rollup-linux-riscv64-gnu': 4.14.3 - '@rollup/rollup-linux-s390x-gnu': 4.14.3 - '@rollup/rollup-linux-x64-gnu': 4.14.3 - '@rollup/rollup-linux-x64-musl': 4.14.3 - '@rollup/rollup-win32-arm64-msvc': 4.14.3 - '@rollup/rollup-win32-ia32-msvc': 4.14.3 - '@rollup/rollup-win32-x64-msvc': 4.14.3 + '@rollup/rollup-android-arm-eabi': 4.19.1 + '@rollup/rollup-android-arm64': 4.19.1 + '@rollup/rollup-darwin-arm64': 4.19.1 + '@rollup/rollup-darwin-x64': 4.19.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.19.1 + '@rollup/rollup-linux-arm-musleabihf': 4.19.1 + '@rollup/rollup-linux-arm64-gnu': 4.19.1 + '@rollup/rollup-linux-arm64-musl': 4.19.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.19.1 + '@rollup/rollup-linux-riscv64-gnu': 4.19.1 + '@rollup/rollup-linux-s390x-gnu': 4.19.1 + '@rollup/rollup-linux-x64-gnu': 4.19.1 + '@rollup/rollup-linux-x64-musl': 4.19.1 + '@rollup/rollup-win32-arm64-msvc': 4.19.1 + '@rollup/rollup-win32-ia32-msvc': 4.19.1 + '@rollup/rollup-win32-x64-msvc': 4.19.1 fsevents: 2.3.3 + rrdom@2.0.0-alpha.16: + dependencies: + rrweb-snapshot: 2.0.0-alpha.16 + + rrweb-cssom@0.6.0: + optional: true + + rrweb-cssom@0.7.1: + optional: true + + rrweb-snapshot@2.0.0-alpha.16: {} + + rrweb@2.0.0-alpha.13: + dependencies: + '@rrweb/types': 2.0.0-alpha.16 + '@types/css-font-loading-module': 0.0.7 + '@xstate/fsm': 1.6.5 + base64-arraybuffer: 1.0.2 + fflate: 0.4.8 + mitt: 3.0.1 + rrdom: 2.0.0-alpha.16 + rrweb-snapshot: 2.0.0-alpha.16 + + run-applescript@5.0.0: + dependencies: + execa: 5.1.1 + run-applescript@7.0.0: {} run-async@2.4.1: {} @@ -14492,13 +14350,9 @@ snapshots: dependencies: tslib: 1.14.1 - rxjs@7.5.7: - dependencies: - tslib: 2.6.2 - rxjs@7.8.1: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 safe-buffer@5.1.2: {} @@ -14511,9 +14365,14 @@ snapshots: safer-buffer@2.1.2: {} - sax@1.3.0: {} + sax@1.4.1: {} + + saxes@6.0.0: + dependencies: + xmlchars: 2.2.0 + optional: true - scheduler@0.23.0: + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -14523,17 +14382,13 @@ snapshots: semver-diff@4.0.0: dependencies: - semver: 7.6.0 + semver: 7.6.3 semver@6.3.1: {} - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 + semver@7.6.2: {} - semver@7.6.0: - dependencies: - lru-cache: 6.0.0 + semver@7.6.3: {} sentence-case@2.1.1: dependencies: @@ -14548,8 +14403,6 @@ snapshots: dependencies: type-fest: 2.19.0 - set-cookie-parser@2.6.0: {} - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -14559,12 +14412,10 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.2 - set-function-name@2.0.2: + set-value@4.1.0: dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 + is-plain-object: 2.0.4 + is-primitive: 3.0.1 setimmediate@1.0.5: {} @@ -14590,36 +14441,14 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 siginfo@2.0.0: {} - sign-addon@5.3.0: - dependencies: - common-tags: 1.8.2 - core-js: 3.29.0 - deepcopy: 2.1.0 - es6-error: 4.1.1 - es6-promisify: 7.0.0 - jsonwebtoken: 9.0.0 - mz: 2.7.0 - request: 2.88.2 - source-map-support: 0.5.21 - stream-to-promise: 3.0.0 - signal-exit@3.0.7: {} signal-exit@4.1.0: {} - sinon@17.0.1: - dependencies: - '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers': 11.2.2 - '@sinonjs/samsam': 8.0.0 - diff: 5.2.0 - nise: 5.1.9 - supports-color: 7.2.0 - slash@3.0.0: {} slash@4.0.0: {} @@ -14635,12 +14464,12 @@ snapshots: snake-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 - socks-proxy-agent@8.0.3: + socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.6 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -14654,10 +14483,14 @@ snapshots: dependencies: atomic-sleep: 1.0.0 - sonner@1.4.41(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + sonner@1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + sort-keys@5.0.0: + dependencies: + is-plain-obj: 4.1.0 source-map-js@1.2.0: {} @@ -14697,22 +14530,6 @@ snapshots: sprintf-js@1.1.3: {} - sshpk@1.18.0: - dependencies: - asn1: 0.2.6 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 - - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - stackback@0.0.2: {} statuses@1.5.0: {} @@ -14721,17 +14538,11 @@ snapshots: std-env@3.7.0: {} - stop-iteration-iterator@1.0.0: - dependencies: - internal-slot: 1.0.7 - stream-browserify@3.0.0: dependencies: inherits: 2.0.4 readable-stream: 3.6.2 - stream-buffers@0.2.6: {} - stream-combiner@0.0.4: dependencies: duplexer: 0.1.2 @@ -14743,25 +14554,11 @@ snapshots: readable-stream: 3.6.2 xtend: 4.0.2 - stream-to-array@2.3.0: - dependencies: - any-promise: 1.3.0 - - stream-to-promise@3.0.0: - dependencies: - any-promise: 1.3.0 - end-of-stream: 1.4.4 - stream-to-array: 2.3.0 - - streamsearch@1.1.0: {} + strict-event-emitter@0.5.1: {} - strict-event-emitter@0.2.8: + string-length@6.0.0: dependencies: - events: 3.3.0 - - strict-event-emitter@0.4.6: {} - - strict-event-emitter@0.5.1: {} + strip-ansi: 7.1.0 string-width@4.2.3: dependencies: @@ -14815,15 +14612,7 @@ snapshots: strip-json-comments@3.1.1: {} - strip-json-comments@5.0.0: {} - - strip-literal@1.3.0: - dependencies: - acorn: 8.11.3 - - strip-literal@2.1.0: - dependencies: - js-tokens: 9.0.0 + strip-json-comments@5.0.1: {} style-to-object@0.4.4: dependencies: @@ -14833,21 +14622,14 @@ snapshots: dependencies: inline-style-parser: 0.2.3 - styled-jsx@5.1.1(@babel/core@7.24.4)(react@18.2.0): - dependencies: - client-only: 0.0.1 - react: 18.2.0 - optionalDependencies: - '@babel/core': 7.24.4 - - subscriptions-transport-ws@0.11.0(graphql@16.8.1): + subscriptions-transport-ws@0.11.0(graphql@16.9.0): dependencies: backo2: 1.0.2 eventemitter3: 3.1.2 - graphql: 16.8.1 + graphql: 16.9.0 iterall: 1.3.0 symbol-observable: 1.2.0 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -14856,14 +14638,12 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.3.12 + glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 - sugar-high@0.6.1: {} - superjson@2.2.1: dependencies: copy-anything: 3.0.5 @@ -14880,7 +14660,7 @@ snapshots: svg-parser@2.0.4: {} - svgo@3.2.0: + svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -14888,30 +14668,33 @@ snapshots: css-tree: 2.3.1 css-what: 6.1.0 csso: 5.0.5 - picocolors: 1.0.0 + picocolors: 1.0.1 swap-case@1.1.2: dependencies: lower-case: 1.1.4 upper-case: 1.1.3 - swr@2.2.5(react@18.2.0): + swr@2.2.5(react@18.3.1): dependencies: client-only: 0.0.1 - react: 18.2.0 - use-sync-external-store: 1.2.0(react@18.2.0) + react: 18.3.1 + use-sync-external-store: 1.2.2(react@18.3.1) symbol-observable@1.2.0: {} - tailwind-merge@2.2.2: - dependencies: - '@babel/runtime': 7.24.4 + symbol-tree@3.2.4: + optional: true + + tabbable@6.2.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.3(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5))): + tailwind-merge@2.4.0: {} + + tailwindcss-animate@1.0.7(tailwindcss@3.4.7(ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4))): dependencies: - tailwindcss: 3.4.3(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5)) + tailwindcss: 3.4.7(ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4)) - tailwindcss@3.4.3(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5)): + tailwindcss@3.4.7(ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -14921,28 +14704,28 @@ snapshots: fast-glob: 3.3.2 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.21.0 + jiti: 1.21.6 lilconfig: 2.1.0 - micromatch: 4.0.5 + micromatch: 4.0.7 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.38 - postcss-import: 15.1.0(postcss@8.4.38) - postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5)) - postcss-nested: 6.0.1(postcss@8.4.38) - postcss-selector-parser: 6.0.16 + picocolors: 1.0.1 + postcss: 8.4.40 + postcss-import: 15.1.0(postcss@8.4.40) + postcss-js: 4.0.1(postcss@8.4.40) + postcss-load-config: 4.0.2(postcss@8.4.40)(ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4)) + postcss-nested: 6.2.0(postcss@8.4.40) + postcss-selector-parser: 6.1.1 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: - ts-node - test-exclude@6.0.0: + test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 + glob: 10.4.5 + minimatch: 9.0.5 text-table@0.2.0: {} @@ -14954,11 +14737,11 @@ snapshots: dependencies: any-promise: 1.3.0 - thread-stream@2.4.1: + thread-stream@2.7.0: dependencies: real-require: 0.2.0 - throttle-debounce@5.0.0: {} + throttle-debounce@5.0.2: {} through@2.3.8: {} @@ -14970,7 +14753,7 @@ snapshots: tiny-uid@1.1.2: {} - tinybench@2.7.0: {} + tinybench@2.8.0: {} tinycolor2@1.6.0: {} @@ -14979,24 +14762,24 @@ snapshots: '@types/tinycolor2': 1.4.6 tinycolor2: 1.6.0 - tinypool@0.7.0: {} + tinypool@1.0.0: {} - tinypool@0.8.4: {} + tinyrainbow@1.2.0: {} - tinyspy@2.2.1: {} + tinyspy@3.0.0: {} title-case@2.1.1: dependencies: no-case: 2.3.2 upper-case: 1.1.3 + titleize@3.0.0: {} + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - tmp@0.2.1: - dependencies: - rimraf: 3.0.2 + tmp@0.2.3: {} to-fast-properties@2.0.0: {} @@ -15008,17 +14791,22 @@ snapshots: tosource@1.0.0: {} - tough-cookie@2.5.0: + tough-cookie@4.1.4: dependencies: psl: 1.9.0 punycode: 2.3.1 - - tr46@0.0.3: {} + universalify: 0.2.0 + url-parse: 1.5.10 tr46@1.0.1: dependencies: punycode: 2.3.1 + tr46@5.0.0: + dependencies: + punycode: 2.3.1 + optional: true + tree-kill@1.2.2: {} trim-lines@3.0.1: {} @@ -15029,94 +14817,96 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5): + ts-node@10.9.2(@swc/core@1.7.3(@swc/helpers@0.5.12))(@types/node@22.0.0)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.7 - acorn: 8.11.3 - acorn-walk: 8.3.2 + '@types/node': 22.0.0 + acorn: 8.12.1 + acorn-walk: 8.3.3 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.4.5 + typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.4.14(@swc/helpers@0.5.5) + '@swc/core': 1.7.3(@swc/helpers@0.5.12) + + ts-toolbelt@9.6.0: {} - tsconfck@3.0.3(typescript@5.4.5): + tsconfck@3.1.1(typescript@5.5.4): optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.4 tslib@1.14.1: {} tslib@2.4.0: {} - tslib@2.6.2: {} + tslib@2.6.3: {} tsscmp@1.0.6: {} - tsup@8.0.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5): + tsup@8.2.3(@swc/core@1.7.3(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.40)(typescript@5.5.4)(yaml@2.5.0): dependencies: - bundle-require: 4.0.2(esbuild@0.20.2) + bundle-require: 5.0.0(esbuild@0.23.0) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.3.4 - esbuild: 0.20.2 + consola: 3.2.3 + debug: 4.3.6 + esbuild: 0.23.0 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.14(@swc/helpers@0.5.5))(@types/node@20.12.7)(typescript@5.4.5)) + picocolors: 1.0.1 + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.40)(yaml@2.5.0) resolve-from: 5.0.0 - rollup: 4.14.3 + rollup: 4.19.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.4.14(@swc/helpers@0.5.5) - postcss: 8.4.38 - typescript: 5.4.5 + '@swc/core': 1.7.3(@swc/helpers@0.5.12) + postcss: 8.4.40 + typescript: 5.5.4 transitivePeerDependencies: + - jiti - supports-color - - ts-node + - tsx + - yaml tty-browserify@0.0.1: {} - tunnel-agent@0.6.0: - dependencies: - safe-buffer: 5.2.1 - - turbo-darwin-64@1.13.3: + turbo-darwin-64@2.0.9: optional: true - turbo-darwin-arm64@1.13.3: + turbo-darwin-arm64@2.0.9: optional: true - turbo-linux-64@1.13.3: + turbo-linux-64@2.0.9: optional: true - turbo-linux-arm64@1.13.3: + turbo-linux-arm64@2.0.9: optional: true - turbo-windows-64@1.13.3: + turbo-windows-64@2.0.9: optional: true - turbo-windows-arm64@1.13.3: + turbo-windows-arm64@2.0.9: optional: true - turbo@1.13.3: + turbo@2.0.9: optionalDependencies: - turbo-darwin-64: 1.13.3 - turbo-darwin-arm64: 1.13.3 - turbo-linux-64: 1.13.3 - turbo-linux-arm64: 1.13.3 - turbo-windows-64: 1.13.3 - turbo-windows-arm64: 1.13.3 + turbo-darwin-64: 2.0.9 + turbo-darwin-arm64: 2.0.9 + turbo-linux-64: 2.0.9 + turbo-linux-arm64: 2.0.9 + turbo-windows-64: 2.0.9 + turbo-windows-arm64: 2.0.9 turbowatch@2.29.4: dependencies: @@ -15124,28 +14914,24 @@ snapshots: chokidar: 3.6.0 find-process: 1.4.7 glob: 9.3.5 - jiti: 1.21.0 - micromatch: 4.0.5 + jiti: 1.21.6 + micromatch: 4.0.7 pidtree: 0.6.0 randomcolor: 0.6.2 roarr: 7.21.1 - semver: 7.6.0 + semver: 7.6.3 serialize-error: 11.0.3 - throttle-debounce: 5.0.0 + throttle-debounce: 5.0.2 ts-custom-error: 3.3.1 yargs: 17.7.2 zx: 7.2.3 transitivePeerDependencies: - supports-color - tweetnacl@0.14.5: {} - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@0.20.2: {} type-fest@0.21.3: {} @@ -15154,7 +14940,9 @@ snapshots: type-fest@2.19.0: {} - type-fest@4.15.0: {} + type-fest@3.13.1: {} + + type-fest@4.23.0: {} type-is@1.6.18: dependencies: @@ -15167,17 +14955,17 @@ snapshots: typedarray@0.0.6: {} - typescript@5.4.5: {} - - uberproto@1.2.0: {} + typescript@5.5.4: {} - ufo@1.5.3: {} - - uglify-js@3.17.4: + uglify-js@3.19.1: optional: true + uhyphen@0.2.0: {} + undici-types@5.26.5: {} + undici-types@6.11.1: {} + unicode-canonical-property-names-ecmascript@2.0.0: {} unicode-match-property-ecmascript@2.0.0: @@ -15191,17 +14979,7 @@ snapshots: unicorn-magic@0.1.0: {} - unified@10.1.2: - dependencies: - '@types/unist': 2.0.10 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 5.3.7 - - unified@11.0.4: + unified@11.0.5: dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -15209,7 +14987,7 @@ snapshots: extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 - vfile: 6.0.1 + vfile: 6.0.2 unique-names-generator@4.7.1: {} @@ -15234,10 +15012,6 @@ snapshots: '@types/unist': 3.0.2 unist-util-visit: 5.0.0 - unist-util-stringify-position@3.0.3: - dependencies: - '@types/unist': 2.0.10 - unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.2 @@ -15253,17 +15027,21 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + universalify@0.2.0: {} + universalify@1.0.0: {} universalify@2.0.1: {} + untildify@4.0.0: {} + upath@2.0.1: {} - update-browserslist-db@1.0.13(browserslist@4.23.0): + update-browserslist-db@1.1.0(browserslist@4.23.2): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.2 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 update-check@1.5.4: dependencies: @@ -15283,7 +15061,7 @@ snapshots: is-yarn-global: 0.4.1 latest-version: 7.0.0 pupa: 3.1.0 - semver: 7.6.0 + semver: 7.6.3 semver-diff: 4.0.0 xdg-basedir: 5.1.0 @@ -15297,29 +15075,38 @@ snapshots: dependencies: punycode: 2.3.1 - url@0.11.3: + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.12.1 + qs: 6.12.3 - use-callback-ref@1.3.2(@types/react@18.2.79)(react@18.2.0): + use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1): dependencies: - react: 18.2.0 - tslib: 2.6.2 + react: 18.3.1 + tslib: 2.6.3 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 - use-sidecar@1.1.2(@types/react@18.2.79)(react@18.2.0): + use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): dependencies: detect-node-es: 1.1.0 - react: 18.2.0 - tslib: 2.6.2 + react: 18.3.1 + tslib: 2.6.3 optionalDependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.3 + + use-sync-external-store@1.2.0(react@18.3.1): + dependencies: + react: 18.3.1 - use-sync-external-store@1.2.0(react@18.2.0): + use-sync-external-store@1.2.2(react@18.3.1): dependencies: - react: 18.2.0 + react: 18.3.1 util-deprecate@1.0.2: {} @@ -15335,55 +15122,27 @@ snapshots: is-typed-array: 1.1.13 which-typed-array: 1.1.15 - uuid@3.4.0: {} + uuid@10.0.0: {} uuid@8.3.2: {} - uuid@9.0.1: {} - v8-compile-cache-lib@3.0.1: {} - v8-to-istanbul@9.2.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - - validate-npm-package-name@5.0.0: - dependencies: - builtins: 5.1.0 + validate-npm-package-name@5.0.1: {} vary@1.1.2: {} - verror@1.10.0: - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 - - vfile-location@5.0.2: + vfile-location@5.0.3: dependencies: '@types/unist': 3.0.2 - vfile: 6.0.1 - - vfile-message@3.1.4: - dependencies: - '@types/unist': 2.0.10 - unist-util-stringify-position: 3.0.3 + vfile: 6.0.2 vfile-message@4.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - vfile@5.3.7: - dependencies: - '@types/unist': 2.0.10 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 - - vfile@6.0.1: + vfile@6.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 @@ -15406,48 +15165,31 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - viem@2.9.19(typescript@5.4.5)(zod@3.22.4): + viem@2.18.4(typescript@5.5.4)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@scure/bip32': 1.3.2 - '@scure/bip39': 1.2.1 - abitype: 1.0.0(typescript@5.4.5)(zod@3.22.4) - isows: 1.0.3(ws@8.13.0) - ws: 8.13.0 + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + abitype: 1.0.5(typescript@5.5.4)(zod@3.23.8) + isows: 1.0.4(ws@8.17.1) + webauthn-p256: 0.0.5 + ws: 8.17.1 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.4 transitivePeerDependencies: - bufferutil - utf-8-validate - zod - vite-node@0.34.6(@types/node@20.12.7): - dependencies: - cac: 6.7.14 - debug: 4.3.4 - mlly: 1.6.1 - pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.2.9(@types/node@20.12.7) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-node@1.5.0(@types/node@20.12.7): + vite-node@2.0.4(@types/node@22.0.0): dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.6 pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.2.9(@types/node@20.12.7) + tinyrainbow: 1.2.0 + vite: 5.3.5(@types/node@22.0.0) transitivePeerDependencies: - '@types/node' - less @@ -15460,153 +15202,149 @@ snapshots: vite-plugin-commonjs@0.10.1: dependencies: - acorn: 8.11.3 + acorn: 8.12.1 fast-glob: 3.3.2 - magic-string: 0.30.9 + magic-string: 0.30.11 vite-plugin-dynamic-import: 1.5.0 vite-plugin-dynamic-import@1.5.0: dependencies: - acorn: 8.11.3 - es-module-lexer: 1.5.0 + acorn: 8.12.1 + es-module-lexer: 1.5.4 fast-glob: 3.3.2 - magic-string: 0.30.9 + magic-string: 0.30.11 - vite-plugin-node-polyfills@0.17.0(rollup@4.14.3)(vite@5.2.9(@types/node@20.12.7)): + vite-plugin-node-polyfills@0.17.0(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)): dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.14.3) + '@rollup/plugin-inject': 5.0.5(rollup@4.19.1) buffer-polyfill: buffer@6.0.3 node-stdlib-browser: 1.2.0 process: 0.11.10 - vite: 5.2.9(@types/node@20.12.7) + vite: 5.3.5(@types/node@22.0.0) + transitivePeerDependencies: + - rollup + + vite-plugin-node-polyfills@0.22.0(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)): + dependencies: + '@rollup/plugin-inject': 5.0.5(rollup@4.19.1) + node-stdlib-browser: 1.2.0 + vite: 5.3.5(@types/node@22.0.0) transitivePeerDependencies: - rollup - vite-plugin-node-stdlib-browser@0.2.1(node-stdlib-browser@1.2.0)(rollup@4.14.3)(vite@5.2.9(@types/node@20.12.7)): + vite-plugin-node-stdlib-browser@0.2.1(node-stdlib-browser@1.2.0)(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)): dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.14.3) + '@rollup/plugin-inject': 5.0.5(rollup@4.19.1) node-stdlib-browser: 1.2.0 - vite: 5.2.9(@types/node@20.12.7) + vite: 5.3.5(@types/node@22.0.0) transitivePeerDependencies: - rollup vite-plugin-require-transform@1.0.21: dependencies: - '@babel/generator': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 transitivePeerDependencies: - supports-color - vite-plugin-svgr@4.2.0(rollup@4.14.3)(typescript@5.4.5)(vite@5.2.9(@types/node@20.12.7)): + vite-plugin-svgr@4.2.0(rollup@4.19.1)(typescript@5.5.4)(vite@5.3.5(@types/node@22.0.0)): dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.14.3) - '@svgr/core': 8.1.0(typescript@5.4.5) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.4.5)) - vite: 5.2.9(@types/node@20.12.7) + '@rollup/pluginutils': 5.1.0(rollup@4.19.1) + '@svgr/core': 8.1.0(typescript@5.5.4) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.5.4)) + vite: 5.3.5(@types/node@22.0.0) transitivePeerDependencies: - rollup - supports-color - typescript - vite-plugin-top-level-await@1.4.1(@swc/helpers@0.5.5)(rollup@4.14.3)(vite@5.2.9(@types/node@20.12.7)): + vite-plugin-top-level-await@1.4.2(@swc/helpers@0.5.12)(rollup@4.19.1)(vite@5.3.5(@types/node@22.0.0)): dependencies: - '@rollup/plugin-virtual': 3.0.2(rollup@4.14.3) - '@swc/core': 1.4.14(@swc/helpers@0.5.5) - uuid: 9.0.1 - vite: 5.2.9(@types/node@20.12.7) + '@rollup/plugin-virtual': 3.0.2(rollup@4.19.1) + '@swc/core': 1.7.3(@swc/helpers@0.5.12) + uuid: 10.0.0 + vite: 5.3.5(@types/node@22.0.0) transitivePeerDependencies: - '@swc/helpers' - rollup - vite-plugin-wasm@3.3.0(vite@5.2.9(@types/node@20.12.7)): + vite-plugin-wasm@3.3.0(vite@5.3.5(@types/node@22.0.0)): + dependencies: + vite: 5.3.5(@types/node@22.0.0) + + vite-plugin-web-extension@4.1.6(@types/node@22.0.0): dependencies: - vite: 5.2.9(@types/node@20.12.7) + ajv: 8.16.0 + async-lock: 1.4.1 + fs-extra: 10.1.0 + json5: 2.2.3 + linkedom: 0.14.26 + lodash.uniq: 4.5.0 + lodash.uniqby: 4.7.0 + md5: 2.3.0 + vite: 5.3.5(@types/node@22.0.0) + web-ext-run: 0.2.1 + webextension-polyfill: 0.10.0 + yaml: 2.5.0 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - utf-8-validate - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.9(@types/node@20.12.7)): + vite-tsconfig-paths@4.3.2(typescript@5.5.4)(vite@5.3.5(@types/node@22.0.0)): dependencies: - debug: 4.3.4 + debug: 4.3.6 globrex: 0.1.2 - tsconfck: 3.0.3(typescript@5.4.5) + tsconfck: 3.1.1(typescript@5.5.4) optionalDependencies: - vite: 5.2.9(@types/node@20.12.7) + vite: 5.3.5(@types/node@22.0.0) transitivePeerDependencies: - supports-color - typescript - vite@5.2.9(@types/node@20.12.7): + vite@5.3.5(@types/node@22.0.0): dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.14.3 + esbuild: 0.21.5 + postcss: 8.4.40 + rollup: 4.19.1 optionalDependencies: - '@types/node': 20.12.7 + '@types/node': 22.0.0 fsevents: 2.3.3 - vitest@0.34.6(happy-dom@12.10.3)(playwright@1.43.1): - dependencies: - '@types/chai': 4.3.14 - '@types/chai-subset': 1.3.5 - '@types/node': 20.12.7 - '@vitest/expect': 0.34.6 - '@vitest/runner': 0.34.6 - '@vitest/snapshot': 0.34.6 - '@vitest/spy': 0.34.6 - '@vitest/utils': 0.34.6 - acorn: 8.11.3 - acorn-walk: 8.3.2 - cac: 6.7.14 - chai: 4.4.1 - debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.9 - pathe: 1.1.2 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 1.3.0 - tinybench: 2.7.0 - tinypool: 0.7.0 - vite: 5.2.9(@types/node@20.12.7) - vite-node: 0.34.6(@types/node@20.12.7) - why-is-node-running: 2.2.2 - optionalDependencies: - happy-dom: 12.10.3 - playwright: 1.43.1 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vitest@1.5.0(@types/node@20.12.7)(happy-dom@12.10.3): + vitest@2.0.4(@types/node@22.0.0)(happy-dom@14.12.3)(jsdom@24.1.1): dependencies: - '@vitest/expect': 1.5.0 - '@vitest/runner': 1.5.0 - '@vitest/snapshot': 1.5.0 - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.4 + '@vitest/pretty-format': 2.0.4 + '@vitest/runner': 2.0.4 + '@vitest/snapshot': 2.0.4 + '@vitest/spy': 2.0.4 + '@vitest/utils': 2.0.4 + chai: 5.1.1 + debug: 4.3.6 execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.9 + magic-string: 0.30.11 pathe: 1.1.2 - picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.7.0 - tinypool: 0.8.4 - vite: 5.2.9(@types/node@20.12.7) - vite-node: 1.5.0(@types/node@20.12.7) - why-is-node-running: 2.2.2 + tinybench: 2.8.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.3.5(@types/node@22.0.0) + vite-node: 2.0.4(@types/node@22.0.0) + why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 20.12.7 - happy-dom: 12.10.3 + '@types/node': 22.0.0 + happy-dom: 14.12.3 + jsdom: 24.1.1 transitivePeerDependencies: - less - lightningcss @@ -15618,7 +15356,12 @@ snapshots: vm-browserify@1.1.2: {} - watchpack@2.4.0: + w3c-xmlserializer@5.0.0: + dependencies: + xml-name-validator: 5.0.0 + optional: true + + watchpack@2.4.1: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -15627,45 +15370,70 @@ snapshots: dependencies: defaults: 1.0.4 - web-encoding@1.1.5: + web-ext-run@0.2.1: dependencies: - util: 0.12.5 - optionalDependencies: - '@zxing/text-encoding': 0.9.0 + '@babel/runtime': 7.24.7 + '@devicefarmer/adbkit': 3.2.6 + bunyan: 1.8.15 + chrome-launcher: 1.1.0 + debounce: 1.2.1 + es6-error: 4.1.1 + firefox-profile: 4.6.0 + fs-extra: 11.2.0 + fx-runner: 1.4.0 + mkdirp: 3.0.1 + multimatch: 6.0.0 + mz: 2.7.0 + node-notifier: 10.0.1 + parse-json: 7.1.1 + promise-toolbox: 0.21.0 + set-value: 4.1.0 + source-map-support: 0.5.21 + strip-bom: 5.0.0 + strip-json-comments: 5.0.1 + tmp: 0.2.3 + update-notifier: 6.0.2 + watchpack: 2.4.1 + ws: 8.18.0 + zip-dir: 2.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate - web-ext@7.11.0: + web-ext@8.2.0: dependencies: - '@babel/runtime': 7.21.0 - '@devicefarmer/adbkit': 3.2.3 - addons-linter: 6.21.0(node-fetch@3.3.1) + '@babel/runtime': 7.24.7 + '@devicefarmer/adbkit': 3.2.6 + addons-linter: 6.31.1(node-fetch@3.3.2) bunyan: 1.8.15 - camelcase: 7.0.1 + camelcase: 8.0.0 chrome-launcher: 0.15.1 debounce: 1.2.1 decamelize: 6.0.0 es6-error: 4.1.1 - firefox-profile: 4.3.2 - fs-extra: 11.1.0 + firefox-profile: 4.6.0 + fs-extra: 11.2.0 fx-runner: 1.4.0 - import-fresh: 3.3.0 - jose: 4.13.1 - mkdirp: 1.0.4 + https-proxy-agent: 7.0.5 + jose: 5.4.1 + jszip: 3.10.1 + mkdirp: 3.0.1 multimatch: 6.0.0 mz: 2.7.0 - node-fetch: 3.3.1 + node-fetch: 3.3.2 node-notifier: 10.0.1 - open: 8.4.2 - parse-json: 6.0.2 + open: 9.1.0 + parse-json: 7.1.1 promise-toolbox: 0.21.0 - sign-addon: 5.3.0 source-map-support: 0.5.21 strip-bom: 5.0.0 - strip-json-comments: 5.0.0 - tmp: 0.2.1 + strip-json-comments: 5.0.1 + tmp: 0.2.3 update-notifier: 6.0.2 - watchpack: 2.4.0 - ws: 8.13.0 - yargs: 17.7.1 + watchpack: 2.4.1 + ws: 8.17.1 + yargs: 17.7.2 zip-dir: 2.0.0 transitivePeerDependencies: - body-parser @@ -15679,6 +15447,11 @@ snapshots: web-streams-polyfill@3.3.3: {} + webauthn-p256@0.0.5: + dependencies: + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + webext-bridge@6.0.1: dependencies: '@types/webextension-polyfill': 0.8.3 @@ -15689,9 +15462,9 @@ snapshots: webextension-polyfill@0.10.0: {} - webextension-polyfill@0.9.0: {} + webextension-polyfill@0.12.0: {} - webidl-conversions@3.0.1: {} + webextension-polyfill@0.9.0: {} webidl-conversions@4.0.2: {} @@ -15699,16 +15472,21 @@ snapshots: webpod@0.0.2: {} - whatwg-encoding@2.0.0: + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 + optional: true whatwg-mimetype@3.0.0: {} - whatwg-url@5.0.0: + whatwg-mimetype@4.0.0: + optional: true + + whatwg-url@14.0.0: dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 + tr46: 5.0.0 + webidl-conversions: 7.0.0 + optional: true whatwg-url@7.1.0: dependencies: @@ -15718,21 +15496,6 @@ snapshots: when@3.7.7: {} - which-boxed-primitive@1.0.2: - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.3 - which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 @@ -15754,7 +15517,7 @@ snapshots: dependencies: isexe: 2.0.0 - why-is-node-running@2.2.2: + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 @@ -15765,6 +15528,8 @@ snapshots: winreg@0.0.12: {} + word-wrap@1.2.5: {} + wordwrap@1.0.0: {} wrap-ansi@6.2.0: @@ -15794,59 +15559,54 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - ws@7.5.9: {} + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + + write-json-file@6.0.0: + dependencies: + detect-indent: 7.0.1 + is-plain-obj: 4.1.0 + sort-keys: 5.0.0 + write-file-atomic: 5.0.1 - ws@8.13.0: {} + ws@7.5.10: {} - ws@8.16.0: {} + ws@8.17.1: {} - ws@8.5.0: {} + ws@8.18.0: {} xdg-basedir@5.1.0: {} + xml-name-validator@5.0.0: + optional: true + xml2js@0.5.0: dependencies: - sax: 1.3.0 + sax: 1.4.1 xmlbuilder: 11.0.1 xmlbuilder@11.0.1: {} + xmlchars@2.2.0: + optional: true + + xss@1.0.15: + dependencies: + commander: 2.20.3 + cssfilter: 0.0.10 + xtend@4.0.2: {} y18n@5.0.8: {} yallist@3.1.1: {} - yallist@4.0.0: {} - - yaml@2.4.1: {} - - yaml@2.4.2: {} - - yargs-parser@20.2.9: {} + yaml@2.5.0: {} yargs-parser@21.1.1: {} - yargs@16.2.0: - dependencies: - cliui: 7.0.4 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - - yargs@17.7.1: - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -15868,22 +15628,22 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.0.0: {} + yoctocolors-cjs@2.1.2: {} zip-dir@2.0.0: dependencies: async: 3.2.5 jszip: 3.10.1 - zod@3.22.4: {} + zod@3.23.8: {} - zustand@4.5.2(@types/react@18.2.79)(immer@10.0.4)(react@18.2.0): + zustand@4.5.4(@types/react@18.3.3)(immer@10.1.1)(react@18.3.1): dependencies: - use-sync-external-store: 1.2.0(react@18.2.0) + use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: - '@types/react': 18.2.79 - immer: 10.0.4 - react: 18.2.0 + '@types/react': 18.3.3 + immer: 10.1.1 + react: 18.3.1 zwitch@2.0.4: {} @@ -15891,16 +15651,16 @@ snapshots: dependencies: '@types/fs-extra': 11.0.4 '@types/minimist': 1.2.5 - '@types/node': 18.19.31 + '@types/node': 18.19.42 '@types/ps-tree': 1.1.6 - '@types/which': 3.0.3 + '@types/which': 3.0.4 chalk: 5.3.0 fs-extra: 11.2.0 - fx: 34.0.0 + fx: 35.0.0 globby: 13.2.2 minimist: 1.2.8 node-fetch: 3.3.1 ps-tree: 1.2.0 webpod: 0.0.2 which: 3.0.1 - yaml: 2.4.1 + yaml: 2.5.0 diff --git a/turbo.json b/turbo.json index c978a8c4..5a893df6 100644 --- a/turbo.json +++ b/turbo.json @@ -1,7 +1,13 @@ { "$schema": "https://turbo.build/schema.json", - "globalDependencies": ["**/.env.*local"], - "pipeline": { + "globalDependencies": [".env"], + "globalEnv": [ + "VITE_APP_E2E", + "VITE_APP_DEFAULT_NETWORK", + "VITE_APP_MINA_PROXY_MAINNET_URL", + "VITE_APP_MINA_PROXY_DEVNET_URL" + ], + "tasks": { "build": { "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**", "!.next/cache/**"]