├── .github ├── FUNDING.yml └── workflows │ ├── build.yml │ └── coverage.yml ├── .gitignore ├── .npmrc ├── .vscode └── settings.json ├── README.md ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── size └── package.json ├── src └── index.ts ├── tests ├── index.test.tsx ├── package.json └── vitest.config.ts ├── tsconfig.json └── tsup.config.ts /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [charkour] 2 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | build: 8 | runs-on: ubuntu-latest 9 | 10 | strategy: 11 | matrix: 12 | node-version: [16.x, 20.x] 13 | zustand: [latest, next] # [latest, 4.2.0, 4.0.0, next] 14 | 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v4 18 | 19 | - name: Use Node.js ${{ matrix.node-version }} 20 | uses: actions/setup-node@v4 21 | with: 22 | node-version: ${{ matrix.node-version }} 23 | 24 | - uses: pnpm/action-setup@v4 25 | name: Install pnpm 26 | with: 27 | version: 8 28 | run_install: false 29 | 30 | - name: Install Dependencies 31 | run: pnpm install 32 | 33 | - name: Install Zustand ${{ matrix.zustand }} 34 | run: pnpm add zustand@${{ matrix.zustand }} -w 35 | 36 | - name: Build 37 | run: pnpm run build 38 | 39 | - name: Test 40 | run: pnpm run test:ci -------------------------------------------------------------------------------- /.github/workflows/coverage.yml: -------------------------------------------------------------------------------- 1 | name: 'Test' 2 | on: 3 | pull_request: 4 | 5 | jobs: 6 | test: 7 | runs-on: ubuntu-latest 8 | 9 | permissions: 10 | # Required to checkout the code 11 | contents: read 12 | # Required to put a comment into the pull-request 13 | pull-requests: write 14 | 15 | steps: 16 | - uses: actions/checkout@v4 17 | - uses: pnpm/action-setup@v4 18 | with: 19 | version: 8 20 | run_install: false 21 | - name: Install Node 22 | uses: actions/setup-node@v4 23 | - name: Install Deps 24 | run: pnpm install 25 | - name: Test 26 | run: pnpm test 27 | - name: Report Coverage 28 | # Set if: always() to also generate the report if tests are failing 29 | # Only works if you set `reportOnFailure: true` in your vite config as specified above 30 | if: always() 31 | uses: davelosert/vitest-coverage-report-action@v2 32 | with: 33 | working-directory: ./tests -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json 3 | dist 4 | coverage 5 | .DS_Store -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | save-exact=true -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "tsup", 4 | "zustand" 5 | ] 6 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # zustand-di 2 | 3 | dependency injection for [zustand](https://github.com/pmndrs/zustand) with [react context](https://react.dev/learn/passing-data-deeply-with-context). initialize zustand stores with component props. 4 | 5 | [![Build Size](https://img.shields.io/bundlephobia/minzip/zustand-di?label=bundle%20size&style=flat&colorA=000000&colorB=000000)](https://bundlephobia.com/result?p=zustand-di) 6 | [![Version](https://img.shields.io/npm/v/zustand-di?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/zustand-di) 7 | [![Downloads](https://img.shields.io/npm/dt/zustand-di?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/zustand-di) 8 | 9 | ## Installation 10 | 11 | ```bash 12 | npm install react zustand zustand-di 13 | ``` 14 | 15 | > Note: `zustand-di` requires `react` and `zustand` as peer dependencies. 16 | 17 | > For `zustand@4.1.0` and higher, you need `zustand-di@0.0.7` or higher. 18 | 19 | > For `zustand@~4.0.0`, you need `zustand-di@0.0.6` or lower. 20 | 21 | ## Usage 22 | 23 | ```tsx 24 | import { create } from "zustand"; 25 | import { createContext } from "zustand-di"; 26 | 27 | // 0. (TypeScript Only) Define a store 28 | type CounterState = { 29 | count: number; 30 | inc: () => void; 31 | }; 32 | 33 | // 1. Create the context 34 | const [Provider, useStore] = createContext(); 35 | 36 | // 2. Create the store 37 | const createStore = (initialState: { count: number }) => 38 | create((set) => ({ 39 | count: initialState.count, 40 | inc: () => set((state) => ({ count: state.count + 1 })), 41 | })); 42 | 43 | // 3. Use the store in a child component 44 | function Counter() { 45 | const { count, inc } = useStore((state) => state); 46 | return ( 47 | <> 48 | 49 |
count: {count}
50 | <> 51 | ); 52 | } 53 | 54 | // 4. Use the store in the app and pass in the store creator 55 | const myInitialState = { count: 5 }; 56 | 57 | function App() { 58 | return ( 59 | createStore(myInitialState)}> 60 | 61 | 62 | ); 63 | } 64 | ``` 65 | 66 | ## Motivation 67 | 68 | This package was originally inspired by [`createContext`](https://github.com/pmndrs/zustand/blob/main/src/context.ts) from `zustand/context` that was deprecated in v4. This package is a simplified version of that implementation: 69 | 70 | - Removes `useStoreApi` and forces the use of a selector. 71 | - Uses modern typescript features to simplify the code and reduce bundle size. 72 | - Returns an array of the Provider and `useStore` hook to reduce bundle size and improve DX. 73 | 74 | For a detailed explanation, check out TkDoDo's [blog post](https://tkdodo.eu/blog/zustand-and-react-context). 75 | 76 | ### Why is Dependency Injection useful within React? 77 | 78 | - You can pass in props to the store creator. 79 | - This is useful for testing and [initializing the store with props](https://github.com/pmndrs/zustand/blob/main/docs/guides/initialize-state-with-props.md). 80 | - You can also use this to create multiple instances of the same store with different props. 81 | 82 | ## API 83 | 84 | ### `createContext` 85 | 86 | This is the only export from the package. It creates a context and returns a Provider and `useStore` hook. 87 | 88 | ```ts 89 | interface State { 90 | count: number; 91 | } 92 | 93 | const [Provider, useStore] = createContext(); 94 | ``` 95 | 96 | #### `Provider` 97 | 98 | The `Provider` component is used to wrap the application and initialize the store. 99 | 100 | ```tsx 101 | 102 | 103 | 104 | ``` 105 | 106 | If you have default props, you can pass them to the `Provider` component. 107 | 108 | ```tsx 109 | createStore(myInitialState)}> 110 | 111 | 112 | ``` 113 | 114 | #### `useStore` 115 | 116 | The `useStore` hook is used to access the store in a child component. Be sure that the child component is wrapped in the `Provider` component. 117 | 118 | ```tsx 119 | function MyComponent = () => { 120 | const storeState = useStore((state) => state); 121 | return
{storeState.count}
; 122 | }; 123 | ``` 124 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zustand-di", 3 | "version": "0.0.16", 4 | "private": false, 5 | "description": "dependency injection for zustand with react context", 6 | "keywords": [ 7 | "zustand", 8 | "react", 9 | "context", 10 | "dependency-injection" 11 | ], 12 | "homepage": "https://github.com/charkour/zustand-di", 13 | "bugs": { 14 | "url": "https://github.com/charkour/zustand-di/issues" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/charkour/zustand-di.git" 19 | }, 20 | "funding": { 21 | "type": "individual", 22 | "url": "https://github.com/sponsors/charkour" 23 | }, 24 | "license": "MIT", 25 | "author": "Charles Kornoelje", 26 | "type": "module", 27 | "exports": { 28 | "import": { 29 | "types": "./dist/index.d.ts", 30 | "default": "./dist/index.js" 31 | }, 32 | "require": { 33 | "types": "./dist/index.d.cts", 34 | "default": "./dist/index.cjs" 35 | } 36 | }, 37 | "main": "./dist/index.cjs", 38 | "module": "./dist/index.js", 39 | "types": "./dist/index.d.ts", 40 | "files": [ 41 | "dist", 42 | "package.json" 43 | ], 44 | "scripts": { 45 | "build": "tsup", 46 | "dev": "pnpm --filter tests dev", 47 | "size": "pnpm --filter size size", 48 | "test": "pnpm --filter tests test", 49 | "test:ci": "pnpm --filter tests test:ci" 50 | }, 51 | "devDependencies": { 52 | "@types/react": "18.3.3", 53 | "react": "18.3.1", 54 | "tsup": "8.0.2", 55 | "typescript": "5.4.5", 56 | "zustand": "4.5.2" 57 | }, 58 | "peerDependencies": { 59 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 60 | "zustand": "^4.4.0 || ^5.0.0" 61 | }, 62 | "peerDependenciesMeta": { 63 | "react": { 64 | "optional": false 65 | }, 66 | "zustand": { 67 | "optional": false 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@types/react': 12 | specifier: 18.3.3 13 | version: 18.3.3 14 | react: 15 | specifier: 18.3.1 16 | version: 18.3.1 17 | tsup: 18 | specifier: 8.0.2 19 | version: 8.0.2(postcss@8.4.38)(typescript@5.4.5) 20 | typescript: 21 | specifier: 5.4.5 22 | version: 5.4.5 23 | zustand: 24 | specifier: 4.5.2 25 | version: 4.5.2(@types/react@18.3.3)(react@18.3.1) 26 | 27 | size: 28 | devDependencies: 29 | '@size-limit/preset-small-lib': 30 | specifier: 11.1.4 31 | version: 11.1.4(size-limit@11.1.4) 32 | size-limit: 33 | specifier: 11.1.4 34 | version: 11.1.4 35 | 36 | tests: 37 | devDependencies: 38 | '@testing-library/react': 39 | specifier: 15.0.7 40 | version: 15.0.7(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 41 | '@vitest/coverage-v8': 42 | specifier: 1.6.0 43 | version: 1.6.0(vitest@1.6.0(@vitest/ui@1.6.0)(happy-dom@14.12.0)) 44 | '@vitest/ui': 45 | specifier: 1.6.0 46 | version: 1.6.0(vitest@1.6.0) 47 | happy-dom: 48 | specifier: 14.12.0 49 | version: 14.12.0 50 | vitest: 51 | specifier: 1.6.0 52 | version: 1.6.0(@vitest/ui@1.6.0)(happy-dom@14.12.0) 53 | zustand: 54 | specifier: 4.5.2 55 | version: 4.5.2(@types/react@18.3.3)(react@18.3.1) 56 | 57 | packages: 58 | 59 | '@ampproject/remapping@2.3.0': 60 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 61 | engines: {node: '>=6.0.0'} 62 | 63 | '@babel/code-frame@7.24.6': 64 | resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} 65 | engines: {node: '>=6.9.0'} 66 | 67 | '@babel/helper-string-parser@7.24.6': 68 | resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} 69 | engines: {node: '>=6.9.0'} 70 | 71 | '@babel/helper-validator-identifier@7.24.6': 72 | resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} 73 | engines: {node: '>=6.9.0'} 74 | 75 | '@babel/highlight@7.24.6': 76 | resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} 77 | engines: {node: '>=6.9.0'} 78 | 79 | '@babel/parser@7.24.6': 80 | resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} 81 | engines: {node: '>=6.0.0'} 82 | hasBin: true 83 | 84 | '@babel/runtime@7.24.6': 85 | resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==} 86 | engines: {node: '>=6.9.0'} 87 | 88 | '@babel/types@7.24.6': 89 | resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} 90 | engines: {node: '>=6.9.0'} 91 | 92 | '@bcoe/v8-coverage@0.2.3': 93 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 94 | 95 | '@esbuild/aix-ppc64@0.19.12': 96 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 97 | engines: {node: '>=12'} 98 | cpu: [ppc64] 99 | os: [aix] 100 | 101 | '@esbuild/aix-ppc64@0.20.2': 102 | resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} 103 | engines: {node: '>=12'} 104 | cpu: [ppc64] 105 | os: [aix] 106 | 107 | '@esbuild/aix-ppc64@0.21.4': 108 | resolution: {integrity: sha512-Zrm+B33R4LWPLjDEVnEqt2+SLTATlru1q/xYKVn8oVTbiRBGmK2VIMoIYGJDGyftnGaC788IuzGFAlb7IQ0Y8A==} 109 | engines: {node: '>=12'} 110 | cpu: [ppc64] 111 | os: [aix] 112 | 113 | '@esbuild/android-arm64@0.19.12': 114 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 115 | engines: {node: '>=12'} 116 | cpu: [arm64] 117 | os: [android] 118 | 119 | '@esbuild/android-arm64@0.20.2': 120 | resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} 121 | engines: {node: '>=12'} 122 | cpu: [arm64] 123 | os: [android] 124 | 125 | '@esbuild/android-arm64@0.21.4': 126 | resolution: {integrity: sha512-fYFnz+ObClJ3dNiITySBUx+oNalYUT18/AryMxfovLkYWbutXsct3Wz2ZWAcGGppp+RVVX5FiXeLYGi97umisA==} 127 | engines: {node: '>=12'} 128 | cpu: [arm64] 129 | os: [android] 130 | 131 | '@esbuild/android-arm@0.19.12': 132 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 133 | engines: {node: '>=12'} 134 | cpu: [arm] 135 | os: [android] 136 | 137 | '@esbuild/android-arm@0.20.2': 138 | resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} 139 | engines: {node: '>=12'} 140 | cpu: [arm] 141 | os: [android] 142 | 143 | '@esbuild/android-arm@0.21.4': 144 | resolution: {integrity: sha512-E7H/yTd8kGQfY4z9t3nRPk/hrhaCajfA3YSQSBrst8B+3uTcgsi8N+ZWYCaeIDsiVs6m65JPCaQN/DxBRclF3A==} 145 | engines: {node: '>=12'} 146 | cpu: [arm] 147 | os: [android] 148 | 149 | '@esbuild/android-x64@0.19.12': 150 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 151 | engines: {node: '>=12'} 152 | cpu: [x64] 153 | os: [android] 154 | 155 | '@esbuild/android-x64@0.20.2': 156 | resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} 157 | engines: {node: '>=12'} 158 | cpu: [x64] 159 | os: [android] 160 | 161 | '@esbuild/android-x64@0.21.4': 162 | resolution: {integrity: sha512-mDqmlge3hFbEPbCWxp4fM6hqq7aZfLEHZAKGP9viq9wMUBVQx202aDIfc3l+d2cKhUJM741VrCXEzRFhPDKH3Q==} 163 | engines: {node: '>=12'} 164 | cpu: [x64] 165 | os: [android] 166 | 167 | '@esbuild/darwin-arm64@0.19.12': 168 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 169 | engines: {node: '>=12'} 170 | cpu: [arm64] 171 | os: [darwin] 172 | 173 | '@esbuild/darwin-arm64@0.20.2': 174 | resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} 175 | engines: {node: '>=12'} 176 | cpu: [arm64] 177 | os: [darwin] 178 | 179 | '@esbuild/darwin-arm64@0.21.4': 180 | resolution: {integrity: sha512-72eaIrDZDSiWqpmCzVaBD58c8ea8cw/U0fq/PPOTqE3c53D0xVMRt2ooIABZ6/wj99Y+h4ksT/+I+srCDLU9TA==} 181 | engines: {node: '>=12'} 182 | cpu: [arm64] 183 | os: [darwin] 184 | 185 | '@esbuild/darwin-x64@0.19.12': 186 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 187 | engines: {node: '>=12'} 188 | cpu: [x64] 189 | os: [darwin] 190 | 191 | '@esbuild/darwin-x64@0.20.2': 192 | resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} 193 | engines: {node: '>=12'} 194 | cpu: [x64] 195 | os: [darwin] 196 | 197 | '@esbuild/darwin-x64@0.21.4': 198 | resolution: {integrity: sha512-uBsuwRMehGmw1JC7Vecu/upOjTsMhgahmDkWhGLWxIgUn2x/Y4tIwUZngsmVb6XyPSTXJYS4YiASKPcm9Zitag==} 199 | engines: {node: '>=12'} 200 | cpu: [x64] 201 | os: [darwin] 202 | 203 | '@esbuild/freebsd-arm64@0.19.12': 204 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 205 | engines: {node: '>=12'} 206 | cpu: [arm64] 207 | os: [freebsd] 208 | 209 | '@esbuild/freebsd-arm64@0.20.2': 210 | resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} 211 | engines: {node: '>=12'} 212 | cpu: [arm64] 213 | os: [freebsd] 214 | 215 | '@esbuild/freebsd-arm64@0.21.4': 216 | resolution: {integrity: sha512-8JfuSC6YMSAEIZIWNL3GtdUT5NhUA/CMUCpZdDRolUXNAXEE/Vbpe6qlGLpfThtY5NwXq8Hi4nJy4YfPh+TwAg==} 217 | engines: {node: '>=12'} 218 | cpu: [arm64] 219 | os: [freebsd] 220 | 221 | '@esbuild/freebsd-x64@0.19.12': 222 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 223 | engines: {node: '>=12'} 224 | cpu: [x64] 225 | os: [freebsd] 226 | 227 | '@esbuild/freebsd-x64@0.20.2': 228 | resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} 229 | engines: {node: '>=12'} 230 | cpu: [x64] 231 | os: [freebsd] 232 | 233 | '@esbuild/freebsd-x64@0.21.4': 234 | resolution: {integrity: sha512-8d9y9eQhxv4ef7JmXny7591P/PYsDFc4+STaxC1GBv0tMyCdyWfXu2jBuqRsyhY8uL2HU8uPyscgE2KxCY9imQ==} 235 | engines: {node: '>=12'} 236 | cpu: [x64] 237 | os: [freebsd] 238 | 239 | '@esbuild/linux-arm64@0.19.12': 240 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 241 | engines: {node: '>=12'} 242 | cpu: [arm64] 243 | os: [linux] 244 | 245 | '@esbuild/linux-arm64@0.20.2': 246 | resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} 247 | engines: {node: '>=12'} 248 | cpu: [arm64] 249 | os: [linux] 250 | 251 | '@esbuild/linux-arm64@0.21.4': 252 | resolution: {integrity: sha512-/GLD2orjNU50v9PcxNpYZi+y8dJ7e7/LhQukN3S4jNDXCKkyyiyAz9zDw3siZ7Eh1tRcnCHAo/WcqKMzmi4eMQ==} 253 | engines: {node: '>=12'} 254 | cpu: [arm64] 255 | os: [linux] 256 | 257 | '@esbuild/linux-arm@0.19.12': 258 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 259 | engines: {node: '>=12'} 260 | cpu: [arm] 261 | os: [linux] 262 | 263 | '@esbuild/linux-arm@0.20.2': 264 | resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} 265 | engines: {node: '>=12'} 266 | cpu: [arm] 267 | os: [linux] 268 | 269 | '@esbuild/linux-arm@0.21.4': 270 | resolution: {integrity: sha512-2rqFFefpYmpMs+FWjkzSgXg5vViocqpq5a1PSRgT0AvSgxoXmGF17qfGAzKedg6wAwyM7UltrKVo9kxaJLMF/g==} 271 | engines: {node: '>=12'} 272 | cpu: [arm] 273 | os: [linux] 274 | 275 | '@esbuild/linux-ia32@0.19.12': 276 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 277 | engines: {node: '>=12'} 278 | cpu: [ia32] 279 | os: [linux] 280 | 281 | '@esbuild/linux-ia32@0.20.2': 282 | resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} 283 | engines: {node: '>=12'} 284 | cpu: [ia32] 285 | os: [linux] 286 | 287 | '@esbuild/linux-ia32@0.21.4': 288 | resolution: {integrity: sha512-pNftBl7m/tFG3t2m/tSjuYeWIffzwAZT9m08+9DPLizxVOsUl8DdFzn9HvJrTQwe3wvJnwTdl92AonY36w/25g==} 289 | engines: {node: '>=12'} 290 | cpu: [ia32] 291 | os: [linux] 292 | 293 | '@esbuild/linux-loong64@0.19.12': 294 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 295 | engines: {node: '>=12'} 296 | cpu: [loong64] 297 | os: [linux] 298 | 299 | '@esbuild/linux-loong64@0.20.2': 300 | resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} 301 | engines: {node: '>=12'} 302 | cpu: [loong64] 303 | os: [linux] 304 | 305 | '@esbuild/linux-loong64@0.21.4': 306 | resolution: {integrity: sha512-cSD2gzCK5LuVX+hszzXQzlWya6c7hilO71L9h4KHwqI4qeqZ57bAtkgcC2YioXjsbfAv4lPn3qe3b00Zt+jIfQ==} 307 | engines: {node: '>=12'} 308 | cpu: [loong64] 309 | os: [linux] 310 | 311 | '@esbuild/linux-mips64el@0.19.12': 312 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 313 | engines: {node: '>=12'} 314 | cpu: [mips64el] 315 | os: [linux] 316 | 317 | '@esbuild/linux-mips64el@0.20.2': 318 | resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} 319 | engines: {node: '>=12'} 320 | cpu: [mips64el] 321 | os: [linux] 322 | 323 | '@esbuild/linux-mips64el@0.21.4': 324 | resolution: {integrity: sha512-qtzAd3BJh7UdbiXCrg6npWLYU0YpufsV9XlufKhMhYMJGJCdfX/G6+PNd0+v877X1JG5VmjBLUiFB0o8EUSicA==} 325 | engines: {node: '>=12'} 326 | cpu: [mips64el] 327 | os: [linux] 328 | 329 | '@esbuild/linux-ppc64@0.19.12': 330 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 331 | engines: {node: '>=12'} 332 | cpu: [ppc64] 333 | os: [linux] 334 | 335 | '@esbuild/linux-ppc64@0.20.2': 336 | resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} 337 | engines: {node: '>=12'} 338 | cpu: [ppc64] 339 | os: [linux] 340 | 341 | '@esbuild/linux-ppc64@0.21.4': 342 | resolution: {integrity: sha512-yB8AYzOTaL0D5+2a4xEy7OVvbcypvDR05MsB/VVPVA7nL4hc5w5Dyd/ddnayStDgJE59fAgNEOdLhBxjfx5+dg==} 343 | engines: {node: '>=12'} 344 | cpu: [ppc64] 345 | os: [linux] 346 | 347 | '@esbuild/linux-riscv64@0.19.12': 348 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 349 | engines: {node: '>=12'} 350 | cpu: [riscv64] 351 | os: [linux] 352 | 353 | '@esbuild/linux-riscv64@0.20.2': 354 | resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} 355 | engines: {node: '>=12'} 356 | cpu: [riscv64] 357 | os: [linux] 358 | 359 | '@esbuild/linux-riscv64@0.21.4': 360 | resolution: {integrity: sha512-Y5AgOuVzPjQdgU59ramLoqSSiXddu7F3F+LI5hYy/d1UHN7K5oLzYBDZe23QmQJ9PIVUXwOdKJ/jZahPdxzm9w==} 361 | engines: {node: '>=12'} 362 | cpu: [riscv64] 363 | os: [linux] 364 | 365 | '@esbuild/linux-s390x@0.19.12': 366 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 367 | engines: {node: '>=12'} 368 | cpu: [s390x] 369 | os: [linux] 370 | 371 | '@esbuild/linux-s390x@0.20.2': 372 | resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} 373 | engines: {node: '>=12'} 374 | cpu: [s390x] 375 | os: [linux] 376 | 377 | '@esbuild/linux-s390x@0.21.4': 378 | resolution: {integrity: sha512-Iqc/l/FFwtt8FoTK9riYv9zQNms7B8u+vAI/rxKuN10HgQIXaPzKZc479lZ0x6+vKVQbu55GdpYpeNWzjOhgbA==} 379 | engines: {node: '>=12'} 380 | cpu: [s390x] 381 | os: [linux] 382 | 383 | '@esbuild/linux-x64@0.19.12': 384 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 385 | engines: {node: '>=12'} 386 | cpu: [x64] 387 | os: [linux] 388 | 389 | '@esbuild/linux-x64@0.20.2': 390 | resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} 391 | engines: {node: '>=12'} 392 | cpu: [x64] 393 | os: [linux] 394 | 395 | '@esbuild/linux-x64@0.21.4': 396 | resolution: {integrity: sha512-Td9jv782UMAFsuLZINfUpoF5mZIbAj+jv1YVtE58rFtfvoKRiKSkRGQfHTgKamLVT/fO7203bHa3wU122V/Bdg==} 397 | engines: {node: '>=12'} 398 | cpu: [x64] 399 | os: [linux] 400 | 401 | '@esbuild/netbsd-x64@0.19.12': 402 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 403 | engines: {node: '>=12'} 404 | cpu: [x64] 405 | os: [netbsd] 406 | 407 | '@esbuild/netbsd-x64@0.20.2': 408 | resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} 409 | engines: {node: '>=12'} 410 | cpu: [x64] 411 | os: [netbsd] 412 | 413 | '@esbuild/netbsd-x64@0.21.4': 414 | resolution: {integrity: sha512-Awn38oSXxsPMQxaV0Ipb7W/gxZtk5Tx3+W+rAPdZkyEhQ6968r9NvtkjhnhbEgWXYbgV+JEONJ6PcdBS+nlcpA==} 415 | engines: {node: '>=12'} 416 | cpu: [x64] 417 | os: [netbsd] 418 | 419 | '@esbuild/openbsd-x64@0.19.12': 420 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 421 | engines: {node: '>=12'} 422 | cpu: [x64] 423 | os: [openbsd] 424 | 425 | '@esbuild/openbsd-x64@0.20.2': 426 | resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} 427 | engines: {node: '>=12'} 428 | cpu: [x64] 429 | os: [openbsd] 430 | 431 | '@esbuild/openbsd-x64@0.21.4': 432 | resolution: {integrity: sha512-IsUmQeCY0aU374R82fxIPu6vkOybWIMc3hVGZ3ChRwL9hA1TwY+tS0lgFWV5+F1+1ssuvvXt3HFqe8roCip8Hg==} 433 | engines: {node: '>=12'} 434 | cpu: [x64] 435 | os: [openbsd] 436 | 437 | '@esbuild/sunos-x64@0.19.12': 438 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 439 | engines: {node: '>=12'} 440 | cpu: [x64] 441 | os: [sunos] 442 | 443 | '@esbuild/sunos-x64@0.20.2': 444 | resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} 445 | engines: {node: '>=12'} 446 | cpu: [x64] 447 | os: [sunos] 448 | 449 | '@esbuild/sunos-x64@0.21.4': 450 | resolution: {integrity: sha512-hsKhgZ4teLUaDA6FG/QIu2q0rI6I36tZVfM4DBZv3BG0mkMIdEnMbhc4xwLvLJSS22uWmaVkFkqWgIS0gPIm+A==} 451 | engines: {node: '>=12'} 452 | cpu: [x64] 453 | os: [sunos] 454 | 455 | '@esbuild/win32-arm64@0.19.12': 456 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 457 | engines: {node: '>=12'} 458 | cpu: [arm64] 459 | os: [win32] 460 | 461 | '@esbuild/win32-arm64@0.20.2': 462 | resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} 463 | engines: {node: '>=12'} 464 | cpu: [arm64] 465 | os: [win32] 466 | 467 | '@esbuild/win32-arm64@0.21.4': 468 | resolution: {integrity: sha512-UUfMgMoXPoA/bvGUNfUBFLCh0gt9dxZYIx9W4rfJr7+hKe5jxxHmfOK8YSH4qsHLLN4Ck8JZ+v7Q5fIm1huErg==} 469 | engines: {node: '>=12'} 470 | cpu: [arm64] 471 | os: [win32] 472 | 473 | '@esbuild/win32-ia32@0.19.12': 474 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 475 | engines: {node: '>=12'} 476 | cpu: [ia32] 477 | os: [win32] 478 | 479 | '@esbuild/win32-ia32@0.20.2': 480 | resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} 481 | engines: {node: '>=12'} 482 | cpu: [ia32] 483 | os: [win32] 484 | 485 | '@esbuild/win32-ia32@0.21.4': 486 | resolution: {integrity: sha512-yIxbspZb5kGCAHWm8dexALQ9en1IYDfErzjSEq1KzXFniHv019VT3mNtTK7t8qdy4TwT6QYHI9sEZabONHg+aw==} 487 | engines: {node: '>=12'} 488 | cpu: [ia32] 489 | os: [win32] 490 | 491 | '@esbuild/win32-x64@0.19.12': 492 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 493 | engines: {node: '>=12'} 494 | cpu: [x64] 495 | os: [win32] 496 | 497 | '@esbuild/win32-x64@0.20.2': 498 | resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} 499 | engines: {node: '>=12'} 500 | cpu: [x64] 501 | os: [win32] 502 | 503 | '@esbuild/win32-x64@0.21.4': 504 | resolution: {integrity: sha512-sywLRD3UK/qRJt0oBwdpYLBibk7KiRfbswmWRDabuncQYSlf8aLEEUor/oP6KRz8KEG+HoiVLBhPRD5JWjS8Sg==} 505 | engines: {node: '>=12'} 506 | cpu: [x64] 507 | os: [win32] 508 | 509 | '@isaacs/cliui@8.0.2': 510 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 511 | engines: {node: '>=12'} 512 | 513 | '@istanbuljs/schema@0.1.3': 514 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 515 | engines: {node: '>=8'} 516 | 517 | '@jest/schemas@29.6.3': 518 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 519 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 520 | 521 | '@jridgewell/gen-mapping@0.3.5': 522 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 523 | engines: {node: '>=6.0.0'} 524 | 525 | '@jridgewell/resolve-uri@3.1.2': 526 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 527 | engines: {node: '>=6.0.0'} 528 | 529 | '@jridgewell/set-array@1.2.1': 530 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 531 | engines: {node: '>=6.0.0'} 532 | 533 | '@jridgewell/sourcemap-codec@1.4.15': 534 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 535 | 536 | '@jridgewell/trace-mapping@0.3.25': 537 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 538 | 539 | '@nodelib/fs.scandir@2.1.5': 540 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 541 | engines: {node: '>= 8'} 542 | 543 | '@nodelib/fs.stat@2.0.5': 544 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 545 | engines: {node: '>= 8'} 546 | 547 | '@nodelib/fs.walk@1.2.8': 548 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 549 | engines: {node: '>= 8'} 550 | 551 | '@pkgjs/parseargs@0.11.0': 552 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 553 | engines: {node: '>=14'} 554 | 555 | '@polka/url@1.0.0-next.25': 556 | resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} 557 | 558 | '@rollup/rollup-android-arm-eabi@4.18.0': 559 | resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} 560 | cpu: [arm] 561 | os: [android] 562 | 563 | '@rollup/rollup-android-arm64@4.18.0': 564 | resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} 565 | cpu: [arm64] 566 | os: [android] 567 | 568 | '@rollup/rollup-darwin-arm64@4.18.0': 569 | resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} 570 | cpu: [arm64] 571 | os: [darwin] 572 | 573 | '@rollup/rollup-darwin-x64@4.18.0': 574 | resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} 575 | cpu: [x64] 576 | os: [darwin] 577 | 578 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 579 | resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} 580 | cpu: [arm] 581 | os: [linux] 582 | 583 | '@rollup/rollup-linux-arm-musleabihf@4.18.0': 584 | resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} 585 | cpu: [arm] 586 | os: [linux] 587 | 588 | '@rollup/rollup-linux-arm64-gnu@4.18.0': 589 | resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} 590 | cpu: [arm64] 591 | os: [linux] 592 | 593 | '@rollup/rollup-linux-arm64-musl@4.18.0': 594 | resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} 595 | cpu: [arm64] 596 | os: [linux] 597 | 598 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 599 | resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} 600 | cpu: [ppc64] 601 | os: [linux] 602 | 603 | '@rollup/rollup-linux-riscv64-gnu@4.18.0': 604 | resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} 605 | cpu: [riscv64] 606 | os: [linux] 607 | 608 | '@rollup/rollup-linux-s390x-gnu@4.18.0': 609 | resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} 610 | cpu: [s390x] 611 | os: [linux] 612 | 613 | '@rollup/rollup-linux-x64-gnu@4.18.0': 614 | resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} 615 | cpu: [x64] 616 | os: [linux] 617 | 618 | '@rollup/rollup-linux-x64-musl@4.18.0': 619 | resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} 620 | cpu: [x64] 621 | os: [linux] 622 | 623 | '@rollup/rollup-win32-arm64-msvc@4.18.0': 624 | resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} 625 | cpu: [arm64] 626 | os: [win32] 627 | 628 | '@rollup/rollup-win32-ia32-msvc@4.18.0': 629 | resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} 630 | cpu: [ia32] 631 | os: [win32] 632 | 633 | '@rollup/rollup-win32-x64-msvc@4.18.0': 634 | resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} 635 | cpu: [x64] 636 | os: [win32] 637 | 638 | '@sinclair/typebox@0.27.8': 639 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 640 | 641 | '@sindresorhus/merge-streams@2.3.0': 642 | resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} 643 | engines: {node: '>=18'} 644 | 645 | '@size-limit/esbuild@11.1.4': 646 | resolution: {integrity: sha512-Nxh+Fw4Z7sFjRLeT7GDZIy297VXyJrMvG20UDSWP31QgglriEBDkW9U77T7W6js5FaEr89bYVrGzpHfmE1CLFw==} 647 | engines: {node: ^18.0.0 || >=20.0.0} 648 | peerDependencies: 649 | size-limit: 11.1.4 650 | 651 | '@size-limit/file@11.1.4': 652 | resolution: {integrity: sha512-QxnGj9cxhCEuqMAV01gqonXIKcc+caZqFHZpV51oL2ZJNGSPP9Q/yyf+7HbVe00faOFd1dZZwMwzZmX7HQ9LbA==} 653 | engines: {node: ^18.0.0 || >=20.0.0} 654 | peerDependencies: 655 | size-limit: 11.1.4 656 | 657 | '@size-limit/preset-small-lib@11.1.4': 658 | resolution: {integrity: sha512-wELW374esv+2Nlzf7g+qW4Af9L69duLoO9F52f0sGk/nzb6et7u8gLRvweWrBfm3itUrqHCpGSSVabTsIU8kNw==} 659 | peerDependencies: 660 | size-limit: 11.1.4 661 | 662 | '@testing-library/dom@10.1.0': 663 | resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} 664 | engines: {node: '>=18'} 665 | 666 | '@testing-library/react@15.0.7': 667 | resolution: {integrity: sha512-cg0RvEdD1TIhhkm1IeYMQxrzy0MtUNfa3minv4MjbgcYzJAZ7yD0i0lwoPOTPr+INtiXFezt2o8xMSnyHhEn2Q==} 668 | engines: {node: '>=18'} 669 | peerDependencies: 670 | '@types/react': ^18.0.0 671 | react: ^18.0.0 672 | react-dom: ^18.0.0 673 | peerDependenciesMeta: 674 | '@types/react': 675 | optional: true 676 | 677 | '@types/aria-query@5.0.4': 678 | resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} 679 | 680 | '@types/estree@1.0.5': 681 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 682 | 683 | '@types/prop-types@15.7.12': 684 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 685 | 686 | '@types/react-dom@18.3.0': 687 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 688 | 689 | '@types/react@18.3.3': 690 | resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} 691 | 692 | '@vitest/coverage-v8@1.6.0': 693 | resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==} 694 | peerDependencies: 695 | vitest: 1.6.0 696 | 697 | '@vitest/expect@1.6.0': 698 | resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} 699 | 700 | '@vitest/runner@1.6.0': 701 | resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} 702 | 703 | '@vitest/snapshot@1.6.0': 704 | resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} 705 | 706 | '@vitest/spy@1.6.0': 707 | resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} 708 | 709 | '@vitest/ui@1.6.0': 710 | resolution: {integrity: sha512-k3Lyo+ONLOgylctiGovRKy7V4+dIN2yxstX3eY5cWFXH6WP+ooVX79YSyi0GagdTQzLmT43BF27T0s6dOIPBXA==} 711 | peerDependencies: 712 | vitest: 1.6.0 713 | 714 | '@vitest/utils@1.6.0': 715 | resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} 716 | 717 | acorn-walk@8.3.2: 718 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} 719 | engines: {node: '>=0.4.0'} 720 | 721 | acorn@8.11.3: 722 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 723 | engines: {node: '>=0.4.0'} 724 | hasBin: true 725 | 726 | ansi-regex@5.0.1: 727 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 728 | engines: {node: '>=8'} 729 | 730 | ansi-regex@6.0.1: 731 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 732 | engines: {node: '>=12'} 733 | 734 | ansi-styles@3.2.1: 735 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 736 | engines: {node: '>=4'} 737 | 738 | ansi-styles@4.3.0: 739 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 740 | engines: {node: '>=8'} 741 | 742 | ansi-styles@5.2.0: 743 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 744 | engines: {node: '>=10'} 745 | 746 | ansi-styles@6.2.1: 747 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 748 | engines: {node: '>=12'} 749 | 750 | any-promise@1.3.0: 751 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 752 | 753 | anymatch@3.1.3: 754 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 755 | engines: {node: '>= 8'} 756 | 757 | aria-query@5.3.0: 758 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 759 | 760 | array-union@2.1.0: 761 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 762 | engines: {node: '>=8'} 763 | 764 | assertion-error@1.1.0: 765 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 766 | 767 | balanced-match@1.0.2: 768 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 769 | 770 | binary-extensions@2.3.0: 771 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 772 | engines: {node: '>=8'} 773 | 774 | brace-expansion@1.1.11: 775 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 776 | 777 | brace-expansion@2.0.1: 778 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 779 | 780 | braces@3.0.3: 781 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 782 | engines: {node: '>=8'} 783 | 784 | bundle-require@4.1.0: 785 | resolution: {integrity: sha512-FeArRFM+ziGkRViKRnSTbHZc35dgmR9yNog05Kn0+ItI59pOAISGvnnIwW1WgFZQW59IxD9QpJnUPkdIPfZuXg==} 786 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 787 | peerDependencies: 788 | esbuild: '>=0.17' 789 | 790 | bytes-iec@3.1.1: 791 | resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} 792 | engines: {node: '>= 0.8'} 793 | 794 | cac@6.7.14: 795 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 796 | engines: {node: '>=8'} 797 | 798 | chai@4.4.1: 799 | resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} 800 | engines: {node: '>=4'} 801 | 802 | chalk@2.4.2: 803 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 804 | engines: {node: '>=4'} 805 | 806 | chalk@4.1.2: 807 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 808 | engines: {node: '>=10'} 809 | 810 | check-error@1.0.3: 811 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} 812 | 813 | chokidar@3.6.0: 814 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 815 | engines: {node: '>= 8.10.0'} 816 | 817 | color-convert@1.9.3: 818 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 819 | 820 | color-convert@2.0.1: 821 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 822 | engines: {node: '>=7.0.0'} 823 | 824 | color-name@1.1.3: 825 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 826 | 827 | color-name@1.1.4: 828 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 829 | 830 | commander@4.1.1: 831 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 832 | engines: {node: '>= 6'} 833 | 834 | concat-map@0.0.1: 835 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 836 | 837 | confbox@0.1.7: 838 | resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} 839 | 840 | cross-spawn@7.0.3: 841 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 842 | engines: {node: '>= 8'} 843 | 844 | csstype@3.1.3: 845 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 846 | 847 | debug@4.3.5: 848 | resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} 849 | engines: {node: '>=6.0'} 850 | peerDependencies: 851 | supports-color: '*' 852 | peerDependenciesMeta: 853 | supports-color: 854 | optional: true 855 | 856 | deep-eql@4.1.3: 857 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 858 | engines: {node: '>=6'} 859 | 860 | dequal@2.0.3: 861 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 862 | engines: {node: '>=6'} 863 | 864 | diff-sequences@29.6.3: 865 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 866 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 867 | 868 | dir-glob@3.0.1: 869 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 870 | engines: {node: '>=8'} 871 | 872 | dom-accessibility-api@0.5.16: 873 | resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} 874 | 875 | eastasianwidth@0.2.0: 876 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 877 | 878 | emoji-regex@8.0.0: 879 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 880 | 881 | emoji-regex@9.2.2: 882 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 883 | 884 | entities@4.5.0: 885 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 886 | engines: {node: '>=0.12'} 887 | 888 | esbuild@0.19.12: 889 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 890 | engines: {node: '>=12'} 891 | hasBin: true 892 | 893 | esbuild@0.20.2: 894 | resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} 895 | engines: {node: '>=12'} 896 | hasBin: true 897 | 898 | esbuild@0.21.4: 899 | resolution: {integrity: sha512-sFMcNNrj+Q0ZDolrp5pDhH0nRPN9hLIM3fRPwgbLYJeSHHgnXSnbV3xYgSVuOeLWH9c73VwmEverVzupIv5xuA==} 900 | engines: {node: '>=12'} 901 | hasBin: true 902 | 903 | escape-string-regexp@1.0.5: 904 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 905 | engines: {node: '>=0.8.0'} 906 | 907 | estree-walker@3.0.3: 908 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 909 | 910 | execa@5.1.1: 911 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 912 | engines: {node: '>=10'} 913 | 914 | execa@8.0.1: 915 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 916 | engines: {node: '>=16.17'} 917 | 918 | fast-glob@3.3.2: 919 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 920 | engines: {node: '>=8.6.0'} 921 | 922 | fastq@1.17.1: 923 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 924 | 925 | fflate@0.8.2: 926 | resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} 927 | 928 | fill-range@7.1.1: 929 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 930 | engines: {node: '>=8'} 931 | 932 | flatted@3.3.1: 933 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 934 | 935 | foreground-child@3.1.1: 936 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 937 | engines: {node: '>=14'} 938 | 939 | fs.realpath@1.0.0: 940 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 941 | 942 | fsevents@2.3.3: 943 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 944 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 945 | os: [darwin] 946 | 947 | get-func-name@2.0.2: 948 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 949 | 950 | get-stream@6.0.1: 951 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 952 | engines: {node: '>=10'} 953 | 954 | get-stream@8.0.1: 955 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 956 | engines: {node: '>=16'} 957 | 958 | glob-parent@5.1.2: 959 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 960 | engines: {node: '>= 6'} 961 | 962 | glob@10.4.1: 963 | resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} 964 | engines: {node: '>=16 || 14 >=14.18'} 965 | hasBin: true 966 | 967 | glob@7.2.3: 968 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 969 | deprecated: Glob versions prior to v9 are no longer supported 970 | 971 | globby@11.1.0: 972 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 973 | engines: {node: '>=10'} 974 | 975 | globby@14.0.1: 976 | resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} 977 | engines: {node: '>=18'} 978 | 979 | happy-dom@14.12.0: 980 | resolution: {integrity: sha512-dHcnlGFY2o2CdxfuYpqwSrBrpj/Kuzv4u4f3TU5yHW1GL24dKij4pv1BRjXnXc3uWo8qsCbToF9weaDsm/He8A==} 981 | engines: {node: '>=16.0.0'} 982 | 983 | has-flag@3.0.0: 984 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 985 | engines: {node: '>=4'} 986 | 987 | has-flag@4.0.0: 988 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 989 | engines: {node: '>=8'} 990 | 991 | html-escaper@2.0.2: 992 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 993 | 994 | human-signals@2.1.0: 995 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 996 | engines: {node: '>=10.17.0'} 997 | 998 | human-signals@5.0.0: 999 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 1000 | engines: {node: '>=16.17.0'} 1001 | 1002 | ignore@5.3.1: 1003 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1004 | engines: {node: '>= 4'} 1005 | 1006 | inflight@1.0.6: 1007 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1008 | 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. 1009 | 1010 | inherits@2.0.4: 1011 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1012 | 1013 | is-binary-path@2.1.0: 1014 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1015 | engines: {node: '>=8'} 1016 | 1017 | is-extglob@2.1.1: 1018 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1019 | engines: {node: '>=0.10.0'} 1020 | 1021 | is-fullwidth-code-point@3.0.0: 1022 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1023 | engines: {node: '>=8'} 1024 | 1025 | is-glob@4.0.3: 1026 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1027 | engines: {node: '>=0.10.0'} 1028 | 1029 | is-number@7.0.0: 1030 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1031 | engines: {node: '>=0.12.0'} 1032 | 1033 | is-stream@2.0.1: 1034 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1035 | engines: {node: '>=8'} 1036 | 1037 | is-stream@3.0.0: 1038 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 1039 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1040 | 1041 | isexe@2.0.0: 1042 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1043 | 1044 | istanbul-lib-coverage@3.2.2: 1045 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} 1046 | engines: {node: '>=8'} 1047 | 1048 | istanbul-lib-report@3.0.1: 1049 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} 1050 | engines: {node: '>=10'} 1051 | 1052 | istanbul-lib-source-maps@5.0.4: 1053 | resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} 1054 | engines: {node: '>=10'} 1055 | 1056 | istanbul-reports@3.1.7: 1057 | resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} 1058 | engines: {node: '>=8'} 1059 | 1060 | jackspeak@3.1.2: 1061 | resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} 1062 | engines: {node: '>=14'} 1063 | 1064 | jiti@1.21.0: 1065 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 1066 | hasBin: true 1067 | 1068 | joycon@3.1.1: 1069 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1070 | engines: {node: '>=10'} 1071 | 1072 | js-tokens@4.0.0: 1073 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1074 | 1075 | js-tokens@9.0.0: 1076 | resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} 1077 | 1078 | lilconfig@3.1.1: 1079 | resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} 1080 | engines: {node: '>=14'} 1081 | 1082 | lines-and-columns@1.2.4: 1083 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1084 | 1085 | load-tsconfig@0.2.5: 1086 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 1087 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1088 | 1089 | local-pkg@0.5.0: 1090 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} 1091 | engines: {node: '>=14'} 1092 | 1093 | lodash.sortby@4.7.0: 1094 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 1095 | 1096 | loose-envify@1.4.0: 1097 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1098 | hasBin: true 1099 | 1100 | loupe@2.3.7: 1101 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} 1102 | 1103 | lru-cache@10.2.2: 1104 | resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} 1105 | engines: {node: 14 || >=16.14} 1106 | 1107 | lz-string@1.5.0: 1108 | resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} 1109 | hasBin: true 1110 | 1111 | magic-string@0.30.10: 1112 | resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} 1113 | 1114 | magicast@0.3.4: 1115 | resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} 1116 | 1117 | make-dir@4.0.0: 1118 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} 1119 | engines: {node: '>=10'} 1120 | 1121 | merge-stream@2.0.0: 1122 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1123 | 1124 | merge2@1.4.1: 1125 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1126 | engines: {node: '>= 8'} 1127 | 1128 | micromatch@4.0.7: 1129 | resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} 1130 | engines: {node: '>=8.6'} 1131 | 1132 | mimic-fn@2.1.0: 1133 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1134 | engines: {node: '>=6'} 1135 | 1136 | mimic-fn@4.0.0: 1137 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 1138 | engines: {node: '>=12'} 1139 | 1140 | minimatch@3.1.2: 1141 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1142 | 1143 | minimatch@9.0.4: 1144 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 1145 | engines: {node: '>=16 || 14 >=14.17'} 1146 | 1147 | minipass@7.1.2: 1148 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1149 | engines: {node: '>=16 || 14 >=14.17'} 1150 | 1151 | mlly@1.7.0: 1152 | resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} 1153 | 1154 | mrmime@2.0.0: 1155 | resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} 1156 | engines: {node: '>=10'} 1157 | 1158 | ms@2.1.2: 1159 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1160 | 1161 | mz@2.7.0: 1162 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1163 | 1164 | nanoid@3.3.7: 1165 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1166 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1167 | hasBin: true 1168 | 1169 | nanoid@5.0.7: 1170 | resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} 1171 | engines: {node: ^18 || >=20} 1172 | hasBin: true 1173 | 1174 | nanospinner@1.1.0: 1175 | resolution: {integrity: sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==} 1176 | 1177 | normalize-path@3.0.0: 1178 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1179 | engines: {node: '>=0.10.0'} 1180 | 1181 | npm-run-path@4.0.1: 1182 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1183 | engines: {node: '>=8'} 1184 | 1185 | npm-run-path@5.3.0: 1186 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 1187 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1188 | 1189 | object-assign@4.1.1: 1190 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1191 | engines: {node: '>=0.10.0'} 1192 | 1193 | once@1.4.0: 1194 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1195 | 1196 | onetime@5.1.2: 1197 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1198 | engines: {node: '>=6'} 1199 | 1200 | onetime@6.0.0: 1201 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1202 | engines: {node: '>=12'} 1203 | 1204 | p-limit@5.0.0: 1205 | resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} 1206 | engines: {node: '>=18'} 1207 | 1208 | path-is-absolute@1.0.1: 1209 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1210 | engines: {node: '>=0.10.0'} 1211 | 1212 | path-key@3.1.1: 1213 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1214 | engines: {node: '>=8'} 1215 | 1216 | path-key@4.0.0: 1217 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1218 | engines: {node: '>=12'} 1219 | 1220 | path-scurry@1.11.1: 1221 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1222 | engines: {node: '>=16 || 14 >=14.18'} 1223 | 1224 | path-type@4.0.0: 1225 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1226 | engines: {node: '>=8'} 1227 | 1228 | path-type@5.0.0: 1229 | resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} 1230 | engines: {node: '>=12'} 1231 | 1232 | pathe@1.1.2: 1233 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 1234 | 1235 | pathval@1.1.1: 1236 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 1237 | 1238 | picocolors@1.0.1: 1239 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 1240 | 1241 | picomatch@2.3.1: 1242 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1243 | engines: {node: '>=8.6'} 1244 | 1245 | pirates@4.0.6: 1246 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1247 | engines: {node: '>= 6'} 1248 | 1249 | pkg-types@1.1.1: 1250 | resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} 1251 | 1252 | postcss-load-config@4.0.2: 1253 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 1254 | engines: {node: '>= 14'} 1255 | peerDependencies: 1256 | postcss: '>=8.0.9' 1257 | ts-node: '>=9.0.0' 1258 | peerDependenciesMeta: 1259 | postcss: 1260 | optional: true 1261 | ts-node: 1262 | optional: true 1263 | 1264 | postcss@8.4.38: 1265 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 1266 | engines: {node: ^10 || ^12 || >=14} 1267 | 1268 | pretty-format@27.5.1: 1269 | resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 1270 | engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 1271 | 1272 | pretty-format@29.7.0: 1273 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 1274 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1275 | 1276 | punycode@2.3.1: 1277 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1278 | engines: {node: '>=6'} 1279 | 1280 | queue-microtask@1.2.3: 1281 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1282 | 1283 | react-dom@18.3.1: 1284 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 1285 | peerDependencies: 1286 | react: ^18.3.1 1287 | 1288 | react-is@17.0.2: 1289 | resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 1290 | 1291 | react-is@18.3.1: 1292 | resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} 1293 | 1294 | react@18.3.1: 1295 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 1296 | engines: {node: '>=0.10.0'} 1297 | 1298 | readdirp@3.6.0: 1299 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1300 | engines: {node: '>=8.10.0'} 1301 | 1302 | regenerator-runtime@0.14.1: 1303 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1304 | 1305 | resolve-from@5.0.0: 1306 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1307 | engines: {node: '>=8'} 1308 | 1309 | reusify@1.0.4: 1310 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1311 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1312 | 1313 | rollup@4.18.0: 1314 | resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} 1315 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1316 | hasBin: true 1317 | 1318 | run-parallel@1.2.0: 1319 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1320 | 1321 | scheduler@0.23.2: 1322 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 1323 | 1324 | semver@7.6.2: 1325 | resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} 1326 | engines: {node: '>=10'} 1327 | hasBin: true 1328 | 1329 | shebang-command@2.0.0: 1330 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1331 | engines: {node: '>=8'} 1332 | 1333 | shebang-regex@3.0.0: 1334 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1335 | engines: {node: '>=8'} 1336 | 1337 | siginfo@2.0.0: 1338 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 1339 | 1340 | signal-exit@3.0.7: 1341 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1342 | 1343 | signal-exit@4.1.0: 1344 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1345 | engines: {node: '>=14'} 1346 | 1347 | sirv@2.0.4: 1348 | resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} 1349 | engines: {node: '>= 10'} 1350 | 1351 | size-limit@11.1.4: 1352 | resolution: {integrity: sha512-V2JAI/Z7h8sEuxU3V+Ig3XKA5FcYbI4CZ7sh6s7wvuy+TUwDZYqw7sAqrHhQ4cgcNfPKIAHAaH8VaqOdbcwJDA==} 1353 | engines: {node: ^18.0.0 || >=20.0.0} 1354 | hasBin: true 1355 | 1356 | slash@3.0.0: 1357 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1358 | engines: {node: '>=8'} 1359 | 1360 | slash@5.1.0: 1361 | resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} 1362 | engines: {node: '>=14.16'} 1363 | 1364 | source-map-js@1.2.0: 1365 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1366 | engines: {node: '>=0.10.0'} 1367 | 1368 | source-map@0.8.0-beta.0: 1369 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 1370 | engines: {node: '>= 8'} 1371 | 1372 | stackback@0.0.2: 1373 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1374 | 1375 | std-env@3.7.0: 1376 | resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} 1377 | 1378 | string-width@4.2.3: 1379 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1380 | engines: {node: '>=8'} 1381 | 1382 | string-width@5.1.2: 1383 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1384 | engines: {node: '>=12'} 1385 | 1386 | strip-ansi@6.0.1: 1387 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1388 | engines: {node: '>=8'} 1389 | 1390 | strip-ansi@7.1.0: 1391 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1392 | engines: {node: '>=12'} 1393 | 1394 | strip-final-newline@2.0.0: 1395 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1396 | engines: {node: '>=6'} 1397 | 1398 | strip-final-newline@3.0.0: 1399 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 1400 | engines: {node: '>=12'} 1401 | 1402 | strip-literal@2.1.0: 1403 | resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} 1404 | 1405 | sucrase@3.35.0: 1406 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1407 | engines: {node: '>=16 || 14 >=14.17'} 1408 | hasBin: true 1409 | 1410 | supports-color@5.5.0: 1411 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1412 | engines: {node: '>=4'} 1413 | 1414 | supports-color@7.2.0: 1415 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1416 | engines: {node: '>=8'} 1417 | 1418 | test-exclude@6.0.0: 1419 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} 1420 | engines: {node: '>=8'} 1421 | 1422 | thenify-all@1.6.0: 1423 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1424 | engines: {node: '>=0.8'} 1425 | 1426 | thenify@3.3.1: 1427 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1428 | 1429 | tinybench@2.8.0: 1430 | resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} 1431 | 1432 | tinypool@0.8.4: 1433 | resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} 1434 | engines: {node: '>=14.0.0'} 1435 | 1436 | tinyspy@2.2.1: 1437 | resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} 1438 | engines: {node: '>=14.0.0'} 1439 | 1440 | to-fast-properties@2.0.0: 1441 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1442 | engines: {node: '>=4'} 1443 | 1444 | to-regex-range@5.0.1: 1445 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1446 | engines: {node: '>=8.0'} 1447 | 1448 | totalist@3.0.1: 1449 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1450 | engines: {node: '>=6'} 1451 | 1452 | tr46@1.0.1: 1453 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 1454 | 1455 | tree-kill@1.2.2: 1456 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 1457 | hasBin: true 1458 | 1459 | ts-interface-checker@0.1.13: 1460 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1461 | 1462 | tsup@8.0.2: 1463 | resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} 1464 | engines: {node: '>=18'} 1465 | hasBin: true 1466 | peerDependencies: 1467 | '@microsoft/api-extractor': ^7.36.0 1468 | '@swc/core': ^1 1469 | postcss: ^8.4.12 1470 | typescript: '>=4.5.0' 1471 | peerDependenciesMeta: 1472 | '@microsoft/api-extractor': 1473 | optional: true 1474 | '@swc/core': 1475 | optional: true 1476 | postcss: 1477 | optional: true 1478 | typescript: 1479 | optional: true 1480 | 1481 | type-detect@4.0.8: 1482 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 1483 | engines: {node: '>=4'} 1484 | 1485 | typescript@5.4.5: 1486 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} 1487 | engines: {node: '>=14.17'} 1488 | hasBin: true 1489 | 1490 | ufo@1.5.3: 1491 | resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} 1492 | 1493 | unicorn-magic@0.1.0: 1494 | resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} 1495 | engines: {node: '>=18'} 1496 | 1497 | use-sync-external-store@1.2.0: 1498 | resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} 1499 | peerDependencies: 1500 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1501 | 1502 | vite-node@1.6.0: 1503 | resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} 1504 | engines: {node: ^18.0.0 || >=20.0.0} 1505 | hasBin: true 1506 | 1507 | vite@5.2.12: 1508 | resolution: {integrity: sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==} 1509 | engines: {node: ^18.0.0 || >=20.0.0} 1510 | hasBin: true 1511 | peerDependencies: 1512 | '@types/node': ^18.0.0 || >=20.0.0 1513 | less: '*' 1514 | lightningcss: ^1.21.0 1515 | sass: '*' 1516 | stylus: '*' 1517 | sugarss: '*' 1518 | terser: ^5.4.0 1519 | peerDependenciesMeta: 1520 | '@types/node': 1521 | optional: true 1522 | less: 1523 | optional: true 1524 | lightningcss: 1525 | optional: true 1526 | sass: 1527 | optional: true 1528 | stylus: 1529 | optional: true 1530 | sugarss: 1531 | optional: true 1532 | terser: 1533 | optional: true 1534 | 1535 | vitest@1.6.0: 1536 | resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} 1537 | engines: {node: ^18.0.0 || >=20.0.0} 1538 | hasBin: true 1539 | peerDependencies: 1540 | '@edge-runtime/vm': '*' 1541 | '@types/node': ^18.0.0 || >=20.0.0 1542 | '@vitest/browser': 1.6.0 1543 | '@vitest/ui': 1.6.0 1544 | happy-dom: '*' 1545 | jsdom: '*' 1546 | peerDependenciesMeta: 1547 | '@edge-runtime/vm': 1548 | optional: true 1549 | '@types/node': 1550 | optional: true 1551 | '@vitest/browser': 1552 | optional: true 1553 | '@vitest/ui': 1554 | optional: true 1555 | happy-dom: 1556 | optional: true 1557 | jsdom: 1558 | optional: true 1559 | 1560 | webidl-conversions@4.0.2: 1561 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 1562 | 1563 | webidl-conversions@7.0.0: 1564 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 1565 | engines: {node: '>=12'} 1566 | 1567 | whatwg-mimetype@3.0.0: 1568 | resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} 1569 | engines: {node: '>=12'} 1570 | 1571 | whatwg-url@7.1.0: 1572 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 1573 | 1574 | which@2.0.2: 1575 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1576 | engines: {node: '>= 8'} 1577 | hasBin: true 1578 | 1579 | why-is-node-running@2.2.2: 1580 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} 1581 | engines: {node: '>=8'} 1582 | hasBin: true 1583 | 1584 | wrap-ansi@7.0.0: 1585 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1586 | engines: {node: '>=10'} 1587 | 1588 | wrap-ansi@8.1.0: 1589 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1590 | engines: {node: '>=12'} 1591 | 1592 | wrappy@1.0.2: 1593 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1594 | 1595 | yaml@2.4.2: 1596 | resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} 1597 | engines: {node: '>= 14'} 1598 | hasBin: true 1599 | 1600 | yocto-queue@1.0.0: 1601 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 1602 | engines: {node: '>=12.20'} 1603 | 1604 | zustand@4.5.2: 1605 | resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==} 1606 | engines: {node: '>=12.7.0'} 1607 | peerDependencies: 1608 | '@types/react': '>=16.8' 1609 | immer: '>=9.0.6' 1610 | react: '>=16.8' 1611 | peerDependenciesMeta: 1612 | '@types/react': 1613 | optional: true 1614 | immer: 1615 | optional: true 1616 | react: 1617 | optional: true 1618 | 1619 | snapshots: 1620 | 1621 | '@ampproject/remapping@2.3.0': 1622 | dependencies: 1623 | '@jridgewell/gen-mapping': 0.3.5 1624 | '@jridgewell/trace-mapping': 0.3.25 1625 | 1626 | '@babel/code-frame@7.24.6': 1627 | dependencies: 1628 | '@babel/highlight': 7.24.6 1629 | picocolors: 1.0.1 1630 | 1631 | '@babel/helper-string-parser@7.24.6': {} 1632 | 1633 | '@babel/helper-validator-identifier@7.24.6': {} 1634 | 1635 | '@babel/highlight@7.24.6': 1636 | dependencies: 1637 | '@babel/helper-validator-identifier': 7.24.6 1638 | chalk: 2.4.2 1639 | js-tokens: 4.0.0 1640 | picocolors: 1.0.1 1641 | 1642 | '@babel/parser@7.24.6': 1643 | dependencies: 1644 | '@babel/types': 7.24.6 1645 | 1646 | '@babel/runtime@7.24.6': 1647 | dependencies: 1648 | regenerator-runtime: 0.14.1 1649 | 1650 | '@babel/types@7.24.6': 1651 | dependencies: 1652 | '@babel/helper-string-parser': 7.24.6 1653 | '@babel/helper-validator-identifier': 7.24.6 1654 | to-fast-properties: 2.0.0 1655 | 1656 | '@bcoe/v8-coverage@0.2.3': {} 1657 | 1658 | '@esbuild/aix-ppc64@0.19.12': 1659 | optional: true 1660 | 1661 | '@esbuild/aix-ppc64@0.20.2': 1662 | optional: true 1663 | 1664 | '@esbuild/aix-ppc64@0.21.4': 1665 | optional: true 1666 | 1667 | '@esbuild/android-arm64@0.19.12': 1668 | optional: true 1669 | 1670 | '@esbuild/android-arm64@0.20.2': 1671 | optional: true 1672 | 1673 | '@esbuild/android-arm64@0.21.4': 1674 | optional: true 1675 | 1676 | '@esbuild/android-arm@0.19.12': 1677 | optional: true 1678 | 1679 | '@esbuild/android-arm@0.20.2': 1680 | optional: true 1681 | 1682 | '@esbuild/android-arm@0.21.4': 1683 | optional: true 1684 | 1685 | '@esbuild/android-x64@0.19.12': 1686 | optional: true 1687 | 1688 | '@esbuild/android-x64@0.20.2': 1689 | optional: true 1690 | 1691 | '@esbuild/android-x64@0.21.4': 1692 | optional: true 1693 | 1694 | '@esbuild/darwin-arm64@0.19.12': 1695 | optional: true 1696 | 1697 | '@esbuild/darwin-arm64@0.20.2': 1698 | optional: true 1699 | 1700 | '@esbuild/darwin-arm64@0.21.4': 1701 | optional: true 1702 | 1703 | '@esbuild/darwin-x64@0.19.12': 1704 | optional: true 1705 | 1706 | '@esbuild/darwin-x64@0.20.2': 1707 | optional: true 1708 | 1709 | '@esbuild/darwin-x64@0.21.4': 1710 | optional: true 1711 | 1712 | '@esbuild/freebsd-arm64@0.19.12': 1713 | optional: true 1714 | 1715 | '@esbuild/freebsd-arm64@0.20.2': 1716 | optional: true 1717 | 1718 | '@esbuild/freebsd-arm64@0.21.4': 1719 | optional: true 1720 | 1721 | '@esbuild/freebsd-x64@0.19.12': 1722 | optional: true 1723 | 1724 | '@esbuild/freebsd-x64@0.20.2': 1725 | optional: true 1726 | 1727 | '@esbuild/freebsd-x64@0.21.4': 1728 | optional: true 1729 | 1730 | '@esbuild/linux-arm64@0.19.12': 1731 | optional: true 1732 | 1733 | '@esbuild/linux-arm64@0.20.2': 1734 | optional: true 1735 | 1736 | '@esbuild/linux-arm64@0.21.4': 1737 | optional: true 1738 | 1739 | '@esbuild/linux-arm@0.19.12': 1740 | optional: true 1741 | 1742 | '@esbuild/linux-arm@0.20.2': 1743 | optional: true 1744 | 1745 | '@esbuild/linux-arm@0.21.4': 1746 | optional: true 1747 | 1748 | '@esbuild/linux-ia32@0.19.12': 1749 | optional: true 1750 | 1751 | '@esbuild/linux-ia32@0.20.2': 1752 | optional: true 1753 | 1754 | '@esbuild/linux-ia32@0.21.4': 1755 | optional: true 1756 | 1757 | '@esbuild/linux-loong64@0.19.12': 1758 | optional: true 1759 | 1760 | '@esbuild/linux-loong64@0.20.2': 1761 | optional: true 1762 | 1763 | '@esbuild/linux-loong64@0.21.4': 1764 | optional: true 1765 | 1766 | '@esbuild/linux-mips64el@0.19.12': 1767 | optional: true 1768 | 1769 | '@esbuild/linux-mips64el@0.20.2': 1770 | optional: true 1771 | 1772 | '@esbuild/linux-mips64el@0.21.4': 1773 | optional: true 1774 | 1775 | '@esbuild/linux-ppc64@0.19.12': 1776 | optional: true 1777 | 1778 | '@esbuild/linux-ppc64@0.20.2': 1779 | optional: true 1780 | 1781 | '@esbuild/linux-ppc64@0.21.4': 1782 | optional: true 1783 | 1784 | '@esbuild/linux-riscv64@0.19.12': 1785 | optional: true 1786 | 1787 | '@esbuild/linux-riscv64@0.20.2': 1788 | optional: true 1789 | 1790 | '@esbuild/linux-riscv64@0.21.4': 1791 | optional: true 1792 | 1793 | '@esbuild/linux-s390x@0.19.12': 1794 | optional: true 1795 | 1796 | '@esbuild/linux-s390x@0.20.2': 1797 | optional: true 1798 | 1799 | '@esbuild/linux-s390x@0.21.4': 1800 | optional: true 1801 | 1802 | '@esbuild/linux-x64@0.19.12': 1803 | optional: true 1804 | 1805 | '@esbuild/linux-x64@0.20.2': 1806 | optional: true 1807 | 1808 | '@esbuild/linux-x64@0.21.4': 1809 | optional: true 1810 | 1811 | '@esbuild/netbsd-x64@0.19.12': 1812 | optional: true 1813 | 1814 | '@esbuild/netbsd-x64@0.20.2': 1815 | optional: true 1816 | 1817 | '@esbuild/netbsd-x64@0.21.4': 1818 | optional: true 1819 | 1820 | '@esbuild/openbsd-x64@0.19.12': 1821 | optional: true 1822 | 1823 | '@esbuild/openbsd-x64@0.20.2': 1824 | optional: true 1825 | 1826 | '@esbuild/openbsd-x64@0.21.4': 1827 | optional: true 1828 | 1829 | '@esbuild/sunos-x64@0.19.12': 1830 | optional: true 1831 | 1832 | '@esbuild/sunos-x64@0.20.2': 1833 | optional: true 1834 | 1835 | '@esbuild/sunos-x64@0.21.4': 1836 | optional: true 1837 | 1838 | '@esbuild/win32-arm64@0.19.12': 1839 | optional: true 1840 | 1841 | '@esbuild/win32-arm64@0.20.2': 1842 | optional: true 1843 | 1844 | '@esbuild/win32-arm64@0.21.4': 1845 | optional: true 1846 | 1847 | '@esbuild/win32-ia32@0.19.12': 1848 | optional: true 1849 | 1850 | '@esbuild/win32-ia32@0.20.2': 1851 | optional: true 1852 | 1853 | '@esbuild/win32-ia32@0.21.4': 1854 | optional: true 1855 | 1856 | '@esbuild/win32-x64@0.19.12': 1857 | optional: true 1858 | 1859 | '@esbuild/win32-x64@0.20.2': 1860 | optional: true 1861 | 1862 | '@esbuild/win32-x64@0.21.4': 1863 | optional: true 1864 | 1865 | '@isaacs/cliui@8.0.2': 1866 | dependencies: 1867 | string-width: 5.1.2 1868 | string-width-cjs: string-width@4.2.3 1869 | strip-ansi: 7.1.0 1870 | strip-ansi-cjs: strip-ansi@6.0.1 1871 | wrap-ansi: 8.1.0 1872 | wrap-ansi-cjs: wrap-ansi@7.0.0 1873 | 1874 | '@istanbuljs/schema@0.1.3': {} 1875 | 1876 | '@jest/schemas@29.6.3': 1877 | dependencies: 1878 | '@sinclair/typebox': 0.27.8 1879 | 1880 | '@jridgewell/gen-mapping@0.3.5': 1881 | dependencies: 1882 | '@jridgewell/set-array': 1.2.1 1883 | '@jridgewell/sourcemap-codec': 1.4.15 1884 | '@jridgewell/trace-mapping': 0.3.25 1885 | 1886 | '@jridgewell/resolve-uri@3.1.2': {} 1887 | 1888 | '@jridgewell/set-array@1.2.1': {} 1889 | 1890 | '@jridgewell/sourcemap-codec@1.4.15': {} 1891 | 1892 | '@jridgewell/trace-mapping@0.3.25': 1893 | dependencies: 1894 | '@jridgewell/resolve-uri': 3.1.2 1895 | '@jridgewell/sourcemap-codec': 1.4.15 1896 | 1897 | '@nodelib/fs.scandir@2.1.5': 1898 | dependencies: 1899 | '@nodelib/fs.stat': 2.0.5 1900 | run-parallel: 1.2.0 1901 | 1902 | '@nodelib/fs.stat@2.0.5': {} 1903 | 1904 | '@nodelib/fs.walk@1.2.8': 1905 | dependencies: 1906 | '@nodelib/fs.scandir': 2.1.5 1907 | fastq: 1.17.1 1908 | 1909 | '@pkgjs/parseargs@0.11.0': 1910 | optional: true 1911 | 1912 | '@polka/url@1.0.0-next.25': {} 1913 | 1914 | '@rollup/rollup-android-arm-eabi@4.18.0': 1915 | optional: true 1916 | 1917 | '@rollup/rollup-android-arm64@4.18.0': 1918 | optional: true 1919 | 1920 | '@rollup/rollup-darwin-arm64@4.18.0': 1921 | optional: true 1922 | 1923 | '@rollup/rollup-darwin-x64@4.18.0': 1924 | optional: true 1925 | 1926 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 1927 | optional: true 1928 | 1929 | '@rollup/rollup-linux-arm-musleabihf@4.18.0': 1930 | optional: true 1931 | 1932 | '@rollup/rollup-linux-arm64-gnu@4.18.0': 1933 | optional: true 1934 | 1935 | '@rollup/rollup-linux-arm64-musl@4.18.0': 1936 | optional: true 1937 | 1938 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 1939 | optional: true 1940 | 1941 | '@rollup/rollup-linux-riscv64-gnu@4.18.0': 1942 | optional: true 1943 | 1944 | '@rollup/rollup-linux-s390x-gnu@4.18.0': 1945 | optional: true 1946 | 1947 | '@rollup/rollup-linux-x64-gnu@4.18.0': 1948 | optional: true 1949 | 1950 | '@rollup/rollup-linux-x64-musl@4.18.0': 1951 | optional: true 1952 | 1953 | '@rollup/rollup-win32-arm64-msvc@4.18.0': 1954 | optional: true 1955 | 1956 | '@rollup/rollup-win32-ia32-msvc@4.18.0': 1957 | optional: true 1958 | 1959 | '@rollup/rollup-win32-x64-msvc@4.18.0': 1960 | optional: true 1961 | 1962 | '@sinclair/typebox@0.27.8': {} 1963 | 1964 | '@sindresorhus/merge-streams@2.3.0': {} 1965 | 1966 | '@size-limit/esbuild@11.1.4(size-limit@11.1.4)': 1967 | dependencies: 1968 | esbuild: 0.21.4 1969 | nanoid: 5.0.7 1970 | size-limit: 11.1.4 1971 | 1972 | '@size-limit/file@11.1.4(size-limit@11.1.4)': 1973 | dependencies: 1974 | size-limit: 11.1.4 1975 | 1976 | '@size-limit/preset-small-lib@11.1.4(size-limit@11.1.4)': 1977 | dependencies: 1978 | '@size-limit/esbuild': 11.1.4(size-limit@11.1.4) 1979 | '@size-limit/file': 11.1.4(size-limit@11.1.4) 1980 | size-limit: 11.1.4 1981 | 1982 | '@testing-library/dom@10.1.0': 1983 | dependencies: 1984 | '@babel/code-frame': 7.24.6 1985 | '@babel/runtime': 7.24.6 1986 | '@types/aria-query': 5.0.4 1987 | aria-query: 5.3.0 1988 | chalk: 4.1.2 1989 | dom-accessibility-api: 0.5.16 1990 | lz-string: 1.5.0 1991 | pretty-format: 27.5.1 1992 | 1993 | '@testing-library/react@15.0.7(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1994 | dependencies: 1995 | '@babel/runtime': 7.24.6 1996 | '@testing-library/dom': 10.1.0 1997 | '@types/react-dom': 18.3.0 1998 | react: 18.3.1 1999 | react-dom: 18.3.1(react@18.3.1) 2000 | optionalDependencies: 2001 | '@types/react': 18.3.3 2002 | 2003 | '@types/aria-query@5.0.4': {} 2004 | 2005 | '@types/estree@1.0.5': {} 2006 | 2007 | '@types/prop-types@15.7.12': {} 2008 | 2009 | '@types/react-dom@18.3.0': 2010 | dependencies: 2011 | '@types/react': 18.3.3 2012 | 2013 | '@types/react@18.3.3': 2014 | dependencies: 2015 | '@types/prop-types': 15.7.12 2016 | csstype: 3.1.3 2017 | 2018 | '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@vitest/ui@1.6.0)(happy-dom@14.12.0))': 2019 | dependencies: 2020 | '@ampproject/remapping': 2.3.0 2021 | '@bcoe/v8-coverage': 0.2.3 2022 | debug: 4.3.5 2023 | istanbul-lib-coverage: 3.2.2 2024 | istanbul-lib-report: 3.0.1 2025 | istanbul-lib-source-maps: 5.0.4 2026 | istanbul-reports: 3.1.7 2027 | magic-string: 0.30.10 2028 | magicast: 0.3.4 2029 | picocolors: 1.0.1 2030 | std-env: 3.7.0 2031 | strip-literal: 2.1.0 2032 | test-exclude: 6.0.0 2033 | vitest: 1.6.0(@vitest/ui@1.6.0)(happy-dom@14.12.0) 2034 | transitivePeerDependencies: 2035 | - supports-color 2036 | 2037 | '@vitest/expect@1.6.0': 2038 | dependencies: 2039 | '@vitest/spy': 1.6.0 2040 | '@vitest/utils': 1.6.0 2041 | chai: 4.4.1 2042 | 2043 | '@vitest/runner@1.6.0': 2044 | dependencies: 2045 | '@vitest/utils': 1.6.0 2046 | p-limit: 5.0.0 2047 | pathe: 1.1.2 2048 | 2049 | '@vitest/snapshot@1.6.0': 2050 | dependencies: 2051 | magic-string: 0.30.10 2052 | pathe: 1.1.2 2053 | pretty-format: 29.7.0 2054 | 2055 | '@vitest/spy@1.6.0': 2056 | dependencies: 2057 | tinyspy: 2.2.1 2058 | 2059 | '@vitest/ui@1.6.0(vitest@1.6.0)': 2060 | dependencies: 2061 | '@vitest/utils': 1.6.0 2062 | fast-glob: 3.3.2 2063 | fflate: 0.8.2 2064 | flatted: 3.3.1 2065 | pathe: 1.1.2 2066 | picocolors: 1.0.1 2067 | sirv: 2.0.4 2068 | vitest: 1.6.0(@vitest/ui@1.6.0)(happy-dom@14.12.0) 2069 | 2070 | '@vitest/utils@1.6.0': 2071 | dependencies: 2072 | diff-sequences: 29.6.3 2073 | estree-walker: 3.0.3 2074 | loupe: 2.3.7 2075 | pretty-format: 29.7.0 2076 | 2077 | acorn-walk@8.3.2: {} 2078 | 2079 | acorn@8.11.3: {} 2080 | 2081 | ansi-regex@5.0.1: {} 2082 | 2083 | ansi-regex@6.0.1: {} 2084 | 2085 | ansi-styles@3.2.1: 2086 | dependencies: 2087 | color-convert: 1.9.3 2088 | 2089 | ansi-styles@4.3.0: 2090 | dependencies: 2091 | color-convert: 2.0.1 2092 | 2093 | ansi-styles@5.2.0: {} 2094 | 2095 | ansi-styles@6.2.1: {} 2096 | 2097 | any-promise@1.3.0: {} 2098 | 2099 | anymatch@3.1.3: 2100 | dependencies: 2101 | normalize-path: 3.0.0 2102 | picomatch: 2.3.1 2103 | 2104 | aria-query@5.3.0: 2105 | dependencies: 2106 | dequal: 2.0.3 2107 | 2108 | array-union@2.1.0: {} 2109 | 2110 | assertion-error@1.1.0: {} 2111 | 2112 | balanced-match@1.0.2: {} 2113 | 2114 | binary-extensions@2.3.0: {} 2115 | 2116 | brace-expansion@1.1.11: 2117 | dependencies: 2118 | balanced-match: 1.0.2 2119 | concat-map: 0.0.1 2120 | 2121 | brace-expansion@2.0.1: 2122 | dependencies: 2123 | balanced-match: 1.0.2 2124 | 2125 | braces@3.0.3: 2126 | dependencies: 2127 | fill-range: 7.1.1 2128 | 2129 | bundle-require@4.1.0(esbuild@0.19.12): 2130 | dependencies: 2131 | esbuild: 0.19.12 2132 | load-tsconfig: 0.2.5 2133 | 2134 | bytes-iec@3.1.1: {} 2135 | 2136 | cac@6.7.14: {} 2137 | 2138 | chai@4.4.1: 2139 | dependencies: 2140 | assertion-error: 1.1.0 2141 | check-error: 1.0.3 2142 | deep-eql: 4.1.3 2143 | get-func-name: 2.0.2 2144 | loupe: 2.3.7 2145 | pathval: 1.1.1 2146 | type-detect: 4.0.8 2147 | 2148 | chalk@2.4.2: 2149 | dependencies: 2150 | ansi-styles: 3.2.1 2151 | escape-string-regexp: 1.0.5 2152 | supports-color: 5.5.0 2153 | 2154 | chalk@4.1.2: 2155 | dependencies: 2156 | ansi-styles: 4.3.0 2157 | supports-color: 7.2.0 2158 | 2159 | check-error@1.0.3: 2160 | dependencies: 2161 | get-func-name: 2.0.2 2162 | 2163 | chokidar@3.6.0: 2164 | dependencies: 2165 | anymatch: 3.1.3 2166 | braces: 3.0.3 2167 | glob-parent: 5.1.2 2168 | is-binary-path: 2.1.0 2169 | is-glob: 4.0.3 2170 | normalize-path: 3.0.0 2171 | readdirp: 3.6.0 2172 | optionalDependencies: 2173 | fsevents: 2.3.3 2174 | 2175 | color-convert@1.9.3: 2176 | dependencies: 2177 | color-name: 1.1.3 2178 | 2179 | color-convert@2.0.1: 2180 | dependencies: 2181 | color-name: 1.1.4 2182 | 2183 | color-name@1.1.3: {} 2184 | 2185 | color-name@1.1.4: {} 2186 | 2187 | commander@4.1.1: {} 2188 | 2189 | concat-map@0.0.1: {} 2190 | 2191 | confbox@0.1.7: {} 2192 | 2193 | cross-spawn@7.0.3: 2194 | dependencies: 2195 | path-key: 3.1.1 2196 | shebang-command: 2.0.0 2197 | which: 2.0.2 2198 | 2199 | csstype@3.1.3: {} 2200 | 2201 | debug@4.3.5: 2202 | dependencies: 2203 | ms: 2.1.2 2204 | 2205 | deep-eql@4.1.3: 2206 | dependencies: 2207 | type-detect: 4.0.8 2208 | 2209 | dequal@2.0.3: {} 2210 | 2211 | diff-sequences@29.6.3: {} 2212 | 2213 | dir-glob@3.0.1: 2214 | dependencies: 2215 | path-type: 4.0.0 2216 | 2217 | dom-accessibility-api@0.5.16: {} 2218 | 2219 | eastasianwidth@0.2.0: {} 2220 | 2221 | emoji-regex@8.0.0: {} 2222 | 2223 | emoji-regex@9.2.2: {} 2224 | 2225 | entities@4.5.0: {} 2226 | 2227 | esbuild@0.19.12: 2228 | optionalDependencies: 2229 | '@esbuild/aix-ppc64': 0.19.12 2230 | '@esbuild/android-arm': 0.19.12 2231 | '@esbuild/android-arm64': 0.19.12 2232 | '@esbuild/android-x64': 0.19.12 2233 | '@esbuild/darwin-arm64': 0.19.12 2234 | '@esbuild/darwin-x64': 0.19.12 2235 | '@esbuild/freebsd-arm64': 0.19.12 2236 | '@esbuild/freebsd-x64': 0.19.12 2237 | '@esbuild/linux-arm': 0.19.12 2238 | '@esbuild/linux-arm64': 0.19.12 2239 | '@esbuild/linux-ia32': 0.19.12 2240 | '@esbuild/linux-loong64': 0.19.12 2241 | '@esbuild/linux-mips64el': 0.19.12 2242 | '@esbuild/linux-ppc64': 0.19.12 2243 | '@esbuild/linux-riscv64': 0.19.12 2244 | '@esbuild/linux-s390x': 0.19.12 2245 | '@esbuild/linux-x64': 0.19.12 2246 | '@esbuild/netbsd-x64': 0.19.12 2247 | '@esbuild/openbsd-x64': 0.19.12 2248 | '@esbuild/sunos-x64': 0.19.12 2249 | '@esbuild/win32-arm64': 0.19.12 2250 | '@esbuild/win32-ia32': 0.19.12 2251 | '@esbuild/win32-x64': 0.19.12 2252 | 2253 | esbuild@0.20.2: 2254 | optionalDependencies: 2255 | '@esbuild/aix-ppc64': 0.20.2 2256 | '@esbuild/android-arm': 0.20.2 2257 | '@esbuild/android-arm64': 0.20.2 2258 | '@esbuild/android-x64': 0.20.2 2259 | '@esbuild/darwin-arm64': 0.20.2 2260 | '@esbuild/darwin-x64': 0.20.2 2261 | '@esbuild/freebsd-arm64': 0.20.2 2262 | '@esbuild/freebsd-x64': 0.20.2 2263 | '@esbuild/linux-arm': 0.20.2 2264 | '@esbuild/linux-arm64': 0.20.2 2265 | '@esbuild/linux-ia32': 0.20.2 2266 | '@esbuild/linux-loong64': 0.20.2 2267 | '@esbuild/linux-mips64el': 0.20.2 2268 | '@esbuild/linux-ppc64': 0.20.2 2269 | '@esbuild/linux-riscv64': 0.20.2 2270 | '@esbuild/linux-s390x': 0.20.2 2271 | '@esbuild/linux-x64': 0.20.2 2272 | '@esbuild/netbsd-x64': 0.20.2 2273 | '@esbuild/openbsd-x64': 0.20.2 2274 | '@esbuild/sunos-x64': 0.20.2 2275 | '@esbuild/win32-arm64': 0.20.2 2276 | '@esbuild/win32-ia32': 0.20.2 2277 | '@esbuild/win32-x64': 0.20.2 2278 | 2279 | esbuild@0.21.4: 2280 | optionalDependencies: 2281 | '@esbuild/aix-ppc64': 0.21.4 2282 | '@esbuild/android-arm': 0.21.4 2283 | '@esbuild/android-arm64': 0.21.4 2284 | '@esbuild/android-x64': 0.21.4 2285 | '@esbuild/darwin-arm64': 0.21.4 2286 | '@esbuild/darwin-x64': 0.21.4 2287 | '@esbuild/freebsd-arm64': 0.21.4 2288 | '@esbuild/freebsd-x64': 0.21.4 2289 | '@esbuild/linux-arm': 0.21.4 2290 | '@esbuild/linux-arm64': 0.21.4 2291 | '@esbuild/linux-ia32': 0.21.4 2292 | '@esbuild/linux-loong64': 0.21.4 2293 | '@esbuild/linux-mips64el': 0.21.4 2294 | '@esbuild/linux-ppc64': 0.21.4 2295 | '@esbuild/linux-riscv64': 0.21.4 2296 | '@esbuild/linux-s390x': 0.21.4 2297 | '@esbuild/linux-x64': 0.21.4 2298 | '@esbuild/netbsd-x64': 0.21.4 2299 | '@esbuild/openbsd-x64': 0.21.4 2300 | '@esbuild/sunos-x64': 0.21.4 2301 | '@esbuild/win32-arm64': 0.21.4 2302 | '@esbuild/win32-ia32': 0.21.4 2303 | '@esbuild/win32-x64': 0.21.4 2304 | 2305 | escape-string-regexp@1.0.5: {} 2306 | 2307 | estree-walker@3.0.3: 2308 | dependencies: 2309 | '@types/estree': 1.0.5 2310 | 2311 | execa@5.1.1: 2312 | dependencies: 2313 | cross-spawn: 7.0.3 2314 | get-stream: 6.0.1 2315 | human-signals: 2.1.0 2316 | is-stream: 2.0.1 2317 | merge-stream: 2.0.0 2318 | npm-run-path: 4.0.1 2319 | onetime: 5.1.2 2320 | signal-exit: 3.0.7 2321 | strip-final-newline: 2.0.0 2322 | 2323 | execa@8.0.1: 2324 | dependencies: 2325 | cross-spawn: 7.0.3 2326 | get-stream: 8.0.1 2327 | human-signals: 5.0.0 2328 | is-stream: 3.0.0 2329 | merge-stream: 2.0.0 2330 | npm-run-path: 5.3.0 2331 | onetime: 6.0.0 2332 | signal-exit: 4.1.0 2333 | strip-final-newline: 3.0.0 2334 | 2335 | fast-glob@3.3.2: 2336 | dependencies: 2337 | '@nodelib/fs.stat': 2.0.5 2338 | '@nodelib/fs.walk': 1.2.8 2339 | glob-parent: 5.1.2 2340 | merge2: 1.4.1 2341 | micromatch: 4.0.7 2342 | 2343 | fastq@1.17.1: 2344 | dependencies: 2345 | reusify: 1.0.4 2346 | 2347 | fflate@0.8.2: {} 2348 | 2349 | fill-range@7.1.1: 2350 | dependencies: 2351 | to-regex-range: 5.0.1 2352 | 2353 | flatted@3.3.1: {} 2354 | 2355 | foreground-child@3.1.1: 2356 | dependencies: 2357 | cross-spawn: 7.0.3 2358 | signal-exit: 4.1.0 2359 | 2360 | fs.realpath@1.0.0: {} 2361 | 2362 | fsevents@2.3.3: 2363 | optional: true 2364 | 2365 | get-func-name@2.0.2: {} 2366 | 2367 | get-stream@6.0.1: {} 2368 | 2369 | get-stream@8.0.1: {} 2370 | 2371 | glob-parent@5.1.2: 2372 | dependencies: 2373 | is-glob: 4.0.3 2374 | 2375 | glob@10.4.1: 2376 | dependencies: 2377 | foreground-child: 3.1.1 2378 | jackspeak: 3.1.2 2379 | minimatch: 9.0.4 2380 | minipass: 7.1.2 2381 | path-scurry: 1.11.1 2382 | 2383 | glob@7.2.3: 2384 | dependencies: 2385 | fs.realpath: 1.0.0 2386 | inflight: 1.0.6 2387 | inherits: 2.0.4 2388 | minimatch: 3.1.2 2389 | once: 1.4.0 2390 | path-is-absolute: 1.0.1 2391 | 2392 | globby@11.1.0: 2393 | dependencies: 2394 | array-union: 2.1.0 2395 | dir-glob: 3.0.1 2396 | fast-glob: 3.3.2 2397 | ignore: 5.3.1 2398 | merge2: 1.4.1 2399 | slash: 3.0.0 2400 | 2401 | globby@14.0.1: 2402 | dependencies: 2403 | '@sindresorhus/merge-streams': 2.3.0 2404 | fast-glob: 3.3.2 2405 | ignore: 5.3.1 2406 | path-type: 5.0.0 2407 | slash: 5.1.0 2408 | unicorn-magic: 0.1.0 2409 | 2410 | happy-dom@14.12.0: 2411 | dependencies: 2412 | entities: 4.5.0 2413 | webidl-conversions: 7.0.0 2414 | whatwg-mimetype: 3.0.0 2415 | 2416 | has-flag@3.0.0: {} 2417 | 2418 | has-flag@4.0.0: {} 2419 | 2420 | html-escaper@2.0.2: {} 2421 | 2422 | human-signals@2.1.0: {} 2423 | 2424 | human-signals@5.0.0: {} 2425 | 2426 | ignore@5.3.1: {} 2427 | 2428 | inflight@1.0.6: 2429 | dependencies: 2430 | once: 1.4.0 2431 | wrappy: 1.0.2 2432 | 2433 | inherits@2.0.4: {} 2434 | 2435 | is-binary-path@2.1.0: 2436 | dependencies: 2437 | binary-extensions: 2.3.0 2438 | 2439 | is-extglob@2.1.1: {} 2440 | 2441 | is-fullwidth-code-point@3.0.0: {} 2442 | 2443 | is-glob@4.0.3: 2444 | dependencies: 2445 | is-extglob: 2.1.1 2446 | 2447 | is-number@7.0.0: {} 2448 | 2449 | is-stream@2.0.1: {} 2450 | 2451 | is-stream@3.0.0: {} 2452 | 2453 | isexe@2.0.0: {} 2454 | 2455 | istanbul-lib-coverage@3.2.2: {} 2456 | 2457 | istanbul-lib-report@3.0.1: 2458 | dependencies: 2459 | istanbul-lib-coverage: 3.2.2 2460 | make-dir: 4.0.0 2461 | supports-color: 7.2.0 2462 | 2463 | istanbul-lib-source-maps@5.0.4: 2464 | dependencies: 2465 | '@jridgewell/trace-mapping': 0.3.25 2466 | debug: 4.3.5 2467 | istanbul-lib-coverage: 3.2.2 2468 | transitivePeerDependencies: 2469 | - supports-color 2470 | 2471 | istanbul-reports@3.1.7: 2472 | dependencies: 2473 | html-escaper: 2.0.2 2474 | istanbul-lib-report: 3.0.1 2475 | 2476 | jackspeak@3.1.2: 2477 | dependencies: 2478 | '@isaacs/cliui': 8.0.2 2479 | optionalDependencies: 2480 | '@pkgjs/parseargs': 0.11.0 2481 | 2482 | jiti@1.21.0: {} 2483 | 2484 | joycon@3.1.1: {} 2485 | 2486 | js-tokens@4.0.0: {} 2487 | 2488 | js-tokens@9.0.0: {} 2489 | 2490 | lilconfig@3.1.1: {} 2491 | 2492 | lines-and-columns@1.2.4: {} 2493 | 2494 | load-tsconfig@0.2.5: {} 2495 | 2496 | local-pkg@0.5.0: 2497 | dependencies: 2498 | mlly: 1.7.0 2499 | pkg-types: 1.1.1 2500 | 2501 | lodash.sortby@4.7.0: {} 2502 | 2503 | loose-envify@1.4.0: 2504 | dependencies: 2505 | js-tokens: 4.0.0 2506 | 2507 | loupe@2.3.7: 2508 | dependencies: 2509 | get-func-name: 2.0.2 2510 | 2511 | lru-cache@10.2.2: {} 2512 | 2513 | lz-string@1.5.0: {} 2514 | 2515 | magic-string@0.30.10: 2516 | dependencies: 2517 | '@jridgewell/sourcemap-codec': 1.4.15 2518 | 2519 | magicast@0.3.4: 2520 | dependencies: 2521 | '@babel/parser': 7.24.6 2522 | '@babel/types': 7.24.6 2523 | source-map-js: 1.2.0 2524 | 2525 | make-dir@4.0.0: 2526 | dependencies: 2527 | semver: 7.6.2 2528 | 2529 | merge-stream@2.0.0: {} 2530 | 2531 | merge2@1.4.1: {} 2532 | 2533 | micromatch@4.0.7: 2534 | dependencies: 2535 | braces: 3.0.3 2536 | picomatch: 2.3.1 2537 | 2538 | mimic-fn@2.1.0: {} 2539 | 2540 | mimic-fn@4.0.0: {} 2541 | 2542 | minimatch@3.1.2: 2543 | dependencies: 2544 | brace-expansion: 1.1.11 2545 | 2546 | minimatch@9.0.4: 2547 | dependencies: 2548 | brace-expansion: 2.0.1 2549 | 2550 | minipass@7.1.2: {} 2551 | 2552 | mlly@1.7.0: 2553 | dependencies: 2554 | acorn: 8.11.3 2555 | pathe: 1.1.2 2556 | pkg-types: 1.1.1 2557 | ufo: 1.5.3 2558 | 2559 | mrmime@2.0.0: {} 2560 | 2561 | ms@2.1.2: {} 2562 | 2563 | mz@2.7.0: 2564 | dependencies: 2565 | any-promise: 1.3.0 2566 | object-assign: 4.1.1 2567 | thenify-all: 1.6.0 2568 | 2569 | nanoid@3.3.7: {} 2570 | 2571 | nanoid@5.0.7: {} 2572 | 2573 | nanospinner@1.1.0: 2574 | dependencies: 2575 | picocolors: 1.0.1 2576 | 2577 | normalize-path@3.0.0: {} 2578 | 2579 | npm-run-path@4.0.1: 2580 | dependencies: 2581 | path-key: 3.1.1 2582 | 2583 | npm-run-path@5.3.0: 2584 | dependencies: 2585 | path-key: 4.0.0 2586 | 2587 | object-assign@4.1.1: {} 2588 | 2589 | once@1.4.0: 2590 | dependencies: 2591 | wrappy: 1.0.2 2592 | 2593 | onetime@5.1.2: 2594 | dependencies: 2595 | mimic-fn: 2.1.0 2596 | 2597 | onetime@6.0.0: 2598 | dependencies: 2599 | mimic-fn: 4.0.0 2600 | 2601 | p-limit@5.0.0: 2602 | dependencies: 2603 | yocto-queue: 1.0.0 2604 | 2605 | path-is-absolute@1.0.1: {} 2606 | 2607 | path-key@3.1.1: {} 2608 | 2609 | path-key@4.0.0: {} 2610 | 2611 | path-scurry@1.11.1: 2612 | dependencies: 2613 | lru-cache: 10.2.2 2614 | minipass: 7.1.2 2615 | 2616 | path-type@4.0.0: {} 2617 | 2618 | path-type@5.0.0: {} 2619 | 2620 | pathe@1.1.2: {} 2621 | 2622 | pathval@1.1.1: {} 2623 | 2624 | picocolors@1.0.1: {} 2625 | 2626 | picomatch@2.3.1: {} 2627 | 2628 | pirates@4.0.6: {} 2629 | 2630 | pkg-types@1.1.1: 2631 | dependencies: 2632 | confbox: 0.1.7 2633 | mlly: 1.7.0 2634 | pathe: 1.1.2 2635 | 2636 | postcss-load-config@4.0.2(postcss@8.4.38): 2637 | dependencies: 2638 | lilconfig: 3.1.1 2639 | yaml: 2.4.2 2640 | optionalDependencies: 2641 | postcss: 8.4.38 2642 | 2643 | postcss@8.4.38: 2644 | dependencies: 2645 | nanoid: 3.3.7 2646 | picocolors: 1.0.1 2647 | source-map-js: 1.2.0 2648 | 2649 | pretty-format@27.5.1: 2650 | dependencies: 2651 | ansi-regex: 5.0.1 2652 | ansi-styles: 5.2.0 2653 | react-is: 17.0.2 2654 | 2655 | pretty-format@29.7.0: 2656 | dependencies: 2657 | '@jest/schemas': 29.6.3 2658 | ansi-styles: 5.2.0 2659 | react-is: 18.3.1 2660 | 2661 | punycode@2.3.1: {} 2662 | 2663 | queue-microtask@1.2.3: {} 2664 | 2665 | react-dom@18.3.1(react@18.3.1): 2666 | dependencies: 2667 | loose-envify: 1.4.0 2668 | react: 18.3.1 2669 | scheduler: 0.23.2 2670 | 2671 | react-is@17.0.2: {} 2672 | 2673 | react-is@18.3.1: {} 2674 | 2675 | react@18.3.1: 2676 | dependencies: 2677 | loose-envify: 1.4.0 2678 | 2679 | readdirp@3.6.0: 2680 | dependencies: 2681 | picomatch: 2.3.1 2682 | 2683 | regenerator-runtime@0.14.1: {} 2684 | 2685 | resolve-from@5.0.0: {} 2686 | 2687 | reusify@1.0.4: {} 2688 | 2689 | rollup@4.18.0: 2690 | dependencies: 2691 | '@types/estree': 1.0.5 2692 | optionalDependencies: 2693 | '@rollup/rollup-android-arm-eabi': 4.18.0 2694 | '@rollup/rollup-android-arm64': 4.18.0 2695 | '@rollup/rollup-darwin-arm64': 4.18.0 2696 | '@rollup/rollup-darwin-x64': 4.18.0 2697 | '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 2698 | '@rollup/rollup-linux-arm-musleabihf': 4.18.0 2699 | '@rollup/rollup-linux-arm64-gnu': 4.18.0 2700 | '@rollup/rollup-linux-arm64-musl': 4.18.0 2701 | '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 2702 | '@rollup/rollup-linux-riscv64-gnu': 4.18.0 2703 | '@rollup/rollup-linux-s390x-gnu': 4.18.0 2704 | '@rollup/rollup-linux-x64-gnu': 4.18.0 2705 | '@rollup/rollup-linux-x64-musl': 4.18.0 2706 | '@rollup/rollup-win32-arm64-msvc': 4.18.0 2707 | '@rollup/rollup-win32-ia32-msvc': 4.18.0 2708 | '@rollup/rollup-win32-x64-msvc': 4.18.0 2709 | fsevents: 2.3.3 2710 | 2711 | run-parallel@1.2.0: 2712 | dependencies: 2713 | queue-microtask: 1.2.3 2714 | 2715 | scheduler@0.23.2: 2716 | dependencies: 2717 | loose-envify: 1.4.0 2718 | 2719 | semver@7.6.2: {} 2720 | 2721 | shebang-command@2.0.0: 2722 | dependencies: 2723 | shebang-regex: 3.0.0 2724 | 2725 | shebang-regex@3.0.0: {} 2726 | 2727 | siginfo@2.0.0: {} 2728 | 2729 | signal-exit@3.0.7: {} 2730 | 2731 | signal-exit@4.1.0: {} 2732 | 2733 | sirv@2.0.4: 2734 | dependencies: 2735 | '@polka/url': 1.0.0-next.25 2736 | mrmime: 2.0.0 2737 | totalist: 3.0.1 2738 | 2739 | size-limit@11.1.4: 2740 | dependencies: 2741 | bytes-iec: 3.1.1 2742 | chokidar: 3.6.0 2743 | globby: 14.0.1 2744 | jiti: 1.21.0 2745 | lilconfig: 3.1.1 2746 | nanospinner: 1.1.0 2747 | picocolors: 1.0.1 2748 | 2749 | slash@3.0.0: {} 2750 | 2751 | slash@5.1.0: {} 2752 | 2753 | source-map-js@1.2.0: {} 2754 | 2755 | source-map@0.8.0-beta.0: 2756 | dependencies: 2757 | whatwg-url: 7.1.0 2758 | 2759 | stackback@0.0.2: {} 2760 | 2761 | std-env@3.7.0: {} 2762 | 2763 | string-width@4.2.3: 2764 | dependencies: 2765 | emoji-regex: 8.0.0 2766 | is-fullwidth-code-point: 3.0.0 2767 | strip-ansi: 6.0.1 2768 | 2769 | string-width@5.1.2: 2770 | dependencies: 2771 | eastasianwidth: 0.2.0 2772 | emoji-regex: 9.2.2 2773 | strip-ansi: 7.1.0 2774 | 2775 | strip-ansi@6.0.1: 2776 | dependencies: 2777 | ansi-regex: 5.0.1 2778 | 2779 | strip-ansi@7.1.0: 2780 | dependencies: 2781 | ansi-regex: 6.0.1 2782 | 2783 | strip-final-newline@2.0.0: {} 2784 | 2785 | strip-final-newline@3.0.0: {} 2786 | 2787 | strip-literal@2.1.0: 2788 | dependencies: 2789 | js-tokens: 9.0.0 2790 | 2791 | sucrase@3.35.0: 2792 | dependencies: 2793 | '@jridgewell/gen-mapping': 0.3.5 2794 | commander: 4.1.1 2795 | glob: 10.4.1 2796 | lines-and-columns: 1.2.4 2797 | mz: 2.7.0 2798 | pirates: 4.0.6 2799 | ts-interface-checker: 0.1.13 2800 | 2801 | supports-color@5.5.0: 2802 | dependencies: 2803 | has-flag: 3.0.0 2804 | 2805 | supports-color@7.2.0: 2806 | dependencies: 2807 | has-flag: 4.0.0 2808 | 2809 | test-exclude@6.0.0: 2810 | dependencies: 2811 | '@istanbuljs/schema': 0.1.3 2812 | glob: 7.2.3 2813 | minimatch: 3.1.2 2814 | 2815 | thenify-all@1.6.0: 2816 | dependencies: 2817 | thenify: 3.3.1 2818 | 2819 | thenify@3.3.1: 2820 | dependencies: 2821 | any-promise: 1.3.0 2822 | 2823 | tinybench@2.8.0: {} 2824 | 2825 | tinypool@0.8.4: {} 2826 | 2827 | tinyspy@2.2.1: {} 2828 | 2829 | to-fast-properties@2.0.0: {} 2830 | 2831 | to-regex-range@5.0.1: 2832 | dependencies: 2833 | is-number: 7.0.0 2834 | 2835 | totalist@3.0.1: {} 2836 | 2837 | tr46@1.0.1: 2838 | dependencies: 2839 | punycode: 2.3.1 2840 | 2841 | tree-kill@1.2.2: {} 2842 | 2843 | ts-interface-checker@0.1.13: {} 2844 | 2845 | tsup@8.0.2(postcss@8.4.38)(typescript@5.4.5): 2846 | dependencies: 2847 | bundle-require: 4.1.0(esbuild@0.19.12) 2848 | cac: 6.7.14 2849 | chokidar: 3.6.0 2850 | debug: 4.3.5 2851 | esbuild: 0.19.12 2852 | execa: 5.1.1 2853 | globby: 11.1.0 2854 | joycon: 3.1.1 2855 | postcss-load-config: 4.0.2(postcss@8.4.38) 2856 | resolve-from: 5.0.0 2857 | rollup: 4.18.0 2858 | source-map: 0.8.0-beta.0 2859 | sucrase: 3.35.0 2860 | tree-kill: 1.2.2 2861 | optionalDependencies: 2862 | postcss: 8.4.38 2863 | typescript: 5.4.5 2864 | transitivePeerDependencies: 2865 | - supports-color 2866 | - ts-node 2867 | 2868 | type-detect@4.0.8: {} 2869 | 2870 | typescript@5.4.5: {} 2871 | 2872 | ufo@1.5.3: {} 2873 | 2874 | unicorn-magic@0.1.0: {} 2875 | 2876 | use-sync-external-store@1.2.0(react@18.3.1): 2877 | dependencies: 2878 | react: 18.3.1 2879 | 2880 | vite-node@1.6.0: 2881 | dependencies: 2882 | cac: 6.7.14 2883 | debug: 4.3.5 2884 | pathe: 1.1.2 2885 | picocolors: 1.0.1 2886 | vite: 5.2.12 2887 | transitivePeerDependencies: 2888 | - '@types/node' 2889 | - less 2890 | - lightningcss 2891 | - sass 2892 | - stylus 2893 | - sugarss 2894 | - supports-color 2895 | - terser 2896 | 2897 | vite@5.2.12: 2898 | dependencies: 2899 | esbuild: 0.20.2 2900 | postcss: 8.4.38 2901 | rollup: 4.18.0 2902 | optionalDependencies: 2903 | fsevents: 2.3.3 2904 | 2905 | vitest@1.6.0(@vitest/ui@1.6.0)(happy-dom@14.12.0): 2906 | dependencies: 2907 | '@vitest/expect': 1.6.0 2908 | '@vitest/runner': 1.6.0 2909 | '@vitest/snapshot': 1.6.0 2910 | '@vitest/spy': 1.6.0 2911 | '@vitest/utils': 1.6.0 2912 | acorn-walk: 8.3.2 2913 | chai: 4.4.1 2914 | debug: 4.3.5 2915 | execa: 8.0.1 2916 | local-pkg: 0.5.0 2917 | magic-string: 0.30.10 2918 | pathe: 1.1.2 2919 | picocolors: 1.0.1 2920 | std-env: 3.7.0 2921 | strip-literal: 2.1.0 2922 | tinybench: 2.8.0 2923 | tinypool: 0.8.4 2924 | vite: 5.2.12 2925 | vite-node: 1.6.0 2926 | why-is-node-running: 2.2.2 2927 | optionalDependencies: 2928 | '@vitest/ui': 1.6.0(vitest@1.6.0) 2929 | happy-dom: 14.12.0 2930 | transitivePeerDependencies: 2931 | - less 2932 | - lightningcss 2933 | - sass 2934 | - stylus 2935 | - sugarss 2936 | - supports-color 2937 | - terser 2938 | 2939 | webidl-conversions@4.0.2: {} 2940 | 2941 | webidl-conversions@7.0.0: {} 2942 | 2943 | whatwg-mimetype@3.0.0: {} 2944 | 2945 | whatwg-url@7.1.0: 2946 | dependencies: 2947 | lodash.sortby: 4.7.0 2948 | tr46: 1.0.1 2949 | webidl-conversions: 4.0.2 2950 | 2951 | which@2.0.2: 2952 | dependencies: 2953 | isexe: 2.0.0 2954 | 2955 | why-is-node-running@2.2.2: 2956 | dependencies: 2957 | siginfo: 2.0.0 2958 | stackback: 0.0.2 2959 | 2960 | wrap-ansi@7.0.0: 2961 | dependencies: 2962 | ansi-styles: 4.3.0 2963 | string-width: 4.2.3 2964 | strip-ansi: 6.0.1 2965 | 2966 | wrap-ansi@8.1.0: 2967 | dependencies: 2968 | ansi-styles: 6.2.1 2969 | string-width: 5.1.2 2970 | strip-ansi: 7.1.0 2971 | 2972 | wrappy@1.0.2: {} 2973 | 2974 | yaml@2.4.2: {} 2975 | 2976 | yocto-queue@1.0.0: {} 2977 | 2978 | zustand@4.5.2(@types/react@18.3.3)(react@18.3.1): 2979 | dependencies: 2980 | use-sync-external-store: 1.2.0(react@18.3.1) 2981 | optionalDependencies: 2982 | '@types/react': 18.3.3 2983 | react: 18.3.1 2984 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "tests" 3 | - "size" -------------------------------------------------------------------------------- /size/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "size", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "size": "size-limit" 7 | }, 8 | "devDependencies": { 9 | "@size-limit/preset-small-lib": "11.1.4", 10 | "size-limit": "11.1.4" 11 | }, 12 | "size-limit": [ 13 | { 14 | "limit": "400 B", 15 | "path": "../dist/index.js", 16 | "gzip": true, 17 | "ignore": [ 18 | "react", 19 | "react-dom", 20 | "zustand" 21 | ] 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { 2 | createElement, 3 | createContext as reactCreateContext, 4 | useContext, 5 | useRef, 6 | } from "react"; 7 | import type { StoreApi } from "zustand"; 8 | import { useStoreWithEqualityFn } from "zustand/traditional"; 9 | 10 | // Inspired from: https://github.com/pmndrs/zustand/blob/main/src/context.ts 11 | export const createContext = < 12 | State, 13 | Store extends StoreApi = StoreApi 14 | >() => { 15 | const StoreContext = reactCreateContext(undefined); 16 | 17 | type Provider = React.FC< 18 | { 19 | createStore: () => Store; 20 | children: React.ReactNode; 21 | } & Record 22 | >; 23 | 24 | const Provider: Provider = ({ createStore, ...rest }) => { 25 | const storeRef = useRef(); 26 | return createElement(StoreContext.Provider, { 27 | value: (storeRef.current ||= createStore()), 28 | ...rest, 29 | }); 30 | }; 31 | 32 | const useStore = >( 33 | selector: (state: ExtractState) => StateSlice, 34 | equalityFn?: (left: StateSlice, right: StateSlice) => boolean 35 | ) => { 36 | const store = useContext(StoreContext); 37 | if (store) { 38 | return useStoreWithEqualityFn(store, selector, equalityFn); 39 | } 40 | throw new Error( 41 | "Seems like you have not used zustand provider as an ancestor." 42 | ); 43 | }; 44 | 45 | return [Provider, useStore] as const; 46 | }; 47 | 48 | type ExtractState = Store extends { getState: () => infer T } 49 | ? T 50 | : never; 51 | -------------------------------------------------------------------------------- /tests/index.test.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | Component as ClassComponent, 3 | type ReactNode, 4 | StrictMode, 5 | useCallback, 6 | useEffect, 7 | } from "react"; 8 | import { render } from "@testing-library/react"; 9 | import { afterEach, it, vi } from "vitest"; 10 | import { create } from "zustand"; 11 | import type { StoreApi } from "zustand"; 12 | import { createContext } from "../src"; 13 | 14 | // from https://github.com/pmndrs/zustand/blob/main/tests/context.test.tsx 15 | const consoleError = console.error; 16 | afterEach(() => { 17 | console.error = consoleError; 18 | }); 19 | 20 | type CounterState = { 21 | count: number; 22 | inc: () => void; 23 | }; 24 | 25 | it("creates and uses context store", async () => { 26 | const [Provider, useStore] = createContext(); 27 | 28 | const createStore = () => 29 | create((set) => ({ 30 | count: 0, 31 | inc: () => set((state) => ({ count: state.count + 1 })), 32 | })); 33 | 34 | function Counter() { 35 | const { count, inc } = useStore((state) => state); 36 | useEffect(inc, [inc]); 37 | return
count: {count * 1}
; 38 | } 39 | 40 | const { findByText } = render( 41 | <> 42 | 43 | 44 | 45 | 46 | ); 47 | 48 | await findByText("count: 1"); 49 | }); 50 | 51 | it("uses context store with selectors", async () => { 52 | const [Provider, useStore] = createContext(); 53 | 54 | const createStore = () => 55 | create((set) => ({ 56 | count: 0, 57 | inc: () => set((state) => ({ count: state.count + 1 })), 58 | })); 59 | 60 | function Counter() { 61 | const count = useStore((state) => state.count); 62 | const inc = useStore((state) => state.inc); 63 | useEffect(inc, [inc]); 64 | return
count: {count * 1}
; 65 | } 66 | 67 | const { findByText } = render( 68 | <> 69 | 70 | 71 | 72 | 73 | ); 74 | 75 | await findByText("count: 1"); 76 | }); 77 | 78 | it("throws error when not using provider", async () => { 79 | console.error = vi.fn(); 80 | 81 | class ErrorBoundary extends ClassComponent< 82 | { children?: ReactNode | undefined }, 83 | { hasError: boolean } 84 | > { 85 | constructor(props: { children?: ReactNode | undefined }) { 86 | super(props); 87 | this.state = { hasError: false }; 88 | } 89 | static getDerivedStateFromError() { 90 | return { hasError: true }; 91 | } 92 | override render() { 93 | return this.state.hasError ?
errored
: this.props.children; 94 | } 95 | } 96 | 97 | const [, useStore] = createContext>(); 98 | function Component() { 99 | useStore((state) => state); 100 | return
no error
; 101 | } 102 | 103 | const { findByText } = render( 104 | 105 | 106 | 107 | 108 | 109 | ); 110 | await findByText("errored"); 111 | }); 112 | 113 | it("useCallback with useStore infers types correctly", async () => { 114 | const [, useStore] = createContext(); 115 | function _Counter() { 116 | const _x = useStore(useCallback((state) => state.count, [])); 117 | expectAreTypesEqual().toBe(true); 118 | } 119 | }); 120 | 121 | const expectAreTypesEqual = () => ({ 122 | toBe: ( 123 | _: (() => T extends B ? 1 : 0) extends () => T extends A ? 1 : 0 124 | ? true 125 | : false 126 | ) => {}, 127 | }); 128 | -------------------------------------------------------------------------------- /tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tests", 3 | "version": "0.0.0", 4 | "private": true, 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vitest --watch", 8 | "test": "vitest --coverage", 9 | "test:ci": "vitest run", 10 | "test:ui": "vitest --ui --coverage" 11 | }, 12 | "devDependencies": { 13 | "@testing-library/react": "15.0.7", 14 | "@vitest/coverage-v8": "1.6.0", 15 | "@vitest/ui": "1.6.0", 16 | "happy-dom": "14.12.0", 17 | "vitest": "1.6.0", 18 | "zustand": "4.5.2" 19 | } 20 | } -------------------------------------------------------------------------------- /tests/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config' 2 | 3 | export default defineConfig({ 4 | test: { 5 | name: 'zustand-di', 6 | globals: true, 7 | environment: 'happy-dom', 8 | dir: '.', 9 | coverage: { 10 | include: ['**/src/**/*.{ts,tsx}'], 11 | allowExternal: true, 12 | reportOnFailure: true, 13 | reporter: ['text', 'json-summary', 'json', 'html'], 14 | }, 15 | }, 16 | }) -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "compilerOptions": { 4 | "baseUrl": ".", 5 | "composite": false, 6 | "declaration": true, 7 | "declarationMap": true, 8 | "esModuleInterop": true, 9 | "exactOptionalPropertyTypes": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "isolatedModules": true, 12 | "jsx": "react-jsx", 13 | "module": "esnext", 14 | "moduleDetection": "force", 15 | "moduleResolution": "bundler", 16 | "noEmit": true, 17 | "noImplicitOverride": true, 18 | "noUncheckedIndexedAccess": true, 19 | "noUnusedLocals": false, 20 | "noUnusedParameters": false, 21 | "outDir": "dist", 22 | "rootDir": ".", 23 | "skipLibCheck": true, 24 | "strict": true, 25 | "target": "esnext", 26 | "verbatimModuleSyntax": true 27 | }, 28 | "display": "zustand-di", 29 | "exclude": [ 30 | "node_modules", 31 | "dist" 32 | ], 33 | "include": [ 34 | "src/**/*", 35 | "tests/**/*" 36 | ] 37 | } -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup'; 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | sourcemap: true, 6 | clean: true, 7 | dts: true, 8 | format: ['cjs', 'esm'], 9 | }); --------------------------------------------------------------------------------