diff --git a/.changeset/cool-zoos-rest.md b/.changeset/cool-zoos-rest.md new file mode 100644 index 0000000..1cfe94b --- /dev/null +++ b/.changeset/cool-zoos-rest.md @@ -0,0 +1,5 @@ +--- +'@fedimint/react': patch +--- + +Added an example project for developing the react package diff --git a/.changeset/empty-kings-accept.md b/.changeset/empty-kings-accept.md new file mode 100644 index 0000000..0877169 --- /dev/null +++ b/.changeset/empty-kings-accept.md @@ -0,0 +1,5 @@ +--- +'@fedimint/react': patch +--- + +Added useReceiveLightning and useSendlightning hooks diff --git a/.changeset/fifty-papayas-float.md b/.changeset/fifty-papayas-float.md new file mode 100644 index 0000000..c86c8a9 --- /dev/null +++ b/.changeset/fifty-papayas-float.md @@ -0,0 +1,5 @@ +--- +'@fedimint/react': patch +--- + +Introduced a bunch of helper hooks (useBalance, useFedimintWallet, useLightningInvoice, useOpenWallet) diff --git a/.changeset/soft-parrots-hear.md b/.changeset/soft-parrots-hear.md new file mode 100644 index 0000000..33b0d84 --- /dev/null +++ b/.changeset/soft-parrots-hear.md @@ -0,0 +1,5 @@ +--- +'@fedimint/react': patch +--- + +Introduces the `FedimintWalletContext` and `FedimintWalletProvider` to provide access to the FedimintWallet functions throughout your app.` diff --git a/examples/vite-core/package.json b/examples/vite-core/package.json index 5a9ddf3..4941f3d 100644 --- a/examples/vite-core/package.json +++ b/examples/vite-core/package.json @@ -12,7 +12,7 @@ "dependencies": { "@fedimint/core-web": "canary", "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": ">=18.3.1" }, "devDependencies": { "@types/react": ">=18.3.11", diff --git a/package.json b/package.json index 3b8441f..7b304d2 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "clean:deep": "rm -rf node_modules && pnpm run --r --parallel clean:deep", "deps": "pnpx taze -r", "dev": "pnpm build && pnpm dev:vite", + "dev:react": "pnpm --filter react dev", "dev:vite": "pnpm --filter vite-core dev", "dev:bare": "pnpm run --filter bare-js server", "docs:dev": "pnpm run --filter docs docs:dev", diff --git a/packages/core-web/src/FedimintWallet.ts b/packages/core-web/src/FedimintWallet.ts index 815f808..a06db39 100644 --- a/packages/core-web/src/FedimintWallet.ts +++ b/packages/core-web/src/FedimintWallet.ts @@ -105,13 +105,19 @@ export class FedimintWallet { throw new Error( 'The FedimintWallet is already open. You can only call `joinFederation` on closed clients.', ) - const response = await this._client.sendSingleMessage<{ success: boolean }>( - 'join', - { inviteCode, clientName }, - ) - if (response.success) { - this._isOpen = true - this._resolveOpen() + try { + const response = await this._client.sendSingleMessage<{ + success: boolean + }>('join', { inviteCode, clientName }) + if (response.success) { + this._isOpen = true + this._resolveOpen() + } + + return response.success + } catch (e) { + logger.error('Error joining federation', e) + return false } } diff --git a/packages/react/lib/contexts/FedimintWalletContext.ts b/packages/react/lib/contexts/FedimintWalletContext.ts new file mode 100644 index 0000000..64ba336 --- /dev/null +++ b/packages/react/lib/contexts/FedimintWalletContext.ts @@ -0,0 +1,37 @@ +import { FedimintWallet } from '@fedimint/core-web' +import { createContext, createElement } from 'react' + +let wallet: FedimintWallet + +type FedimintWalletConfig = { + lazy?: boolean + debug?: boolean +} + +export const setupFedimintWallet = (config: FedimintWalletConfig) => { + wallet = new FedimintWallet(!!config.lazy) + if (config.debug) { + wallet.setLogLevel('debug') + } +} + +export const FedimintWalletContext = createContext< + { wallet: FedimintWallet } | undefined +>(undefined) + +export type FedimintWalletProviderProps = {} + +export const FedimintWalletProvider = ( + parameters: React.PropsWithChildren, +) => { + const { children } = parameters + + if (!wallet) + throw new Error( + 'You must call setupFedimintWallet() first. See the getting started guide.', + ) + + const props = { value: { wallet } } + + return createElement(FedimintWalletContext.Provider, props, children) +} diff --git a/packages/react/lib/contexts/index.ts b/packages/react/lib/contexts/index.ts new file mode 100644 index 0000000..377095a --- /dev/null +++ b/packages/react/lib/contexts/index.ts @@ -0,0 +1,7 @@ +import { + FedimintWalletContext, + FedimintWalletProvider, + setupFedimintWallet, +} from './FedimintWalletContext' + +export { FedimintWalletContext, FedimintWalletProvider, setupFedimintWallet } diff --git a/packages/react/lib/hooks/index.ts b/packages/react/lib/hooks/index.ts new file mode 100644 index 0000000..4145cc6 --- /dev/null +++ b/packages/react/lib/hooks/index.ts @@ -0,0 +1,13 @@ +import { useBalance } from './useBalance' +import { useOpenWallet } from './useOpenWallet' +import { useFedimintWallet } from './useFedimintWallet' +import { useReceiveLightning } from './useReceiveLightning' +import { useSendLightning } from './useSendLightning' + +export { + useBalance, + useOpenWallet, + useFedimintWallet, + useReceiveLightning, + useSendLightning, +} diff --git a/packages/react/lib/hooks/useBalance.ts b/packages/react/lib/hooks/useBalance.ts new file mode 100644 index 0000000..935ac7e --- /dev/null +++ b/packages/react/lib/hooks/useBalance.ts @@ -0,0 +1,22 @@ +import { useEffect, useState } from 'react' +import { useFedimintWallet, useOpenWallet } from '.' + +export const useBalance = () => { + const wallet = useFedimintWallet() + const { walletStatus } = useOpenWallet() + const [balance, setBalance] = useState() + + useEffect(() => { + if (walletStatus !== 'open') return + + const unsubscribe = wallet.balance.subscribeBalance((balance) => { + setBalance(balance) + }) + + return () => { + unsubscribe() + } + }, [walletStatus]) + + return balance +} diff --git a/packages/react/lib/hooks/useFedimintWallet.ts b/packages/react/lib/hooks/useFedimintWallet.ts new file mode 100644 index 0000000..1cd763d --- /dev/null +++ b/packages/react/lib/hooks/useFedimintWallet.ts @@ -0,0 +1,12 @@ +import { useContext } from 'react' +import { FedimintWalletContext } from '../contexts' + +export const useFedimintWallet = () => { + const value = useContext(FedimintWalletContext) + if (!value?.wallet) { + throw new Error( + 'useFedimintWallet must be used within a FedimintWalletProvider', + ) + } + return value.wallet +} diff --git a/packages/react/lib/hooks/useOpenWallet.ts b/packages/react/lib/hooks/useOpenWallet.ts new file mode 100644 index 0000000..b5f2dcf --- /dev/null +++ b/packages/react/lib/hooks/useOpenWallet.ts @@ -0,0 +1,42 @@ +import { useCallback, useEffect, useState } from 'react' +import { useFedimintWallet } from '.' + +type WalletStatus = 'open' | 'closed' | 'opening' + +export const useOpenWallet = () => { + const wallet = useFedimintWallet() + const [walletStatus, setWalletStatus] = useState() + + const openWallet = useCallback(() => { + if (walletStatus === 'open') return + + setWalletStatus('opening') + wallet.open().then((res) => { + setWalletStatus(res ? 'open' : 'closed') + }) + }, [wallet]) + + const joinFederation = useCallback( + async (invite: string) => { + if (walletStatus === 'open') return + + setWalletStatus('opening') + + const res = await wallet.joinFederation(invite) + setWalletStatus(res ? 'open' : 'closed') + }, + [wallet], + ) + + useEffect(() => { + wallet.waitForOpen().then(() => { + setWalletStatus('open') + }) + + return () => { + setWalletStatus('closed') + } + }, [wallet]) + + return { walletStatus, openWallet, joinFederation } +} diff --git a/packages/react/lib/hooks/useReceiveLightning.ts b/packages/react/lib/hooks/useReceiveLightning.ts new file mode 100644 index 0000000..be1a037 --- /dev/null +++ b/packages/react/lib/hooks/useReceiveLightning.ts @@ -0,0 +1,46 @@ +import { useCallback, useEffect, useState } from 'react' +import { useFedimintWallet, useOpenWallet } from '.' +import { LnReceiveState, type CreateBolt11Response } from '@fedimint/core-web' + +export const useReceiveLightning = () => { + const wallet = useFedimintWallet() + const { walletStatus } = useOpenWallet() + const [invoice, setInvoice] = useState() + const [invoiceReceiveState, setInvoiceReceiveState] = + useState() + const [error, setError] = useState() + + const generateInvoice = useCallback( + async (amount: number, description: string) => { + if (walletStatus !== 'open') throw new Error('Wallet is not open') + const response = await wallet.lightning.createInvoice(amount, description) + setInvoice(response) + return response.invoice + }, + [wallet, walletStatus], + ) + + useEffect(() => { + if (walletStatus !== 'open' || !invoice) return + const unsubscribe = wallet.lightning.subscribeLnReceive( + invoice.operation_id, + (state) => { + setInvoiceReceiveState(state) + }, + (error) => { + setError(error) + }, + ) + + return () => { + unsubscribe() + } + }, [walletStatus, invoice]) + + return { + generateInvoice, + bolt11: invoice?.invoice, + invoiceStatus: invoiceReceiveState, + error, + } +} diff --git a/packages/react/lib/hooks/useSendLightning.ts b/packages/react/lib/hooks/useSendLightning.ts new file mode 100644 index 0000000..9229d4f --- /dev/null +++ b/packages/react/lib/hooks/useSendLightning.ts @@ -0,0 +1,49 @@ +import { useCallback, useEffect, useState } from 'react' +import { useFedimintWallet, useOpenWallet } from '.' +import { + type LnPayState, + type OutgoingLightningPayment, +} from '@fedimint/core-web' + +export const useSendLightning = () => { + const wallet = useFedimintWallet() + const { walletStatus } = useOpenWallet() + const [payment, setPayment] = useState() + const [paymentState, setPaymentState] = useState() + const [error, setError] = useState() + + const payInvoice = useCallback( + async (bolt11: string) => { + if (walletStatus !== 'open') throw new Error('Wallet is not open') + const response = await wallet.lightning.payInvoice(bolt11) + setPayment(response) + return response + }, + [wallet, walletStatus], + ) + + useEffect(() => { + if (walletStatus !== 'open' || !payment) return + const unsubscribe = wallet.lightning.subscribeLnPay( + // @ts-ignore + payment.payment_type.lightning, + (state) => { + setPaymentState(state) + }, + (error) => { + setError(error) + }, + ) + + return () => { + unsubscribe() + } + }, [walletStatus, payment]) + + return { + payInvoice, + payment, + paymentStatus: paymentState, + paymentError: error, + } +} diff --git a/packages/react/lib/index.ts b/packages/react/lib/index.ts new file mode 100644 index 0000000..8a4188d --- /dev/null +++ b/packages/react/lib/index.ts @@ -0,0 +1,2 @@ +export * from './hooks' +export * from './contexts' diff --git a/packages/react/lib/init.ts b/packages/react/lib/init.ts new file mode 100644 index 0000000..ab2e9cb --- /dev/null +++ b/packages/react/lib/init.ts @@ -0,0 +1,11 @@ +import { FedimintWallet } from '@fedimint/core-web' + +let wallet: FedimintWallet | undefined + +export const initFedimintReact = (lazy: boolean = false) => { + if (!lazy) { + wallet = new FedimintWallet(lazy) + } + + return {} +} diff --git a/packages/react/package.json b/packages/react/package.json index 384316a..5f3532a 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -5,12 +5,24 @@ "type": "module", "scripts": { "dev": "vite", + "build": "tsc --p ./tsconfig.build.json && vite build", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview" }, + "files": [ + "dist" + ], + "main": "./dist/fedimint-react.umd.cjs", + "module": "./dist/fedimint-react.js", + "exports": { + ".": { + "import": "./dist/fedimint-react.js", + "require": "./dist/fedimint-react.umd.cjs" + } + }, "peerDependencies": { - "react": "^18.3.1", - "react-dom": ">=18.3.1" + "@fedimint/core-web": "workspace:*", + "react": "^18.3.1" }, "devDependencies": { "@types/react": ">=18.3.11", @@ -18,10 +30,13 @@ "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-react": "^4.3.2", - "eslint": "^8.57.1", + "eslint": "^9.11.1", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.12", + "react-dom": ">=18.3.1", "typescript": "^5.6.2", - "vite": "^5.4.8" + "vite": "^5.4.8", + "vite-plugin-dts": "^4.2.4", + "vite-plugin-wasm": "^3.3.0" } } diff --git a/packages/react/src/App.css b/packages/react/src/App.css index b9d355d..05c7836 100644 --- a/packages/react/src/App.css +++ b/packages/react/src/App.css @@ -5,38 +5,49 @@ text-align: center; } -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.react:hover { - filter: drop-shadow(0 0 2em #61dafbaa); +.App { + display: flex; + flex-direction: column; + align-items: center; } -@keyframes logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } +.card { + display: flex; + flex-direction: column; + align-items: center; + width: 100%; + padding: 2em; + border-style: solid; + border-width: 1px; + border-color: #ccc; + border-radius: 1em; } -@media (prefers-reduced-motion: no-preference) { - a:nth-of-type(2) .logo { - animation: logo-spin infinite 20s linear; - } +.section { + display: flex; + flex-direction: column; + margin-bottom: 3rem; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + width: 100%; + border-bottom: 1px solid #ccc; + gap: 0.5rem; } -.card { - padding: 2em; +.row { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + width: 100%; + max-width: 500px; + gap: 0.5rem; } -.read-the-docs { - color: #888; +.truncate { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } diff --git a/packages/react/src/App.tsx b/packages/react/src/App.tsx index 4ee979e..42b7143 100644 --- a/packages/react/src/App.tsx +++ b/packages/react/src/App.tsx @@ -1,34 +1,16 @@ -import { useState } from 'react' -import viteLogo from '/vite.svg' -import reactLogo from './assets/react.svg' +import React from 'react' import './App.css' +import HooksDemo from './components/HooksDemo' +// @ts-ignore +import reactImage from './assets/react.svg' function App() { - const [count, setCount] = useState(0) - return ( - <> - -

Vite + React

-
- -

- Edit src/App.tsx and save to test HMR -

-
-

- Click on the Vite and React logos to learn more -

- +
+ +

Fedimint Web SDK - React

+ +
) } diff --git a/packages/react/src/components/HooksDemo.tsx b/packages/react/src/components/HooksDemo.tsx new file mode 100644 index 0000000..695d3c4 --- /dev/null +++ b/packages/react/src/components/HooksDemo.tsx @@ -0,0 +1,127 @@ +import React, { useState } from 'react' +import { + useBalance, + useReceiveLightning, + useOpenWallet, + useSendLightning, +} from '../../lib' + +const TEST_FEDERATION_INVITE = + 'fed11qgqzc2nhwden5te0vejkg6tdd9h8gepwvejkg6tdd9h8garhduhx6at5d9h8jmn9wshxxmmd9uqqzgxg6s3evnr6m9zdxr6hxkdkukexpcs3mn7mj3g5pc5dfh63l4tj6g9zk4er' + +function HooksDemo() { + const balance = useBalance() + const { walletStatus, openWallet, joinFederation } = useOpenWallet() + const [bolt11Input, setBolt11Input] = useState() + const isOpen = walletStatus === 'open' + const { generateInvoice, bolt11, invoiceStatus, error } = + useReceiveLightning() + const { payInvoice, payment, paymentStatus, paymentError } = + useSendLightning() + + return ( + <> +
+

Hooks

+
+ useOpenWallet() +
+ walletStatus +

{walletStatus}

+
+
+ openWallet() + +
+
+ joinFederation(invite) + +
+
+
+
+ useBalance +

{balance ? `${balance / 1000} sats` : 'no balance'}

+
+
+
+ useLightningInvoice() +
+ generateInvoice(1000, '1000 msats') + +
+
+ bolt11 +

+ {bolt11 ? bolt11 : 'no invoice generated'} +

+
+
+ invoiceStatus +

+ {typeof invoiceStatus === 'string' + ? invoiceStatus + : typeof invoiceStatus === 'object' + ? Object.keys(invoiceStatus)[0] + : 'no invoice status'} +

+
+
+ error +

{error}

+
+
+
+ useSendLightning() +
+ bolt11 + setBolt11Input(e.target.value)} + /> +
+
+ payInvoice(bolt11) + +
+
+ paymentStatus +

+ {typeof paymentStatus === 'string' + ? paymentStatus + : typeof paymentStatus === 'object' + ? Object.keys(paymentStatus)[0] + : 'no payment status'} +

+
+
+ paymentError +

{paymentError}

+
+
+
+ + ) +} + +export default HooksDemo diff --git a/packages/react/src/index.css b/packages/react/src/index.css index 6119ad9..36c2f34 100644 --- a/packages/react/src/index.css +++ b/packages/react/src/index.css @@ -25,7 +25,6 @@ a:hover { body { margin: 0; display: flex; - place-items: center; min-width: 320px; min-height: 100vh; } @@ -53,16 +52,3 @@ button:focus, button:focus-visible { outline: 4px auto -webkit-focus-ring-color; } - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/packages/react/src/main.tsx b/packages/react/src/main.tsx index 3d7150d..db393a6 100644 --- a/packages/react/src/main.tsx +++ b/packages/react/src/main.tsx @@ -2,9 +2,17 @@ import React from 'react' import ReactDOM from 'react-dom/client' import App from './App.tsx' import './index.css' +import { FedimintWalletProvider, setupFedimintWallet } from '../lib/contexts' + +setupFedimintWallet({ + lazy: false, + debug: true, +}) ReactDOM.createRoot(document.getElementById('root')!).render( - + + + , ) diff --git a/packages/react/src/types/images.d.ts b/packages/react/src/types/images.d.ts new file mode 100644 index 0000000..a97fbda --- /dev/null +++ b/packages/react/src/types/images.d.ts @@ -0,0 +1,4 @@ +declare module '*.svg' { + const content: string + export default content +} diff --git a/packages/react/tsconfig.build.json b/packages/react/tsconfig.build.json new file mode 100644 index 0000000..e0a84f7 --- /dev/null +++ b/packages/react/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "include": ["lib"] +} diff --git a/packages/react/tsconfig.json b/packages/react/tsconfig.json index 1031505..5ba8cec 100644 --- a/packages/react/tsconfig.json +++ b/packages/react/tsconfig.json @@ -1,8 +1,14 @@ { - "files": [], - "references": [ - { - "path": "./tsconfig.node.json" - } - ] + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist", + "sourceMap": true, + "declaration": true, + "declarationMap": true, + "lib": ["ES2020", "DOM"], + // "types": ["node"], + "typeRoots": ["./node_modules/@types", "./src/types"] + }, + "include": ["src/**/*.ts", "lib/**/*.ts"], + "exclude": ["node_modules"] } diff --git a/packages/react/vite.config.ts b/packages/react/vite.config.ts index 36f7f4e..5e9ae51 100644 --- a/packages/react/vite.config.ts +++ b/packages/react/vite.config.ts @@ -1,7 +1,36 @@ import react from '@vitejs/plugin-react' import { defineConfig } from 'vite' +import wasm from 'vite-plugin-wasm' +import { resolve } from 'path' +import dts from 'vite-plugin-dts' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [react(), dts({ include: ['lib'] }), wasm()], + resolve: { + alias: { + '@': '/src', + }, + }, + build: { + copyPublicDir: false, + lib: { + entry: resolve(__dirname, 'lib/index.ts'), + name: '@fedimint/react', + fileName: 'fedimint-react', + formats: ['es'], + }, + rollupOptions: { + external: ['react', 'react-dom', '@fedimint/core-web'], + output: { + // Provide global variables to use in the UMD build + // for externalized deps + globals: { + react: 'react', + 'react-dom': 'react-dom', + '@fedimint/core-web': '@fedimint/core-web', + }, + }, + }, + }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8a439c..5b2f102 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,12 +76,12 @@ importers: dependencies: '@fedimint/core-web': specifier: canary - version: 0.0.0-canary-20241004231619 + version: 0.0.0-canary-20241014121806 react: specifier: ^18.3.1 version: 18.3.1 react-dom: - specifier: ^18.3.1 + specifier: '>=18.3.1' version: 18.3.1(react@18.3.1) devDependencies: '@types/react': @@ -106,6 +106,49 @@ importers: specifier: ^3.3.0 version: 3.3.0(vite@5.4.8(@types/node@22.5.5)(terser@5.32.0)) + examples/vite-react: + dependencies: + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: '>=18.3.1' + version: 18.3.1(react@18.3.1) + devDependencies: + '@eslint/js': + specifier: ^9.11.1 + version: 9.13.0 + '@types/react': + specifier: '>=18.3.11' + version: 18.3.11 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.0 + '@vitejs/plugin-react': + specifier: ^4.3.2 + version: 4.3.2(vite@5.4.8(@types/node@22.5.5)(terser@5.32.0)) + eslint: + specifier: ^9.11.1 + version: 9.13.0 + eslint-plugin-react-hooks: + specifier: ^4.6.2 + version: 4.6.2(eslint@9.13.0) + eslint-plugin-react-refresh: + specifier: ^0.4.12 + version: 0.4.12(eslint@9.13.0) + globals: + specifier: ^15.9.0 + version: 15.11.0 + typescript: + specifier: ^5.6.2 + version: 5.6.2 + typescript-eslint: + specifier: ^8.7.0 + version: 8.10.0(eslint@9.13.0)(typescript@5.6.2) + vite: + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.5.5)(terser@5.32.0) + packages/core-web: dependencies: '@fedimint/fedimint-client-wasm-bundler': @@ -145,12 +188,12 @@ importers: packages/react: dependencies: + '@fedimint/core-web': + specifier: workspace:* + version: link:../core-web react: specifier: ^18.3.1 version: 18.3.1 - react-dom: - specifier: '>=18.3.1' - version: 18.3.1(react@18.3.1) devDependencies: '@types/react': specifier: '>=18.3.11' @@ -160,28 +203,37 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^7.18.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.2))(eslint@9.13.0)(typescript@5.6.2) '@typescript-eslint/parser': specifier: ^7.18.0 - version: 7.18.0(eslint@8.57.1)(typescript@5.6.2) + version: 7.18.0(eslint@9.13.0)(typescript@5.6.2) '@vitejs/plugin-react': specifier: ^4.3.2 version: 4.3.2(vite@5.4.8(@types/node@22.5.5)(terser@5.32.0)) eslint: - specifier: ^8.57.1 - version: 8.57.1 + specifier: ^9.11.1 + version: 9.13.0 eslint-plugin-react-hooks: specifier: ^4.6.2 - version: 4.6.2(eslint@8.57.1) + version: 4.6.2(eslint@9.13.0) eslint-plugin-react-refresh: specifier: ^0.4.12 - version: 0.4.12(eslint@8.57.1) + version: 0.4.12(eslint@9.13.0) + react-dom: + specifier: '>=18.3.1' + version: 18.3.1(react@18.3.1) typescript: specifier: ^5.6.2 version: 5.6.2 vite: specifier: ^5.4.8 version: 5.4.8(@types/node@22.5.5)(terser@5.32.0) + vite-plugin-dts: + specifier: ^4.2.4 + version: 4.2.4(@types/node@22.5.5)(rollup@4.24.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.5.5)(terser@5.32.0)) + vite-plugin-wasm: + specifier: ^3.3.0 + version: 3.3.0(vite@5.4.8(@types/node@22.5.5)(terser@5.32.0)) packages/wasm-bundler: {} @@ -587,19 +639,35 @@ packages: 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/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/core@0.7.0': + resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.13.0': + resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.1': + resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fedimint/core-web@0.0.0-canary-20241004231619': - resolution: {integrity: sha512-vBIaRhRe1SJJzLrpMStieXZvWpSLxQgvNofxavOOMtJhllRlDnDXIicM1Ti79MtRAoUaZaP6UEigV2ABwhfQrw==} + '@fedimint/core-web@0.0.0-canary-20241014121806': + resolution: {integrity: sha512-5FZyuZujxb3l751LvizCMrdc2JFirfpmgBCw64SWMBzQxvnfhwOgDC1YZPnx9Is1j8nBCwNRIqQ8GnOPWA6Xuw==} - '@fedimint/fedimint-client-wasm-bundler@0.0.1': - resolution: {integrity: sha512-zdAgHLJgqnaVVhveSqimJzLJ8vdmzHL5Yax78RkodI3QM53+HdLMd82FvDSYbMEVVaktt988yPj4zWPP+g8UWQ==} + '@fedimint/fedimint-client-wasm-bundler@0.0.2': + resolution: {integrity: sha512-+6chBN4sItrPTS792na6ZZJL3OlZf+edzhy0W40B8PULesjRURV0DbCmR4mCdg+QHds3CkuKkISn/UQpN/cDdQ==} '@floating-ui/core@1.6.8': resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} @@ -610,18 +678,21 @@ packages: '@floating-ui/utils@0.2.8': resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.0': + resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.5': + resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} '@inquirer/confirm@3.2.0': resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} @@ -678,6 +749,19 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@microsoft/api-extractor-model@7.29.6': + resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==} + + '@microsoft/api-extractor@7.47.7': + resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==} + hasBin: true + + '@microsoft/tsdoc-config@0.17.0': + resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==} + + '@microsoft/tsdoc@0.15.0': + resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==} + '@mswjs/interceptors@0.35.6': resolution: {integrity: sha512-PpD687w7qLxVMK176bpQjbzU9O0VC75QnBK5U1lKd29s4hIuxfTItUD6raNKyQ6BN8b64/8HE34RuYTkwH9uPQ==} engines: {node: '>=18'} @@ -825,6 +909,28 @@ packages: cpu: [x64] os: [win32] + '@rushstack/node-core-library@5.7.0': + resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/rig-package@0.5.3': + resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} + + '@rushstack/terminal@0.14.0': + resolution: {integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/ts-command-line@4.22.6': + resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} + '@shikijs/core@1.18.0': resolution: {integrity: sha512-VK4BNVCd2leY62Nm2JjyxtRLkyrZT/tv104O81eyaCjHq4Adceq2uJVFJJAIof6lT1mBwZrEo2qT/T+grv3MQQ==} @@ -862,6 +968,9 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@types/argparse@1.0.38': + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -895,6 +1004,9 @@ packages: '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} @@ -966,6 +1078,17 @@ packages: typescript: optional: true + '@typescript-eslint/eslint-plugin@8.10.0': + resolution: {integrity: sha512-phuB3hoP7FFKbRXxjl+DRlQDuJqhpOnm5MmtROXyWi3uS/Xg2ZXqiQfcG2BJHiN4QKyzdOJi3NEn/qTnjUlkmQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/parser@7.18.0': resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} engines: {node: ^18.18.0 || >=20.0.0} @@ -976,10 +1099,24 @@ packages: typescript: optional: true + '@typescript-eslint/parser@8.10.0': + resolution: {integrity: sha512-E24l90SxuJhytWJ0pTQydFT46Nk0Z+bsLKo/L8rtQSL93rQ6byd1V/QbDpHUTdLPOMsBCcYXZweADNCfOCmOAg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/scope-manager@7.18.0': resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.10.0': + resolution: {integrity: sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@7.18.0': resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -990,10 +1127,23 @@ packages: typescript: optional: true + '@typescript-eslint/type-utils@8.10.0': + resolution: {integrity: sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/types@7.18.0': resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.10.0': + resolution: {integrity: sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@7.18.0': resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1003,16 +1153,35 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.10.0': + resolution: {integrity: sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/utils@7.18.0': resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 + '@typescript-eslint/utils@8.10.0': + resolution: {integrity: sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/visitor-keys@7.18.0': resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.10.0': + resolution: {integrity: sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/vfs@1.6.0': resolution: {integrity: sha512-hvJUjNVeBMp77qPINuUvYXj4FyWeeMMKZkxEATEU3hqBAQ7qdTBCUFT7Sp0Zu0faeEtFf+ldXxMEDr/bk73ISg==} peerDependencies: @@ -1096,9 +1265,18 @@ packages: '@volar/language-core@2.4.5': resolution: {integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==} + '@volar/language-core@2.4.6': + resolution: {integrity: sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==} + '@volar/source-map@2.4.5': resolution: {integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==} + '@volar/source-map@2.4.6': + resolution: {integrity: sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==} + + '@volar/typescript@2.4.6': + resolution: {integrity: sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==} + '@vue/compiler-core@3.5.10': resolution: {integrity: sha512-iXWlk+Cg/ag7gLvY0SfVucU8Kh2CjysYZjhhP70w9qI4MvSox4frrP+vDGvtQuzIcgD8+sxM6lZvCtdxGunTAA==} @@ -1208,9 +1386,31 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + algoliasearch@4.24.0: resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} @@ -1393,12 +1593,18 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + computeds@0.0.1: resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -1473,10 +1679,6 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -1543,23 +1745,31 @@ packages: peerDependencies: eslint: '>=7' - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.13.0: + resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -1625,9 +1835,9 @@ packages: fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} @@ -1645,9 +1855,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -1689,9 +1899,6 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1732,17 +1939,17 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.11.0: + resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} + engines: {node: '>=18'} globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -1851,14 +2058,14 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - 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.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -1885,10 +2092,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-subdir@1.2.0: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} @@ -1923,6 +2126,9 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1945,6 +2151,9 @@ packages: 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-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -1962,10 +2171,17 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -2002,6 +2218,10 @@ packages: 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'} + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -2144,6 +2364,9 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2168,6 +2391,9 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true + mlly@1.7.2: + resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -2218,9 +2444,6 @@ packages: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - oniguruma-to-js@0.4.3: resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} @@ -2287,10 +2510,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -2338,6 +2557,9 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + playwright-core@1.47.2: resolution: {integrity: sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==} engines: {node: '>=18'} @@ -2433,6 +2655,10 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + require-from-string@2.0.2: + 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==} @@ -2455,11 +2681,6 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rollup-plugin-dts@6.1.1: resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} engines: {node: '>=16'} @@ -2507,6 +2728,11 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -2641,6 +2867,10 @@ packages: strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -2680,6 +2910,10 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -2774,10 +3008,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -2786,6 +3016,20 @@ packages: resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} + typescript-eslint@8.10.0: + resolution: {integrity: sha512-YIu230PeN7z9zpu/EtqCIuRVHPs4iSlqW6TEvjbyDAE3MZsSl2RXBo+5ag+lbABCG8sFM1WVKEXhlQ8Ml8A3Fw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.5.2: resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} engines: {node: '>=14.17'} @@ -2796,6 +3040,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -2859,6 +3106,16 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite-plugin-dts@4.2.4: + resolution: {integrity: sha512-REcYoxO90Pi8c0P1J7XAa/nVwNVGkX2eYkBEIfFSfcKE4g1W8sB0R23a7SU3aLEMfdOdb0SVHq3JlJ+Qb6gjgA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + vite-plugin-wasm@3.3.0: resolution: {integrity: sha512-tVhz6w+W9MVsOCHzxo6SSMSswCeIw4HTrXEi6qL3IRzATl83jl09JVO1djBqPSwfjgnpVHNLYcaMbaDX5WB/pg==} peerDependencies: @@ -2932,6 +3189,9 @@ packages: jsdom: optional: true + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vue-demi@0.14.10: resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} engines: {node: '>=12'} @@ -2998,9 +3258,6 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.18.0: resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} @@ -3023,6 +3280,9 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -3534,19 +3794,29 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0)': dependencies: - eslint: 8.57.1 + eslint: 9.13.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.6 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.7.0': {} + + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 debug: 4.3.6 - espree: 9.6.1 - globals: 13.24.0 + espree: 10.2.0 + globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -3555,13 +3825,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@9.13.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.2.1': + dependencies: + levn: 0.4.1 - '@fedimint/core-web@0.0.0-canary-20241004231619': + '@fedimint/core-web@0.0.0-canary-20241014121806': dependencies: - '@fedimint/fedimint-client-wasm-bundler': 0.0.1 + '@fedimint/fedimint-client-wasm-bundler': 0.0.2 - '@fedimint/fedimint-client-wasm-bundler@0.0.1': {} + '@fedimint/fedimint-client-wasm-bundler@0.0.2': {} '@floating-ui/core@1.6.8': dependencies: @@ -3573,17 +3849,16 @@ snapshots: '@floating-ui/utils@0.2.8': {} - '@humanwhocodes/config-array@0.13.0': + '@humanfs/core@0.19.0': {} + + '@humanfs/node@0.16.5': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.1': {} '@inquirer/confirm@3.2.0': dependencies: @@ -3664,6 +3939,41 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 + '@microsoft/api-extractor-model@7.29.6(@types/node@22.5.5)': + dependencies: + '@microsoft/tsdoc': 0.15.0 + '@microsoft/tsdoc-config': 0.17.0 + '@rushstack/node-core-library': 5.7.0(@types/node@22.5.5) + transitivePeerDependencies: + - '@types/node' + + '@microsoft/api-extractor@7.47.7(@types/node@22.5.5)': + dependencies: + '@microsoft/api-extractor-model': 7.29.6(@types/node@22.5.5) + '@microsoft/tsdoc': 0.15.0 + '@microsoft/tsdoc-config': 0.17.0 + '@rushstack/node-core-library': 5.7.0(@types/node@22.5.5) + '@rushstack/rig-package': 0.5.3 + '@rushstack/terminal': 0.14.0(@types/node@22.5.5) + '@rushstack/ts-command-line': 4.22.6(@types/node@22.5.5) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.2 + transitivePeerDependencies: + - '@types/node' + + '@microsoft/tsdoc-config@0.17.0': + dependencies: + '@microsoft/tsdoc': 0.15.0 + ajv: 8.12.0 + jju: 1.4.0 + resolve: 1.22.8 + + '@microsoft/tsdoc@0.15.0': {} + '@mswjs/interceptors@0.35.6': dependencies: '@open-draft/deferred-promise': 2.2.0 @@ -3723,7 +4033,7 @@ snapshots: '@rollup/pluginutils@5.1.0(rollup@4.24.0)': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: @@ -3777,6 +4087,40 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true + '@rushstack/node-core-library@5.7.0(@types/node@22.5.5)': + dependencies: + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv-formats: 3.0.1(ajv@8.13.0) + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + optionalDependencies: + '@types/node': 22.5.5 + + '@rushstack/rig-package@0.5.3': + dependencies: + resolve: 1.22.8 + strip-json-comments: 3.1.1 + + '@rushstack/terminal@0.14.0(@types/node@22.5.5)': + dependencies: + '@rushstack/node-core-library': 5.7.0(@types/node@22.5.5) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 22.5.5 + + '@rushstack/ts-command-line@4.22.6(@types/node@22.5.5)': + dependencies: + '@rushstack/terminal': 0.14.0(@types/node@22.5.5) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + '@shikijs/core@1.18.0': dependencies: '@shikijs/engine-javascript': 1.18.0 @@ -3849,6 +4193,8 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 + '@types/argparse@1.0.38': {} + '@types/aria-query@5.0.4': {} '@types/babel__core@7.20.5': @@ -3890,6 +4236,8 @@ snapshots: dependencies: '@types/unist': 3.0.3 + '@types/json-schema@7.0.15': {} + '@types/linkify-it@5.0.0': {} '@types/markdown-it@14.1.2': @@ -3952,15 +4300,15 @@ snapshots: dependencies: '@types/node': 20.16.10 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.2))(eslint@9.13.0)(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/parser': 7.18.0(eslint@9.13.0)(typescript@5.6.2) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/type-utils': 7.18.0(eslint@9.13.0)(typescript@5.6.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.13.0)(typescript@5.6.2) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.1 + eslint: 9.13.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -3970,14 +4318,45 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0)(typescript@5.6.2))(eslint@9.13.0)(typescript@5.6.2)': + dependencies: + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0)(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/type-utils': 8.10.0(eslint@9.13.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0)(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.10.0 + eslint: 9.13.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.3.6 - eslint: 8.57.1 + eslint: 9.13.0 + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.10.0(eslint@9.13.0)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.10.0 + debug: 4.3.6 + eslint: 9.13.0 optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: @@ -3988,20 +4367,39 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/scope-manager@8.10.0': + dependencies: + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/visitor-keys': 8.10.0 + + '@typescript-eslint/type-utils@7.18.0(eslint@9.13.0)(typescript@5.6.2)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.13.0)(typescript@5.6.2) + debug: 4.3.6 + eslint: 9.13.0 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.10.0(eslint@9.13.0)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0)(typescript@5.6.2) debug: 4.3.6 - eslint: 8.57.1 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: + - eslint - supports-color '@typescript-eslint/types@7.18.0': {} + '@typescript-eslint/types@8.10.0': {} + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.2)': dependencies: '@typescript-eslint/types': 7.18.0 @@ -4017,13 +4415,39 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.10.0(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/visitor-keys': 8.10.0 + debug: 4.3.6 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.18.0(eslint@9.13.0)(typescript@5.6.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) - eslint: 8.57.1 + eslint: 9.13.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.10.0(eslint@9.13.0)(typescript@5.6.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.2) + eslint: 9.13.0 transitivePeerDependencies: - supports-color - typescript @@ -4033,6 +4457,11 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.10.0': + dependencies: + '@typescript-eslint/types': 8.10.0 + eslint-visitor-keys: 3.4.3 + '@typescript/vfs@1.6.0(typescript@5.6.2)': dependencies: debug: 4.3.6 @@ -4155,8 +4584,20 @@ snapshots: dependencies: '@volar/source-map': 2.4.5 + '@volar/language-core@2.4.6': + dependencies: + '@volar/source-map': 2.4.6 + '@volar/source-map@2.4.5': {} + '@volar/source-map@2.4.6': {} + + '@volar/typescript@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + '@vue/compiler-core@3.5.10': dependencies: '@babel/parser': 7.25.4 @@ -4283,6 +4724,14 @@ snapshots: acorn@8.12.1: {} + ajv-draft-04@1.0.0(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + + ajv-formats@3.0.1(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -4290,6 +4739,20 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@8.12.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 + + ajv@8.13.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 + algoliasearch@4.24.0: dependencies: '@algolia/cache-browser-local-storage': 4.24.0 @@ -4471,10 +4934,14 @@ snapshots: commondir@1.0.1: {} + compare-versions@6.1.1: {} + computeds@0.0.1: {} concat-map@0.0.1: {} + confbox@0.1.8: {} + convert-source-map@2.0.0: {} cookie@0.5.0: {} @@ -4535,10 +5002,6 @@ snapshots: dependencies: path-type: 4.0.0 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} eastasianwidth@0.2.0: {} @@ -4606,69 +5069,68 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): + eslint-plugin-react-hooks@4.6.2(eslint@9.13.0): dependencies: - eslint: 8.57.1 + eslint: 9.13.0 - eslint-plugin-react-refresh@0.4.12(eslint@8.57.1): + eslint-plugin-react-refresh@0.4.12(eslint@9.13.0): dependencies: - eslint: 8.57.1 + eslint: 9.13.0 - eslint-scope@7.2.2: + eslint-scope@8.1.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint@8.57.1: + eslint-visitor-keys@4.1.0: {} + + eslint@9.13.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.7.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.13.0 + '@eslint/plugin-kit': 0.2.1 + '@humanfs/node': 0.16.5 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@humanwhocodes/retry': 0.3.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 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 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color - espree@9.6.1: + espree@10.2.0: dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.1.0 esprima@4.0.1: {} @@ -4724,9 +5186,9 @@ snapshots: fflate@0.8.2: {} - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 fill-range@7.1.1: dependencies: @@ -4748,11 +5210,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 flatted@3.3.1: {} @@ -4791,8 +5252,6 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fs.realpath@1.0.0: {} - fsevents@2.3.2: optional: true @@ -4832,20 +5291,11 @@ snapshots: package-json-from-dist: 1.0.0 path-scurry: 1.11.1 - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} + + globals@15.11.0: {} globby@11.1.0: dependencies: @@ -4977,12 +5427,9 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - imurmurhash@0.1.4: {} + import-lazy@4.0.0: {} - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 + imurmurhash@0.1.4: {} inherits@2.0.4: {} @@ -5002,8 +5449,6 @@ snapshots: is-number@7.0.0: {} - is-path-inside@3.0.3: {} - is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 @@ -5041,6 +5486,8 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jju@1.4.0: {} + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -5058,6 +5505,8 @@ snapshots: json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} json5@2.2.3: {} @@ -5076,11 +5525,18 @@ snapshots: dependencies: json-buffer: 3.0.1 + kolorist@1.8.0: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + local-pkg@0.5.0: + dependencies: + mlly: 1.7.2 + pkg-types: 1.2.1 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -5116,6 +5572,10 @@ snapshots: dependencies: yallist: 3.1.1 + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + lz-string@1.5.0: {} magic-string@0.30.11: @@ -5399,6 +5859,10 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} + minimatch@3.0.8: + dependencies: + brace-expansion: 1.1.11 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -5419,6 +5883,13 @@ snapshots: dependencies: minimist: 1.2.8 + mlly@1.7.2: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + mri@1.2.0: {} mrmime@2.0.0: {} @@ -5463,10 +5934,6 @@ snapshots: object-inspect@1.13.2: {} - once@1.4.0: - dependencies: - wrappy: 1.0.2 - oniguruma-to-js@0.4.3: dependencies: regex: 4.3.2 @@ -5524,8 +5991,6 @@ snapshots: path-exists@4.0.0: {} - path-is-absolute@1.0.1: {} - path-key@3.1.1: {} path-parse@1.0.7: {} @@ -5557,6 +6022,12 @@ snapshots: dependencies: find-up: 4.1.0 + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.2 + pathe: 1.1.2 + playwright-core@1.47.2: {} playwright@1.47.2: @@ -5640,6 +6111,8 @@ snapshots: require-directory@2.1.1: {} + require-from-string@2.0.2: {} + requires-port@1.0.0: {} resolve-from@4.0.0: {} @@ -5656,10 +6129,6 @@ snapshots: rfdc@1.4.1: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - rollup-plugin-dts@6.1.1(rollup@4.24.0)(typescript@5.6.2): dependencies: magic-string: 0.30.11 @@ -5726,6 +6195,10 @@ snapshots: semver@6.3.1: {} + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + semver@7.6.3: {} serialize-javascript@6.0.2: @@ -5846,6 +6319,8 @@ snapshots: strict-event-emitter@0.5.1: {} + string-argv@0.3.2: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -5887,6 +6362,10 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + supports-preserve-symlinks-flag@1.0.0: {} tabbable@6.2.0: {} @@ -5973,16 +6452,29 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@0.20.2: {} - type-fest@0.21.3: {} type-fest@4.26.1: {} + typescript-eslint@8.10.0(eslint@9.13.0)(typescript@5.6.2): + dependencies: + '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0)(typescript@5.6.2))(eslint@9.13.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0)(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - eslint + - supports-color + + typescript@5.4.2: {} + typescript@5.5.2: {} typescript@5.6.2: {} + ufo@1.5.4: {} + undici-types@5.26.5: {} undici-types@6.19.8: {} @@ -6064,6 +6556,25 @@ snapshots: - supports-color - terser + vite-plugin-dts@4.2.4(@types/node@22.5.5)(rollup@4.24.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.5.5)(terser@5.32.0)): + dependencies: + '@microsoft/api-extractor': 7.47.7(@types/node@22.5.5) + '@rollup/pluginutils': 5.1.0(rollup@4.24.0) + '@volar/typescript': 2.4.6 + '@vue/language-core': 2.1.6(typescript@5.6.2) + compare-versions: 6.1.1 + debug: 4.3.6 + kolorist: 1.8.0 + local-pkg: 0.5.0 + magic-string: 0.30.11 + typescript: 5.6.2 + optionalDependencies: + vite: 5.4.8(@types/node@22.5.5)(terser@5.32.0) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + vite-plugin-wasm@3.3.0(vite@5.4.8(@types/node@20.16.10)(terser@5.32.0)): dependencies: vite: 5.4.8(@types/node@20.16.10)(terser@5.32.0) @@ -6176,6 +6687,8 @@ snapshots: - supports-color - terser + vscode-uri@3.0.8: {} + vue-demi@0.14.10(vue@3.5.10(typescript@5.6.2)): dependencies: vue: 3.5.10(typescript@5.6.2) @@ -6235,8 +6748,6 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 - wrappy@1.0.2: {} - ws@8.18.0: {} y18n@5.0.8: {} @@ -6245,6 +6756,8 @@ snapshots: yallist@3.1.1: {} + yallist@4.0.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: