diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index ba8f989..59ed558 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,4 @@
{
- "packages/sdk": "0.1.0"
+ "packages/sdk": "0.1.0",
+ "packages/react": "0.0.0"
}
\ No newline at end of file
diff --git a/packages/react/.gitignore b/packages/react/.gitignore
new file mode 100644
index 0000000..88ad144
--- /dev/null
+++ b/packages/react/.gitignore
@@ -0,0 +1,26 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+*.tsbuildinfo
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/packages/react/README.md b/packages/react/README.md
new file mode 100644
index 0000000..5887056
--- /dev/null
+++ b/packages/react/README.md
@@ -0,0 +1,84 @@
+# Sprinter React SDK
+
+The Sprinter React SDK is a React wrapper for the [Sprinter SDK](https://github.com/ChainSafe/sprinter-sdk), enabling easy interaction with blockchain networks through React components and hooks. It provides context management and custom hooks for retrieving balances, tokens, supported chains, and solutions for asset transfers.
+
+## Installation
+
+To install the package, use npm or yarn:
+
+```bash
+npm install @chainsafe/sprinter-react
+# or
+yarn add @chainsafe/sprinter-react
+```
+
+## Usage
+
+Wrap your application in the `SprinterContext` to gain access to blockchain-related data within your component tree.
+
+### Example
+
+```tsx
+import React from 'react';
+import { SprinterContext } from '@chainsafe/sprinter-react';
+
+const App = () => (
+
+
+
+);
+
+export default App;
+```
+
+Inside your components, you can use the provided hooks to interact with blockchain data:
+
+```tsx
+import React, { useEffect } from 'react';
+import { useSprinterBalances, useSprinterTokens } from '@chainsafe/sprinter-react';
+
+const YourComponent = () => {
+ const ownerAddress = "0xYourAddressHere";
+ const { balances, getUserBalances } = useSprinterBalances(ownerAddress);
+
+ useEffect(() => {
+ getUserBalances();
+ }, [getUserBalances]);
+
+ return (
+
+
Balances:
+
{JSON.stringify(balances, null, 2)}
+
Available Tokens:
+
{JSON.stringify(tokens, null, 2)}
+
+ );
+};
+
+export default YourComponent;
+```
+
+### Available Hooks
+
+The following hooks are provided by the SDK:
+
+- **`useSprinter()`**: Access everything from the Sprinter context.
+- **`useSprinterBalances(account: Address)`**: Retrieve user balances for a given account.
+- **`useSprinterTokens()`**: Retrieve available tokens.
+- **`useSprinterChains()`**: Retrieve available blockchain chains.
+- **`useSprinterSolution()`**: Retrieve solutions for asset transfers.
+- **`useSprinterCallSolution()`**: Call solutions for transferring assets.
+
+### Custom Fetch Options
+
+You can pass custom fetch options when initializing the context:
+
+```tsx
+
+
+
+```
+
+## Contributing
+
+Contributions are welcome! Feel free to open issues or submit pull requests for new features or bug fixes.
diff --git a/packages/react/eslint.config.js b/packages/react/eslint.config.js
new file mode 100644
index 0000000..092408a
--- /dev/null
+++ b/packages/react/eslint.config.js
@@ -0,0 +1,28 @@
+import js from '@eslint/js'
+import globals from 'globals'
+import reactHooks from 'eslint-plugin-react-hooks'
+import reactRefresh from 'eslint-plugin-react-refresh'
+import tseslint from 'typescript-eslint'
+
+export default tseslint.config(
+ { ignores: ['dist'] },
+ {
+ extends: [js.configs.recommended, ...tseslint.configs.recommended],
+ files: ['**/*.{ts,tsx}'],
+ languageOptions: {
+ ecmaVersion: 2020,
+ globals: globals.browser,
+ },
+ plugins: {
+ 'react-hooks': reactHooks,
+ 'react-refresh': reactRefresh,
+ },
+ rules: {
+ ...reactHooks.configs.recommended.rules,
+ 'react-refresh/only-export-components': [
+ 'warn',
+ { allowConstantExport: true },
+ ],
+ },
+ },
+)
diff --git a/packages/react/index.html b/packages/react/index.html
new file mode 100644
index 0000000..e4b78ea
--- /dev/null
+++ b/packages/react/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + React + TS
+
+
+
+
+
+
diff --git a/packages/react/lib/context.tsx b/packages/react/lib/context.tsx
new file mode 100644
index 0000000..74bce56
--- /dev/null
+++ b/packages/react/lib/context.tsx
@@ -0,0 +1,49 @@
+import {createContext, ReactNode, useEffect, useState} from "react";
+import {type FetchOptions, Sprinter} from "@chainsafe/sprinter-sdk";
+import {useTokens} from "./internal/useTokens.ts";
+import {useChains} from "./internal/useChains.ts";
+import {useSolution} from "./internal/useSolution.ts";
+import {useCallSolution} from "./internal/useCallSolution.ts";
+import {useBalances} from "./internal/useBalances.ts";
+
+type SprinterContext = ReturnType & ReturnType & ReturnType & ReturnType & ReturnType;
+
+export const Context = createContext(null);
+
+interface SprinterContextProps {
+ children?: ReactNode | undefined;
+ fetchOptions?: Omit;
+}
+
+export function SprinterContext({ children, fetchOptions }: SprinterContextProps) {
+ const [sprinter] = useState(new Sprinter(fetchOptions));
+
+ /** Balances */
+ const { balances, getUserBalances } = useBalances(sprinter);
+
+ /** Tokens */
+ const { tokens, getAvailableTokens } = useTokens(sprinter);
+
+ /** Chains */
+ const { chains, getAvailableChains } = useChains(sprinter);
+
+ /** Solutions */
+ const { solution, getSolution } = useSolution(sprinter);
+
+ /** Call Solution */
+ const { callSolution, getCallSolution } = useCallSolution(sprinter);
+
+ /** Initialization */
+ useEffect(() => {
+ getAvailableTokens();
+ getAvailableChains();
+ }, [sprinter]);
+
+ return {children};
+}
diff --git a/packages/react/lib/hooks.ts b/packages/react/lib/hooks.ts
new file mode 100644
index 0000000..bfcd00e
--- /dev/null
+++ b/packages/react/lib/hooks.ts
@@ -0,0 +1,53 @@
+import {useCallback, useContext} from "react";
+import {Context} from "./context.tsx";
+import {Address} from "@chainsafe/sprinter-sdk";
+import {BalancesEntry} from "./internal/useBalances.ts";
+
+/** Everything from context */
+export function useSprinter() {
+ const context = useContext(Context);
+
+ if (!context) throw new Error('Sprinter Context is not defined');
+
+ return context;
+}
+
+/** Balances */
+const balancesEmptyState = {
+ data: null,
+ loading: false,
+ error: null,
+};
+
+export function useSprinterBalances(account: Address) {
+ const { balances: _balances, getUserBalances: _getUserBalances } = useSprinter();
+
+ const balances: BalancesEntry = _balances[account] || balancesEmptyState;
+ const getUserBalances = useCallback(() => _getUserBalances(account), [account]);
+
+ return { balances, getUserBalances };
+}
+
+/** Tokens */
+export function useSprinterTokens() {
+ const { tokens, getAvailableTokens } = useSprinter();
+ return { tokens, getAvailableTokens };
+}
+
+/** Chains */
+export function useSprinterChains() {
+ const { chains, getAvailableChains } = useSprinter();
+ return { chains, getAvailableChains };
+}
+
+/** Solutions */
+export function useSprinterSolution() {
+ const { solution, getSolution } = useSprinter();
+ return { solution, getSolution };
+}
+
+/** Call Solution */
+export function useSprinterCallSolution() {
+ const { callSolution, getCallSolution } = useSprinter();
+ return { callSolution, getCallSolution };
+}
diff --git a/packages/react/lib/internal/useAsyncRequest.ts b/packages/react/lib/internal/useAsyncRequest.ts
new file mode 100644
index 0000000..6fa70c9
--- /dev/null
+++ b/packages/react/lib/internal/useAsyncRequest.ts
@@ -0,0 +1,65 @@
+import {useCallback, useReducer} from "react";
+
+const initialState = {
+ data: null,
+ loading: false,
+ error: null,
+};
+
+export function useAsyncRequest() {
+ const [state, dispatch] = useReducer(fetchReducer, initialState as AsyncRequestState);
+
+ const makeRequest = useCallback((request: Promise) => {
+ dispatch({ type: RequestAction.INIT });
+
+ request.then(result => {
+ dispatch({ type: RequestAction.SUCCESS, payload: result });
+ }).catch((error: Error) => {
+ dispatch({ type: RequestAction.FAILURE, error: error.message });
+ });
+ }, [dispatch]);
+
+ return { state, makeRequest };
+}
+
+enum RequestAction {
+ INIT = 'REQUEST_INIT',
+ SUCCESS = 'REQUEST_SUCCESS',
+ FAILURE = "REQUEST_FAILURE",
+}
+
+export interface AsyncRequestState {
+ data: T | null;
+ loading: boolean;
+ error: string | null;
+}
+
+type AsyncRequestActions =
+ | { type: RequestAction.INIT }
+ | { type: RequestAction.SUCCESS; payload: T }
+ | { type: RequestAction.FAILURE; error: string };
+
+const fetchReducer = (state: AsyncRequestState, action: AsyncRequestActions): AsyncRequestState => {
+ switch (action.type) {
+ case RequestAction.INIT:
+ return {
+ ...state,
+ loading: true,
+ error: null,
+ };
+ case RequestAction.SUCCESS:
+ return {
+ ...state,
+ loading: false,
+ data: action.payload,
+ };
+ case RequestAction.FAILURE:
+ return {
+ ...state,
+ loading: false,
+ error: action.error,
+ };
+ default:
+ throw new Error('Unknown action type');
+ }
+};
diff --git a/packages/react/lib/internal/useBalances.ts b/packages/react/lib/internal/useBalances.ts
new file mode 100644
index 0000000..6fef382
--- /dev/null
+++ b/packages/react/lib/internal/useBalances.ts
@@ -0,0 +1,73 @@
+import {useCallback, useReducer} from "react";
+import {Address, AggregateBalances, Sprinter} from "@chainsafe/sprinter-sdk";
+
+const initialState: BalancesState = {};
+
+export function useBalances(sprinter: Sprinter) {
+ const [balances, dispatch] = useReducer(balancesReducer, initialState);
+
+ const getUserBalances = useCallback((account: Address) => {
+ dispatch({ type: BalanceAction.INIT, address: account });
+
+ sprinter.getUserBalances(account).then(result => {
+ dispatch({ type: BalanceAction.SUCCESS, payload: result, address: account });
+ }).catch((error: Error) => {
+ dispatch({ type: BalanceAction.FAILURE, error: error.message, address: account });
+ });
+ }, [sprinter, dispatch]);
+
+ return {balances, getUserBalances};
+}
+
+enum BalanceAction {
+ INIT = 'REQUEST_INIT',
+ SUCCESS = 'REQUEST_SUCCESS',
+ FAILURE = "REQUEST_FAILURE",
+}
+
+export interface BalancesEntry {
+ data: AggregateBalances | null;
+ loading: boolean;
+ error: string | null;
+}
+
+type BalancesState = Record;
+
+type BalanceActions =
+ | { type: BalanceAction.INIT; address: Address }
+ | { type: BalanceAction.SUCCESS; payload: AggregateBalances; address: Address }
+ | { type: BalanceAction.FAILURE; error: string; address: Address };
+
+function balancesReducer(state: BalancesState, action: BalanceActions): BalancesState {
+ switch (action.type) {
+ case BalanceAction.INIT:
+ return {
+ ...state,
+ [action.address]: {
+ ...state[action.address],
+ loading: true,
+ error: null,
+ }
+ }
+ case BalanceAction.SUCCESS:
+ return {
+ ...state,
+ [action.address]: {
+ ...state[action.address],
+ loading: false,
+ data: action.payload,
+ }
+ }
+ case BalanceAction.FAILURE:
+ return {
+ ...state,
+ [action.address]: {
+ ...state[action.address],
+ loading: false,
+ error: action.error,
+ }
+ }
+ default:
+ throw Error('Unknown action type');
+ }
+}
diff --git a/packages/react/lib/internal/useCallSolution.ts b/packages/react/lib/internal/useCallSolution.ts
new file mode 100644
index 0000000..825c07c
--- /dev/null
+++ b/packages/react/lib/internal/useCallSolution.ts
@@ -0,0 +1,28 @@
+import {
+ Address,
+ ChainID, ContractCallSolutionOptions,
+ type SolutionResponse,
+ Sprinter,
+ TokenSymbol
+} from "@chainsafe/sprinter-sdk";
+import {useCallback} from "react";
+import { useAsyncRequest} from "./useAsyncRequest.ts";
+
+export function useCallSolution(sprinter: Sprinter) {
+ const { state: callSolution, makeRequest } = useAsyncRequest();
+
+ const getCallSolution = useCallback((account: Address,
+ destinationChain: ChainID,
+ token: TokenSymbol,
+ amount: number,
+ contractCall: ContractCallSolutionOptions,
+ threshold?: number,
+ whitelistedSourceChains?: ChainID[],
+ ) => {
+ makeRequest(sprinter.getCallSolution({
+ account, destinationChain, token, amount, threshold, whitelistedSourceChains, contractCall
+ }));
+ }, [sprinter, makeRequest]);
+
+ return { callSolution, getCallSolution };
+}
diff --git a/packages/react/lib/internal/useChains.ts b/packages/react/lib/internal/useChains.ts
new file mode 100644
index 0000000..06e0161
--- /dev/null
+++ b/packages/react/lib/internal/useChains.ts
@@ -0,0 +1,13 @@
+import {type Chain, Sprinter} from "@chainsafe/sprinter-sdk";
+import {useCallback} from "react";
+import {useAsyncRequest} from "./useAsyncRequest.ts";
+
+export function useChains(sprinter: Sprinter) {
+ const { state: chains, makeRequest } = useAsyncRequest();
+
+ const getAvailableChains = useCallback(() => {
+ makeRequest(sprinter.getAvailableChains());
+ }, [sprinter, makeRequest]);
+
+ return { chains, getAvailableChains };
+}
diff --git a/packages/react/lib/internal/useSolution.ts b/packages/react/lib/internal/useSolution.ts
new file mode 100644
index 0000000..a47ee27
--- /dev/null
+++ b/packages/react/lib/internal/useSolution.ts
@@ -0,0 +1,28 @@
+import {
+ Address,
+ ChainID,
+ type SolutionResponse,
+ Sprinter,
+ TokenSymbol
+} from "@chainsafe/sprinter-sdk";
+import {useCallback} from "react";
+import {useAsyncRequest} from "./useAsyncRequest.ts";
+
+export function useSolution(sprinter: Sprinter) {
+ const { state: solution, makeRequest } = useAsyncRequest();
+
+ const getSolution = useCallback((
+ account: Address,
+ destinationChain: ChainID,
+ token: TokenSymbol,
+ amount: number,
+ threshold?: number,
+ whitelistedSourceChains?: ChainID[],
+ ) => {
+ makeRequest(sprinter.getSolution({
+ account, destinationChain, token, amount, threshold, whitelistedSourceChains,
+ }));
+ }, [sprinter, makeRequest]);
+
+ return { solution, getSolution };
+}
diff --git a/packages/react/lib/internal/useTokens.ts b/packages/react/lib/internal/useTokens.ts
new file mode 100644
index 0000000..93c5180
--- /dev/null
+++ b/packages/react/lib/internal/useTokens.ts
@@ -0,0 +1,13 @@
+import {type FungibleToken, Sprinter} from "@chainsafe/sprinter-sdk";
+import {useCallback} from "react";
+import {useAsyncRequest} from "./useAsyncRequest.ts";
+
+export function useTokens(sprinter: Sprinter) {
+ const { state: tokens, makeRequest } = useAsyncRequest();
+
+ const getAvailableTokens = useCallback(() => {
+ makeRequest(sprinter.getAvailableTokens());
+ }, [sprinter, makeRequest]);
+
+ return { tokens, getAvailableTokens };
+}
diff --git a/packages/react/lib/main.ts b/packages/react/lib/main.ts
new file mode 100644
index 0000000..487ab4f
--- /dev/null
+++ b/packages/react/lib/main.ts
@@ -0,0 +1 @@
+export { SprinterContext } from './context';
diff --git a/packages/react/package.json b/packages/react/package.json
new file mode 100644
index 0000000..ceddd47
--- /dev/null
+++ b/packages/react/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "@chainsafe/sprinter-react",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "main": "dist/main.js",
+ "types": "dist/main.d.ts",
+ "files": [
+ "dist"
+ ],
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc -b ./tsconfig.lib.json && vite build",
+ "lint": "eslint .",
+ "preview": "vite preview"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1"
+ },
+ "devDependencies": {
+ "@eslint/js": "^9.9.0",
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
+ "@vitejs/plugin-react": "^4.3.1",
+ "eslint": "^9.9.0",
+ "eslint-plugin-react-hooks": "^5.1.0-rc.0",
+ "eslint-plugin-react-refresh": "^0.4.9",
+ "glob": "^11.0.0",
+ "globals": "^15.9.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "typescript": "^5.5.3",
+ "typescript-eslint": "^8.0.1",
+ "vite": "^5.4.1",
+ "vite-plugin-dts": "^4.2.1"
+ },
+ "dependencies": {
+ "@chainsafe/sprinter-sdk": "workspace:^"
+ }
+}
diff --git a/packages/react/public/vite.svg b/packages/react/public/vite.svg
new file mode 100644
index 0000000..e7b8dfb
--- /dev/null
+++ b/packages/react/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/react/src/Action.tsx b/packages/react/src/Action.tsx
new file mode 100644
index 0000000..6054888
--- /dev/null
+++ b/packages/react/src/Action.tsx
@@ -0,0 +1,10 @@
+import {useSprinterBalances} from "../lib/hooks.ts";
+
+export function Action() {
+ const hook = useSprinterBalances("0x3E101Ec02e7A48D16DADE204C96bFF842E7E2519");
+
+ return ()
+}
\ No newline at end of file
diff --git a/packages/react/src/App.css b/packages/react/src/App.css
new file mode 100644
index 0000000..b9d355d
--- /dev/null
+++ b/packages/react/src/App.css
@@ -0,0 +1,42 @@
+#root {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ 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);
+}
+
+@keyframes logo-spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ a:nth-of-type(2) .logo {
+ animation: logo-spin infinite 20s linear;
+ }
+}
+
+.card {
+ padding: 2em;
+}
+
+.read-the-docs {
+ color: #888;
+}
diff --git a/packages/react/src/App.tsx b/packages/react/src/App.tsx
new file mode 100644
index 0000000..c5c4fd4
--- /dev/null
+++ b/packages/react/src/App.tsx
@@ -0,0 +1,32 @@
+import { useState } from 'react'
+import './App.css'
+import {SprinterContext} from "../lib/main.ts";
+import {Component} from "./Component.tsx";
+import {Action} from "./Action.tsx";
+
+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
+
+
+ )
+}
+
+export default App
diff --git a/packages/react/src/Component.tsx b/packages/react/src/Component.tsx
new file mode 100644
index 0000000..bc57ef3
--- /dev/null
+++ b/packages/react/src/Component.tsx
@@ -0,0 +1,12 @@
+import { useEffect } from 'react';
+import {useSprinterTokens} from "../lib/hooks.ts";
+
+export function Component() {
+ const hook = useSprinterTokens();
+
+ useEffect(() => {
+ hook.getAvailableTokens();
+ }, []);
+
+ return A component
;
+}
diff --git a/packages/react/src/assets/react.svg b/packages/react/src/assets/react.svg
new file mode 100644
index 0000000..6c87de9
--- /dev/null
+++ b/packages/react/src/assets/react.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/react/src/index.css b/packages/react/src/index.css
new file mode 100644
index 0000000..6119ad9
--- /dev/null
+++ b/packages/react/src/index.css
@@ -0,0 +1,68 @@
+:root {
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ font-weight: 400;
+
+ color-scheme: light dark;
+ color: rgba(255, 255, 255, 0.87);
+ background-color: #242424;
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+a {
+ font-weight: 500;
+ color: #646cff;
+ text-decoration: inherit;
+}
+a:hover {
+ color: #535bf2;
+}
+
+body {
+ margin: 0;
+ display: flex;
+ place-items: center;
+ min-width: 320px;
+ min-height: 100vh;
+}
+
+h1 {
+ font-size: 3.2em;
+ line-height: 1.1;
+}
+
+button {
+ border-radius: 8px;
+ border: 1px solid transparent;
+ padding: 0.6em 1.2em;
+ font-size: 1em;
+ font-weight: 500;
+ font-family: inherit;
+ background-color: #1a1a1a;
+ cursor: pointer;
+ transition: border-color 0.25s;
+}
+button:hover {
+ border-color: #646cff;
+}
+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
new file mode 100644
index 0000000..6f4ac9b
--- /dev/null
+++ b/packages/react/src/main.tsx
@@ -0,0 +1,10 @@
+import { StrictMode } from 'react'
+import { createRoot } from 'react-dom/client'
+import App from './App.tsx'
+import './index.css'
+
+createRoot(document.getElementById('root')!).render(
+
+
+ ,
+)
diff --git a/packages/react/src/vite-env.d.ts b/packages/react/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/packages/react/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/react/tsconfig.app.json b/packages/react/tsconfig.app.json
new file mode 100644
index 0000000..f0a2350
--- /dev/null
+++ b/packages/react/tsconfig.app.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+ "jsx": "react-jsx",
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"]
+}
diff --git a/packages/react/tsconfig.json b/packages/react/tsconfig.json
new file mode 100644
index 0000000..1ffef60
--- /dev/null
+++ b/packages/react/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ]
+}
diff --git a/packages/react/tsconfig.lib.json b/packages/react/tsconfig.lib.json
new file mode 100644
index 0000000..733a0de
--- /dev/null
+++ b/packages/react/tsconfig.lib.json
@@ -0,0 +1,4 @@
+{
+ "extends": "./tsconfig.app.json",
+ "include": ["lib"]
+}
\ No newline at end of file
diff --git a/packages/react/tsconfig.node.json b/packages/react/tsconfig.node.json
new file mode 100644
index 0000000..0d3d714
--- /dev/null
+++ b/packages/react/tsconfig.node.json
@@ -0,0 +1,22 @@
+{
+ "compilerOptions": {
+ "target": "ES2022",
+ "lib": ["ES2023"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/packages/react/vite.config.ts b/packages/react/vite.config.ts
new file mode 100644
index 0000000..a1a3055
--- /dev/null
+++ b/packages/react/vite.config.ts
@@ -0,0 +1,41 @@
+import { defineConfig } from 'vite'
+import { extname, relative, resolve } from 'path'
+import { fileURLToPath } from 'node:url'
+import react from '@vitejs/plugin-react'
+import dts from 'vite-plugin-dts'
+import { glob } from 'glob'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [react(), dts({ tsconfigPath: resolve(__dirname, "tsconfig.lib.json"), })],
+ build: {
+ copyPublicDir: false,
+ lib: {
+ entry: resolve(__dirname, 'lib/main.ts'),
+ formats: ['es']
+ },
+ rollupOptions: {
+ external: ['react', 'react/jsx-runtime'],
+ input: Object.fromEntries(
+ // https://rollupjs.org/configuration-options/#input
+ glob.sync('lib/**/*.{ts,tsx}', {
+ ignore: ["lib/**/*.d.ts"],
+ }).map(file => [
+ // 1. The name of the entry point
+ // lib/nested/foo.js becomes nested/foo
+ relative(
+ 'lib',
+ file.slice(0, file.length - extname(file).length)
+ ),
+ // 2. The absolute path to the entry file
+ // lib/nested/foo.ts becomes /project/lib/nested/foo.ts
+ fileURLToPath(new URL(file, import.meta.url))
+ ])
+ ),
+ output: {
+ assetFileNames: 'assets/[name][extname]',
+ entryFileNames: '[name].js',
+ }
+ }
+ },
+})
diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts
index 34fe716..b1841ea 100644
--- a/packages/sdk/src/index.ts
+++ b/packages/sdk/src/index.ts
@@ -11,6 +11,7 @@ import {
} from "./api";
import type {
Address,
+ AggregateBalances,
Chain,
ContractSolutionOptions,
FetchOptions,
@@ -29,6 +30,7 @@ class Sprinter {
// in memory "cache"
#tokens?: FungibleToken[];
#chains?: Chain[];
+ #requests: Record> = {};
#fetchOptions: Omit;
@@ -40,7 +42,9 @@ class Sprinter {
options: FetchOptions = {},
): Promise {
if (!this.#tokens)
- this.#tokens = await getFungibleTokens(this.makeFetchOptions(options));
+ this.#tokens = await this.deferredRequest("tokens", () =>
+ getFungibleTokens(this.makeFetchOptions(options)),
+ );
return this.#tokens;
}
@@ -48,7 +52,9 @@ class Sprinter {
options: FetchOptions = {},
): Promise {
if (!this.#chains)
- this.#chains = await getSupportedChains(this.makeFetchOptions(options));
+ this.#chains = await this.deferredRequest("chains", () =>
+ getSupportedChains(this.makeFetchOptions(options)),
+ );
return this.#chains;
}
@@ -56,25 +62,26 @@ class Sprinter {
account: Address,
tokens?: FungibleToken[],
options: FetchOptions = {},
- ): Promise<{
- [sybol: TokenSymbol]: { balances: TokenBalance[]; total: string };
- }> {
+ ): Promise {
const tokenList = tokens || (await this.getAvailableTokens(options));
- const [balances, nativeTokens] = await Promise.all([
- Promise.all(
- tokenList.map((token) =>
- getUserFungibleTokens(account, token.symbol, options).then(
- (balances) => ({
- symbol: token.symbol,
- balances,
- }),
+ const [balances, nativeTokens] = await this.deferredRequest(
+ `balances-${account}`,
+ () =>
+ Promise.all([
+ Promise.all(
+ tokenList.map((token) =>
+ getUserFungibleTokens(account, token.symbol, options).then(
+ (balances) => ({
+ symbol: token.symbol,
+ balances,
+ }),
+ ),
+ ),
),
- ),
- ),
- getUserNativeTokens(account, options),
- ]);
-
+ getUserNativeTokens(account, options),
+ ]),
+ );
return balances.reduce(
(previousValue, { symbol, balances }) => {
previousValue[symbol] = {
@@ -140,6 +147,22 @@ class Sprinter {
);
}
+ private deferredRequest(
+ name: string,
+ request: () => Promise,
+ ): Promise {
+ if (!(name in this.#requests)) {
+ this.#requests[name] = request();
+ void this.#requests[name].finally(() => {
+ void setTimeout(() => {
+ delete this.#requests[name];
+ }, 1000);
+ });
+ }
+
+ return this.#requests[name] as Promise;
+ }
+
private makeFetchOptions(options: FetchOptions): FetchOptions {
return { ...this.#fetchOptions, ...options };
}
diff --git a/packages/sdk/src/types.ts b/packages/sdk/src/types.ts
index 5a3ef09..e262668 100644
--- a/packages/sdk/src/types.ts
+++ b/packages/sdk/src/types.ts
@@ -28,6 +28,10 @@ export interface TokenBalance {
tokenDecimals: number;
}
+export type AggregateBalances = {
+ [symbol: TokenSymbol]: { balances: TokenBalance[]; total: string };
+};
+
export type FungibleTokenBalance = TokenBalance;
export type NativeTokenBalance = TokenBalance;
diff --git a/release-please-config.json b/release-please-config.json
index 7beb9dc..5642528 100644
--- a/release-please-config.json
+++ b/release-please-config.json
@@ -9,6 +9,15 @@
"bumpPatchForMinorPreMajor": false,
"changelogPath": "CHANGELOG.md",
"versioning": "default"
+ },
+ "packages/react": {
+ "releaseType": "node",
+ "draft": false,
+ "prerelease": false,
+ "bumpMinorPreMajor": false,
+ "bumpPatchForMinorPreMajor": false,
+ "changelogPath": "CHANGELOG.md",
+ "versioning": "default"
}
}
}
\ No newline at end of file
diff --git a/web/src/lib/stores/sprinter.ts b/web/src/lib/stores/sprinter.ts
index dbcf0b9..cf28c7f 100644
--- a/web/src/lib/stores/sprinter.ts
+++ b/web/src/lib/stores/sprinter.ts
@@ -7,7 +7,7 @@ setBaseUrl('https://api.test.sprinter.buildwithsygma.com/');
export const sprinter = writable();
selectedProvider.subscribe((event) => {
- if (event) sprinter.set(new Sprinter(event.provider));
+ if (event) sprinter.set(new Sprinter());
});
export const SPRINTER_SEPOLIA_ADDRESS = '0xf70fb86F700E8Bb7cDf1c20197633518235c3425';
diff --git a/yarn.lock b/yarn.lock
index e88e2d6..06c09f8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -320,7 +320,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/core@npm:^7.18.5, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.3":
+"@babel/core@npm:^7.18.5, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.3, @babel/core@npm:^7.24.5":
version: 7.25.2
resolution: "@babel/core@npm:7.25.2"
dependencies:
@@ -582,6 +582,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7":
+ version: 7.25.6
+ resolution: "@babel/parser@npm:7.25.6"
+ dependencies:
+ "@babel/types": "npm:^7.25.6"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10c0/f88a0e895dbb096fd37c4527ea97d12b5fc013720602580a941ac3a339698872f0c911e318c292b184c36b5fbe23b612f05aff9d24071bc847c7b1c21552c41d
+ languageName: node
+ linkType: hard
+
"@babel/parser@npm:^7.21.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.3":
version: 7.25.3
resolution: "@babel/parser@npm:7.25.3"
@@ -1378,6 +1389,28 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-react-jsx-self@npm:^7.24.5":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/dcf3b732401f47f06bb29d6016e48066f66de00029a0ded98ddd9983c770a00a109d91cd04d2700d15ee0bcec3ae3027a5f12d69e15ec56efc0bcbfac65e92cb
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-source@npm:^7.24.1":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/970ef1264c7c6c416ab11610665d5309aec2bd2b9086ae394e1132e65138d97b060a7dc9d31054e050d6dc475b5a213938c9707c0202a5022d55dcb4c5abe28f
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-react-jsx@npm:^7.24.7":
version: 7.25.2
resolution: "@babel/plugin-transform-react-jsx@npm:7.25.2"
@@ -1751,6 +1784,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.6":
+ version: 7.25.6
+ resolution: "@babel/types@npm:7.25.6"
+ dependencies:
+ "@babel/helper-string-parser": "npm:^7.24.8"
+ "@babel/helper-validator-identifier": "npm:^7.24.7"
+ to-fast-properties: "npm:^2.0.0"
+ checksum: 10c0/89d45fbee24e27a05dca2d08300a26b905bd384a480448823f6723c72d3a30327c517476389b7280ce8cb9a2c48ef8f47da7f9f6d326faf6f53fd6b68237bdc4
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.21.3, @babel/types@npm:^7.21.5, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.4.4":
version: 7.25.2
resolution: "@babel/types@npm:7.25.2"
@@ -1791,6 +1835,32 @@ __metadata:
languageName: node
linkType: hard
+"@chainsafe/sprinter-react@workspace:packages/react":
+ version: 0.0.0-use.local
+ resolution: "@chainsafe/sprinter-react@workspace:packages/react"
+ dependencies:
+ "@chainsafe/sprinter-sdk": "workspace:^"
+ "@eslint/js": "npm:^9.9.0"
+ "@types/react": "npm:^18.3.3"
+ "@types/react-dom": "npm:^18.3.0"
+ "@vitejs/plugin-react": "npm:^4.3.1"
+ eslint: "npm:^9.9.0"
+ eslint-plugin-react-hooks: "npm:^5.1.0-rc.0"
+ eslint-plugin-react-refresh: "npm:^0.4.9"
+ glob: "npm:^11.0.0"
+ globals: "npm:^15.9.0"
+ react: "npm:^18.3.1"
+ react-dom: "npm:^18.3.1"
+ typescript: "npm:^5.5.3"
+ typescript-eslint: "npm:^8.0.1"
+ vite: "npm:^5.4.1"
+ vite-plugin-dts: "npm:^4.2.1"
+ peerDependencies:
+ react: ^18.3.1
+ react-dom: ^18.3.1
+ languageName: unknown
+ linkType: soft
+
"@chainsafe/sprinter-sdk@workspace:^, @chainsafe/sprinter-sdk@workspace:packages/sdk":
version: 0.0.0-use.local
resolution: "@chainsafe/sprinter-sdk@workspace:packages/sdk"
@@ -2822,6 +2892,24 @@ __metadata:
languageName: node
linkType: hard
+"@eslint-community/regexpp@npm:^4.11.0":
+ version: 4.11.1
+ resolution: "@eslint-community/regexpp@npm:4.11.1"
+ checksum: 10c0/fbcc1cb65ef5ed5b92faa8dc542e035269065e7ebcc0b39c81a4fe98ad35cfff20b3c8df048641de15a7757e07d69f85e2579c1a5055f993413ba18c055654f8
+ languageName: node
+ linkType: hard
+
+"@eslint/config-array@npm:^0.18.0":
+ version: 0.18.0
+ resolution: "@eslint/config-array@npm:0.18.0"
+ dependencies:
+ "@eslint/object-schema": "npm:^2.1.4"
+ debug: "npm:^4.3.1"
+ minimatch: "npm:^3.1.2"
+ checksum: 10c0/0234aeb3e6b052ad2402a647d0b4f8a6aa71524bafe1adad0b8db1dfe94d7f5f26d67c80f79bb37ac61361a1d4b14bb8fb475efe501de37263cf55eabb79868f
+ languageName: node
+ linkType: hard
+
"@eslint/eslintrc@npm:^2.1.4":
version: 2.1.4
resolution: "@eslint/eslintrc@npm:2.1.4"
@@ -2839,6 +2927,23 @@ __metadata:
languageName: node
linkType: hard
+"@eslint/eslintrc@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "@eslint/eslintrc@npm:3.1.0"
+ dependencies:
+ ajv: "npm:^6.12.4"
+ debug: "npm:^4.3.2"
+ espree: "npm:^10.0.1"
+ globals: "npm:^14.0.0"
+ ignore: "npm:^5.2.0"
+ import-fresh: "npm:^3.2.1"
+ js-yaml: "npm:^4.1.0"
+ minimatch: "npm:^3.1.2"
+ strip-json-comments: "npm:^3.1.1"
+ checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167
+ languageName: node
+ linkType: hard
+
"@eslint/js@npm:8.57.0":
version: 8.57.0
resolution: "@eslint/js@npm:8.57.0"
@@ -2846,6 +2951,29 @@ __metadata:
languageName: node
linkType: hard
+"@eslint/js@npm:9.11.0, @eslint/js@npm:^9.9.0":
+ version: 9.11.0
+ resolution: "@eslint/js@npm:9.11.0"
+ checksum: 10c0/7403aeba28ba9cae3470d149b334a51375eb7fd850f167555c81cc72fe98e5cc5ac3059ccdbe68eb255a49d7498a7288d25429af0c7d20afeb4b3c0748349bb4
+ languageName: node
+ linkType: hard
+
+"@eslint/object-schema@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@eslint/object-schema@npm:2.1.4"
+ checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda
+ languageName: node
+ linkType: hard
+
+"@eslint/plugin-kit@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "@eslint/plugin-kit@npm:0.2.0"
+ dependencies:
+ levn: "npm:^0.4.1"
+ checksum: 10c0/00b92bc52ad09b0e2bbbb30591c02a895f0bec3376759562590e8a57a13d096b22f8c8773b6bf791a7cf2ea614123b3d592fd006c51ac5fd0edbb90ea6d8760c
+ languageName: node
+ linkType: hard
+
"@ethereumjs/rlp@npm:^4.0.1":
version: 4.0.1
resolution: "@ethereumjs/rlp@npm:4.0.1"
@@ -2945,6 +3073,13 @@ __metadata:
languageName: node
linkType: hard
+"@humanwhocodes/retry@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "@humanwhocodes/retry@npm:0.3.0"
+ checksum: 10c0/7111ec4e098b1a428459b4e3be5a5d2a13b02905f805a2468f4fa628d072f0de2da26a27d04f65ea2846f73ba51f4204661709f05bfccff645e3cedef8781bb6
+ languageName: node
+ linkType: hard
+
"@isaacs/cliui@npm:^8.0.2":
version: 8.0.2
resolution: "@isaacs/cliui@npm:8.0.2"
@@ -3094,6 +3229,59 @@ __metadata:
languageName: node
linkType: hard
+"@microsoft/api-extractor-model@npm:7.29.6":
+ version: 7.29.6
+ resolution: "@microsoft/api-extractor-model@npm:7.29.6"
+ dependencies:
+ "@microsoft/tsdoc": "npm:~0.15.0"
+ "@microsoft/tsdoc-config": "npm:~0.17.0"
+ "@rushstack/node-core-library": "npm:5.7.0"
+ checksum: 10c0/cdf7e69dc6bc04de4a814b2bc126cc4faa5cea5b9b4582f8baf9bd9bd105cc62d5e322c46c6221a8e0934d1539a820ef9f512c112cb16c1bbcc7b06f5e3ba5fd
+ languageName: node
+ linkType: hard
+
+"@microsoft/api-extractor@npm:7.47.7":
+ version: 7.47.7
+ resolution: "@microsoft/api-extractor@npm:7.47.7"
+ dependencies:
+ "@microsoft/api-extractor-model": "npm:7.29.6"
+ "@microsoft/tsdoc": "npm:~0.15.0"
+ "@microsoft/tsdoc-config": "npm:~0.17.0"
+ "@rushstack/node-core-library": "npm:5.7.0"
+ "@rushstack/rig-package": "npm:0.5.3"
+ "@rushstack/terminal": "npm:0.14.0"
+ "@rushstack/ts-command-line": "npm:4.22.6"
+ lodash: "npm:~4.17.15"
+ minimatch: "npm:~3.0.3"
+ resolve: "npm:~1.22.1"
+ semver: "npm:~7.5.4"
+ source-map: "npm:~0.6.1"
+ typescript: "npm:5.4.2"
+ bin:
+ api-extractor: bin/api-extractor
+ checksum: 10c0/f1121b8a2bd559c84d0397ce504561d138e7f1b6e56a0dbd9f71dadfbc8b129f34c512dbfc5f6554b4ca92df9fe00c47e0d7e175b9d6e02726b88ed84878e431
+ languageName: node
+ linkType: hard
+
+"@microsoft/tsdoc-config@npm:~0.17.0":
+ version: 0.17.0
+ resolution: "@microsoft/tsdoc-config@npm:0.17.0"
+ dependencies:
+ "@microsoft/tsdoc": "npm:0.15.0"
+ ajv: "npm:~8.12.0"
+ jju: "npm:~1.4.0"
+ resolve: "npm:~1.22.2"
+ checksum: 10c0/9aa51b5b0fa93ad5c6a40ed1acf1f25c625b616efe29f2e5fa22ee9bddea12a4a39c833726e11ab592f20cfc9b8c3865978864dd02711d457fa971df3c091847
+ languageName: node
+ linkType: hard
+
+"@microsoft/tsdoc@npm:0.15.0, @microsoft/tsdoc@npm:~0.15.0":
+ version: 0.15.0
+ resolution: "@microsoft/tsdoc@npm:0.15.0"
+ checksum: 10c0/6beaf6e01ff54daeba69862cb3d27e03bbabfe299d23d0fade885f5b29bf98af01cecc746d23875fe60ba89514e3b630b71140b1b18d37301096f7a1e35451aa
+ languageName: node
+ linkType: hard
+
"@noble/curves@npm:1.4.0":
version: 1.4.0
resolution: "@noble/curves@npm:1.4.0"
@@ -3569,6 +3757,22 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/pluginutils@npm:^5.1.0":
+ version: 5.1.1
+ resolution: "@rollup/pluginutils@npm:5.1.1"
+ dependencies:
+ "@types/estree": "npm:^1.0.0"
+ estree-walker: "npm:^2.0.2"
+ picomatch: "npm:^2.3.1"
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ checksum: 10c0/433a8b0b67ef9a36fb909a63c5ffa03846e15b6547fec9d2b9e15510dd898de9d1ec3f574aae29749d0e757e269112121a859f204b37becc470f1404e862b1e2
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-android-arm-eabi@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-android-arm-eabi@npm:4.20.0"
@@ -3576,6 +3780,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-android-arm-eabi@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-android-arm64@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-android-arm64@npm:4.20.0"
@@ -3583,6 +3794,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-android-arm64@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-android-arm64@npm:4.22.4"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-darwin-arm64@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-darwin-arm64@npm:4.20.0"
@@ -3590,6 +3808,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-darwin-arm64@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-darwin-x64@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-darwin-x64@npm:4.20.0"
@@ -3597,6 +3822,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-darwin-x64@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-darwin-x64@npm:4.22.4"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0"
@@ -3604,6 +3836,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-arm-musleabihf@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.20.0"
@@ -3611,6 +3850,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-arm-musleabihf@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4"
+ conditions: os=linux & cpu=arm & libc=musl
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-arm64-gnu@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.20.0"
@@ -3618,6 +3864,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-arm64-gnu@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-arm64-musl@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.20.0"
@@ -3625,6 +3878,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-arm64-musl@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0"
@@ -3632,6 +3892,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4"
+ conditions: os=linux & cpu=ppc64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-riscv64-gnu@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.20.0"
@@ -3639,6 +3906,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-riscv64-gnu@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4"
+ conditions: os=linux & cpu=riscv64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-s390x-gnu@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.20.0"
@@ -3646,6 +3920,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-s390x-gnu@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4"
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-x64-gnu@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.20.0"
@@ -3653,6 +3934,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-x64-gnu@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-linux-x64-musl@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-linux-x64-musl@npm:4.20.0"
@@ -3660,6 +3948,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-linux-x64-musl@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-win32-arm64-msvc@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.20.0"
@@ -3667,6 +3962,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-win32-arm64-msvc@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-win32-ia32-msvc@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.20.0"
@@ -3674,6 +3976,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-win32-ia32-msvc@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
"@rollup/rollup-win32-x64-msvc@npm:4.20.0":
version: 4.20.0
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.20.0"
@@ -3681,6 +3990,13 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-win32-x64-msvc@npm:4.22.4":
+ version: 4.22.4
+ resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
"@rushstack/eslint-patch@npm:^1.10.4":
version: 1.10.4
resolution: "@rushstack/eslint-patch@npm:1.10.4"
@@ -3688,6 +4004,64 @@ __metadata:
languageName: node
linkType: hard
+"@rushstack/node-core-library@npm:5.7.0":
+ version: 5.7.0
+ resolution: "@rushstack/node-core-library@npm:5.7.0"
+ dependencies:
+ ajv: "npm:~8.13.0"
+ ajv-draft-04: "npm:~1.0.0"
+ ajv-formats: "npm:~3.0.1"
+ fs-extra: "npm:~7.0.1"
+ import-lazy: "npm:~4.0.0"
+ jju: "npm:~1.4.0"
+ resolve: "npm:~1.22.1"
+ semver: "npm:~7.5.4"
+ peerDependencies:
+ "@types/node": "*"
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ checksum: 10c0/8055c52a9658942a77d78afc5e6d6c6779e8f083024ec741b868da198ccd821a52e7566e848dade2fc8570c235210e114d53fe79d51aaf8d1649960828f73679
+ languageName: node
+ linkType: hard
+
+"@rushstack/rig-package@npm:0.5.3":
+ version: 0.5.3
+ resolution: "@rushstack/rig-package@npm:0.5.3"
+ dependencies:
+ resolve: "npm:~1.22.1"
+ strip-json-comments: "npm:~3.1.1"
+ checksum: 10c0/ef0b0115b60007f965b875f671019ac7fc26592f6bf7d7b40fa8c68e8dc37e9f7dcda3b5533b489ebf04d28a182dc60987bfd365a8d4173c73d482b270647741
+ languageName: node
+ linkType: hard
+
+"@rushstack/terminal@npm:0.14.0":
+ version: 0.14.0
+ resolution: "@rushstack/terminal@npm:0.14.0"
+ dependencies:
+ "@rushstack/node-core-library": "npm:5.7.0"
+ supports-color: "npm:~8.1.1"
+ peerDependencies:
+ "@types/node": "*"
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ checksum: 10c0/9fda5bc7d2c74d9ef52021163acb4a6ff26cc28e4935567c149158a01966051313d6785b5cf2dd9238404181b1766f253153ba0a5aaea4fb9f5c5bb9d708a10b
+ languageName: node
+ linkType: hard
+
+"@rushstack/ts-command-line@npm:4.22.6":
+ version: 4.22.6
+ resolution: "@rushstack/ts-command-line@npm:4.22.6"
+ dependencies:
+ "@rushstack/terminal": "npm:0.14.0"
+ "@types/argparse": "npm:1.0.38"
+ argparse: "npm:~1.0.9"
+ string-argv: "npm:~0.3.1"
+ checksum: 10c0/44905de94dbfe4a9b27ce21fb09b50f92a637349989a61a9d0fee53f38f81d5b779e8cfa8f8a857d0d415db91557b687159522d6b3ecdaa3eccbbff76e608325
+ languageName: node
+ linkType: hard
+
"@scure/base@npm:~1.1.6":
version: 1.1.7
resolution: "@scure/base@npm:1.1.7"
@@ -4387,6 +4761,54 @@ __metadata:
languageName: node
linkType: hard
+"@types/argparse@npm:1.0.38":
+ version: 1.0.38
+ resolution: "@types/argparse@npm:1.0.38"
+ checksum: 10c0/4fc892da5df16923f48180da2d1f4562fa8b0507cf636b24780444fa0a1d7321d4dc0c0ecbee6152968823f5a2ae0d321b4f8c705a489bf1ae1245bdeb0868fd
+ languageName: node
+ linkType: hard
+
+"@types/babel__core@npm:^7.20.5":
+ version: 7.20.5
+ resolution: "@types/babel__core@npm:7.20.5"
+ dependencies:
+ "@babel/parser": "npm:^7.20.7"
+ "@babel/types": "npm:^7.20.7"
+ "@types/babel__generator": "npm:*"
+ "@types/babel__template": "npm:*"
+ "@types/babel__traverse": "npm:*"
+ checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff
+ languageName: node
+ linkType: hard
+
+"@types/babel__generator@npm:*":
+ version: 7.6.8
+ resolution: "@types/babel__generator@npm:7.6.8"
+ dependencies:
+ "@babel/types": "npm:^7.0.0"
+ checksum: 10c0/f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2
+ languageName: node
+ linkType: hard
+
+"@types/babel__template@npm:*":
+ version: 7.4.4
+ resolution: "@types/babel__template@npm:7.4.4"
+ dependencies:
+ "@babel/parser": "npm:^7.1.0"
+ "@babel/types": "npm:^7.0.0"
+ checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b
+ languageName: node
+ linkType: hard
+
+"@types/babel__traverse@npm:*":
+ version: 7.20.6
+ resolution: "@types/babel__traverse@npm:7.20.6"
+ dependencies:
+ "@babel/types": "npm:^7.20.7"
+ checksum: 10c0/7ba7db61a53e28cac955aa99af280d2600f15a8c056619c05b6fc911cbe02c61aa4f2823299221b23ce0cce00b294c0e5f618ec772aa3f247523c2e48cf7b888
+ languageName: node
+ linkType: hard
+
"@types/body-parser@npm:*":
version: 1.19.5
resolution: "@types/body-parser@npm:1.19.5"
@@ -5071,6 +5493,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/react-dom@npm:^18.3.0":
+ version: 18.3.0
+ resolution: "@types/react-dom@npm:18.3.0"
+ dependencies:
+ "@types/react": "npm:*"
+ checksum: 10c0/6c90d2ed72c5a0e440d2c75d99287e4b5df3e7b011838cdc03ae5cd518ab52164d86990e73246b9d812eaf02ec351d74e3b4f5bd325bf341e13bf980392fd53b
+ languageName: node
+ linkType: hard
+
"@types/react-router-config@npm:*, @types/react-router-config@npm:^5.0.7":
version: 5.0.11
resolution: "@types/react-router-config@npm:5.0.11"
@@ -5113,6 +5544,16 @@ __metadata:
languageName: node
linkType: hard
+"@types/react@npm:^18.3.3":
+ version: 18.3.8
+ resolution: "@types/react@npm:18.3.8"
+ dependencies:
+ "@types/prop-types": "npm:*"
+ csstype: "npm:^3.0.2"
+ checksum: 10c0/367312c9fe276639ecb142265e090a4dd04bb39f8d718cbab546de3f1ddcfddeff415e1147d0fc40f734badaa7420b7b109d511bd4304b2c4c9c36164612fdf8
+ languageName: node
+ linkType: hard
+
"@types/retry@npm:0.12.0":
version: 0.12.0
resolution: "@types/retry@npm:0.12.0"
@@ -5230,6 +5671,29 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/eslint-plugin@npm:8.6.0":
+ version: 8.6.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:8.6.0"
+ dependencies:
+ "@eslint-community/regexpp": "npm:^4.10.0"
+ "@typescript-eslint/scope-manager": "npm:8.6.0"
+ "@typescript-eslint/type-utils": "npm:8.6.0"
+ "@typescript-eslint/utils": "npm:8.6.0"
+ "@typescript-eslint/visitor-keys": "npm:8.6.0"
+ graphemer: "npm:^1.4.0"
+ ignore: "npm:^5.3.1"
+ natural-compare: "npm:^1.4.0"
+ ts-api-utils: "npm:^1.3.0"
+ peerDependencies:
+ "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0
+ eslint: ^8.57.0 || ^9.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/c777f01535b896d3092f9886a67ccf9e50bf9e0f581ffab607c5e95dbf3092299b0d9f3e6041b134d69059a6fa5691785940b81015f73bb9a0e9d1605f6442ea
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/eslint-plugin@npm:^6.4.0":
version: 6.21.0
resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0"
@@ -5278,6 +5742,24 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/parser@npm:8.6.0":
+ version: 8.6.0
+ resolution: "@typescript-eslint/parser@npm:8.6.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": "npm:8.6.0"
+ "@typescript-eslint/types": "npm:8.6.0"
+ "@typescript-eslint/typescript-estree": "npm:8.6.0"
+ "@typescript-eslint/visitor-keys": "npm:8.6.0"
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/3f280d289b486359194d422d89df9896b3f10a6d45cdf851d1d5f3200489271a31ab503c127cb5656f9b0ad6d795dd708b960f21fb105750aac19f41f8f815d1
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/parser@npm:^6.4.0":
version: 6.21.0
resolution: "@typescript-eslint/parser@npm:6.21.0"
@@ -5334,6 +5816,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:8.6.0":
+ version: 8.6.0
+ resolution: "@typescript-eslint/scope-manager@npm:8.6.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.6.0"
+ "@typescript-eslint/visitor-keys": "npm:8.6.0"
+ checksum: 10c0/37092ef70171c06854ac67ebfb2255063890c1c6133654e6b15b6adb6d2ab83de4feafd1599f4d02ed71a018226fcb3a389021758ec045e1904fb1798e90b4fe
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/type-utils@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/type-utils@npm:6.21.0"
@@ -5368,6 +5860,21 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/type-utils@npm:8.6.0":
+ version: 8.6.0
+ resolution: "@typescript-eslint/type-utils@npm:8.6.0"
+ dependencies:
+ "@typescript-eslint/typescript-estree": "npm:8.6.0"
+ "@typescript-eslint/utils": "npm:8.6.0"
+ debug: "npm:^4.3.4"
+ ts-api-utils: "npm:^1.3.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/914b4637caa40c102117655a9b4451e0db611a61309ed39d6c57522655463c059f4dfd4e2d7ffdefcc9ab7533be21fb877b740c58f5be11f3530aa29f3d2cb62
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/types@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/types@npm:6.21.0"
@@ -5382,6 +5889,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:8.6.0":
+ version: 8.6.0
+ resolution: "@typescript-eslint/types@npm:8.6.0"
+ checksum: 10c0/e7051d212252f7d1905b5527b211e335db4ec5bb1d3a52d73c8d2de6ddf5cbc981f2c92ca9ffcef35f7447bda635ea1ccce5f884ade7f243d14f2a254982c698
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
@@ -5420,6 +5934,25 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:8.6.0":
+ version: 8.6.0
+ resolution: "@typescript-eslint/typescript-estree@npm:8.6.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.6.0"
+ "@typescript-eslint/visitor-keys": "npm:8.6.0"
+ debug: "npm:^4.3.4"
+ fast-glob: "npm:^3.3.2"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^9.0.4"
+ semver: "npm:^7.6.0"
+ ts-api-utils: "npm:^1.3.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/33ab8c03221a797865301f09d1d198c67f8b0e3dbf0d13e41f699dc2740242303a9fcfd7b38302cef318541fdedd832fd6e8ba34a5041a57e9114fa134045385
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/utils@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/utils@npm:6.21.0"
@@ -5451,6 +5984,20 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/utils@npm:8.6.0":
+ version: 8.6.0
+ resolution: "@typescript-eslint/utils@npm:8.6.0"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.4.0"
+ "@typescript-eslint/scope-manager": "npm:8.6.0"
+ "@typescript-eslint/types": "npm:8.6.0"
+ "@typescript-eslint/typescript-estree": "npm:8.6.0"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ checksum: 10c0/5b615106342dfdf09f5a73e2554cc0c4d979c262a9a4548eb76ec7045768e0ff0bf0316cf8a5eb5404689cd476fcd335fc84f90eb985557559e42aeee33d687e
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/visitor-keys@npm:6.21.0"
@@ -5471,6 +6018,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:8.6.0":
+ version: 8.6.0
+ resolution: "@typescript-eslint/visitor-keys@npm:8.6.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.6.0"
+ eslint-visitor-keys: "npm:^3.4.3"
+ checksum: 10c0/9bd5d5daee9de7e009fdd1b64b1eca685a699d1b2639373bc279c97e25e769fff56fffef708ef66a2b19bc8bb201d36daf9e7084f0e0872178bfcf9d923b41f3
+ languageName: node
+ linkType: hard
+
"@ungap/structured-clone@npm:^1.0.0, @ungap/structured-clone@npm:^1.2.0":
version: 1.2.0
resolution: "@ungap/structured-clone@npm:1.2.0"
@@ -5478,6 +6035,21 @@ __metadata:
languageName: node
linkType: hard
+"@vitejs/plugin-react@npm:^4.3.1":
+ version: 4.3.1
+ resolution: "@vitejs/plugin-react@npm:4.3.1"
+ dependencies:
+ "@babel/core": "npm:^7.24.5"
+ "@babel/plugin-transform-react-jsx-self": "npm:^7.24.5"
+ "@babel/plugin-transform-react-jsx-source": "npm:^7.24.1"
+ "@types/babel__core": "npm:^7.20.5"
+ react-refresh: "npm:^0.14.2"
+ peerDependencies:
+ vite: ^4.2.0 || ^5.0.0
+ checksum: 10c0/39a027feddfd6b3e307121d79631462ef1aae05714ba7a2f9a73d240d0f89c2bf281132568eb27b55d6ddaf08d86ad1bd8b0066090240e570de8c6320eb9a903
+ languageName: node
+ linkType: hard
+
"@vitest/expect@npm:1.6.0":
version: 1.6.0
resolution: "@vitest/expect@npm:1.6.0"
@@ -5532,6 +6104,94 @@ __metadata:
languageName: node
linkType: hard
+"@volar/language-core@npm:2.4.5, @volar/language-core@npm:~2.4.1":
+ version: 2.4.5
+ resolution: "@volar/language-core@npm:2.4.5"
+ dependencies:
+ "@volar/source-map": "npm:2.4.5"
+ checksum: 10c0/aea4b6e5874aede72e6f49892ebd6d09412e3bee70f38e2668729be566f2861d57caf0ef43921f591ef37b01a3b56c2837268295e3027e2d2dc30c8977328c8c
+ languageName: node
+ linkType: hard
+
+"@volar/source-map@npm:2.4.5":
+ version: 2.4.5
+ resolution: "@volar/source-map@npm:2.4.5"
+ checksum: 10c0/f18dadca0db3b9fcf25e4b3e69d820a183ba449c54a70bba0b33a752ab659b713109b1be7f1e379370cdb47f4e171e84d827e2276f834730decd5cf8c68de79d
+ languageName: node
+ linkType: hard
+
+"@volar/typescript@npm:^2.4.4":
+ version: 2.4.5
+ resolution: "@volar/typescript@npm:2.4.5"
+ dependencies:
+ "@volar/language-core": "npm:2.4.5"
+ path-browserify: "npm:^1.0.1"
+ vscode-uri: "npm:^3.0.8"
+ checksum: 10c0/c29acf9ed78c83f1f8bc579d7fff7f5d52d4021cb4f6a72f14832ba8b957c29511711c78a796ca57bd1ee4ef475659a58b0de4948d29c4d1217cc08f0bf181ff
+ languageName: node
+ linkType: hard
+
+"@vue/compiler-core@npm:3.5.8":
+ version: 3.5.8
+ resolution: "@vue/compiler-core@npm:3.5.8"
+ dependencies:
+ "@babel/parser": "npm:^7.25.3"
+ "@vue/shared": "npm:3.5.8"
+ entities: "npm:^4.5.0"
+ estree-walker: "npm:^2.0.2"
+ source-map-js: "npm:^1.2.0"
+ checksum: 10c0/e6b3bf55dc834ed67e8d41a063a9e909aff88baa9399578add9ec43b6cc933e77df926da12df8d99427a8098654e9cd1881e3d78be4ebccd340ec2c9529fef9c
+ languageName: node
+ linkType: hard
+
+"@vue/compiler-dom@npm:^3.4.0":
+ version: 3.5.8
+ resolution: "@vue/compiler-dom@npm:3.5.8"
+ dependencies:
+ "@vue/compiler-core": "npm:3.5.8"
+ "@vue/shared": "npm:3.5.8"
+ checksum: 10c0/94904b5d62c7bccb12e63a659aae1e00ad841c3fc21fe0ae639c9e00ded587381e0f85edde953fa932799b5ed2cafa92c621d52c01914d1e2226a9410953daef
+ languageName: node
+ linkType: hard
+
+"@vue/compiler-vue2@npm:^2.7.16":
+ version: 2.7.16
+ resolution: "@vue/compiler-vue2@npm:2.7.16"
+ dependencies:
+ de-indent: "npm:^1.0.2"
+ he: "npm:^1.2.0"
+ checksum: 10c0/c76c3fad770b9a7da40b314116cc9da173da20e5fd68785c8ed8dd8a87d02f239545fa296e16552e040ec86b47bfb18283b39447b250c2e76e479bd6ae475bb3
+ languageName: node
+ linkType: hard
+
+"@vue/language-core@npm:2.1.6":
+ version: 2.1.6
+ resolution: "@vue/language-core@npm:2.1.6"
+ dependencies:
+ "@volar/language-core": "npm:~2.4.1"
+ "@vue/compiler-dom": "npm:^3.4.0"
+ "@vue/compiler-vue2": "npm:^2.7.16"
+ "@vue/shared": "npm:^3.4.0"
+ computeds: "npm:^0.0.1"
+ minimatch: "npm:^9.0.3"
+ muggle-string: "npm:^0.4.1"
+ path-browserify: "npm:^1.0.1"
+ peerDependencies:
+ typescript: "*"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/bad09d54929f09d0d809f13ac1a3ccf0ab0d848c11c420e83a951f7fecfe15537caf95fc55756770a4d79f1fa6b4488bf2846afaba6854746fbb349cbb294bed
+ languageName: node
+ linkType: hard
+
+"@vue/shared@npm:3.5.8, @vue/shared@npm:^3.4.0":
+ version: 3.5.8
+ resolution: "@vue/shared@npm:3.5.8"
+ checksum: 10c0/69c6f5096d73e5e4b481d4359c9ac420414eaac9e2bcf330c81c6299077636a6c587afcbe19f207d7b0ac61925aa561e2a987c0bd36b989861b0b1f31ce2b41c
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/ast@npm:1.12.1"
@@ -5778,7 +6438,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.10.0, acorn@npm:^8.11.0, acorn@npm:^8.11.3, acorn@npm:^8.7.1, acorn@npm:^8.8.0, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0":
+"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.10.0, acorn@npm:^8.11.0, acorn@npm:^8.11.3, acorn@npm:^8.12.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0":
version: 8.12.1
resolution: "acorn@npm:8.12.1"
bin:
@@ -5822,6 +6482,18 @@ __metadata:
languageName: node
linkType: hard
+"ajv-draft-04@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "ajv-draft-04@npm:1.0.0"
+ peerDependencies:
+ ajv: ^8.5.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+ checksum: 10c0/6044310bd38c17d77549fd326bd40ce1506fa10b0794540aa130180808bf94117fac8c9b448c621512bea60e4a947278f6a978e87f10d342950c15b33ddd9271
+ languageName: node
+ linkType: hard
+
"ajv-formats@npm:^2.1.1":
version: 2.1.1
resolution: "ajv-formats@npm:2.1.1"
@@ -5836,6 +6508,20 @@ __metadata:
languageName: node
linkType: hard
+"ajv-formats@npm:~3.0.1":
+ version: 3.0.1
+ resolution: "ajv-formats@npm:3.0.1"
+ dependencies:
+ ajv: "npm:^8.0.0"
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+ checksum: 10c0/168d6bca1ea9f163b41c8147bae537e67bd963357a5488a1eaf3abe8baa8eec806d4e45f15b10767e6020679315c7e1e5e6803088dfb84efa2b4e9353b83dd0a
+ languageName: node
+ linkType: hard
+
"ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2":
version: 3.5.2
resolution: "ajv-keywords@npm:3.5.2"
@@ -5880,6 +6566,30 @@ __metadata:
languageName: node
linkType: hard
+"ajv@npm:~8.12.0":
+ version: 8.12.0
+ resolution: "ajv@npm:8.12.0"
+ dependencies:
+ fast-deep-equal: "npm:^3.1.1"
+ json-schema-traverse: "npm:^1.0.0"
+ require-from-string: "npm:^2.0.2"
+ uri-js: "npm:^4.2.2"
+ checksum: 10c0/ac4f72adf727ee425e049bc9d8b31d4a57e1c90da8d28bcd23d60781b12fcd6fc3d68db5df16994c57b78b94eed7988f5a6b482fd376dc5b084125e20a0a622e
+ languageName: node
+ linkType: hard
+
+"ajv@npm:~8.13.0":
+ version: 8.13.0
+ resolution: "ajv@npm:8.13.0"
+ dependencies:
+ fast-deep-equal: "npm:^3.1.3"
+ json-schema-traverse: "npm:^1.0.0"
+ require-from-string: "npm:^2.0.2"
+ uri-js: "npm:^4.4.1"
+ checksum: 10c0/14c6497b6f72843986d7344175a1aa0e2c35b1e7f7475e55bc582cddb765fca7e6bf950f465dc7846f817776d9541b706f4b5b3fbedd8dfdeb5fce6f22864264
+ languageName: node
+ linkType: hard
+
"algoliasearch-helper@npm:^3.13.3":
version: 3.22.3
resolution: "algoliasearch-helper@npm:3.22.3"
@@ -6002,7 +6712,7 @@ __metadata:
languageName: node
linkType: hard
-"argparse@npm:^1.0.7":
+"argparse@npm:^1.0.7, argparse@npm:~1.0.9":
version: 1.0.10
resolution: "argparse@npm:1.0.10"
dependencies:
@@ -7013,6 +7723,13 @@ __metadata:
languageName: node
linkType: hard
+"compare-versions@npm:^6.1.1":
+ version: 6.1.1
+ resolution: "compare-versions@npm:6.1.1"
+ checksum: 10c0/415205c7627f9e4f358f571266422980c9fe2d99086be0c9a48008ef7c771f32b0fbe8e97a441ffedc3910872f917a0675fe0fe3c3b6d331cda6d8690be06338
+ languageName: node
+ linkType: hard
+
"compressible@npm:~2.0.16":
version: 2.0.18
resolution: "compressible@npm:2.0.18"
@@ -7037,6 +7754,13 @@ __metadata:
languageName: node
linkType: hard
+"computeds@npm:^0.0.1":
+ version: 0.0.1
+ resolution: "computeds@npm:0.0.1"
+ checksum: 10c0/8a8736f1f43e4a99286519785d71a10ece8f444a2fa1fc2fe1f03dedf63f3477b45094002c85a2826f7631759c9f5a00b4ace47456997f253073fc525e8983de
+ languageName: node
+ linkType: hard
+
"concat-map@npm:0.0.1":
version: 0.0.1
resolution: "concat-map@npm:0.0.1"
@@ -7899,6 +8623,13 @@ __metadata:
languageName: node
linkType: hard
+"de-indent@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "de-indent@npm:1.0.2"
+ checksum: 10c0/7058ce58abd6dfc123dd204e36be3797abd419b59482a634605420f47ae97639d0c183ec5d1b904f308a01033f473673897afc2bd59bc620ebf1658763ef4291
+ languageName: node
+ linkType: hard
+
"debounce@npm:^1.2.1":
version: 1.2.1
resolution: "debounce@npm:1.2.1"
@@ -7936,6 +8667,18 @@ __metadata:
languageName: node
linkType: hard
+"debug@npm:^4.3.6":
+ version: 4.3.7
+ resolution: "debug@npm:4.3.7"
+ dependencies:
+ ms: "npm:^2.1.3"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b
+ languageName: node
+ linkType: hard
+
"decode-named-character-reference@npm:^1.0.0":
version: 1.0.2
resolution: "decode-named-character-reference@npm:1.0.2"
@@ -8452,7 +9195,7 @@ __metadata:
languageName: node
linkType: hard
-"entities@npm:^4.2.0, entities@npm:^4.4.0":
+"entities@npm:^4.2.0, entities@npm:^4.4.0, entities@npm:^4.5.0":
version: 4.5.0
resolution: "entities@npm:4.5.0"
checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250
@@ -9055,6 +9798,15 @@ __metadata:
languageName: node
linkType: hard
+"eslint-plugin-react-hooks@npm:^5.1.0-rc.0":
+ version: 5.1.0-rc-fb9a90fa48-20240614
+ resolution: "eslint-plugin-react-hooks@npm:5.1.0-rc-fb9a90fa48-20240614"
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+ checksum: 10c0/e27a8073a19d8411cb1cbbd2a935d0f5ec824efb7fd17d907df5c71df47ace9faa9c08c0e8f6db627b62db202a146ff111e6b3067e31773af0b41d15a34ba956
+ languageName: node
+ linkType: hard
+
"eslint-plugin-react-refresh@npm:^0.4.5":
version: 0.4.9
resolution: "eslint-plugin-react-refresh@npm:0.4.9"
@@ -9064,6 +9816,15 @@ __metadata:
languageName: node
linkType: hard
+"eslint-plugin-react-refresh@npm:^0.4.9":
+ version: 0.4.12
+ resolution: "eslint-plugin-react-refresh@npm:0.4.12"
+ peerDependencies:
+ eslint: ">=7"
+ checksum: 10c0/33dd82450f7c5fa884c5c84ffaf9d9a8b363bc155432807dc09904c7db6ba724888fac4562b058268259aa7c9270b622ef411488011b3469a2add275ed5c2273
+ languageName: node
+ linkType: hard
+
"eslint-plugin-react@npm:^7.33.2":
version: 7.35.0
resolution: "eslint-plugin-react@npm:7.35.0"
@@ -9146,6 +9907,16 @@ __metadata:
languageName: node
linkType: hard
+"eslint-scope@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "eslint-scope@npm:8.0.2"
+ dependencies:
+ esrecurse: "npm:^4.3.0"
+ estraverse: "npm:^5.2.0"
+ checksum: 10c0/477f820647c8755229da913025b4567347fd1f0bf7cbdf3a256efff26a7e2e130433df052bd9e3d014025423dc00489bea47eb341002b15553673379c1a7dc36
+ languageName: node
+ linkType: hard
+
"eslint-utils@npm:^3.0.0":
version: 3.0.0
resolution: "eslint-utils@npm:3.0.0"
@@ -9171,6 +9942,13 @@ __metadata:
languageName: node
linkType: hard
+"eslint-visitor-keys@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "eslint-visitor-keys@npm:4.0.0"
+ checksum: 10c0/76619f42cf162705a1515a6868e6fc7567e185c7063a05621a8ac4c3b850d022661262c21d9f1fc1d144ecf0d5d64d70a3f43c15c3fc969a61ace0fb25698cf5
+ languageName: node
+ linkType: hard
+
"eslint@npm:8.57.0, eslint@npm:^8.57.0":
version: 8.57.0
resolution: "eslint@npm:8.57.0"
@@ -9219,6 +9997,55 @@ __metadata:
languageName: node
linkType: hard
+"eslint@npm:^9.9.0":
+ version: 9.11.0
+ resolution: "eslint@npm:9.11.0"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.2.0"
+ "@eslint-community/regexpp": "npm:^4.11.0"
+ "@eslint/config-array": "npm:^0.18.0"
+ "@eslint/eslintrc": "npm:^3.1.0"
+ "@eslint/js": "npm:9.11.0"
+ "@eslint/plugin-kit": "npm:^0.2.0"
+ "@humanwhocodes/module-importer": "npm:^1.0.1"
+ "@humanwhocodes/retry": "npm:^0.3.0"
+ "@nodelib/fs.walk": "npm:^1.2.8"
+ ajv: "npm:^6.12.4"
+ chalk: "npm:^4.0.0"
+ cross-spawn: "npm:^7.0.2"
+ debug: "npm:^4.3.2"
+ escape-string-regexp: "npm:^4.0.0"
+ eslint-scope: "npm:^8.0.2"
+ eslint-visitor-keys: "npm:^4.0.0"
+ espree: "npm:^10.1.0"
+ esquery: "npm:^1.5.0"
+ esutils: "npm:^2.0.2"
+ fast-deep-equal: "npm:^3.1.3"
+ file-entry-cache: "npm:^8.0.0"
+ find-up: "npm:^5.0.0"
+ glob-parent: "npm:^6.0.2"
+ ignore: "npm:^5.2.0"
+ imurmurhash: "npm:^0.1.4"
+ is-glob: "npm:^4.0.0"
+ is-path-inside: "npm:^3.0.3"
+ json-stable-stringify-without-jsonify: "npm:^1.0.1"
+ lodash.merge: "npm:^4.6.2"
+ minimatch: "npm:^3.1.2"
+ natural-compare: "npm:^1.4.0"
+ optionator: "npm:^0.9.3"
+ strip-ansi: "npm:^6.0.1"
+ text-table: "npm:^0.2.0"
+ peerDependencies:
+ jiti: "*"
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+ bin:
+ eslint: bin/eslint.js
+ checksum: 10c0/3438a78172bc667dc87bc4ad864671bd93231c82c9d366899ea3a77fc3444c8cdd158e7fe3ca1cfe4cb566045b1b36c0ccae9fc20efeb4b187f1a534075a1177
+ languageName: node
+ linkType: hard
+
"esm-env@npm:1.0.0, esm-env@npm:^1.0.0":
version: 1.0.0
resolution: "esm-env@npm:1.0.0"
@@ -9226,6 +10053,17 @@ __metadata:
languageName: node
linkType: hard
+"espree@npm:^10.0.1, espree@npm:^10.1.0":
+ version: 10.1.0
+ resolution: "espree@npm:10.1.0"
+ dependencies:
+ acorn: "npm:^8.12.0"
+ acorn-jsx: "npm:^5.3.2"
+ eslint-visitor-keys: "npm:^4.0.0"
+ checksum: 10c0/52e6feaa77a31a6038f0c0e3fce93010a4625701925b0715cd54a2ae190b3275053a0717db698697b32653788ac04845e489d6773b508d6c2e8752f3c57470a0
+ languageName: node
+ linkType: hard
+
"espree@npm:^9.6.0, espree@npm:^9.6.1":
version: 9.6.1
resolution: "espree@npm:9.6.1"
@@ -9247,7 +10085,7 @@ __metadata:
languageName: node
linkType: hard
-"esquery@npm:^1.4.2":
+"esquery@npm:^1.4.2, esquery@npm:^1.5.0":
version: 1.6.0
resolution: "esquery@npm:1.6.0"
dependencies:
@@ -9344,6 +10182,13 @@ __metadata:
languageName: node
linkType: hard
+"estree-walker@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "estree-walker@npm:2.0.2"
+ checksum: 10c0/53a6c54e2019b8c914dc395890153ffdc2322781acf4bd7d1a32d7aedc1710807bdcd866ac133903d5629ec601fbb50abe8c2e5553c7f5a0afdd9b6af6c945af
+ languageName: node
+ linkType: hard
+
"estree-walker@npm:^3.0.0, estree-walker@npm:^3.0.3":
version: 3.0.3
resolution: "estree-walker@npm:3.0.3"
@@ -9622,6 +10467,15 @@ __metadata:
languageName: node
linkType: hard
+"file-entry-cache@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "file-entry-cache@npm:8.0.0"
+ dependencies:
+ flat-cache: "npm:^4.0.0"
+ checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638
+ languageName: node
+ linkType: hard
+
"file-loader@npm:^6.2.0":
version: 6.2.0
resolution: "file-loader@npm:6.2.0"
@@ -9715,6 +10569,16 @@ __metadata:
languageName: node
linkType: hard
+"flat-cache@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "flat-cache@npm:4.0.1"
+ dependencies:
+ flatted: "npm:^3.2.9"
+ keyv: "npm:^4.5.4"
+ checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc
+ languageName: node
+ linkType: hard
+
"flat@npm:^5.0.2":
version: 5.0.2
resolution: "flat@npm:5.0.2"
@@ -9849,6 +10713,17 @@ __metadata:
languageName: node
linkType: hard
+"fs-extra@npm:~7.0.1":
+ version: 7.0.1
+ resolution: "fs-extra@npm:7.0.1"
+ dependencies:
+ graceful-fs: "npm:^4.1.2"
+ jsonfile: "npm:^4.0.0"
+ universalify: "npm:^0.1.0"
+ checksum: 10c0/1943bb2150007e3739921b8d13d4109abdc3cc481e53b97b7ea7f77eda1c3c642e27ae49eac3af074e3496ea02fde30f411ef410c760c70a38b92e656e5da784
+ languageName: node
+ linkType: hard
+
"fs-minipass@npm:^2.0.0":
version: 2.1.0
resolution: "fs-minipass@npm:2.1.0"
@@ -10052,6 +10927,22 @@ __metadata:
languageName: node
linkType: hard
+"glob@npm:^11.0.0":
+ version: 11.0.0
+ resolution: "glob@npm:11.0.0"
+ dependencies:
+ foreground-child: "npm:^3.1.0"
+ jackspeak: "npm:^4.0.1"
+ minimatch: "npm:^10.0.0"
+ minipass: "npm:^7.1.2"
+ package-json-from-dist: "npm:^1.0.0"
+ path-scurry: "npm:^2.0.0"
+ bin:
+ glob: dist/esm/bin.mjs
+ checksum: 10c0/419866015d8795258a8ac51de5b9d1a99c72634fc3ead93338e4da388e89773ab21681e494eac0fbc4250b003451ca3110bb4f1c9393d15d14466270094fdb4e
+ languageName: node
+ linkType: hard
+
"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.6":
version: 7.2.3
resolution: "glob@npm:7.2.3"
@@ -10123,6 +11014,20 @@ __metadata:
languageName: node
linkType: hard
+"globals@npm:^14.0.0":
+ version: 14.0.0
+ resolution: "globals@npm:14.0.0"
+ checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d
+ languageName: node
+ linkType: hard
+
+"globals@npm:^15.9.0":
+ version: 15.9.0
+ resolution: "globals@npm:15.9.0"
+ checksum: 10c0/de4b553e412e7e830998578d51b605c492256fb2a9273eaeec6ec9ee519f1c5aa50de57e3979911607fd7593a4066420e01d8c3d551e7a6a236e96c521aee36c
+ languageName: node
+ linkType: hard
+
"globalthis@npm:^1.0.3":
version: 1.0.4
resolution: "globalthis@npm:1.0.4"
@@ -10830,7 +11735,7 @@ __metadata:
languageName: node
linkType: hard
-"import-lazy@npm:^4.0.0":
+"import-lazy@npm:^4.0.0, import-lazy@npm:~4.0.0":
version: 4.0.0
resolution: "import-lazy@npm:4.0.0"
checksum: 10c0/a3520313e2c31f25c0b06aa66d167f329832b68a4f957d7c9daf6e0fa41822b6e84948191648b9b9d8ca82f94740cdf15eecf2401a5b42cd1c33fd84f2225cca
@@ -11509,6 +12414,19 @@ __metadata:
languageName: node
linkType: hard
+"jackspeak@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "jackspeak@npm:4.0.1"
+ dependencies:
+ "@isaacs/cliui": "npm:^8.0.2"
+ "@pkgjs/parseargs": "npm:^0.11.0"
+ dependenciesMeta:
+ "@pkgjs/parseargs":
+ optional: true
+ checksum: 10c0/c87997d9c9c5b7366259b1f2a444ef148692f8eedad5307caca939babbb60af2b47d306e5c63bf9d5fefbab2ab48d4da275188c3de525d0e716cc21b784bbccb
+ languageName: node
+ linkType: hard
+
"jest-util@npm:^29.7.0":
version: 29.7.0
resolution: "jest-util@npm:29.7.0"
@@ -11555,6 +12473,13 @@ __metadata:
languageName: node
linkType: hard
+"jju@npm:~1.4.0":
+ version: 1.4.0
+ resolution: "jju@npm:1.4.0"
+ checksum: 10c0/f3f444557e4364cfc06b1abf8331bf3778b26c0c8552ca54429bc0092652172fdea26cbffe33e1017b303d5aa506f7ede8571857400efe459cb7439180e2acad
+ languageName: node
+ linkType: hard
+
"joi@npm:^17.9.2":
version: 17.13.3
resolution: "joi@npm:17.13.3"
@@ -11685,6 +12610,18 @@ __metadata:
languageName: node
linkType: hard
+"jsonfile@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "jsonfile@npm:4.0.0"
+ dependencies:
+ graceful-fs: "npm:^4.1.6"
+ dependenciesMeta:
+ graceful-fs:
+ optional: true
+ checksum: 10c0/7dc94b628d57a66b71fb1b79510d460d662eb975b5f876d723f81549c2e9cd316d58a2ddf742b2b93a4fa6b17b2accaf1a738a0e2ea114bdfb13a32e5377e480
+ languageName: node
+ linkType: hard
+
"jsonfile@npm:^6.0.1":
version: 6.1.0
resolution: "jsonfile@npm:6.1.0"
@@ -11710,7 +12647,7 @@ __metadata:
languageName: node
linkType: hard
-"keyv@npm:^4.5.3":
+"keyv@npm:^4.5.3, keyv@npm:^4.5.4":
version: 4.5.4
resolution: "keyv@npm:4.5.4"
dependencies:
@@ -11747,6 +12684,13 @@ __metadata:
languageName: node
linkType: hard
+"kolorist@npm:^1.8.0":
+ version: 1.8.0
+ resolution: "kolorist@npm:1.8.0"
+ checksum: 10c0/73075db44a692bf6c34a649f3b4b3aea4993b84f6b754cbf7a8577e7c7db44c0bad87752bd23b0ce533f49de2244ce2ce03b7b1b667a85ae170a94782cc50f9b
+ languageName: node
+ linkType: hard
+
"language-subtag-registry@npm:^0.3.20":
version: 0.3.23
resolution: "language-subtag-registry@npm:0.3.23"
@@ -11932,7 +12876,7 @@ __metadata:
languageName: node
linkType: hard
-"lodash@npm:^4.17.20, lodash@npm:^4.17.21":
+"lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:~4.17.15":
version: 4.17.21
resolution: "lodash@npm:4.17.21"
checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
@@ -11989,6 +12933,13 @@ __metadata:
languageName: node
linkType: hard
+"lru-cache@npm:^11.0.0":
+ version: 11.0.1
+ resolution: "lru-cache@npm:11.0.1"
+ checksum: 10c0/8bad6603dc67eb5b03520fba05bce5df6473dbba58ac4c6067ed088d29225a0a04416bb1462acd8c1f819d1fbf37920446a1c36bafd9c384bcc54cee0d3b697a
+ languageName: node
+ linkType: hard
+
"lru-cache@npm:^5.1.1":
version: 5.1.1
resolution: "lru-cache@npm:5.1.1"
@@ -11998,6 +12949,15 @@ __metadata:
languageName: node
linkType: hard
+"lru-cache@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "lru-cache@npm:6.0.0"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9
+ languageName: node
+ linkType: hard
+
"lunr-languages@npm:^1.4.0":
version: 1.14.0
resolution: "lunr-languages@npm:1.14.0"
@@ -12032,7 +12992,7 @@ __metadata:
languageName: node
linkType: hard
-"magic-string@npm:^0.30.0, magic-string@npm:^0.30.10, magic-string@npm:^0.30.4, magic-string@npm:^0.30.5":
+"magic-string@npm:^0.30.0, magic-string@npm:^0.30.10, magic-string@npm:^0.30.11, magic-string@npm:^0.30.4, magic-string@npm:^0.30.5":
version: 0.30.11
resolution: "magic-string@npm:0.30.11"
dependencies:
@@ -13072,6 +14032,15 @@ __metadata:
languageName: node
linkType: hard
+"minimatch@npm:^10.0.0":
+ version: 10.0.1
+ resolution: "minimatch@npm:10.0.1"
+ dependencies:
+ brace-expansion: "npm:^2.0.1"
+ checksum: 10c0/e6c29a81fe83e1877ad51348306be2e8aeca18c88fdee7a99df44322314279e15799e41d7cb274e4e8bb0b451a3bc622d6182e157dfa1717d6cda75e9cd8cd5d
+ languageName: node
+ linkType: hard
+
"minimatch@npm:^8.0.2":
version: 8.0.4
resolution: "minimatch@npm:8.0.4"
@@ -13081,7 +14050,7 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^9.0.4":
+"minimatch@npm:^9.0.3, minimatch@npm:^9.0.4":
version: 9.0.5
resolution: "minimatch@npm:9.0.5"
dependencies:
@@ -13090,6 +14059,15 @@ __metadata:
languageName: node
linkType: hard
+"minimatch@npm:~3.0.3":
+ version: 3.0.8
+ resolution: "minimatch@npm:3.0.8"
+ dependencies:
+ brace-expansion: "npm:^1.1.7"
+ checksum: 10c0/72b226f452dcfb5075255f53534cb83fc25565b909e79b9be4fad463d735cb1084827f7013ff41d050e77ee6e474408c6073473edd2fb72c2fd630cfb0acc6ad
+ languageName: node
+ linkType: hard
+
"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
@@ -13267,13 +14245,20 @@ __metadata:
languageName: node
linkType: hard
-"ms@npm:2.1.3, ms@npm:^2.1.1":
+"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3":
version: 2.1.3
resolution: "ms@npm:2.1.3"
checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
languageName: node
linkType: hard
+"muggle-string@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "muggle-string@npm:0.4.1"
+ checksum: 10c0/e914b63e24cd23f97e18376ec47e4ba3aa24365e4776212b666add2e47bb158003212980d732c49abf3719568900af7861873844a6e2d3a7ca7e86952c0e99e9
+ languageName: node
+ linkType: hard
+
"multicast-dns@npm:^7.2.5":
version: 7.2.5
resolution: "multicast-dns@npm:7.2.5"
@@ -13875,6 +14860,13 @@ __metadata:
languageName: node
linkType: hard
+"path-browserify@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "path-browserify@npm:1.0.1"
+ checksum: 10c0/8b8c3fd5c66bd340272180590ae4ff139769e9ab79522e2eb82e3d571a89b8117c04147f65ad066dccfb42fcad902e5b7d794b3d35e0fd840491a8ddbedf8c66
+ languageName: node
+ linkType: hard
+
"path-exists@npm:^3.0.0":
version: 3.0.0
resolution: "path-exists@npm:3.0.0"
@@ -13941,6 +14933,16 @@ __metadata:
languageName: node
linkType: hard
+"path-scurry@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "path-scurry@npm:2.0.0"
+ dependencies:
+ lru-cache: "npm:^11.0.0"
+ minipass: "npm:^7.1.2"
+ checksum: 10c0/3da4adedaa8e7ef8d6dc4f35a0ff8f05a9b4d8365f2b28047752b62d4c1ad73eec21e37b1579ef2d075920157856a3b52ae8309c480a6f1a8bbe06ff8e52b33c
+ languageName: node
+ linkType: hard
+
"path-to-regexp@npm:0.1.7":
version: 0.1.7
resolution: "path-to-regexp@npm:0.1.7"
@@ -14059,6 +15061,13 @@ __metadata:
languageName: node
linkType: hard
+"picocolors@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "picocolors@npm:1.1.0"
+ checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023
+ languageName: node
+ linkType: hard
+
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
version: 2.3.1
resolution: "picomatch@npm:2.3.1"
@@ -14670,6 +15679,17 @@ __metadata:
languageName: node
linkType: hard
+"postcss@npm:^8.4.43":
+ version: 8.4.47
+ resolution: "postcss@npm:8.4.47"
+ dependencies:
+ nanoid: "npm:^3.3.7"
+ picocolors: "npm:^1.1.0"
+ source-map-js: "npm:^1.2.1"
+ checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44
+ languageName: node
+ linkType: hard
+
"postgres-array@npm:~2.0.0":
version: 2.0.0
resolution: "postgres-array@npm:2.0.0"
@@ -15184,6 +16204,13 @@ __metadata:
languageName: node
linkType: hard
+"react-refresh@npm:^0.14.2":
+ version: 0.14.2
+ resolution: "react-refresh@npm:0.14.2"
+ checksum: 10c0/875b72ef56b147a131e33f2abd6ec059d1989854b3ff438898e4f9310bfcc73acff709445b7ba843318a953cb9424bcc2c05af2b3d80011cee28f25aef3e2ebb
+ languageName: node
+ linkType: hard
+
"react-router-config@npm:^5.1.1":
version: 5.1.1
resolution: "react-router-config@npm:5.1.1"
@@ -15627,7 +16654,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.14.2, resolve@npm:^1.22.2, resolve@npm:^1.22.4, resolve@npm:^1.22.8":
+"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.14.2, resolve@npm:^1.22.2, resolve@npm:^1.22.4, resolve@npm:^1.22.8, resolve@npm:~1.22.1, resolve@npm:~1.22.2":
version: 1.22.8
resolution: "resolve@npm:1.22.8"
dependencies:
@@ -15653,7 +16680,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin":
+"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A~1.22.1#optional!builtin, resolve@patch:resolve@npm%3A~1.22.2#optional!builtin":
version: 1.22.8
resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
dependencies:
@@ -15830,6 +16857,69 @@ __metadata:
languageName: node
linkType: hard
+"rollup@npm:^4.20.0":
+ version: 4.22.4
+ resolution: "rollup@npm:4.22.4"
+ dependencies:
+ "@rollup/rollup-android-arm-eabi": "npm:4.22.4"
+ "@rollup/rollup-android-arm64": "npm:4.22.4"
+ "@rollup/rollup-darwin-arm64": "npm:4.22.4"
+ "@rollup/rollup-darwin-x64": "npm:4.22.4"
+ "@rollup/rollup-linux-arm-gnueabihf": "npm:4.22.4"
+ "@rollup/rollup-linux-arm-musleabihf": "npm:4.22.4"
+ "@rollup/rollup-linux-arm64-gnu": "npm:4.22.4"
+ "@rollup/rollup-linux-arm64-musl": "npm:4.22.4"
+ "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.22.4"
+ "@rollup/rollup-linux-riscv64-gnu": "npm:4.22.4"
+ "@rollup/rollup-linux-s390x-gnu": "npm:4.22.4"
+ "@rollup/rollup-linux-x64-gnu": "npm:4.22.4"
+ "@rollup/rollup-linux-x64-musl": "npm:4.22.4"
+ "@rollup/rollup-win32-arm64-msvc": "npm:4.22.4"
+ "@rollup/rollup-win32-ia32-msvc": "npm:4.22.4"
+ "@rollup/rollup-win32-x64-msvc": "npm:4.22.4"
+ "@types/estree": "npm:1.0.5"
+ fsevents: "npm:~2.3.2"
+ dependenciesMeta:
+ "@rollup/rollup-android-arm-eabi":
+ optional: true
+ "@rollup/rollup-android-arm64":
+ optional: true
+ "@rollup/rollup-darwin-arm64":
+ optional: true
+ "@rollup/rollup-darwin-x64":
+ optional: true
+ "@rollup/rollup-linux-arm-gnueabihf":
+ optional: true
+ "@rollup/rollup-linux-arm-musleabihf":
+ optional: true
+ "@rollup/rollup-linux-arm64-gnu":
+ optional: true
+ "@rollup/rollup-linux-arm64-musl":
+ optional: true
+ "@rollup/rollup-linux-powerpc64le-gnu":
+ optional: true
+ "@rollup/rollup-linux-riscv64-gnu":
+ optional: true
+ "@rollup/rollup-linux-s390x-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-musl":
+ optional: true
+ "@rollup/rollup-win32-arm64-msvc":
+ optional: true
+ "@rollup/rollup-win32-ia32-msvc":
+ optional: true
+ "@rollup/rollup-win32-x64-msvc":
+ optional: true
+ fsevents:
+ optional: true
+ bin:
+ rollup: dist/bin/rollup
+ checksum: 10c0/4c96b6e2e0c5dbe73b4ba899cea894a05115ab8c65ccff631fbbb944e2b3a9f2eb3b99c2dce3dd91b179647df1892ffc44ecee29381ccf155ba8000b22712a32
+ languageName: node
+ linkType: hard
+
"root@workspace:.":
version: 0.0.0-use.local
resolution: "root@workspace:."
@@ -16049,6 +17139,17 @@ __metadata:
languageName: node
linkType: hard
+"semver@npm:~7.5.4":
+ version: 7.5.4
+ resolution: "semver@npm:7.5.4"
+ dependencies:
+ lru-cache: "npm:^6.0.0"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e
+ languageName: node
+ linkType: hard
+
"send@npm:0.18.0":
version: 0.18.0
resolution: "send@npm:0.18.0"
@@ -16414,6 +17515,13 @@ __metadata:
languageName: node
linkType: hard
+"source-map-js@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "source-map-js@npm:1.2.1"
+ checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf
+ languageName: node
+ linkType: hard
+
"source-map-support@npm:~0.5.20":
version: 0.5.21
resolution: "source-map-support@npm:0.5.21"
@@ -16563,6 +17671,13 @@ __metadata:
languageName: node
linkType: hard
+"string-argv@npm:~0.3.1":
+ version: 0.3.2
+ resolution: "string-argv@npm:0.3.2"
+ checksum: 10c0/75c02a83759ad1722e040b86823909d9a2fc75d15dd71ec4b537c3560746e33b5f5a07f7332d1e3f88319909f82190843aa2f0a0d8c8d591ec08e93d5b8dec82
+ languageName: node
+ linkType: hard
+
"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0":
version: 4.2.3
resolution: "string-width@npm:4.2.3"
@@ -16753,7 +17868,7 @@ __metadata:
languageName: node
linkType: hard
-"strip-json-comments@npm:^3.1.1":
+"strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1":
version: 3.1.1
resolution: "strip-json-comments@npm:3.1.1"
checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd
@@ -16842,7 +17957,7 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^8.0.0":
+"supports-color@npm:^8.0.0, supports-color@npm:~8.1.1":
version: 8.1.1
resolution: "supports-color@npm:8.1.1"
dependencies:
@@ -17373,6 +18488,30 @@ __metadata:
languageName: node
linkType: hard
+"typescript-eslint@npm:^8.0.1":
+ version: 8.6.0
+ resolution: "typescript-eslint@npm:8.6.0"
+ dependencies:
+ "@typescript-eslint/eslint-plugin": "npm:8.6.0"
+ "@typescript-eslint/parser": "npm:8.6.0"
+ "@typescript-eslint/utils": "npm:8.6.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/d009170af1cffece3a63784c3f6d6f5074fd42d198540f3140dd0fed4f37b1888d59abb5992624099834cae2ea4863b6c526b5f11ecbfd105f41a87e300305db
+ languageName: node
+ linkType: hard
+
+"typescript@npm:5.4.2":
+ version: 5.4.2
+ resolution: "typescript@npm:5.4.2"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/583ff68cafb0c076695f72d61df6feee71689568179fb0d3a4834dac343df6b6ed7cf7b6f6c801fa52d43cd1d324e2f2d8ae4497b09f9e6cfe3d80a6d6c9ca52
+ languageName: node
+ linkType: hard
+
"typescript@npm:^5.0.0, typescript@npm:^5.0.3":
version: 5.5.4
resolution: "typescript@npm:5.5.4"
@@ -17383,6 +18522,16 @@ __metadata:
languageName: node
linkType: hard
+"typescript@npm:^5.5.3":
+ version: 5.6.2
+ resolution: "typescript@npm:5.6.2"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/3ed8297a8c7c56b7fec282532503d1ac795239d06e7c4966b42d4330c6cf433a170b53bcf93a130a7f14ccc5235de5560df4f1045eb7f3550b46ebed16d3c5e5
+ languageName: node
+ linkType: hard
+
"typescript@npm:~5.2.2":
version: 5.2.2
resolution: "typescript@npm:5.2.2"
@@ -17393,6 +18542,16 @@ __metadata:
languageName: node
linkType: hard
+"typescript@patch:typescript@npm%3A5.4.2#optional!builtin":
+ version: 5.4.2
+ resolution: "typescript@patch:typescript@npm%3A5.4.2#optional!builtin::version=5.4.2&hash=5adc0c"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/fcf6658073d07283910d9a0e04b1d5d0ebc822c04dbb7abdd74c3151c7aa92fcddbac7d799404e358197222006ccdc4c0db219d223d2ee4ccd9e2b01333b49be
+ languageName: node
+ linkType: hard
+
"typescript@patch:typescript@npm%3A^5.0.0#optional!builtin, typescript@patch:typescript@npm%3A^5.0.3#optional!builtin":
version: 5.5.4
resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=379a07"
@@ -17403,6 +18562,16 @@ __metadata:
languageName: node
linkType: hard
+"typescript@patch:typescript@npm%3A^5.5.3#optional!builtin":
+ version: 5.6.2
+ resolution: "typescript@patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=379a07"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/e6c1662e4852e22fe4bbdca471dca3e3edc74f6f1df043135c44a18a7902037023ccb0abdfb754595ca9028df8920f2f8492c00fc3cbb4309079aae8b7de71cd
+ languageName: node
+ linkType: hard
+
"typescript@patch:typescript@npm%3A~5.2.2#optional!builtin":
version: 5.2.2
resolution: "typescript@patch:typescript@npm%3A5.2.2#optional!builtin::version=5.2.2&hash=f3b441"
@@ -17616,6 +18785,13 @@ __metadata:
languageName: node
linkType: hard
+"universalify@npm:^0.1.0":
+ version: 0.1.2
+ resolution: "universalify@npm:0.1.2"
+ checksum: 10c0/e70e0339f6b36f34c9816f6bf9662372bd241714dc77508d231d08386d94f2c4aa1ba1318614f92015f40d45aae1b9075cd30bd490efbe39387b60a76ca3f045
+ languageName: node
+ linkType: hard
+
"universalify@npm:^2.0.0":
version: 2.0.1
resolution: "universalify@npm:2.0.1"
@@ -17678,7 +18854,7 @@ __metadata:
languageName: node
linkType: hard
-"uri-js@npm:^4.2.2":
+"uri-js@npm:^4.2.2, uri-js@npm:^4.4.1":
version: 4.4.1
resolution: "uri-js@npm:4.4.1"
dependencies:
@@ -17836,6 +19012,29 @@ __metadata:
languageName: node
linkType: hard
+"vite-plugin-dts@npm:^4.2.1":
+ version: 4.2.1
+ resolution: "vite-plugin-dts@npm:4.2.1"
+ dependencies:
+ "@microsoft/api-extractor": "npm:7.47.7"
+ "@rollup/pluginutils": "npm:^5.1.0"
+ "@volar/typescript": "npm:^2.4.4"
+ "@vue/language-core": "npm:2.1.6"
+ compare-versions: "npm:^6.1.1"
+ debug: "npm:^4.3.6"
+ kolorist: "npm:^1.8.0"
+ local-pkg: "npm:^0.5.0"
+ magic-string: "npm:^0.30.11"
+ peerDependencies:
+ typescript: "*"
+ vite: "*"
+ peerDependenciesMeta:
+ vite:
+ optional: true
+ checksum: 10c0/cd18f7ee82ae93d56c90cd723fe93dfd169f4f35b80af520c9fb68d8eae84ee866329ac099fd7944f86c20752662c2aef380e784a9828f591eaa2df7ebf048c7
+ languageName: node
+ linkType: hard
+
"vite-plugin-tailwind-purgecss@npm:0.3.3":
version: 0.3.3
resolution: "vite-plugin-tailwind-purgecss@npm:0.3.3"
@@ -17895,6 +19094,49 @@ __metadata:
languageName: node
linkType: hard
+"vite@npm:^5.4.1":
+ version: 5.4.7
+ resolution: "vite@npm:5.4.7"
+ dependencies:
+ esbuild: "npm:^0.21.3"
+ fsevents: "npm:~2.3.3"
+ postcss: "npm:^8.4.43"
+ rollup: "npm:^4.20.0"
+ peerDependencies:
+ "@types/node": ^18.0.0 || >=20.0.0
+ less: "*"
+ lightningcss: ^1.21.0
+ sass: "*"
+ sass-embedded: "*"
+ stylus: "*"
+ sugarss: "*"
+ terser: ^5.4.0
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ bin:
+ vite: bin/vite.js
+ checksum: 10c0/0ca7ca60f71c61f3855bbabf7e33909bec32933b35914d4d281813c728183e78e7ce5be05735a7671df3a994613d3881f520a32a80715faa92effb28deee9320
+ languageName: node
+ linkType: hard
+
"vitefu@npm:^0.2.5":
version: 0.2.5
resolution: "vitefu@npm:0.2.5"
@@ -17957,6 +19199,13 @@ __metadata:
languageName: node
linkType: hard
+"vscode-uri@npm:^3.0.8":
+ version: 3.0.8
+ resolution: "vscode-uri@npm:3.0.8"
+ checksum: 10c0/f7f217f526bf109589969fe6e66b71e70b937de1385a1d7bb577ca3ee7c5e820d3856a86e9ff2fa9b7a0bc56a3dd8c3a9a557d3fedd7df414bc618d5e6b567f9
+ languageName: node
+ linkType: hard
+
"watchpack@npm:^2.4.1":
version: 2.4.1
resolution: "watchpack@npm:2.4.1"