├── .eslintignore
├── .eslintrc.cjs
├── .github
└── workflows
│ ├── ci.yml
│ └── release.yml
├── .gitignore
├── .prettierignore
├── .prettierrc.cjs
├── LICENSE
├── README.md
├── package.json
├── pnpm-lock.yaml
├── src
├── cache.ts
├── core.test.tsx
├── core.ts
├── extra.test.tsx
├── extra.ts
├── index.ts
├── lru.test.ts
├── lru.ts
├── store.test.ts
├── store.ts
└── utils.ts
├── tsconfig.json
├── tsup.config.ts
└── vitest.config.ts
/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | vite.config.ts
3 | dist/
4 | tsup.config.ts
5 | jest.config.ts
6 | jest.setup.ts
7 | vite.config.ts
8 | vitest.config.ts
9 |
--------------------------------------------------------------------------------
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: "tronikelis-solid",
3 | parserOptions: {
4 | tsconfigRootDir: __dirname,
5 | project: ["./tsconfig.json"],
6 | },
7 | };
8 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: ci
2 |
3 | on:
4 | push:
5 | workflow_call:
6 |
7 | jobs:
8 | ci:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Cloning repo
12 | uses: actions/checkout@v3
13 |
14 | - name: Install pnpm
15 | uses: pnpm/action-setup@v2
16 | with:
17 | version: 8
18 |
19 | - name: Setup Node.js environment
20 | uses: actions/setup-node@v3
21 | with:
22 | node-version: 20
23 | cache: pnpm
24 |
25 | - name: Install deps
26 | run: pnpm i --frozen-lockfile
27 |
28 | - name: ESLint
29 | run: pnpm lint
30 |
31 | - name: tsc
32 | run: pnpm tsc
33 |
34 | - name: test
35 | run: pnpm test
36 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: Release
2 |
3 | on:
4 | release:
5 | types: ["created"]
6 | push:
7 |
8 | jobs:
9 | ci:
10 | uses: "./.github/workflows/ci.yml"
11 | secrets: inherit
12 |
13 | build-release:
14 | runs-on: "ubuntu-latest"
15 | needs: ["ci"]
16 | permissions:
17 | contents: read
18 | id-token: write
19 | steps:
20 | - uses: actions/checkout@v3
21 |
22 | - name: Install pnpm
23 | uses: pnpm/action-setup@v2
24 | with:
25 | version: 8
26 |
27 | - uses: actions/setup-node@v3
28 | with:
29 | node-version: 20
30 | registry-url: "https://registry.npmjs.org"
31 | cache: pnpm
32 |
33 | - name: Install deps
34 | run: pnpm i --frozen-lockfile
35 |
36 | - name: Build
37 | run: pnpm build
38 |
39 | - name: publish
40 | run: |
41 | if [ "${{ github.event_name }}" == "release" ]; then
42 | # This is a release, publish without a tag
43 | npm publish --provenance --access public
44 | else
45 | branch="${{ github.ref_name }}"
46 | tmp=$(mktemp)
47 | short_sha=$(echo "${{ github.sha }}" | cut -c 1-32)
48 |
49 | # skip tag push events
50 | if [[ $branch == *v* && $branch == *.* ]]; then
51 | exit 0
52 | fi
53 |
54 | jq --arg x "-$short_sha" '.version += $x' package.json > "$tmp" && mv "$tmp" package.json
55 |
56 | if [ $branch != "master" ]; then
57 | # This is not the master branch, publish with the branch name as a tag
58 | npm publish --provenance --access public --tag "dev-$branch"
59 | fi
60 | fi
61 | env:
62 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
63 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
26 | vite.config.ts
27 | dev/
28 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 |
--------------------------------------------------------------------------------
/.prettierrc.cjs:
--------------------------------------------------------------------------------
1 | const config = require("prettier-config-tronikelis");
2 |
3 | module.exports = {
4 | ...config,
5 | plugins: [],
6 | };
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Donatas
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
solid-swr
3 |
4 | Swr ideaology brought to solid
5 |
6 |
11 |
12 |
13 |
14 |
15 | - [Introduction](#introduction)
16 | - [Features](#features)
17 | - [Install](#install)
18 | - [Quick start](#quick-start)
19 | - [Explanation](#explanation)
20 | - [Ideaology](#ideaology)
21 | - [The "key"](#the-key)
22 | - [Solid store as a source of truth](#solid-store-as-a-source-of-truth)
23 | - [Behavior can be customized through public core APIs](#behavior-can-be-customized-through-public-core-apis)
24 | - [Core](#core)
25 | - [Store](#store)
26 | - [Cache](#cache)
27 | - [Methods](#methods)
28 | - [createRevalidator](#createrevalidator)
29 | - [createMutator](#createmutator)
30 | - [useSwr](#useswr)
31 | - [Options](#options)
32 | - [Passing options](#passing-options)
33 | - [Reading options](#reading-options)
34 | - [Extra](#extra)
35 | - [useSwrFull](#useswrfull)
36 | - [useMatchMutate](#usematchmutate)
37 | - [useMatchRevalidate](#usematchrevalidate)
38 | - [useSwrInfinite](#useswrinfinite)
39 |
40 |
41 | # Introduction
42 |
43 | Quote from [vercel's SWR](https://swr.vercel.app/) for react:
44 |
45 | > The name “SWR” is derived from stale-while-revalidate, a HTTP cache invalidation strategy popularized by HTTP RFC 5861. SWR is a strategy to first return the data from cache (stale), then send the fetch request (revalidate), and finally come with the up-to-date data.
46 | >
47 | > With SWR, components will get a stream of data updates constantly and automatically. And the UI will be always fast and reactive.
48 |
49 | # Features
50 |
51 | - 💙 Built for **solid**
52 | - ⚡ Blazingly **fast** with **reconciled** solid stores and zero* extra hook allocation
53 | - ♻️ **Reusable** and **lightweight** data fetching
54 | - 📦 Optional built-in **cache** and request **deduplication**
55 | - 🔄 **Local mutation** (optimistic UI)
56 | - 🔥 **0** dependencies
57 | - 😉 And much more!
58 |
59 |
60 | For v4 docs [readme](https://github.com/Tronikelis/solid-swr/blob/424e295a8c8fde642be95370cf96fed04517ee49/README.md)
61 |
62 | # Install
63 |
64 | ```
65 | pnpm i solid-swr
66 | ```
67 |
68 | # Quick start
69 |
70 | ```tsx
71 | import { useSwr, SwrProvider, Store } from "solid-swr"
72 | import { LRU, createCache } from "solid-swr/cache"
73 |
74 | function App() {
75 | const { v, mutate, revalidate } = useSwr(() => "/api/user/2")
76 |
77 | const onClick = () => {
78 | mutate({ name: "user2" })
79 | // if you need to revalidate
80 | revalidate()
81 | }
82 |
83 | return (
84 |
85 | {v().isLoading}
86 | {v().data}
87 |
88 | )
89 | }
90 |
91 | function Root(props) {
92 | return (
93 |
94 | {props.children}
95 |
96 | )
97 | }
98 | ```
99 |
100 | ## Explanation
101 |
102 | Hook returns 3 values which you can destructure:
103 |
104 | - `v`: function that indexes into solid store
105 | - `mutate`: basically `setStore` but scoped to the key
106 | - `revalidate`: call fetcher again (not guaranteed to be called due to deduplication), this function returns the result of the fetch call
107 |
108 | # Ideaology
109 |
110 | Here I want to share some context about the ideaology of this library and swr in general
111 |
112 | ## The "key"
113 |
114 | The key is a `string` which is used as an ID into some server side state
115 |
116 | ```ts
117 | const key = "api/user/id"
118 | useSwr(() => key)
119 | ```
120 |
121 | The key is almost always used as a url to a backend resource
122 |
123 | ## Solid store as a source of truth
124 |
125 | Everything is stored in a solid store, i.e. isLoading, data, err, etc...
126 | All hooks / utilities, talk to a single object through a `Store` interface
127 |
128 | This way, solid handles the syncing of changes to listeners,
129 | thus:
130 |
131 | 1. we avoid implementing syncing *cough* *cough* `solid-swr@v4`
132 | 2. we avoid duplicating large amounts of js objects, again *cough* *cough* `solid-swr@v4`
133 | 3. And most importantly, this gives us `O(1)` time complexity to call `useSwr`
134 |
135 |
136 | Simple graph explaining what I've said
137 |
138 |
139 |
140 | ## Behavior can be customized through public core APIs
141 |
142 | In v5, `useSwr` is a **core** hook, meaning that it is simple and *meant* to be extended
143 |
144 | In fact, `useSwr` is just a simple function that uses other public apis:
145 |
146 | - `createRevalidator`
147 | - `createMutator`
148 |
149 | An excerpt from `useSwr` as of the time I'm writing this
150 |
151 | ```ts
152 | const runWithKey = any>(fn: T): ReturnType | undefined => {
153 | const k = key();
154 | if (!k) return;
155 | return fn(k);
156 | };
157 |
158 | const revalidator = createRevalidator(ctx);
159 | const mutator = createMutator(ctx);
160 |
161 | // as you can see, revalidate is just a convenience method to call revalidtor
162 | const revalidate = () => runWithKey(k => revalidator(k));
163 | // mutate is exactly the same
164 | const mutate = (payload: Mutator) => runWithKey(k => mutator(k, payload));
165 | ```
166 |
167 | If you at any time need a revalidator, or a mutator, just use `createRevalidator` or `createMutator`,
168 | or create new abstractions with these 2, just like pretty much all hooks in this lib
169 |
170 | # Core
171 |
172 | This is the most important part of the library which contains all core utilities
173 | for you to manage server side state with swr
174 |
175 | ## Store
176 |
177 | This is by far **THE** most important part of the library
178 |
179 | The store is a solid.js store object with the key `string` as the key
180 |
181 | ```ts
182 | export type SolidStore = {
183 | [key: string]: StoreItem | undefined;
184 | };
185 | ```
186 |
187 | Each item in the store contains these properties:
188 |
189 | - `data`: a generic value
190 | - `err`: a generic value
191 | - `isLoading`: a boolean
192 |
193 | For more info I suggest you looking at the `src/store.ts` everything is there
194 |
195 | ### Cache
196 |
197 | A separate user-provided cache is used to remove items from the store
198 |
199 | Connect your cache with the store like so:
200 |
201 | ```ts
202 | export type StoreCache = {
203 | /** item has been inserted into store */
204 | insert: (key: string, onTrim: OnTrimFn) => void;
205 | /** item has been looked up */
206 | lookup: (key: string, onTrim: OnTrimFn) => void;
207 | };
208 |
209 | ```
210 |
211 | ```ts
212 | const store = new Store({
213 | lookup: (key, onTrim) => lru.get(key),
214 | insert: (key, onTrim) => lru.set(key, true, onTrim)
215 | })
216 | ```
217 |
218 | `solid-swr` provides this behavior ootb
219 |
220 |
221 | ```ts
222 | import { LRU, createCache } from "solid-swr/cache"
223 |
224 | new Store(createCache(new LRU()))
225 | ```
226 |
227 | The `onTrim` is how the store connects to the cache,
228 | call `onTrim(key)` to remove a key from the solid store
229 |
230 | In the case above when `lru` tries to set a key it will trim the cache,
231 | thus removing (if needed) a key
232 |
233 |
234 | ### Methods
235 |
236 | Store can be mutated / read with its public methods
237 |
238 | - `lookupOrDef`: gets the correct item or returns default
239 | - `update`: update store while reconciling data
240 | - `updateProduce`: update store with solid `produce` util
241 |
242 | ## createRevalidator
243 |
244 | ```ts
245 | import { createRevalidator } from "solid-swr"
246 | ```
247 |
248 | Create a function that revalidates (calls fetcher) a key
249 |
250 | This function also deduplicates requests, so when you call it, the actual fetcher call
251 | is not guaranteed
252 |
253 | ## createMutator
254 |
255 | ```ts
256 | import { createMutator } from "solid-swr"
257 | ```
258 |
259 | Create a function that can change any key in the store
260 |
261 | ## useSwr
262 |
263 | ```ts
264 | import { useSwr } from "solid-swr"
265 | ```
266 |
267 | Hook that uses `createRevalidator` and `createMutator` to create the swr behavior
268 | that we all love
269 |
270 | Returns:
271 |
272 | - `mutate`: `createMutator` scoped to a key
273 | - `revalidate`: `createRevalidator` scoped to a key
274 | - `v`: a function that indexes into a solid store
275 |
276 |
277 | ## Options
278 |
279 | ```
280 | src/core.ts
281 | ```
282 |
283 | ```ts
284 | export type SwrOpts = {
285 | store: Store;
286 |
287 | fetcher: (key: string, { signal }: FetcherOpts) => Promise;
288 | /** gets direct store references (don't mutate) */
289 | onSuccess: (key: string, res: D) => void;
290 | /** gets direct store references (don't mutate) */
291 | onError: (key: string, err: E) => void;
292 |
293 | /** gets direct references to response (don't mutate) */
294 | onSuccessDeduped: (key: string, res: D) => void;
295 | /** gets direct reference to response (don't mutate) */
296 | onErrorDeduped: (key: string, err: E) => void;
297 | };
298 | ```
299 |
300 | ### Passing options
301 |
302 | Options can be passed either to a `useSwr` hook instance or
303 | with `SwrProvider`
304 |
305 | ### Reading options
306 |
307 | Options can be read with `useSwrContext`
308 |
309 | # Extra
310 |
311 | ```ts
312 | import * as extra from "solid-swr/extra"
313 | ```
314 |
315 | All of the recipes shown here could have been created by using the [#core](#Core) utils
316 |
317 | If you have come up with an awesome recipe that's not shown here,
318 | I would love to add it to `solid-swr`
319 |
320 | I encourage you to take a look at `src/extra.tx` to get more context about inner
321 | workings of these recipes
322 |
323 | ## useSwrFull
324 |
325 | This is similar to the default swr in `solid-swr@v4`
326 |
327 | Basically it is [core](#useswr) hook with extra options:
328 |
329 | ```ts
330 | export type SwrFullOpts = {
331 | keepPreviousData: boolean;
332 | revalidateOnFocus: boolean;
333 | revalidateOnOnline: boolean;
334 | fallback: Fallback;
335 | refreshInterval: number;
336 | };
337 | ```
338 |
339 | Setting these options is the same as [in core](#options) but with `useSwrFull*` utils
340 |
341 | ## useMatchMutate
342 |
343 | Uses [createMutator](#createmutator) to mutate multiple keys at once
344 |
345 | ## useMatchRevalidate
346 |
347 | Uses [createRevalidator](#createrevalidator) to revalidate multiple keys at once
348 |
349 | This hook also skips revalidating items from the store which do not have any hooks attached to them,
350 | this is known by looking at `_mountedCount` number
351 |
352 | ## useSwrInfinite
353 |
354 | Used for infinite loading, returns an array of accessors into correct store index
355 |
356 | ```ts
357 | import { useSwrInfinite } from "solid-swr/store"
358 |
359 | const { data } = useSwrInfinite((index, prevData) => `https://example.com?page=${index}`)
360 |
361 | // here we get first item, then we access the store with second ()
362 | // then get the actual `data` that we need
363 | const firstItemData = data()[0]().data
364 | ```
365 |
366 |
367 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "solid-swr",
3 | "description": "The beloved swr package ported over to solid",
4 | "version": "5.0.2",
5 | "type": "module",
6 | "main": "./dist/index.cjs",
7 | "types": "./dist/index.d.ts",
8 | "module": "./dist/index.js",
9 | "exports": {
10 | ".": {
11 | "import": "./dist/index.js",
12 | "require": "./dist/index.cjs"
13 | },
14 | "./cache": {
15 | "import": "./dist/cache.js",
16 | "require": "./dist/cache.cjs"
17 | },
18 | "./extra": {
19 | "import": "./dist/extra.js",
20 | "require": "./dist/extra.cjs"
21 | }
22 | },
23 | "files": [
24 | "dist"
25 | ],
26 | "keywords": [
27 | "solid",
28 | "solidjs",
29 | "swr",
30 | "solid-swr",
31 | "hooks",
32 | "request",
33 | "cache",
34 | "fetch"
35 | ],
36 | "author": "tronikelis",
37 | "repository": {
38 | "type": "git",
39 | "url": "https://github.com/tronikelis/solid-swr"
40 | },
41 | "license": "MIT",
42 | "scripts": {
43 | "dev": "vite",
44 | "build": "tsup",
45 | "lint": "eslint . -c ./.eslintrc.cjs",
46 | "test": "vitest",
47 | "tsc": "tsc --noEmit"
48 | },
49 | "peerDependencies": {
50 | "solid-js": "1.x.x"
51 | },
52 | "devDependencies": {
53 | "@solidjs/testing-library": "0.8.5",
54 | "@testing-library/jest-dom": "6.3.0",
55 | "@types/node": "20.11.16",
56 | "eslint": "8.56.0",
57 | "eslint-config-tronikelis-solid": "10.0.0",
58 | "jsdom": "24.0.0",
59 | "prettier": "3.2.4",
60 | "prettier-config-tronikelis": "3.0.0",
61 | "tsup": "8.3.5",
62 | "typescript": "5.3.3",
63 | "vite": "5.0.12",
64 | "vite-plugin-solid": "2.9.1",
65 | "vite-tsconfig-paths": "4.3.1",
66 | "vitest": "1.2.2"
67 | },
68 | "browser": {},
69 | "packageManager": "pnpm@8.15.8+sha512.d1a029e1a447ad90bc96cd58b0fad486d2993d531856396f7babf2d83eb1823bb83c5a3d0fc18f675b2d10321d49eb161fece36fe8134aa5823ecd215feed392"
70 | }
71 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | dependencies:
8 | solid-js:
9 | specifier: 1.x.x
10 | version: 1.8.12
11 |
12 | devDependencies:
13 | '@solidjs/testing-library':
14 | specifier: 0.8.5
15 | version: 0.8.5(@solidjs/router@0.11.3)(solid-js@1.8.12)
16 | '@testing-library/jest-dom':
17 | specifier: 6.3.0
18 | version: 6.3.0(vitest@1.2.2)
19 | '@types/node':
20 | specifier: 20.11.16
21 | version: 20.11.16
22 | eslint:
23 | specifier: 8.56.0
24 | version: 8.56.0
25 | eslint-config-tronikelis-solid:
26 | specifier: 10.0.0
27 | version: 10.0.0(eslint@8.56.0)(prettier@3.2.4)(typescript@5.3.3)
28 | jsdom:
29 | specifier: 24.0.0
30 | version: 24.0.0
31 | prettier:
32 | specifier: 3.2.4
33 | version: 3.2.4
34 | prettier-config-tronikelis:
35 | specifier: 3.0.0
36 | version: 3.0.0(prettier@3.2.4)
37 | tsup:
38 | specifier: 8.3.5
39 | version: 8.3.5(typescript@5.3.3)
40 | typescript:
41 | specifier: 5.3.3
42 | version: 5.3.3
43 | vite:
44 | specifier: 5.0.12
45 | version: 5.0.12(@types/node@20.11.16)
46 | vite-plugin-solid:
47 | specifier: 2.9.1
48 | version: 2.9.1(@testing-library/jest-dom@6.3.0)(solid-js@1.8.12)(vite@5.0.12)
49 | vite-tsconfig-paths:
50 | specifier: 4.3.1
51 | version: 4.3.1(typescript@5.3.3)(vite@5.0.12)
52 | vitest:
53 | specifier: 1.2.2
54 | version: 1.2.2(@types/node@20.11.16)(jsdom@24.0.0)
55 |
56 | packages:
57 |
58 | /@aashutoshrathi/word-wrap@1.2.6:
59 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
60 | engines: {node: '>=0.10.0'}
61 | dev: true
62 |
63 | /@adobe/css-tools@4.3.3:
64 | resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==}
65 | dev: true
66 |
67 | /@ampproject/remapping@2.2.1:
68 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
69 | engines: {node: '>=6.0.0'}
70 | dependencies:
71 | '@jridgewell/gen-mapping': 0.3.3
72 | '@jridgewell/trace-mapping': 0.3.22
73 | dev: true
74 |
75 | /@babel/code-frame@7.23.5:
76 | resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
77 | engines: {node: '>=6.9.0'}
78 | dependencies:
79 | '@babel/highlight': 7.23.4
80 | chalk: 2.4.2
81 | dev: true
82 |
83 | /@babel/compat-data@7.23.5:
84 | resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
85 | engines: {node: '>=6.9.0'}
86 | dev: true
87 |
88 | /@babel/core@7.23.9:
89 | resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==}
90 | engines: {node: '>=6.9.0'}
91 | dependencies:
92 | '@ampproject/remapping': 2.2.1
93 | '@babel/code-frame': 7.23.5
94 | '@babel/generator': 7.23.6
95 | '@babel/helper-compilation-targets': 7.23.6
96 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
97 | '@babel/helpers': 7.23.9
98 | '@babel/parser': 7.23.9
99 | '@babel/template': 7.23.9
100 | '@babel/traverse': 7.23.9
101 | '@babel/types': 7.23.9
102 | convert-source-map: 2.0.0
103 | debug: 4.3.4
104 | gensync: 1.0.0-beta.2
105 | json5: 2.2.3
106 | semver: 6.3.1
107 | transitivePeerDependencies:
108 | - supports-color
109 | dev: true
110 |
111 | /@babel/generator@7.23.6:
112 | resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
113 | engines: {node: '>=6.9.0'}
114 | dependencies:
115 | '@babel/types': 7.23.9
116 | '@jridgewell/gen-mapping': 0.3.3
117 | '@jridgewell/trace-mapping': 0.3.22
118 | jsesc: 2.5.2
119 | dev: true
120 |
121 | /@babel/helper-compilation-targets@7.23.6:
122 | resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
123 | engines: {node: '>=6.9.0'}
124 | dependencies:
125 | '@babel/compat-data': 7.23.5
126 | '@babel/helper-validator-option': 7.23.5
127 | browserslist: 4.22.3
128 | lru-cache: 5.1.1
129 | semver: 6.3.1
130 | dev: true
131 |
132 | /@babel/helper-environment-visitor@7.22.20:
133 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
134 | engines: {node: '>=6.9.0'}
135 | dev: true
136 |
137 | /@babel/helper-function-name@7.23.0:
138 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
139 | engines: {node: '>=6.9.0'}
140 | dependencies:
141 | '@babel/template': 7.23.9
142 | '@babel/types': 7.23.9
143 | dev: true
144 |
145 | /@babel/helper-hoist-variables@7.22.5:
146 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
147 | engines: {node: '>=6.9.0'}
148 | dependencies:
149 | '@babel/types': 7.23.9
150 | dev: true
151 |
152 | /@babel/helper-module-imports@7.18.6:
153 | resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
154 | engines: {node: '>=6.9.0'}
155 | dependencies:
156 | '@babel/types': 7.23.9
157 | dev: true
158 |
159 | /@babel/helper-module-imports@7.22.15:
160 | resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
161 | engines: {node: '>=6.9.0'}
162 | dependencies:
163 | '@babel/types': 7.23.9
164 | dev: true
165 |
166 | /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9):
167 | resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
168 | engines: {node: '>=6.9.0'}
169 | peerDependencies:
170 | '@babel/core': ^7.0.0
171 | dependencies:
172 | '@babel/core': 7.23.9
173 | '@babel/helper-environment-visitor': 7.22.20
174 | '@babel/helper-module-imports': 7.22.15
175 | '@babel/helper-simple-access': 7.22.5
176 | '@babel/helper-split-export-declaration': 7.22.6
177 | '@babel/helper-validator-identifier': 7.22.20
178 | dev: true
179 |
180 | /@babel/helper-plugin-utils@7.22.5:
181 | resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
182 | engines: {node: '>=6.9.0'}
183 | dev: true
184 |
185 | /@babel/helper-simple-access@7.22.5:
186 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
187 | engines: {node: '>=6.9.0'}
188 | dependencies:
189 | '@babel/types': 7.23.9
190 | dev: true
191 |
192 | /@babel/helper-split-export-declaration@7.22.6:
193 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
194 | engines: {node: '>=6.9.0'}
195 | dependencies:
196 | '@babel/types': 7.23.9
197 | dev: true
198 |
199 | /@babel/helper-string-parser@7.23.4:
200 | resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
201 | engines: {node: '>=6.9.0'}
202 | dev: true
203 |
204 | /@babel/helper-validator-identifier@7.22.20:
205 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
206 | engines: {node: '>=6.9.0'}
207 | dev: true
208 |
209 | /@babel/helper-validator-option@7.23.5:
210 | resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
211 | engines: {node: '>=6.9.0'}
212 | dev: true
213 |
214 | /@babel/helpers@7.23.9:
215 | resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==}
216 | engines: {node: '>=6.9.0'}
217 | dependencies:
218 | '@babel/template': 7.23.9
219 | '@babel/traverse': 7.23.9
220 | '@babel/types': 7.23.9
221 | transitivePeerDependencies:
222 | - supports-color
223 | dev: true
224 |
225 | /@babel/highlight@7.23.4:
226 | resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
227 | engines: {node: '>=6.9.0'}
228 | dependencies:
229 | '@babel/helper-validator-identifier': 7.22.20
230 | chalk: 2.4.2
231 | js-tokens: 4.0.0
232 | dev: true
233 |
234 | /@babel/parser@7.23.9:
235 | resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
236 | engines: {node: '>=6.0.0'}
237 | hasBin: true
238 | dependencies:
239 | '@babel/types': 7.23.9
240 | dev: true
241 |
242 | /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9):
243 | resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==}
244 | engines: {node: '>=6.9.0'}
245 | peerDependencies:
246 | '@babel/core': ^7.0.0-0
247 | dependencies:
248 | '@babel/core': 7.23.9
249 | '@babel/helper-plugin-utils': 7.22.5
250 | dev: true
251 |
252 | /@babel/runtime@7.23.9:
253 | resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==}
254 | engines: {node: '>=6.9.0'}
255 | dependencies:
256 | regenerator-runtime: 0.14.1
257 | dev: true
258 |
259 | /@babel/template@7.23.9:
260 | resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==}
261 | engines: {node: '>=6.9.0'}
262 | dependencies:
263 | '@babel/code-frame': 7.23.5
264 | '@babel/parser': 7.23.9
265 | '@babel/types': 7.23.9
266 | dev: true
267 |
268 | /@babel/traverse@7.23.9:
269 | resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==}
270 | engines: {node: '>=6.9.0'}
271 | dependencies:
272 | '@babel/code-frame': 7.23.5
273 | '@babel/generator': 7.23.6
274 | '@babel/helper-environment-visitor': 7.22.20
275 | '@babel/helper-function-name': 7.23.0
276 | '@babel/helper-hoist-variables': 7.22.5
277 | '@babel/helper-split-export-declaration': 7.22.6
278 | '@babel/parser': 7.23.9
279 | '@babel/types': 7.23.9
280 | debug: 4.3.4
281 | globals: 11.12.0
282 | transitivePeerDependencies:
283 | - supports-color
284 | dev: true
285 |
286 | /@babel/types@7.23.9:
287 | resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
288 | engines: {node: '>=6.9.0'}
289 | dependencies:
290 | '@babel/helper-string-parser': 7.23.4
291 | '@babel/helper-validator-identifier': 7.22.20
292 | to-fast-properties: 2.0.0
293 | dev: true
294 |
295 | /@esbuild/aix-ppc64@0.19.12:
296 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
297 | engines: {node: '>=12'}
298 | cpu: [ppc64]
299 | os: [aix]
300 | requiresBuild: true
301 | dev: true
302 | optional: true
303 |
304 | /@esbuild/aix-ppc64@0.24.0:
305 | resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
306 | engines: {node: '>=18'}
307 | cpu: [ppc64]
308 | os: [aix]
309 | requiresBuild: true
310 | dev: true
311 | optional: true
312 |
313 | /@esbuild/android-arm64@0.19.12:
314 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
315 | engines: {node: '>=12'}
316 | cpu: [arm64]
317 | os: [android]
318 | requiresBuild: true
319 | dev: true
320 | optional: true
321 |
322 | /@esbuild/android-arm64@0.24.0:
323 | resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
324 | engines: {node: '>=18'}
325 | cpu: [arm64]
326 | os: [android]
327 | requiresBuild: true
328 | dev: true
329 | optional: true
330 |
331 | /@esbuild/android-arm@0.19.12:
332 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
333 | engines: {node: '>=12'}
334 | cpu: [arm]
335 | os: [android]
336 | requiresBuild: true
337 | dev: true
338 | optional: true
339 |
340 | /@esbuild/android-arm@0.24.0:
341 | resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
342 | engines: {node: '>=18'}
343 | cpu: [arm]
344 | os: [android]
345 | requiresBuild: true
346 | dev: true
347 | optional: true
348 |
349 | /@esbuild/android-x64@0.19.12:
350 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
351 | engines: {node: '>=12'}
352 | cpu: [x64]
353 | os: [android]
354 | requiresBuild: true
355 | dev: true
356 | optional: true
357 |
358 | /@esbuild/android-x64@0.24.0:
359 | resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
360 | engines: {node: '>=18'}
361 | cpu: [x64]
362 | os: [android]
363 | requiresBuild: true
364 | dev: true
365 | optional: true
366 |
367 | /@esbuild/darwin-arm64@0.19.12:
368 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
369 | engines: {node: '>=12'}
370 | cpu: [arm64]
371 | os: [darwin]
372 | requiresBuild: true
373 | dev: true
374 | optional: true
375 |
376 | /@esbuild/darwin-arm64@0.24.0:
377 | resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
378 | engines: {node: '>=18'}
379 | cpu: [arm64]
380 | os: [darwin]
381 | requiresBuild: true
382 | dev: true
383 | optional: true
384 |
385 | /@esbuild/darwin-x64@0.19.12:
386 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
387 | engines: {node: '>=12'}
388 | cpu: [x64]
389 | os: [darwin]
390 | requiresBuild: true
391 | dev: true
392 | optional: true
393 |
394 | /@esbuild/darwin-x64@0.24.0:
395 | resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
396 | engines: {node: '>=18'}
397 | cpu: [x64]
398 | os: [darwin]
399 | requiresBuild: true
400 | dev: true
401 | optional: true
402 |
403 | /@esbuild/freebsd-arm64@0.19.12:
404 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
405 | engines: {node: '>=12'}
406 | cpu: [arm64]
407 | os: [freebsd]
408 | requiresBuild: true
409 | dev: true
410 | optional: true
411 |
412 | /@esbuild/freebsd-arm64@0.24.0:
413 | resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
414 | engines: {node: '>=18'}
415 | cpu: [arm64]
416 | os: [freebsd]
417 | requiresBuild: true
418 | dev: true
419 | optional: true
420 |
421 | /@esbuild/freebsd-x64@0.19.12:
422 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
423 | engines: {node: '>=12'}
424 | cpu: [x64]
425 | os: [freebsd]
426 | requiresBuild: true
427 | dev: true
428 | optional: true
429 |
430 | /@esbuild/freebsd-x64@0.24.0:
431 | resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
432 | engines: {node: '>=18'}
433 | cpu: [x64]
434 | os: [freebsd]
435 | requiresBuild: true
436 | dev: true
437 | optional: true
438 |
439 | /@esbuild/linux-arm64@0.19.12:
440 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
441 | engines: {node: '>=12'}
442 | cpu: [arm64]
443 | os: [linux]
444 | requiresBuild: true
445 | dev: true
446 | optional: true
447 |
448 | /@esbuild/linux-arm64@0.24.0:
449 | resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
450 | engines: {node: '>=18'}
451 | cpu: [arm64]
452 | os: [linux]
453 | requiresBuild: true
454 | dev: true
455 | optional: true
456 |
457 | /@esbuild/linux-arm@0.19.12:
458 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
459 | engines: {node: '>=12'}
460 | cpu: [arm]
461 | os: [linux]
462 | requiresBuild: true
463 | dev: true
464 | optional: true
465 |
466 | /@esbuild/linux-arm@0.24.0:
467 | resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
468 | engines: {node: '>=18'}
469 | cpu: [arm]
470 | os: [linux]
471 | requiresBuild: true
472 | dev: true
473 | optional: true
474 |
475 | /@esbuild/linux-ia32@0.19.12:
476 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
477 | engines: {node: '>=12'}
478 | cpu: [ia32]
479 | os: [linux]
480 | requiresBuild: true
481 | dev: true
482 | optional: true
483 |
484 | /@esbuild/linux-ia32@0.24.0:
485 | resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
486 | engines: {node: '>=18'}
487 | cpu: [ia32]
488 | os: [linux]
489 | requiresBuild: true
490 | dev: true
491 | optional: true
492 |
493 | /@esbuild/linux-loong64@0.19.12:
494 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
495 | engines: {node: '>=12'}
496 | cpu: [loong64]
497 | os: [linux]
498 | requiresBuild: true
499 | dev: true
500 | optional: true
501 |
502 | /@esbuild/linux-loong64@0.24.0:
503 | resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
504 | engines: {node: '>=18'}
505 | cpu: [loong64]
506 | os: [linux]
507 | requiresBuild: true
508 | dev: true
509 | optional: true
510 |
511 | /@esbuild/linux-mips64el@0.19.12:
512 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
513 | engines: {node: '>=12'}
514 | cpu: [mips64el]
515 | os: [linux]
516 | requiresBuild: true
517 | dev: true
518 | optional: true
519 |
520 | /@esbuild/linux-mips64el@0.24.0:
521 | resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
522 | engines: {node: '>=18'}
523 | cpu: [mips64el]
524 | os: [linux]
525 | requiresBuild: true
526 | dev: true
527 | optional: true
528 |
529 | /@esbuild/linux-ppc64@0.19.12:
530 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
531 | engines: {node: '>=12'}
532 | cpu: [ppc64]
533 | os: [linux]
534 | requiresBuild: true
535 | dev: true
536 | optional: true
537 |
538 | /@esbuild/linux-ppc64@0.24.0:
539 | resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
540 | engines: {node: '>=18'}
541 | cpu: [ppc64]
542 | os: [linux]
543 | requiresBuild: true
544 | dev: true
545 | optional: true
546 |
547 | /@esbuild/linux-riscv64@0.19.12:
548 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
549 | engines: {node: '>=12'}
550 | cpu: [riscv64]
551 | os: [linux]
552 | requiresBuild: true
553 | dev: true
554 | optional: true
555 |
556 | /@esbuild/linux-riscv64@0.24.0:
557 | resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
558 | engines: {node: '>=18'}
559 | cpu: [riscv64]
560 | os: [linux]
561 | requiresBuild: true
562 | dev: true
563 | optional: true
564 |
565 | /@esbuild/linux-s390x@0.19.12:
566 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
567 | engines: {node: '>=12'}
568 | cpu: [s390x]
569 | os: [linux]
570 | requiresBuild: true
571 | dev: true
572 | optional: true
573 |
574 | /@esbuild/linux-s390x@0.24.0:
575 | resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
576 | engines: {node: '>=18'}
577 | cpu: [s390x]
578 | os: [linux]
579 | requiresBuild: true
580 | dev: true
581 | optional: true
582 |
583 | /@esbuild/linux-x64@0.19.12:
584 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
585 | engines: {node: '>=12'}
586 | cpu: [x64]
587 | os: [linux]
588 | requiresBuild: true
589 | dev: true
590 | optional: true
591 |
592 | /@esbuild/linux-x64@0.24.0:
593 | resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
594 | engines: {node: '>=18'}
595 | cpu: [x64]
596 | os: [linux]
597 | requiresBuild: true
598 | dev: true
599 | optional: true
600 |
601 | /@esbuild/netbsd-x64@0.19.12:
602 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
603 | engines: {node: '>=12'}
604 | cpu: [x64]
605 | os: [netbsd]
606 | requiresBuild: true
607 | dev: true
608 | optional: true
609 |
610 | /@esbuild/netbsd-x64@0.24.0:
611 | resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
612 | engines: {node: '>=18'}
613 | cpu: [x64]
614 | os: [netbsd]
615 | requiresBuild: true
616 | dev: true
617 | optional: true
618 |
619 | /@esbuild/openbsd-arm64@0.24.0:
620 | resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
621 | engines: {node: '>=18'}
622 | cpu: [arm64]
623 | os: [openbsd]
624 | requiresBuild: true
625 | dev: true
626 | optional: true
627 |
628 | /@esbuild/openbsd-x64@0.19.12:
629 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
630 | engines: {node: '>=12'}
631 | cpu: [x64]
632 | os: [openbsd]
633 | requiresBuild: true
634 | dev: true
635 | optional: true
636 |
637 | /@esbuild/openbsd-x64@0.24.0:
638 | resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
639 | engines: {node: '>=18'}
640 | cpu: [x64]
641 | os: [openbsd]
642 | requiresBuild: true
643 | dev: true
644 | optional: true
645 |
646 | /@esbuild/sunos-x64@0.19.12:
647 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
648 | engines: {node: '>=12'}
649 | cpu: [x64]
650 | os: [sunos]
651 | requiresBuild: true
652 | dev: true
653 | optional: true
654 |
655 | /@esbuild/sunos-x64@0.24.0:
656 | resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
657 | engines: {node: '>=18'}
658 | cpu: [x64]
659 | os: [sunos]
660 | requiresBuild: true
661 | dev: true
662 | optional: true
663 |
664 | /@esbuild/win32-arm64@0.19.12:
665 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
666 | engines: {node: '>=12'}
667 | cpu: [arm64]
668 | os: [win32]
669 | requiresBuild: true
670 | dev: true
671 | optional: true
672 |
673 | /@esbuild/win32-arm64@0.24.0:
674 | resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
675 | engines: {node: '>=18'}
676 | cpu: [arm64]
677 | os: [win32]
678 | requiresBuild: true
679 | dev: true
680 | optional: true
681 |
682 | /@esbuild/win32-ia32@0.19.12:
683 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
684 | engines: {node: '>=12'}
685 | cpu: [ia32]
686 | os: [win32]
687 | requiresBuild: true
688 | dev: true
689 | optional: true
690 |
691 | /@esbuild/win32-ia32@0.24.0:
692 | resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
693 | engines: {node: '>=18'}
694 | cpu: [ia32]
695 | os: [win32]
696 | requiresBuild: true
697 | dev: true
698 | optional: true
699 |
700 | /@esbuild/win32-x64@0.19.12:
701 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
702 | engines: {node: '>=12'}
703 | cpu: [x64]
704 | os: [win32]
705 | requiresBuild: true
706 | dev: true
707 | optional: true
708 |
709 | /@esbuild/win32-x64@0.24.0:
710 | resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
711 | engines: {node: '>=18'}
712 | cpu: [x64]
713 | os: [win32]
714 | requiresBuild: true
715 | dev: true
716 | optional: true
717 |
718 | /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
719 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
720 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
721 | peerDependencies:
722 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
723 | dependencies:
724 | eslint: 8.56.0
725 | eslint-visitor-keys: 3.4.3
726 | dev: true
727 |
728 | /@eslint-community/regexpp@4.10.0:
729 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
730 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
731 | dev: true
732 |
733 | /@eslint/eslintrc@2.1.4:
734 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
735 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
736 | dependencies:
737 | ajv: 6.12.6
738 | debug: 4.3.4
739 | espree: 9.6.1
740 | globals: 13.24.0
741 | ignore: 5.3.1
742 | import-fresh: 3.3.0
743 | js-yaml: 4.1.0
744 | minimatch: 3.1.2
745 | strip-json-comments: 3.1.1
746 | transitivePeerDependencies:
747 | - supports-color
748 | dev: true
749 |
750 | /@eslint/js@8.56.0:
751 | resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
752 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
753 | dev: true
754 |
755 | /@humanwhocodes/config-array@0.11.14:
756 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
757 | engines: {node: '>=10.10.0'}
758 | dependencies:
759 | '@humanwhocodes/object-schema': 2.0.2
760 | debug: 4.3.4
761 | minimatch: 3.1.2
762 | transitivePeerDependencies:
763 | - supports-color
764 | dev: true
765 |
766 | /@humanwhocodes/module-importer@1.0.1:
767 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
768 | engines: {node: '>=12.22'}
769 | dev: true
770 |
771 | /@humanwhocodes/object-schema@2.0.2:
772 | resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
773 | dev: true
774 |
775 | /@isaacs/cliui@8.0.2:
776 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
777 | engines: {node: '>=12'}
778 | dependencies:
779 | string-width: 5.1.2
780 | string-width-cjs: /string-width@4.2.3
781 | strip-ansi: 7.1.0
782 | strip-ansi-cjs: /strip-ansi@6.0.1
783 | wrap-ansi: 8.1.0
784 | wrap-ansi-cjs: /wrap-ansi@7.0.0
785 | dev: true
786 |
787 | /@jest/schemas@29.6.3:
788 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
789 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
790 | dependencies:
791 | '@sinclair/typebox': 0.27.8
792 | dev: true
793 |
794 | /@jridgewell/gen-mapping@0.3.3:
795 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
796 | engines: {node: '>=6.0.0'}
797 | dependencies:
798 | '@jridgewell/set-array': 1.1.2
799 | '@jridgewell/sourcemap-codec': 1.4.15
800 | '@jridgewell/trace-mapping': 0.3.22
801 | dev: true
802 |
803 | /@jridgewell/resolve-uri@3.1.1:
804 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
805 | engines: {node: '>=6.0.0'}
806 | dev: true
807 |
808 | /@jridgewell/set-array@1.1.2:
809 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
810 | engines: {node: '>=6.0.0'}
811 | dev: true
812 |
813 | /@jridgewell/sourcemap-codec@1.4.15:
814 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
815 | dev: true
816 |
817 | /@jridgewell/trace-mapping@0.3.22:
818 | resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==}
819 | dependencies:
820 | '@jridgewell/resolve-uri': 3.1.1
821 | '@jridgewell/sourcemap-codec': 1.4.15
822 | dev: true
823 |
824 | /@nodelib/fs.scandir@2.1.5:
825 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
826 | engines: {node: '>= 8'}
827 | dependencies:
828 | '@nodelib/fs.stat': 2.0.5
829 | run-parallel: 1.2.0
830 | dev: true
831 |
832 | /@nodelib/fs.stat@2.0.5:
833 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
834 | engines: {node: '>= 8'}
835 | dev: true
836 |
837 | /@nodelib/fs.walk@1.2.8:
838 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
839 | engines: {node: '>= 8'}
840 | dependencies:
841 | '@nodelib/fs.scandir': 2.1.5
842 | fastq: 1.17.0
843 | dev: true
844 |
845 | /@pkgjs/parseargs@0.11.0:
846 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
847 | engines: {node: '>=14'}
848 | requiresBuild: true
849 | dev: true
850 | optional: true
851 |
852 | /@pkgr/core@0.1.1:
853 | resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
854 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
855 | dev: true
856 |
857 | /@rollup/rollup-android-arm-eabi@4.28.1:
858 | resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==}
859 | cpu: [arm]
860 | os: [android]
861 | requiresBuild: true
862 | dev: true
863 | optional: true
864 |
865 | /@rollup/rollup-android-arm-eabi@4.9.6:
866 | resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==}
867 | cpu: [arm]
868 | os: [android]
869 | requiresBuild: true
870 | dev: true
871 | optional: true
872 |
873 | /@rollup/rollup-android-arm64@4.28.1:
874 | resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==}
875 | cpu: [arm64]
876 | os: [android]
877 | requiresBuild: true
878 | dev: true
879 | optional: true
880 |
881 | /@rollup/rollup-android-arm64@4.9.6:
882 | resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==}
883 | cpu: [arm64]
884 | os: [android]
885 | requiresBuild: true
886 | dev: true
887 | optional: true
888 |
889 | /@rollup/rollup-darwin-arm64@4.28.1:
890 | resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==}
891 | cpu: [arm64]
892 | os: [darwin]
893 | requiresBuild: true
894 | dev: true
895 | optional: true
896 |
897 | /@rollup/rollup-darwin-arm64@4.9.6:
898 | resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==}
899 | cpu: [arm64]
900 | os: [darwin]
901 | requiresBuild: true
902 | dev: true
903 | optional: true
904 |
905 | /@rollup/rollup-darwin-x64@4.28.1:
906 | resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==}
907 | cpu: [x64]
908 | os: [darwin]
909 | requiresBuild: true
910 | dev: true
911 | optional: true
912 |
913 | /@rollup/rollup-darwin-x64@4.9.6:
914 | resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==}
915 | cpu: [x64]
916 | os: [darwin]
917 | requiresBuild: true
918 | dev: true
919 | optional: true
920 |
921 | /@rollup/rollup-freebsd-arm64@4.28.1:
922 | resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==}
923 | cpu: [arm64]
924 | os: [freebsd]
925 | requiresBuild: true
926 | dev: true
927 | optional: true
928 |
929 | /@rollup/rollup-freebsd-x64@4.28.1:
930 | resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==}
931 | cpu: [x64]
932 | os: [freebsd]
933 | requiresBuild: true
934 | dev: true
935 | optional: true
936 |
937 | /@rollup/rollup-linux-arm-gnueabihf@4.28.1:
938 | resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==}
939 | cpu: [arm]
940 | os: [linux]
941 | requiresBuild: true
942 | dev: true
943 | optional: true
944 |
945 | /@rollup/rollup-linux-arm-gnueabihf@4.9.6:
946 | resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==}
947 | cpu: [arm]
948 | os: [linux]
949 | requiresBuild: true
950 | dev: true
951 | optional: true
952 |
953 | /@rollup/rollup-linux-arm-musleabihf@4.28.1:
954 | resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==}
955 | cpu: [arm]
956 | os: [linux]
957 | requiresBuild: true
958 | dev: true
959 | optional: true
960 |
961 | /@rollup/rollup-linux-arm64-gnu@4.28.1:
962 | resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==}
963 | cpu: [arm64]
964 | os: [linux]
965 | requiresBuild: true
966 | dev: true
967 | optional: true
968 |
969 | /@rollup/rollup-linux-arm64-gnu@4.9.6:
970 | resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==}
971 | cpu: [arm64]
972 | os: [linux]
973 | requiresBuild: true
974 | dev: true
975 | optional: true
976 |
977 | /@rollup/rollup-linux-arm64-musl@4.28.1:
978 | resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==}
979 | cpu: [arm64]
980 | os: [linux]
981 | requiresBuild: true
982 | dev: true
983 | optional: true
984 |
985 | /@rollup/rollup-linux-arm64-musl@4.9.6:
986 | resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==}
987 | cpu: [arm64]
988 | os: [linux]
989 | requiresBuild: true
990 | dev: true
991 | optional: true
992 |
993 | /@rollup/rollup-linux-loongarch64-gnu@4.28.1:
994 | resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==}
995 | cpu: [loong64]
996 | os: [linux]
997 | requiresBuild: true
998 | dev: true
999 | optional: true
1000 |
1001 | /@rollup/rollup-linux-powerpc64le-gnu@4.28.1:
1002 | resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==}
1003 | cpu: [ppc64]
1004 | os: [linux]
1005 | requiresBuild: true
1006 | dev: true
1007 | optional: true
1008 |
1009 | /@rollup/rollup-linux-riscv64-gnu@4.28.1:
1010 | resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==}
1011 | cpu: [riscv64]
1012 | os: [linux]
1013 | requiresBuild: true
1014 | dev: true
1015 | optional: true
1016 |
1017 | /@rollup/rollup-linux-riscv64-gnu@4.9.6:
1018 | resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==}
1019 | cpu: [riscv64]
1020 | os: [linux]
1021 | requiresBuild: true
1022 | dev: true
1023 | optional: true
1024 |
1025 | /@rollup/rollup-linux-s390x-gnu@4.28.1:
1026 | resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==}
1027 | cpu: [s390x]
1028 | os: [linux]
1029 | requiresBuild: true
1030 | dev: true
1031 | optional: true
1032 |
1033 | /@rollup/rollup-linux-x64-gnu@4.28.1:
1034 | resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==}
1035 | cpu: [x64]
1036 | os: [linux]
1037 | requiresBuild: true
1038 | dev: true
1039 | optional: true
1040 |
1041 | /@rollup/rollup-linux-x64-gnu@4.9.6:
1042 | resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==}
1043 | cpu: [x64]
1044 | os: [linux]
1045 | requiresBuild: true
1046 | dev: true
1047 | optional: true
1048 |
1049 | /@rollup/rollup-linux-x64-musl@4.28.1:
1050 | resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==}
1051 | cpu: [x64]
1052 | os: [linux]
1053 | requiresBuild: true
1054 | dev: true
1055 | optional: true
1056 |
1057 | /@rollup/rollup-linux-x64-musl@4.9.6:
1058 | resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==}
1059 | cpu: [x64]
1060 | os: [linux]
1061 | requiresBuild: true
1062 | dev: true
1063 | optional: true
1064 |
1065 | /@rollup/rollup-win32-arm64-msvc@4.28.1:
1066 | resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==}
1067 | cpu: [arm64]
1068 | os: [win32]
1069 | requiresBuild: true
1070 | dev: true
1071 | optional: true
1072 |
1073 | /@rollup/rollup-win32-arm64-msvc@4.9.6:
1074 | resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==}
1075 | cpu: [arm64]
1076 | os: [win32]
1077 | requiresBuild: true
1078 | dev: true
1079 | optional: true
1080 |
1081 | /@rollup/rollup-win32-ia32-msvc@4.28.1:
1082 | resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==}
1083 | cpu: [ia32]
1084 | os: [win32]
1085 | requiresBuild: true
1086 | dev: true
1087 | optional: true
1088 |
1089 | /@rollup/rollup-win32-ia32-msvc@4.9.6:
1090 | resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==}
1091 | cpu: [ia32]
1092 | os: [win32]
1093 | requiresBuild: true
1094 | dev: true
1095 | optional: true
1096 |
1097 | /@rollup/rollup-win32-x64-msvc@4.28.1:
1098 | resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==}
1099 | cpu: [x64]
1100 | os: [win32]
1101 | requiresBuild: true
1102 | dev: true
1103 | optional: true
1104 |
1105 | /@rollup/rollup-win32-x64-msvc@4.9.6:
1106 | resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==}
1107 | cpu: [x64]
1108 | os: [win32]
1109 | requiresBuild: true
1110 | dev: true
1111 | optional: true
1112 |
1113 | /@sinclair/typebox@0.27.8:
1114 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
1115 | dev: true
1116 |
1117 | /@solidjs/router@0.11.3(solid-js@1.8.12):
1118 | resolution: {integrity: sha512-clSgyvzNnAw5iwnqHFNdzvvgt1eHbg81hu3A7H/qYz0+J5D0XIk7oqaOI7SRWCTnV8Rg9q4K83VV4foCOb+jcw==}
1119 | peerDependencies:
1120 | solid-js: ^1.8.6
1121 | dependencies:
1122 | solid-js: 1.8.12
1123 | dev: true
1124 |
1125 | /@solidjs/testing-library@0.8.5(@solidjs/router@0.11.3)(solid-js@1.8.12):
1126 | resolution: {integrity: sha512-L9TowCoqdRQGB8ikODh9uHXrYTjCUZseVUG0tIVa836//qeSqXP4m0BKG66v9Zp1y1wRxok5qUW97GwrtEBMcw==}
1127 | engines: {node: '>= 14'}
1128 | peerDependencies:
1129 | '@solidjs/router': '>=0.6.0'
1130 | solid-js: '>=1.0.0'
1131 | dependencies:
1132 | '@solidjs/router': 0.11.3(solid-js@1.8.12)
1133 | '@testing-library/dom': 9.3.4
1134 | solid-js: 1.8.12
1135 | dev: true
1136 |
1137 | /@testing-library/dom@9.3.4:
1138 | resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
1139 | engines: {node: '>=14'}
1140 | dependencies:
1141 | '@babel/code-frame': 7.23.5
1142 | '@babel/runtime': 7.23.9
1143 | '@types/aria-query': 5.0.4
1144 | aria-query: 5.1.3
1145 | chalk: 4.1.2
1146 | dom-accessibility-api: 0.5.16
1147 | lz-string: 1.5.0
1148 | pretty-format: 27.5.1
1149 | dev: true
1150 |
1151 | /@testing-library/jest-dom@6.3.0(vitest@1.2.2):
1152 | resolution: {integrity: sha512-hJVIrkFizEQxoWsGBlycTcQhrpoCH4DhXfrnHFFXgkx3Xdm15zycsq5Ep+vpw4W8S0NJa8cxDHcuJib+1tEbhg==}
1153 | engines: {node: '>=14', npm: '>=6', yarn: '>=1'}
1154 | peerDependencies:
1155 | '@jest/globals': '>= 28'
1156 | '@types/bun': latest
1157 | '@types/jest': '>= 28'
1158 | jest: '>= 28'
1159 | vitest: '>= 0.32'
1160 | peerDependenciesMeta:
1161 | '@jest/globals':
1162 | optional: true
1163 | '@types/bun':
1164 | optional: true
1165 | '@types/jest':
1166 | optional: true
1167 | jest:
1168 | optional: true
1169 | vitest:
1170 | optional: true
1171 | dependencies:
1172 | '@adobe/css-tools': 4.3.3
1173 | '@babel/runtime': 7.23.9
1174 | aria-query: 5.3.0
1175 | chalk: 3.0.0
1176 | css.escape: 1.5.1
1177 | dom-accessibility-api: 0.6.3
1178 | lodash: 4.17.21
1179 | redent: 3.0.0
1180 | vitest: 1.2.2(@types/node@20.11.16)(jsdom@24.0.0)
1181 | dev: true
1182 |
1183 | /@types/aria-query@5.0.4:
1184 | resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
1185 | dev: true
1186 |
1187 | /@types/babel__core@7.20.5:
1188 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
1189 | dependencies:
1190 | '@babel/parser': 7.23.9
1191 | '@babel/types': 7.23.9
1192 | '@types/babel__generator': 7.6.8
1193 | '@types/babel__template': 7.4.4
1194 | '@types/babel__traverse': 7.20.5
1195 | dev: true
1196 |
1197 | /@types/babel__generator@7.6.8:
1198 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
1199 | dependencies:
1200 | '@babel/types': 7.23.9
1201 | dev: true
1202 |
1203 | /@types/babel__template@7.4.4:
1204 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
1205 | dependencies:
1206 | '@babel/parser': 7.23.9
1207 | '@babel/types': 7.23.9
1208 | dev: true
1209 |
1210 | /@types/babel__traverse@7.20.5:
1211 | resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
1212 | dependencies:
1213 | '@babel/types': 7.23.9
1214 | dev: true
1215 |
1216 | /@types/estree@1.0.5:
1217 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
1218 | dev: true
1219 |
1220 | /@types/estree@1.0.6:
1221 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
1222 | dev: true
1223 |
1224 | /@types/json-schema@7.0.15:
1225 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
1226 | dev: true
1227 |
1228 | /@types/node@20.11.16:
1229 | resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==}
1230 | dependencies:
1231 | undici-types: 5.26.5
1232 | dev: true
1233 |
1234 | /@types/semver@7.5.6:
1235 | resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
1236 | dev: true
1237 |
1238 | /@typescript-eslint/eslint-plugin@6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3):
1239 | resolution: {integrity: sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==}
1240 | engines: {node: ^16.0.0 || >=18.0.0}
1241 | peerDependencies:
1242 | '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
1243 | eslint: ^7.0.0 || ^8.0.0
1244 | typescript: '*'
1245 | peerDependenciesMeta:
1246 | typescript:
1247 | optional: true
1248 | dependencies:
1249 | '@eslint-community/regexpp': 4.10.0
1250 | '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3)
1251 | '@typescript-eslint/scope-manager': 6.15.0
1252 | '@typescript-eslint/type-utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3)
1253 | '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3)
1254 | '@typescript-eslint/visitor-keys': 6.15.0
1255 | debug: 4.3.4
1256 | eslint: 8.56.0
1257 | graphemer: 1.4.0
1258 | ignore: 5.3.1
1259 | natural-compare: 1.4.0
1260 | semver: 7.5.4
1261 | ts-api-utils: 1.0.3(typescript@5.3.3)
1262 | typescript: 5.3.3
1263 | transitivePeerDependencies:
1264 | - supports-color
1265 | dev: true
1266 |
1267 | /@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3):
1268 | resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==}
1269 | engines: {node: ^16.0.0 || >=18.0.0}
1270 | peerDependencies:
1271 | eslint: ^7.0.0 || ^8.0.0
1272 | typescript: '*'
1273 | peerDependenciesMeta:
1274 | typescript:
1275 | optional: true
1276 | dependencies:
1277 | '@typescript-eslint/scope-manager': 6.15.0
1278 | '@typescript-eslint/types': 6.15.0
1279 | '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3)
1280 | '@typescript-eslint/visitor-keys': 6.15.0
1281 | debug: 4.3.4
1282 | eslint: 8.56.0
1283 | typescript: 5.3.3
1284 | transitivePeerDependencies:
1285 | - supports-color
1286 | dev: true
1287 |
1288 | /@typescript-eslint/scope-manager@6.15.0:
1289 | resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==}
1290 | engines: {node: ^16.0.0 || >=18.0.0}
1291 | dependencies:
1292 | '@typescript-eslint/types': 6.15.0
1293 | '@typescript-eslint/visitor-keys': 6.15.0
1294 | dev: true
1295 |
1296 | /@typescript-eslint/scope-manager@6.20.0:
1297 | resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==}
1298 | engines: {node: ^16.0.0 || >=18.0.0}
1299 | dependencies:
1300 | '@typescript-eslint/types': 6.20.0
1301 | '@typescript-eslint/visitor-keys': 6.20.0
1302 | dev: true
1303 |
1304 | /@typescript-eslint/type-utils@6.15.0(eslint@8.56.0)(typescript@5.3.3):
1305 | resolution: {integrity: sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==}
1306 | engines: {node: ^16.0.0 || >=18.0.0}
1307 | peerDependencies:
1308 | eslint: ^7.0.0 || ^8.0.0
1309 | typescript: '*'
1310 | peerDependenciesMeta:
1311 | typescript:
1312 | optional: true
1313 | dependencies:
1314 | '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3)
1315 | '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3)
1316 | debug: 4.3.4
1317 | eslint: 8.56.0
1318 | ts-api-utils: 1.0.3(typescript@5.3.3)
1319 | typescript: 5.3.3
1320 | transitivePeerDependencies:
1321 | - supports-color
1322 | dev: true
1323 |
1324 | /@typescript-eslint/types@6.15.0:
1325 | resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==}
1326 | engines: {node: ^16.0.0 || >=18.0.0}
1327 | dev: true
1328 |
1329 | /@typescript-eslint/types@6.20.0:
1330 | resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==}
1331 | engines: {node: ^16.0.0 || >=18.0.0}
1332 | dev: true
1333 |
1334 | /@typescript-eslint/typescript-estree@6.15.0(typescript@5.3.3):
1335 | resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==}
1336 | engines: {node: ^16.0.0 || >=18.0.0}
1337 | peerDependencies:
1338 | typescript: '*'
1339 | peerDependenciesMeta:
1340 | typescript:
1341 | optional: true
1342 | dependencies:
1343 | '@typescript-eslint/types': 6.15.0
1344 | '@typescript-eslint/visitor-keys': 6.15.0
1345 | debug: 4.3.4
1346 | globby: 11.1.0
1347 | is-glob: 4.0.3
1348 | semver: 7.5.4
1349 | ts-api-utils: 1.0.3(typescript@5.3.3)
1350 | typescript: 5.3.3
1351 | transitivePeerDependencies:
1352 | - supports-color
1353 | dev: true
1354 |
1355 | /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3):
1356 | resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==}
1357 | engines: {node: ^16.0.0 || >=18.0.0}
1358 | peerDependencies:
1359 | typescript: '*'
1360 | peerDependenciesMeta:
1361 | typescript:
1362 | optional: true
1363 | dependencies:
1364 | '@typescript-eslint/types': 6.20.0
1365 | '@typescript-eslint/visitor-keys': 6.20.0
1366 | debug: 4.3.4
1367 | globby: 11.1.0
1368 | is-glob: 4.0.3
1369 | minimatch: 9.0.3
1370 | semver: 7.5.4
1371 | ts-api-utils: 1.0.3(typescript@5.3.3)
1372 | typescript: 5.3.3
1373 | transitivePeerDependencies:
1374 | - supports-color
1375 | dev: true
1376 |
1377 | /@typescript-eslint/utils@6.15.0(eslint@8.56.0)(typescript@5.3.3):
1378 | resolution: {integrity: sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==}
1379 | engines: {node: ^16.0.0 || >=18.0.0}
1380 | peerDependencies:
1381 | eslint: ^7.0.0 || ^8.0.0
1382 | dependencies:
1383 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
1384 | '@types/json-schema': 7.0.15
1385 | '@types/semver': 7.5.6
1386 | '@typescript-eslint/scope-manager': 6.15.0
1387 | '@typescript-eslint/types': 6.15.0
1388 | '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3)
1389 | eslint: 8.56.0
1390 | semver: 7.5.4
1391 | transitivePeerDependencies:
1392 | - supports-color
1393 | - typescript
1394 | dev: true
1395 |
1396 | /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3):
1397 | resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==}
1398 | engines: {node: ^16.0.0 || >=18.0.0}
1399 | peerDependencies:
1400 | eslint: ^7.0.0 || ^8.0.0
1401 | dependencies:
1402 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
1403 | '@types/json-schema': 7.0.15
1404 | '@types/semver': 7.5.6
1405 | '@typescript-eslint/scope-manager': 6.20.0
1406 | '@typescript-eslint/types': 6.20.0
1407 | '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3)
1408 | eslint: 8.56.0
1409 | semver: 7.5.4
1410 | transitivePeerDependencies:
1411 | - supports-color
1412 | - typescript
1413 | dev: true
1414 |
1415 | /@typescript-eslint/visitor-keys@6.15.0:
1416 | resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==}
1417 | engines: {node: ^16.0.0 || >=18.0.0}
1418 | dependencies:
1419 | '@typescript-eslint/types': 6.15.0
1420 | eslint-visitor-keys: 3.4.3
1421 | dev: true
1422 |
1423 | /@typescript-eslint/visitor-keys@6.20.0:
1424 | resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==}
1425 | engines: {node: ^16.0.0 || >=18.0.0}
1426 | dependencies:
1427 | '@typescript-eslint/types': 6.20.0
1428 | eslint-visitor-keys: 3.4.3
1429 | dev: true
1430 |
1431 | /@ungap/structured-clone@1.2.0:
1432 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
1433 | dev: true
1434 |
1435 | /@vitest/expect@1.2.2:
1436 | resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==}
1437 | dependencies:
1438 | '@vitest/spy': 1.2.2
1439 | '@vitest/utils': 1.2.2
1440 | chai: 4.4.1
1441 | dev: true
1442 |
1443 | /@vitest/runner@1.2.2:
1444 | resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==}
1445 | dependencies:
1446 | '@vitest/utils': 1.2.2
1447 | p-limit: 5.0.0
1448 | pathe: 1.1.2
1449 | dev: true
1450 |
1451 | /@vitest/snapshot@1.2.2:
1452 | resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==}
1453 | dependencies:
1454 | magic-string: 0.30.6
1455 | pathe: 1.1.2
1456 | pretty-format: 29.7.0
1457 | dev: true
1458 |
1459 | /@vitest/spy@1.2.2:
1460 | resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==}
1461 | dependencies:
1462 | tinyspy: 2.2.0
1463 | dev: true
1464 |
1465 | /@vitest/utils@1.2.2:
1466 | resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==}
1467 | dependencies:
1468 | diff-sequences: 29.6.3
1469 | estree-walker: 3.0.3
1470 | loupe: 2.3.7
1471 | pretty-format: 29.7.0
1472 | dev: true
1473 |
1474 | /acorn-jsx@5.3.2(acorn@8.11.3):
1475 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
1476 | peerDependencies:
1477 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
1478 | dependencies:
1479 | acorn: 8.11.3
1480 | dev: true
1481 |
1482 | /acorn-walk@8.3.2:
1483 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
1484 | engines: {node: '>=0.4.0'}
1485 | dev: true
1486 |
1487 | /acorn@8.11.3:
1488 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
1489 | engines: {node: '>=0.4.0'}
1490 | hasBin: true
1491 | dev: true
1492 |
1493 | /agent-base@7.1.0:
1494 | resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
1495 | engines: {node: '>= 14'}
1496 | dependencies:
1497 | debug: 4.3.4
1498 | transitivePeerDependencies:
1499 | - supports-color
1500 | dev: true
1501 |
1502 | /ajv@6.12.6:
1503 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
1504 | dependencies:
1505 | fast-deep-equal: 3.1.3
1506 | fast-json-stable-stringify: 2.1.0
1507 | json-schema-traverse: 0.4.1
1508 | uri-js: 4.4.1
1509 | dev: true
1510 |
1511 | /ansi-regex@5.0.1:
1512 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
1513 | engines: {node: '>=8'}
1514 | dev: true
1515 |
1516 | /ansi-regex@6.1.0:
1517 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
1518 | engines: {node: '>=12'}
1519 | dev: true
1520 |
1521 | /ansi-styles@3.2.1:
1522 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
1523 | engines: {node: '>=4'}
1524 | dependencies:
1525 | color-convert: 1.9.3
1526 | dev: true
1527 |
1528 | /ansi-styles@4.3.0:
1529 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
1530 | engines: {node: '>=8'}
1531 | dependencies:
1532 | color-convert: 2.0.1
1533 | dev: true
1534 |
1535 | /ansi-styles@5.2.0:
1536 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
1537 | engines: {node: '>=10'}
1538 | dev: true
1539 |
1540 | /ansi-styles@6.2.1:
1541 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
1542 | engines: {node: '>=12'}
1543 | dev: true
1544 |
1545 | /any-promise@1.3.0:
1546 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
1547 | dev: true
1548 |
1549 | /argparse@2.0.1:
1550 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
1551 | dev: true
1552 |
1553 | /aria-query@5.1.3:
1554 | resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
1555 | dependencies:
1556 | deep-equal: 2.2.3
1557 | dev: true
1558 |
1559 | /aria-query@5.3.0:
1560 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
1561 | dependencies:
1562 | dequal: 2.0.3
1563 | dev: true
1564 |
1565 | /array-buffer-byte-length@1.0.0:
1566 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
1567 | dependencies:
1568 | call-bind: 1.0.5
1569 | is-array-buffer: 3.0.4
1570 | dev: true
1571 |
1572 | /array-union@2.1.0:
1573 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
1574 | engines: {node: '>=8'}
1575 | dev: true
1576 |
1577 | /assertion-error@1.1.0:
1578 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
1579 | dev: true
1580 |
1581 | /asynckit@0.4.0:
1582 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
1583 | dev: true
1584 |
1585 | /available-typed-arrays@1.0.6:
1586 | resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==}
1587 | engines: {node: '>= 0.4'}
1588 | dev: true
1589 |
1590 | /babel-plugin-jsx-dom-expressions@0.37.16(@babel/core@7.23.9):
1591 | resolution: {integrity: sha512-ItMD16axbk+FqVb9vIbc7AOpNowy46VaSUHaMYPn+erPGpMCxsahQ1Iv+qhPMthjxtn5ROVMZ5AJtQvzjxjiNA==}
1592 | peerDependencies:
1593 | '@babel/core': ^7.20.12
1594 | dependencies:
1595 | '@babel/core': 7.23.9
1596 | '@babel/helper-module-imports': 7.18.6
1597 | '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9)
1598 | '@babel/types': 7.23.9
1599 | html-entities: 2.3.3
1600 | validate-html-nesting: 1.2.2
1601 | dev: true
1602 |
1603 | /babel-preset-solid@1.8.12(@babel/core@7.23.9):
1604 | resolution: {integrity: sha512-Fx1dYokeRwouWqjLkdobA6qvTAPxFSEU2c5PlkfJjlNyONlSMJQPaX0Bae5pc+5/LNteb9BseOp4UHwQu6VC9Q==}
1605 | peerDependencies:
1606 | '@babel/core': ^7.0.0
1607 | dependencies:
1608 | '@babel/core': 7.23.9
1609 | babel-plugin-jsx-dom-expressions: 0.37.16(@babel/core@7.23.9)
1610 | dev: true
1611 |
1612 | /balanced-match@1.0.2:
1613 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1614 | dev: true
1615 |
1616 | /brace-expansion@1.1.11:
1617 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
1618 | dependencies:
1619 | balanced-match: 1.0.2
1620 | concat-map: 0.0.1
1621 | dev: true
1622 |
1623 | /brace-expansion@2.0.1:
1624 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
1625 | dependencies:
1626 | balanced-match: 1.0.2
1627 | dev: true
1628 |
1629 | /braces@3.0.2:
1630 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
1631 | engines: {node: '>=8'}
1632 | dependencies:
1633 | fill-range: 7.0.1
1634 | dev: true
1635 |
1636 | /browserslist@4.22.3:
1637 | resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==}
1638 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
1639 | hasBin: true
1640 | dependencies:
1641 | caniuse-lite: 1.0.30001583
1642 | electron-to-chromium: 1.4.656
1643 | node-releases: 2.0.14
1644 | update-browserslist-db: 1.0.13(browserslist@4.22.3)
1645 | dev: true
1646 |
1647 | /bundle-require@5.0.0(esbuild@0.24.0):
1648 | resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==}
1649 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1650 | peerDependencies:
1651 | esbuild: '>=0.18'
1652 | dependencies:
1653 | esbuild: 0.24.0
1654 | load-tsconfig: 0.2.5
1655 | dev: true
1656 |
1657 | /cac@6.7.14:
1658 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
1659 | engines: {node: '>=8'}
1660 | dev: true
1661 |
1662 | /call-bind@1.0.5:
1663 | resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==}
1664 | dependencies:
1665 | function-bind: 1.1.2
1666 | get-intrinsic: 1.2.2
1667 | set-function-length: 1.2.0
1668 | dev: true
1669 |
1670 | /callsites@3.1.0:
1671 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
1672 | engines: {node: '>=6'}
1673 | dev: true
1674 |
1675 | /caniuse-lite@1.0.30001583:
1676 | resolution: {integrity: sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==}
1677 | dev: true
1678 |
1679 | /chai@4.4.1:
1680 | resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==}
1681 | engines: {node: '>=4'}
1682 | dependencies:
1683 | assertion-error: 1.1.0
1684 | check-error: 1.0.3
1685 | deep-eql: 4.1.3
1686 | get-func-name: 2.0.2
1687 | loupe: 2.3.7
1688 | pathval: 1.1.1
1689 | type-detect: 4.0.8
1690 | dev: true
1691 |
1692 | /chalk@2.4.2:
1693 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
1694 | engines: {node: '>=4'}
1695 | dependencies:
1696 | ansi-styles: 3.2.1
1697 | escape-string-regexp: 1.0.5
1698 | supports-color: 5.5.0
1699 | dev: true
1700 |
1701 | /chalk@3.0.0:
1702 | resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
1703 | engines: {node: '>=8'}
1704 | dependencies:
1705 | ansi-styles: 4.3.0
1706 | supports-color: 7.2.0
1707 | dev: true
1708 |
1709 | /chalk@4.1.2:
1710 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
1711 | engines: {node: '>=10'}
1712 | dependencies:
1713 | ansi-styles: 4.3.0
1714 | supports-color: 7.2.0
1715 | dev: true
1716 |
1717 | /check-error@1.0.3:
1718 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
1719 | dependencies:
1720 | get-func-name: 2.0.2
1721 | dev: true
1722 |
1723 | /chokidar@4.0.1:
1724 | resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==}
1725 | engines: {node: '>= 14.16.0'}
1726 | dependencies:
1727 | readdirp: 4.0.2
1728 | dev: true
1729 |
1730 | /color-convert@1.9.3:
1731 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
1732 | dependencies:
1733 | color-name: 1.1.3
1734 | dev: true
1735 |
1736 | /color-convert@2.0.1:
1737 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
1738 | engines: {node: '>=7.0.0'}
1739 | dependencies:
1740 | color-name: 1.1.4
1741 | dev: true
1742 |
1743 | /color-name@1.1.3:
1744 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
1745 | dev: true
1746 |
1747 | /color-name@1.1.4:
1748 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
1749 | dev: true
1750 |
1751 | /combined-stream@1.0.8:
1752 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
1753 | engines: {node: '>= 0.8'}
1754 | dependencies:
1755 | delayed-stream: 1.0.0
1756 | dev: true
1757 |
1758 | /commander@4.1.1:
1759 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
1760 | engines: {node: '>= 6'}
1761 | dev: true
1762 |
1763 | /concat-map@0.0.1:
1764 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
1765 | dev: true
1766 |
1767 | /consola@3.2.3:
1768 | resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
1769 | engines: {node: ^14.18.0 || >=16.10.0}
1770 | dev: true
1771 |
1772 | /convert-source-map@2.0.0:
1773 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
1774 | dev: true
1775 |
1776 | /cross-spawn@7.0.3:
1777 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
1778 | engines: {node: '>= 8'}
1779 | dependencies:
1780 | path-key: 3.1.1
1781 | shebang-command: 2.0.0
1782 | which: 2.0.2
1783 | dev: true
1784 |
1785 | /css.escape@1.5.1:
1786 | resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==}
1787 | dev: true
1788 |
1789 | /cssstyle@4.0.1:
1790 | resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==}
1791 | engines: {node: '>=18'}
1792 | dependencies:
1793 | rrweb-cssom: 0.6.0
1794 | dev: true
1795 |
1796 | /csstype@3.1.3:
1797 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
1798 |
1799 | /data-urls@5.0.0:
1800 | resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
1801 | engines: {node: '>=18'}
1802 | dependencies:
1803 | whatwg-mimetype: 4.0.0
1804 | whatwg-url: 14.0.0
1805 | dev: true
1806 |
1807 | /debug@4.3.4:
1808 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
1809 | engines: {node: '>=6.0'}
1810 | peerDependencies:
1811 | supports-color: '*'
1812 | peerDependenciesMeta:
1813 | supports-color:
1814 | optional: true
1815 | dependencies:
1816 | ms: 2.1.2
1817 | dev: true
1818 |
1819 | /debug@4.4.0:
1820 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
1821 | engines: {node: '>=6.0'}
1822 | peerDependencies:
1823 | supports-color: '*'
1824 | peerDependenciesMeta:
1825 | supports-color:
1826 | optional: true
1827 | dependencies:
1828 | ms: 2.1.3
1829 | dev: true
1830 |
1831 | /decimal.js@10.4.3:
1832 | resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
1833 | dev: true
1834 |
1835 | /deep-eql@4.1.3:
1836 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
1837 | engines: {node: '>=6'}
1838 | dependencies:
1839 | type-detect: 4.0.8
1840 | dev: true
1841 |
1842 | /deep-equal@2.2.3:
1843 | resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
1844 | engines: {node: '>= 0.4'}
1845 | dependencies:
1846 | array-buffer-byte-length: 1.0.0
1847 | call-bind: 1.0.5
1848 | es-get-iterator: 1.1.3
1849 | get-intrinsic: 1.2.2
1850 | is-arguments: 1.1.1
1851 | is-array-buffer: 3.0.4
1852 | is-date-object: 1.0.5
1853 | is-regex: 1.1.4
1854 | is-shared-array-buffer: 1.0.2
1855 | isarray: 2.0.5
1856 | object-is: 1.1.5
1857 | object-keys: 1.1.1
1858 | object.assign: 4.1.5
1859 | regexp.prototype.flags: 1.5.1
1860 | side-channel: 1.0.4
1861 | which-boxed-primitive: 1.0.2
1862 | which-collection: 1.0.1
1863 | which-typed-array: 1.1.14
1864 | dev: true
1865 |
1866 | /deep-is@0.1.4:
1867 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
1868 | dev: true
1869 |
1870 | /define-data-property@1.1.1:
1871 | resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
1872 | engines: {node: '>= 0.4'}
1873 | dependencies:
1874 | get-intrinsic: 1.2.2
1875 | gopd: 1.0.1
1876 | has-property-descriptors: 1.0.1
1877 | dev: true
1878 |
1879 | /define-properties@1.2.1:
1880 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
1881 | engines: {node: '>= 0.4'}
1882 | dependencies:
1883 | define-data-property: 1.1.1
1884 | has-property-descriptors: 1.0.1
1885 | object-keys: 1.1.1
1886 | dev: true
1887 |
1888 | /delayed-stream@1.0.0:
1889 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
1890 | engines: {node: '>=0.4.0'}
1891 | dev: true
1892 |
1893 | /dequal@2.0.3:
1894 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
1895 | engines: {node: '>=6'}
1896 | dev: true
1897 |
1898 | /diff-sequences@29.6.3:
1899 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
1900 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1901 | dev: true
1902 |
1903 | /dir-glob@3.0.1:
1904 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
1905 | engines: {node: '>=8'}
1906 | dependencies:
1907 | path-type: 4.0.0
1908 | dev: true
1909 |
1910 | /doctrine@3.0.0:
1911 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
1912 | engines: {node: '>=6.0.0'}
1913 | dependencies:
1914 | esutils: 2.0.3
1915 | dev: true
1916 |
1917 | /dom-accessibility-api@0.5.16:
1918 | resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
1919 | dev: true
1920 |
1921 | /dom-accessibility-api@0.6.3:
1922 | resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==}
1923 | dev: true
1924 |
1925 | /eastasianwidth@0.2.0:
1926 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
1927 | dev: true
1928 |
1929 | /electron-to-chromium@1.4.656:
1930 | resolution: {integrity: sha512-9AQB5eFTHyR3Gvt2t/NwR0le2jBSUNwCnMbUCejFWHD+so4tH40/dRLgoE+jxlPeWS43XJewyvCv+I8LPMl49Q==}
1931 | dev: true
1932 |
1933 | /emoji-regex@8.0.0:
1934 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
1935 | dev: true
1936 |
1937 | /emoji-regex@9.2.2:
1938 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
1939 | dev: true
1940 |
1941 | /entities@4.5.0:
1942 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
1943 | engines: {node: '>=0.12'}
1944 | dev: true
1945 |
1946 | /es-get-iterator@1.1.3:
1947 | resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
1948 | dependencies:
1949 | call-bind: 1.0.5
1950 | get-intrinsic: 1.2.2
1951 | has-symbols: 1.0.3
1952 | is-arguments: 1.1.1
1953 | is-map: 2.0.2
1954 | is-set: 2.0.2
1955 | is-string: 1.0.7
1956 | isarray: 2.0.5
1957 | stop-iteration-iterator: 1.0.0
1958 | dev: true
1959 |
1960 | /esbuild@0.19.12:
1961 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
1962 | engines: {node: '>=12'}
1963 | hasBin: true
1964 | requiresBuild: true
1965 | optionalDependencies:
1966 | '@esbuild/aix-ppc64': 0.19.12
1967 | '@esbuild/android-arm': 0.19.12
1968 | '@esbuild/android-arm64': 0.19.12
1969 | '@esbuild/android-x64': 0.19.12
1970 | '@esbuild/darwin-arm64': 0.19.12
1971 | '@esbuild/darwin-x64': 0.19.12
1972 | '@esbuild/freebsd-arm64': 0.19.12
1973 | '@esbuild/freebsd-x64': 0.19.12
1974 | '@esbuild/linux-arm': 0.19.12
1975 | '@esbuild/linux-arm64': 0.19.12
1976 | '@esbuild/linux-ia32': 0.19.12
1977 | '@esbuild/linux-loong64': 0.19.12
1978 | '@esbuild/linux-mips64el': 0.19.12
1979 | '@esbuild/linux-ppc64': 0.19.12
1980 | '@esbuild/linux-riscv64': 0.19.12
1981 | '@esbuild/linux-s390x': 0.19.12
1982 | '@esbuild/linux-x64': 0.19.12
1983 | '@esbuild/netbsd-x64': 0.19.12
1984 | '@esbuild/openbsd-x64': 0.19.12
1985 | '@esbuild/sunos-x64': 0.19.12
1986 | '@esbuild/win32-arm64': 0.19.12
1987 | '@esbuild/win32-ia32': 0.19.12
1988 | '@esbuild/win32-x64': 0.19.12
1989 | dev: true
1990 |
1991 | /esbuild@0.24.0:
1992 | resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
1993 | engines: {node: '>=18'}
1994 | hasBin: true
1995 | requiresBuild: true
1996 | optionalDependencies:
1997 | '@esbuild/aix-ppc64': 0.24.0
1998 | '@esbuild/android-arm': 0.24.0
1999 | '@esbuild/android-arm64': 0.24.0
2000 | '@esbuild/android-x64': 0.24.0
2001 | '@esbuild/darwin-arm64': 0.24.0
2002 | '@esbuild/darwin-x64': 0.24.0
2003 | '@esbuild/freebsd-arm64': 0.24.0
2004 | '@esbuild/freebsd-x64': 0.24.0
2005 | '@esbuild/linux-arm': 0.24.0
2006 | '@esbuild/linux-arm64': 0.24.0
2007 | '@esbuild/linux-ia32': 0.24.0
2008 | '@esbuild/linux-loong64': 0.24.0
2009 | '@esbuild/linux-mips64el': 0.24.0
2010 | '@esbuild/linux-ppc64': 0.24.0
2011 | '@esbuild/linux-riscv64': 0.24.0
2012 | '@esbuild/linux-s390x': 0.24.0
2013 | '@esbuild/linux-x64': 0.24.0
2014 | '@esbuild/netbsd-x64': 0.24.0
2015 | '@esbuild/openbsd-arm64': 0.24.0
2016 | '@esbuild/openbsd-x64': 0.24.0
2017 | '@esbuild/sunos-x64': 0.24.0
2018 | '@esbuild/win32-arm64': 0.24.0
2019 | '@esbuild/win32-ia32': 0.24.0
2020 | '@esbuild/win32-x64': 0.24.0
2021 | dev: true
2022 |
2023 | /escalade@3.1.1:
2024 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
2025 | engines: {node: '>=6'}
2026 | dev: true
2027 |
2028 | /escape-string-regexp@1.0.5:
2029 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
2030 | engines: {node: '>=0.8.0'}
2031 | dev: true
2032 |
2033 | /escape-string-regexp@4.0.0:
2034 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
2035 | engines: {node: '>=10'}
2036 | dev: true
2037 |
2038 | /eslint-config-prettier@9.1.0(eslint@8.56.0):
2039 | resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
2040 | hasBin: true
2041 | peerDependencies:
2042 | eslint: '>=7.0.0'
2043 | dependencies:
2044 | eslint: 8.56.0
2045 | dev: true
2046 |
2047 | /eslint-config-tronikelis-solid@10.0.0(eslint@8.56.0)(prettier@3.2.4)(typescript@5.3.3):
2048 | resolution: {integrity: sha512-iWYSYUYvLhdM6XNdlHH2744b7bM5gDD5ykkBxjb5PsDBIYjvyozs4zlazLCqR9LfmoeaB1dXmlPX8a2IWcX0+w==}
2049 | peerDependencies:
2050 | eslint: '*'
2051 | prettier: '*'
2052 | dependencies:
2053 | eslint: 8.56.0
2054 | eslint-config-tronikelis: 9.0.0(eslint@8.56.0)(prettier@3.2.4)(typescript@5.3.3)
2055 | eslint-plugin-solid: 0.13.1(eslint@8.56.0)(typescript@5.3.3)
2056 | prettier: 3.2.4
2057 | transitivePeerDependencies:
2058 | - '@types/eslint'
2059 | - supports-color
2060 | - typescript
2061 | dev: true
2062 |
2063 | /eslint-config-tronikelis@9.0.0(eslint@8.56.0)(prettier@3.2.4)(typescript@5.3.3):
2064 | resolution: {integrity: sha512-1ABw/uHqz8V64SwXRRNCrEHs5ykA/diecoQlAMks0v5qEpRS4etxmEmJK2xKAkhXv4swkdq8spHfiiyLjxa2vg==}
2065 | peerDependencies:
2066 | eslint: '*'
2067 | prettier: '*'
2068 | dependencies:
2069 | '@typescript-eslint/eslint-plugin': 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3)
2070 | '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3)
2071 | eslint: 8.56.0
2072 | eslint-config-prettier: 9.1.0(eslint@8.56.0)
2073 | eslint-plugin-prettier: 5.1.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4)
2074 | eslint-plugin-simple-import-sort: 10.0.0(eslint@8.56.0)
2075 | prettier: 3.2.4
2076 | transitivePeerDependencies:
2077 | - '@types/eslint'
2078 | - supports-color
2079 | - typescript
2080 | dev: true
2081 |
2082 | /eslint-plugin-prettier@5.1.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4):
2083 | resolution: {integrity: sha512-WQpV3mSmIobb77s4qiCZu3dBrZZ0rj8ckSfBtRrgNK9Wnh2s3eiaxNTWloz1LJ1WtvqZES/PAI7PLvsrGt/CEA==}
2084 | engines: {node: ^14.18.0 || >=16.0.0}
2085 | peerDependencies:
2086 | '@types/eslint': '>=8.0.0'
2087 | eslint: '>=8.0.0'
2088 | eslint-config-prettier: '*'
2089 | prettier: '>=3.0.0'
2090 | peerDependenciesMeta:
2091 | '@types/eslint':
2092 | optional: true
2093 | eslint-config-prettier:
2094 | optional: true
2095 | dependencies:
2096 | eslint: 8.56.0
2097 | eslint-config-prettier: 9.1.0(eslint@8.56.0)
2098 | prettier: 3.2.4
2099 | prettier-linter-helpers: 1.0.0
2100 | synckit: 0.8.8
2101 | dev: true
2102 |
2103 | /eslint-plugin-simple-import-sort@10.0.0(eslint@8.56.0):
2104 | resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==}
2105 | peerDependencies:
2106 | eslint: '>=5.0.0'
2107 | dependencies:
2108 | eslint: 8.56.0
2109 | dev: true
2110 |
2111 | /eslint-plugin-solid@0.13.1(eslint@8.56.0)(typescript@5.3.3):
2112 | resolution: {integrity: sha512-PdNrAylFzeh/SbnLc2pQ432l+bXFGzXj/qNqkh5QNVZCoWIdSs0CJA2D7hqW0DloztwUrzkVZCDWFWc3iRAm/Q==}
2113 | engines: {node: '>=12.0.0'}
2114 | peerDependencies:
2115 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2116 | dependencies:
2117 | '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3)
2118 | eslint: 8.56.0
2119 | is-html: 2.0.0
2120 | kebab-case: 1.0.2
2121 | known-css-properties: 0.24.0
2122 | style-to-object: 0.3.0
2123 | transitivePeerDependencies:
2124 | - supports-color
2125 | - typescript
2126 | dev: true
2127 |
2128 | /eslint-scope@7.2.2:
2129 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
2130 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2131 | dependencies:
2132 | esrecurse: 4.3.0
2133 | estraverse: 5.3.0
2134 | dev: true
2135 |
2136 | /eslint-visitor-keys@3.4.3:
2137 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
2138 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2139 | dev: true
2140 |
2141 | /eslint@8.56.0:
2142 | resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
2143 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2144 | hasBin: true
2145 | dependencies:
2146 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
2147 | '@eslint-community/regexpp': 4.10.0
2148 | '@eslint/eslintrc': 2.1.4
2149 | '@eslint/js': 8.56.0
2150 | '@humanwhocodes/config-array': 0.11.14
2151 | '@humanwhocodes/module-importer': 1.0.1
2152 | '@nodelib/fs.walk': 1.2.8
2153 | '@ungap/structured-clone': 1.2.0
2154 | ajv: 6.12.6
2155 | chalk: 4.1.2
2156 | cross-spawn: 7.0.3
2157 | debug: 4.3.4
2158 | doctrine: 3.0.0
2159 | escape-string-regexp: 4.0.0
2160 | eslint-scope: 7.2.2
2161 | eslint-visitor-keys: 3.4.3
2162 | espree: 9.6.1
2163 | esquery: 1.5.0
2164 | esutils: 2.0.3
2165 | fast-deep-equal: 3.1.3
2166 | file-entry-cache: 6.0.1
2167 | find-up: 5.0.0
2168 | glob-parent: 6.0.2
2169 | globals: 13.24.0
2170 | graphemer: 1.4.0
2171 | ignore: 5.3.1
2172 | imurmurhash: 0.1.4
2173 | is-glob: 4.0.3
2174 | is-path-inside: 3.0.3
2175 | js-yaml: 4.1.0
2176 | json-stable-stringify-without-jsonify: 1.0.1
2177 | levn: 0.4.1
2178 | lodash.merge: 4.6.2
2179 | minimatch: 3.1.2
2180 | natural-compare: 1.4.0
2181 | optionator: 0.9.3
2182 | strip-ansi: 6.0.1
2183 | text-table: 0.2.0
2184 | transitivePeerDependencies:
2185 | - supports-color
2186 | dev: true
2187 |
2188 | /espree@9.6.1:
2189 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
2190 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2191 | dependencies:
2192 | acorn: 8.11.3
2193 | acorn-jsx: 5.3.2(acorn@8.11.3)
2194 | eslint-visitor-keys: 3.4.3
2195 | dev: true
2196 |
2197 | /esquery@1.5.0:
2198 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
2199 | engines: {node: '>=0.10'}
2200 | dependencies:
2201 | estraverse: 5.3.0
2202 | dev: true
2203 |
2204 | /esrecurse@4.3.0:
2205 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
2206 | engines: {node: '>=4.0'}
2207 | dependencies:
2208 | estraverse: 5.3.0
2209 | dev: true
2210 |
2211 | /estraverse@5.3.0:
2212 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
2213 | engines: {node: '>=4.0'}
2214 | dev: true
2215 |
2216 | /estree-walker@3.0.3:
2217 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
2218 | dependencies:
2219 | '@types/estree': 1.0.5
2220 | dev: true
2221 |
2222 | /esutils@2.0.3:
2223 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
2224 | engines: {node: '>=0.10.0'}
2225 | dev: true
2226 |
2227 | /execa@8.0.1:
2228 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
2229 | engines: {node: '>=16.17'}
2230 | dependencies:
2231 | cross-spawn: 7.0.3
2232 | get-stream: 8.0.1
2233 | human-signals: 5.0.0
2234 | is-stream: 3.0.0
2235 | merge-stream: 2.0.0
2236 | npm-run-path: 5.2.0
2237 | onetime: 6.0.0
2238 | signal-exit: 4.1.0
2239 | strip-final-newline: 3.0.0
2240 | dev: true
2241 |
2242 | /fast-deep-equal@3.1.3:
2243 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
2244 | dev: true
2245 |
2246 | /fast-diff@1.3.0:
2247 | resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
2248 | dev: true
2249 |
2250 | /fast-glob@3.3.2:
2251 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
2252 | engines: {node: '>=8.6.0'}
2253 | dependencies:
2254 | '@nodelib/fs.stat': 2.0.5
2255 | '@nodelib/fs.walk': 1.2.8
2256 | glob-parent: 5.1.2
2257 | merge2: 1.4.1
2258 | micromatch: 4.0.5
2259 | dev: true
2260 |
2261 | /fast-json-stable-stringify@2.1.0:
2262 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
2263 | dev: true
2264 |
2265 | /fast-levenshtein@2.0.6:
2266 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
2267 | dev: true
2268 |
2269 | /fastq@1.17.0:
2270 | resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==}
2271 | dependencies:
2272 | reusify: 1.0.4
2273 | dev: true
2274 |
2275 | /fdir@6.4.2(picomatch@4.0.2):
2276 | resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==}
2277 | peerDependencies:
2278 | picomatch: ^3 || ^4
2279 | peerDependenciesMeta:
2280 | picomatch:
2281 | optional: true
2282 | dependencies:
2283 | picomatch: 4.0.2
2284 | dev: true
2285 |
2286 | /file-entry-cache@6.0.1:
2287 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
2288 | engines: {node: ^10.12.0 || >=12.0.0}
2289 | dependencies:
2290 | flat-cache: 3.2.0
2291 | dev: true
2292 |
2293 | /fill-range@7.0.1:
2294 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
2295 | engines: {node: '>=8'}
2296 | dependencies:
2297 | to-regex-range: 5.0.1
2298 | dev: true
2299 |
2300 | /find-up@5.0.0:
2301 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
2302 | engines: {node: '>=10'}
2303 | dependencies:
2304 | locate-path: 6.0.0
2305 | path-exists: 4.0.0
2306 | dev: true
2307 |
2308 | /flat-cache@3.2.0:
2309 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
2310 | engines: {node: ^10.12.0 || >=12.0.0}
2311 | dependencies:
2312 | flatted: 3.2.9
2313 | keyv: 4.5.4
2314 | rimraf: 3.0.2
2315 | dev: true
2316 |
2317 | /flatted@3.2.9:
2318 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
2319 | dev: true
2320 |
2321 | /for-each@0.3.3:
2322 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
2323 | dependencies:
2324 | is-callable: 1.2.7
2325 | dev: true
2326 |
2327 | /foreground-child@3.3.0:
2328 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
2329 | engines: {node: '>=14'}
2330 | dependencies:
2331 | cross-spawn: 7.0.3
2332 | signal-exit: 4.1.0
2333 | dev: true
2334 |
2335 | /form-data@4.0.0:
2336 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
2337 | engines: {node: '>= 6'}
2338 | dependencies:
2339 | asynckit: 0.4.0
2340 | combined-stream: 1.0.8
2341 | mime-types: 2.1.35
2342 | dev: true
2343 |
2344 | /fs.realpath@1.0.0:
2345 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
2346 | dev: true
2347 |
2348 | /fsevents@2.3.3:
2349 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
2350 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
2351 | os: [darwin]
2352 | requiresBuild: true
2353 | dev: true
2354 | optional: true
2355 |
2356 | /function-bind@1.1.2:
2357 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
2358 | dev: true
2359 |
2360 | /functions-have-names@1.2.3:
2361 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
2362 | dev: true
2363 |
2364 | /gensync@1.0.0-beta.2:
2365 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
2366 | engines: {node: '>=6.9.0'}
2367 | dev: true
2368 |
2369 | /get-func-name@2.0.2:
2370 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
2371 | dev: true
2372 |
2373 | /get-intrinsic@1.2.2:
2374 | resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
2375 | dependencies:
2376 | function-bind: 1.1.2
2377 | has-proto: 1.0.1
2378 | has-symbols: 1.0.3
2379 | hasown: 2.0.0
2380 | dev: true
2381 |
2382 | /get-stream@8.0.1:
2383 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
2384 | engines: {node: '>=16'}
2385 | dev: true
2386 |
2387 | /glob-parent@5.1.2:
2388 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
2389 | engines: {node: '>= 6'}
2390 | dependencies:
2391 | is-glob: 4.0.3
2392 | dev: true
2393 |
2394 | /glob-parent@6.0.2:
2395 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
2396 | engines: {node: '>=10.13.0'}
2397 | dependencies:
2398 | is-glob: 4.0.3
2399 | dev: true
2400 |
2401 | /glob@10.4.5:
2402 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
2403 | hasBin: true
2404 | dependencies:
2405 | foreground-child: 3.3.0
2406 | jackspeak: 3.4.3
2407 | minimatch: 9.0.5
2408 | minipass: 7.1.2
2409 | package-json-from-dist: 1.0.1
2410 | path-scurry: 1.11.1
2411 | dev: true
2412 |
2413 | /glob@7.2.3:
2414 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
2415 | dependencies:
2416 | fs.realpath: 1.0.0
2417 | inflight: 1.0.6
2418 | inherits: 2.0.4
2419 | minimatch: 3.1.2
2420 | once: 1.4.0
2421 | path-is-absolute: 1.0.1
2422 | dev: true
2423 |
2424 | /globals@11.12.0:
2425 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
2426 | engines: {node: '>=4'}
2427 | dev: true
2428 |
2429 | /globals@13.24.0:
2430 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
2431 | engines: {node: '>=8'}
2432 | dependencies:
2433 | type-fest: 0.20.2
2434 | dev: true
2435 |
2436 | /globby@11.1.0:
2437 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
2438 | engines: {node: '>=10'}
2439 | dependencies:
2440 | array-union: 2.1.0
2441 | dir-glob: 3.0.1
2442 | fast-glob: 3.3.2
2443 | ignore: 5.3.1
2444 | merge2: 1.4.1
2445 | slash: 3.0.0
2446 | dev: true
2447 |
2448 | /globrex@0.1.2:
2449 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
2450 | dev: true
2451 |
2452 | /gopd@1.0.1:
2453 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
2454 | dependencies:
2455 | get-intrinsic: 1.2.2
2456 | dev: true
2457 |
2458 | /graphemer@1.4.0:
2459 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
2460 | dev: true
2461 |
2462 | /has-bigints@1.0.2:
2463 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
2464 | dev: true
2465 |
2466 | /has-flag@3.0.0:
2467 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
2468 | engines: {node: '>=4'}
2469 | dev: true
2470 |
2471 | /has-flag@4.0.0:
2472 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
2473 | engines: {node: '>=8'}
2474 | dev: true
2475 |
2476 | /has-property-descriptors@1.0.1:
2477 | resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
2478 | dependencies:
2479 | get-intrinsic: 1.2.2
2480 | dev: true
2481 |
2482 | /has-proto@1.0.1:
2483 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
2484 | engines: {node: '>= 0.4'}
2485 | dev: true
2486 |
2487 | /has-symbols@1.0.3:
2488 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
2489 | engines: {node: '>= 0.4'}
2490 | dev: true
2491 |
2492 | /has-tostringtag@1.0.2:
2493 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
2494 | engines: {node: '>= 0.4'}
2495 | dependencies:
2496 | has-symbols: 1.0.3
2497 | dev: true
2498 |
2499 | /hasown@2.0.0:
2500 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
2501 | engines: {node: '>= 0.4'}
2502 | dependencies:
2503 | function-bind: 1.1.2
2504 | dev: true
2505 |
2506 | /html-encoding-sniffer@4.0.0:
2507 | resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
2508 | engines: {node: '>=18'}
2509 | dependencies:
2510 | whatwg-encoding: 3.1.1
2511 | dev: true
2512 |
2513 | /html-entities@2.3.3:
2514 | resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
2515 | dev: true
2516 |
2517 | /html-tags@3.3.1:
2518 | resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
2519 | engines: {node: '>=8'}
2520 | dev: true
2521 |
2522 | /http-proxy-agent@7.0.0:
2523 | resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==}
2524 | engines: {node: '>= 14'}
2525 | dependencies:
2526 | agent-base: 7.1.0
2527 | debug: 4.3.4
2528 | transitivePeerDependencies:
2529 | - supports-color
2530 | dev: true
2531 |
2532 | /https-proxy-agent@7.0.2:
2533 | resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==}
2534 | engines: {node: '>= 14'}
2535 | dependencies:
2536 | agent-base: 7.1.0
2537 | debug: 4.3.4
2538 | transitivePeerDependencies:
2539 | - supports-color
2540 | dev: true
2541 |
2542 | /human-signals@5.0.0:
2543 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
2544 | engines: {node: '>=16.17.0'}
2545 | dev: true
2546 |
2547 | /iconv-lite@0.6.3:
2548 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
2549 | engines: {node: '>=0.10.0'}
2550 | dependencies:
2551 | safer-buffer: 2.1.2
2552 | dev: true
2553 |
2554 | /ignore@5.3.1:
2555 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
2556 | engines: {node: '>= 4'}
2557 | dev: true
2558 |
2559 | /import-fresh@3.3.0:
2560 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
2561 | engines: {node: '>=6'}
2562 | dependencies:
2563 | parent-module: 1.0.1
2564 | resolve-from: 4.0.0
2565 | dev: true
2566 |
2567 | /imurmurhash@0.1.4:
2568 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
2569 | engines: {node: '>=0.8.19'}
2570 | dev: true
2571 |
2572 | /indent-string@4.0.0:
2573 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
2574 | engines: {node: '>=8'}
2575 | dev: true
2576 |
2577 | /inflight@1.0.6:
2578 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
2579 | dependencies:
2580 | once: 1.4.0
2581 | wrappy: 1.0.2
2582 | dev: true
2583 |
2584 | /inherits@2.0.4:
2585 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
2586 | dev: true
2587 |
2588 | /inline-style-parser@0.1.1:
2589 | resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
2590 | dev: true
2591 |
2592 | /internal-slot@1.0.6:
2593 | resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
2594 | engines: {node: '>= 0.4'}
2595 | dependencies:
2596 | get-intrinsic: 1.2.2
2597 | hasown: 2.0.0
2598 | side-channel: 1.0.4
2599 | dev: true
2600 |
2601 | /is-arguments@1.1.1:
2602 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
2603 | engines: {node: '>= 0.4'}
2604 | dependencies:
2605 | call-bind: 1.0.5
2606 | has-tostringtag: 1.0.2
2607 | dev: true
2608 |
2609 | /is-array-buffer@3.0.4:
2610 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
2611 | engines: {node: '>= 0.4'}
2612 | dependencies:
2613 | call-bind: 1.0.5
2614 | get-intrinsic: 1.2.2
2615 | dev: true
2616 |
2617 | /is-bigint@1.0.4:
2618 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
2619 | dependencies:
2620 | has-bigints: 1.0.2
2621 | dev: true
2622 |
2623 | /is-boolean-object@1.1.2:
2624 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
2625 | engines: {node: '>= 0.4'}
2626 | dependencies:
2627 | call-bind: 1.0.5
2628 | has-tostringtag: 1.0.2
2629 | dev: true
2630 |
2631 | /is-callable@1.2.7:
2632 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
2633 | engines: {node: '>= 0.4'}
2634 | dev: true
2635 |
2636 | /is-date-object@1.0.5:
2637 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
2638 | engines: {node: '>= 0.4'}
2639 | dependencies:
2640 | has-tostringtag: 1.0.2
2641 | dev: true
2642 |
2643 | /is-extglob@2.1.1:
2644 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
2645 | engines: {node: '>=0.10.0'}
2646 | dev: true
2647 |
2648 | /is-fullwidth-code-point@3.0.0:
2649 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
2650 | engines: {node: '>=8'}
2651 | dev: true
2652 |
2653 | /is-glob@4.0.3:
2654 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
2655 | engines: {node: '>=0.10.0'}
2656 | dependencies:
2657 | is-extglob: 2.1.1
2658 | dev: true
2659 |
2660 | /is-html@2.0.0:
2661 | resolution: {integrity: sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==}
2662 | engines: {node: '>=8'}
2663 | dependencies:
2664 | html-tags: 3.3.1
2665 | dev: true
2666 |
2667 | /is-map@2.0.2:
2668 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
2669 | dev: true
2670 |
2671 | /is-number-object@1.0.7:
2672 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
2673 | engines: {node: '>= 0.4'}
2674 | dependencies:
2675 | has-tostringtag: 1.0.2
2676 | dev: true
2677 |
2678 | /is-number@7.0.0:
2679 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
2680 | engines: {node: '>=0.12.0'}
2681 | dev: true
2682 |
2683 | /is-path-inside@3.0.3:
2684 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
2685 | engines: {node: '>=8'}
2686 | dev: true
2687 |
2688 | /is-potential-custom-element-name@1.0.1:
2689 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
2690 | dev: true
2691 |
2692 | /is-regex@1.1.4:
2693 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
2694 | engines: {node: '>= 0.4'}
2695 | dependencies:
2696 | call-bind: 1.0.5
2697 | has-tostringtag: 1.0.2
2698 | dev: true
2699 |
2700 | /is-set@2.0.2:
2701 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
2702 | dev: true
2703 |
2704 | /is-shared-array-buffer@1.0.2:
2705 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
2706 | dependencies:
2707 | call-bind: 1.0.5
2708 | dev: true
2709 |
2710 | /is-stream@3.0.0:
2711 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
2712 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2713 | dev: true
2714 |
2715 | /is-string@1.0.7:
2716 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
2717 | engines: {node: '>= 0.4'}
2718 | dependencies:
2719 | has-tostringtag: 1.0.2
2720 | dev: true
2721 |
2722 | /is-symbol@1.0.4:
2723 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
2724 | engines: {node: '>= 0.4'}
2725 | dependencies:
2726 | has-symbols: 1.0.3
2727 | dev: true
2728 |
2729 | /is-weakmap@2.0.1:
2730 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
2731 | dev: true
2732 |
2733 | /is-weakset@2.0.2:
2734 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
2735 | dependencies:
2736 | call-bind: 1.0.5
2737 | get-intrinsic: 1.2.2
2738 | dev: true
2739 |
2740 | /is-what@4.1.16:
2741 | resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
2742 | engines: {node: '>=12.13'}
2743 | dev: true
2744 |
2745 | /isarray@2.0.5:
2746 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
2747 | dev: true
2748 |
2749 | /isexe@2.0.0:
2750 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
2751 | dev: true
2752 |
2753 | /jackspeak@3.4.3:
2754 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
2755 | dependencies:
2756 | '@isaacs/cliui': 8.0.2
2757 | optionalDependencies:
2758 | '@pkgjs/parseargs': 0.11.0
2759 | dev: true
2760 |
2761 | /joycon@3.1.1:
2762 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
2763 | engines: {node: '>=10'}
2764 | dev: true
2765 |
2766 | /js-tokens@4.0.0:
2767 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
2768 | dev: true
2769 |
2770 | /js-yaml@4.1.0:
2771 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
2772 | hasBin: true
2773 | dependencies:
2774 | argparse: 2.0.1
2775 | dev: true
2776 |
2777 | /jsdom@24.0.0:
2778 | resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==}
2779 | engines: {node: '>=18'}
2780 | peerDependencies:
2781 | canvas: ^2.11.2
2782 | peerDependenciesMeta:
2783 | canvas:
2784 | optional: true
2785 | dependencies:
2786 | cssstyle: 4.0.1
2787 | data-urls: 5.0.0
2788 | decimal.js: 10.4.3
2789 | form-data: 4.0.0
2790 | html-encoding-sniffer: 4.0.0
2791 | http-proxy-agent: 7.0.0
2792 | https-proxy-agent: 7.0.2
2793 | is-potential-custom-element-name: 1.0.1
2794 | nwsapi: 2.2.7
2795 | parse5: 7.1.2
2796 | rrweb-cssom: 0.6.0
2797 | saxes: 6.0.0
2798 | symbol-tree: 3.2.4
2799 | tough-cookie: 4.1.3
2800 | w3c-xmlserializer: 5.0.0
2801 | webidl-conversions: 7.0.0
2802 | whatwg-encoding: 3.1.1
2803 | whatwg-mimetype: 4.0.0
2804 | whatwg-url: 14.0.0
2805 | ws: 8.16.0
2806 | xml-name-validator: 5.0.0
2807 | transitivePeerDependencies:
2808 | - bufferutil
2809 | - supports-color
2810 | - utf-8-validate
2811 | dev: true
2812 |
2813 | /jsesc@2.5.2:
2814 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
2815 | engines: {node: '>=4'}
2816 | hasBin: true
2817 | dev: true
2818 |
2819 | /json-buffer@3.0.1:
2820 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
2821 | dev: true
2822 |
2823 | /json-schema-traverse@0.4.1:
2824 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
2825 | dev: true
2826 |
2827 | /json-stable-stringify-without-jsonify@1.0.1:
2828 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
2829 | dev: true
2830 |
2831 | /json5@2.2.3:
2832 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
2833 | engines: {node: '>=6'}
2834 | hasBin: true
2835 | dev: true
2836 |
2837 | /jsonc-parser@3.2.1:
2838 | resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
2839 | dev: true
2840 |
2841 | /kebab-case@1.0.2:
2842 | resolution: {integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==}
2843 | dev: true
2844 |
2845 | /keyv@4.5.4:
2846 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
2847 | dependencies:
2848 | json-buffer: 3.0.1
2849 | dev: true
2850 |
2851 | /known-css-properties@0.24.0:
2852 | resolution: {integrity: sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==}
2853 | dev: true
2854 |
2855 | /levn@0.4.1:
2856 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
2857 | engines: {node: '>= 0.8.0'}
2858 | dependencies:
2859 | prelude-ls: 1.2.1
2860 | type-check: 0.4.0
2861 | dev: true
2862 |
2863 | /lilconfig@3.1.3:
2864 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
2865 | engines: {node: '>=14'}
2866 | dev: true
2867 |
2868 | /lines-and-columns@1.2.4:
2869 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
2870 | dev: true
2871 |
2872 | /load-tsconfig@0.2.5:
2873 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
2874 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2875 | dev: true
2876 |
2877 | /local-pkg@0.5.0:
2878 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
2879 | engines: {node: '>=14'}
2880 | dependencies:
2881 | mlly: 1.5.0
2882 | pkg-types: 1.0.3
2883 | dev: true
2884 |
2885 | /locate-path@6.0.0:
2886 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
2887 | engines: {node: '>=10'}
2888 | dependencies:
2889 | p-locate: 5.0.0
2890 | dev: true
2891 |
2892 | /lodash.merge@4.6.2:
2893 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
2894 | dev: true
2895 |
2896 | /lodash.sortby@4.7.0:
2897 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
2898 | dev: true
2899 |
2900 | /lodash@4.17.21:
2901 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
2902 | dev: true
2903 |
2904 | /loupe@2.3.7:
2905 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
2906 | dependencies:
2907 | get-func-name: 2.0.2
2908 | dev: true
2909 |
2910 | /lru-cache@10.4.3:
2911 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
2912 | dev: true
2913 |
2914 | /lru-cache@5.1.1:
2915 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
2916 | dependencies:
2917 | yallist: 3.1.1
2918 | dev: true
2919 |
2920 | /lru-cache@6.0.0:
2921 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
2922 | engines: {node: '>=10'}
2923 | dependencies:
2924 | yallist: 4.0.0
2925 | dev: true
2926 |
2927 | /lz-string@1.5.0:
2928 | resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
2929 | hasBin: true
2930 | dev: true
2931 |
2932 | /magic-string@0.30.6:
2933 | resolution: {integrity: sha512-n62qCLbPjNjyo+owKtveQxZFZTBm+Ms6YoGD23Wew6Vw337PElFNifQpknPruVRQV57kVShPnLGo9vWxVhpPvA==}
2934 | engines: {node: '>=12'}
2935 | dependencies:
2936 | '@jridgewell/sourcemap-codec': 1.4.15
2937 | dev: true
2938 |
2939 | /merge-anything@5.1.7:
2940 | resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==}
2941 | engines: {node: '>=12.13'}
2942 | dependencies:
2943 | is-what: 4.1.16
2944 | dev: true
2945 |
2946 | /merge-stream@2.0.0:
2947 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
2948 | dev: true
2949 |
2950 | /merge2@1.4.1:
2951 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2952 | engines: {node: '>= 8'}
2953 | dev: true
2954 |
2955 | /micromatch@4.0.5:
2956 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
2957 | engines: {node: '>=8.6'}
2958 | dependencies:
2959 | braces: 3.0.2
2960 | picomatch: 2.3.1
2961 | dev: true
2962 |
2963 | /mime-db@1.52.0:
2964 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
2965 | engines: {node: '>= 0.6'}
2966 | dev: true
2967 |
2968 | /mime-types@2.1.35:
2969 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
2970 | engines: {node: '>= 0.6'}
2971 | dependencies:
2972 | mime-db: 1.52.0
2973 | dev: true
2974 |
2975 | /mimic-fn@4.0.0:
2976 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
2977 | engines: {node: '>=12'}
2978 | dev: true
2979 |
2980 | /min-indent@1.0.1:
2981 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
2982 | engines: {node: '>=4'}
2983 | dev: true
2984 |
2985 | /minimatch@3.1.2:
2986 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
2987 | dependencies:
2988 | brace-expansion: 1.1.11
2989 | dev: true
2990 |
2991 | /minimatch@9.0.3:
2992 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
2993 | engines: {node: '>=16 || 14 >=14.17'}
2994 | dependencies:
2995 | brace-expansion: 2.0.1
2996 | dev: true
2997 |
2998 | /minimatch@9.0.5:
2999 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
3000 | engines: {node: '>=16 || 14 >=14.17'}
3001 | dependencies:
3002 | brace-expansion: 2.0.1
3003 | dev: true
3004 |
3005 | /minipass@7.1.2:
3006 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
3007 | engines: {node: '>=16 || 14 >=14.17'}
3008 | dev: true
3009 |
3010 | /mlly@1.5.0:
3011 | resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==}
3012 | dependencies:
3013 | acorn: 8.11.3
3014 | pathe: 1.1.2
3015 | pkg-types: 1.0.3
3016 | ufo: 1.3.2
3017 | dev: true
3018 |
3019 | /ms@2.1.2:
3020 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
3021 | dev: true
3022 |
3023 | /ms@2.1.3:
3024 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
3025 | dev: true
3026 |
3027 | /mz@2.7.0:
3028 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
3029 | dependencies:
3030 | any-promise: 1.3.0
3031 | object-assign: 4.1.1
3032 | thenify-all: 1.6.0
3033 | dev: true
3034 |
3035 | /nanoid@3.3.7:
3036 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
3037 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
3038 | hasBin: true
3039 | dev: true
3040 |
3041 | /natural-compare@1.4.0:
3042 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
3043 | dev: true
3044 |
3045 | /node-releases@2.0.14:
3046 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
3047 | dev: true
3048 |
3049 | /npm-run-path@5.2.0:
3050 | resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==}
3051 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
3052 | dependencies:
3053 | path-key: 4.0.0
3054 | dev: true
3055 |
3056 | /nwsapi@2.2.7:
3057 | resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
3058 | dev: true
3059 |
3060 | /object-assign@4.1.1:
3061 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
3062 | engines: {node: '>=0.10.0'}
3063 | dev: true
3064 |
3065 | /object-inspect@1.13.1:
3066 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
3067 | dev: true
3068 |
3069 | /object-is@1.1.5:
3070 | resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
3071 | engines: {node: '>= 0.4'}
3072 | dependencies:
3073 | call-bind: 1.0.5
3074 | define-properties: 1.2.1
3075 | dev: true
3076 |
3077 | /object-keys@1.1.1:
3078 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
3079 | engines: {node: '>= 0.4'}
3080 | dev: true
3081 |
3082 | /object.assign@4.1.5:
3083 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
3084 | engines: {node: '>= 0.4'}
3085 | dependencies:
3086 | call-bind: 1.0.5
3087 | define-properties: 1.2.1
3088 | has-symbols: 1.0.3
3089 | object-keys: 1.1.1
3090 | dev: true
3091 |
3092 | /once@1.4.0:
3093 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
3094 | dependencies:
3095 | wrappy: 1.0.2
3096 | dev: true
3097 |
3098 | /onetime@6.0.0:
3099 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
3100 | engines: {node: '>=12'}
3101 | dependencies:
3102 | mimic-fn: 4.0.0
3103 | dev: true
3104 |
3105 | /optionator@0.9.3:
3106 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
3107 | engines: {node: '>= 0.8.0'}
3108 | dependencies:
3109 | '@aashutoshrathi/word-wrap': 1.2.6
3110 | deep-is: 0.1.4
3111 | fast-levenshtein: 2.0.6
3112 | levn: 0.4.1
3113 | prelude-ls: 1.2.1
3114 | type-check: 0.4.0
3115 | dev: true
3116 |
3117 | /p-limit@3.1.0:
3118 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
3119 | engines: {node: '>=10'}
3120 | dependencies:
3121 | yocto-queue: 0.1.0
3122 | dev: true
3123 |
3124 | /p-limit@5.0.0:
3125 | resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
3126 | engines: {node: '>=18'}
3127 | dependencies:
3128 | yocto-queue: 1.0.0
3129 | dev: true
3130 |
3131 | /p-locate@5.0.0:
3132 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
3133 | engines: {node: '>=10'}
3134 | dependencies:
3135 | p-limit: 3.1.0
3136 | dev: true
3137 |
3138 | /package-json-from-dist@1.0.1:
3139 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
3140 | dev: true
3141 |
3142 | /parent-module@1.0.1:
3143 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
3144 | engines: {node: '>=6'}
3145 | dependencies:
3146 | callsites: 3.1.0
3147 | dev: true
3148 |
3149 | /parse5@7.1.2:
3150 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
3151 | dependencies:
3152 | entities: 4.5.0
3153 | dev: true
3154 |
3155 | /path-exists@4.0.0:
3156 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
3157 | engines: {node: '>=8'}
3158 | dev: true
3159 |
3160 | /path-is-absolute@1.0.1:
3161 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
3162 | engines: {node: '>=0.10.0'}
3163 | dev: true
3164 |
3165 | /path-key@3.1.1:
3166 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
3167 | engines: {node: '>=8'}
3168 | dev: true
3169 |
3170 | /path-key@4.0.0:
3171 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
3172 | engines: {node: '>=12'}
3173 | dev: true
3174 |
3175 | /path-scurry@1.11.1:
3176 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
3177 | engines: {node: '>=16 || 14 >=14.18'}
3178 | dependencies:
3179 | lru-cache: 10.4.3
3180 | minipass: 7.1.2
3181 | dev: true
3182 |
3183 | /path-type@4.0.0:
3184 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
3185 | engines: {node: '>=8'}
3186 | dev: true
3187 |
3188 | /pathe@1.1.2:
3189 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
3190 | dev: true
3191 |
3192 | /pathval@1.1.1:
3193 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
3194 | dev: true
3195 |
3196 | /picocolors@1.0.0:
3197 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
3198 | dev: true
3199 |
3200 | /picocolors@1.1.1:
3201 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
3202 | dev: true
3203 |
3204 | /picomatch@2.3.1:
3205 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
3206 | engines: {node: '>=8.6'}
3207 | dev: true
3208 |
3209 | /picomatch@4.0.2:
3210 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
3211 | engines: {node: '>=12'}
3212 | dev: true
3213 |
3214 | /pirates@4.0.6:
3215 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
3216 | engines: {node: '>= 6'}
3217 | dev: true
3218 |
3219 | /pkg-types@1.0.3:
3220 | resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
3221 | dependencies:
3222 | jsonc-parser: 3.2.1
3223 | mlly: 1.5.0
3224 | pathe: 1.1.2
3225 | dev: true
3226 |
3227 | /postcss-load-config@6.0.1:
3228 | resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
3229 | engines: {node: '>= 18'}
3230 | peerDependencies:
3231 | jiti: '>=1.21.0'
3232 | postcss: '>=8.0.9'
3233 | tsx: ^4.8.1
3234 | yaml: ^2.4.2
3235 | peerDependenciesMeta:
3236 | jiti:
3237 | optional: true
3238 | postcss:
3239 | optional: true
3240 | tsx:
3241 | optional: true
3242 | yaml:
3243 | optional: true
3244 | dependencies:
3245 | lilconfig: 3.1.3
3246 | dev: true
3247 |
3248 | /postcss@8.4.33:
3249 | resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
3250 | engines: {node: ^10 || ^12 || >=14}
3251 | dependencies:
3252 | nanoid: 3.3.7
3253 | picocolors: 1.0.0
3254 | source-map-js: 1.0.2
3255 | dev: true
3256 |
3257 | /prelude-ls@1.2.1:
3258 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
3259 | engines: {node: '>= 0.8.0'}
3260 | dev: true
3261 |
3262 | /prettier-config-tronikelis@3.0.0(prettier@3.2.4):
3263 | resolution: {integrity: sha512-v4OGo6bKWNXmG+ggFNtS2HJQ2UDpUavLZp0aue3Chjm6TGXuBg167D21/+nvOxD52DlZCQuDtSNmt3QZS+iiPQ==}
3264 | peerDependencies:
3265 | prettier: '*'
3266 | dependencies:
3267 | prettier: 3.2.4
3268 | prettier-plugin-tailwindcss: 0.5.11(prettier@3.2.4)
3269 | transitivePeerDependencies:
3270 | - '@ianvs/prettier-plugin-sort-imports'
3271 | - '@prettier/plugin-pug'
3272 | - '@shopify/prettier-plugin-liquid'
3273 | - '@trivago/prettier-plugin-sort-imports'
3274 | - prettier-plugin-astro
3275 | - prettier-plugin-css-order
3276 | - prettier-plugin-import-sort
3277 | - prettier-plugin-jsdoc
3278 | - prettier-plugin-marko
3279 | - prettier-plugin-organize-attributes
3280 | - prettier-plugin-organize-imports
3281 | - prettier-plugin-style-order
3282 | - prettier-plugin-svelte
3283 | - prettier-plugin-twig-melody
3284 | dev: true
3285 |
3286 | /prettier-linter-helpers@1.0.0:
3287 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
3288 | engines: {node: '>=6.0.0'}
3289 | dependencies:
3290 | fast-diff: 1.3.0
3291 | dev: true
3292 |
3293 | /prettier-plugin-tailwindcss@0.5.11(prettier@3.2.4):
3294 | resolution: {integrity: sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==}
3295 | engines: {node: '>=14.21.3'}
3296 | peerDependencies:
3297 | '@ianvs/prettier-plugin-sort-imports': '*'
3298 | '@prettier/plugin-pug': '*'
3299 | '@shopify/prettier-plugin-liquid': '*'
3300 | '@trivago/prettier-plugin-sort-imports': '*'
3301 | prettier: ^3.0
3302 | prettier-plugin-astro: '*'
3303 | prettier-plugin-css-order: '*'
3304 | prettier-plugin-import-sort: '*'
3305 | prettier-plugin-jsdoc: '*'
3306 | prettier-plugin-marko: '*'
3307 | prettier-plugin-organize-attributes: '*'
3308 | prettier-plugin-organize-imports: '*'
3309 | prettier-plugin-style-order: '*'
3310 | prettier-plugin-svelte: '*'
3311 | prettier-plugin-twig-melody: '*'
3312 | peerDependenciesMeta:
3313 | '@ianvs/prettier-plugin-sort-imports':
3314 | optional: true
3315 | '@prettier/plugin-pug':
3316 | optional: true
3317 | '@shopify/prettier-plugin-liquid':
3318 | optional: true
3319 | '@trivago/prettier-plugin-sort-imports':
3320 | optional: true
3321 | prettier-plugin-astro:
3322 | optional: true
3323 | prettier-plugin-css-order:
3324 | optional: true
3325 | prettier-plugin-import-sort:
3326 | optional: true
3327 | prettier-plugin-jsdoc:
3328 | optional: true
3329 | prettier-plugin-marko:
3330 | optional: true
3331 | prettier-plugin-organize-attributes:
3332 | optional: true
3333 | prettier-plugin-organize-imports:
3334 | optional: true
3335 | prettier-plugin-style-order:
3336 | optional: true
3337 | prettier-plugin-svelte:
3338 | optional: true
3339 | prettier-plugin-twig-melody:
3340 | optional: true
3341 | dependencies:
3342 | prettier: 3.2.4
3343 | dev: true
3344 |
3345 | /prettier@3.2.4:
3346 | resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
3347 | engines: {node: '>=14'}
3348 | hasBin: true
3349 | dev: true
3350 |
3351 | /pretty-format@27.5.1:
3352 | resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
3353 | engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
3354 | dependencies:
3355 | ansi-regex: 5.0.1
3356 | ansi-styles: 5.2.0
3357 | react-is: 17.0.2
3358 | dev: true
3359 |
3360 | /pretty-format@29.7.0:
3361 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
3362 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
3363 | dependencies:
3364 | '@jest/schemas': 29.6.3
3365 | ansi-styles: 5.2.0
3366 | react-is: 18.2.0
3367 | dev: true
3368 |
3369 | /psl@1.9.0:
3370 | resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
3371 | dev: true
3372 |
3373 | /punycode@2.3.1:
3374 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
3375 | engines: {node: '>=6'}
3376 | dev: true
3377 |
3378 | /querystringify@2.2.0:
3379 | resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
3380 | dev: true
3381 |
3382 | /queue-microtask@1.2.3:
3383 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
3384 | dev: true
3385 |
3386 | /react-is@17.0.2:
3387 | resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
3388 | dev: true
3389 |
3390 | /react-is@18.2.0:
3391 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
3392 | dev: true
3393 |
3394 | /readdirp@4.0.2:
3395 | resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==}
3396 | engines: {node: '>= 14.16.0'}
3397 | dev: true
3398 |
3399 | /redent@3.0.0:
3400 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
3401 | engines: {node: '>=8'}
3402 | dependencies:
3403 | indent-string: 4.0.0
3404 | strip-indent: 3.0.0
3405 | dev: true
3406 |
3407 | /regenerator-runtime@0.14.1:
3408 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
3409 | dev: true
3410 |
3411 | /regexp.prototype.flags@1.5.1:
3412 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
3413 | engines: {node: '>= 0.4'}
3414 | dependencies:
3415 | call-bind: 1.0.5
3416 | define-properties: 1.2.1
3417 | set-function-name: 2.0.1
3418 | dev: true
3419 |
3420 | /requires-port@1.0.0:
3421 | resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
3422 | dev: true
3423 |
3424 | /resolve-from@4.0.0:
3425 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
3426 | engines: {node: '>=4'}
3427 | dev: true
3428 |
3429 | /resolve-from@5.0.0:
3430 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
3431 | engines: {node: '>=8'}
3432 | dev: true
3433 |
3434 | /reusify@1.0.4:
3435 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
3436 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
3437 | dev: true
3438 |
3439 | /rimraf@3.0.2:
3440 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
3441 | hasBin: true
3442 | dependencies:
3443 | glob: 7.2.3
3444 | dev: true
3445 |
3446 | /rollup@4.28.1:
3447 | resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==}
3448 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
3449 | hasBin: true
3450 | dependencies:
3451 | '@types/estree': 1.0.6
3452 | optionalDependencies:
3453 | '@rollup/rollup-android-arm-eabi': 4.28.1
3454 | '@rollup/rollup-android-arm64': 4.28.1
3455 | '@rollup/rollup-darwin-arm64': 4.28.1
3456 | '@rollup/rollup-darwin-x64': 4.28.1
3457 | '@rollup/rollup-freebsd-arm64': 4.28.1
3458 | '@rollup/rollup-freebsd-x64': 4.28.1
3459 | '@rollup/rollup-linux-arm-gnueabihf': 4.28.1
3460 | '@rollup/rollup-linux-arm-musleabihf': 4.28.1
3461 | '@rollup/rollup-linux-arm64-gnu': 4.28.1
3462 | '@rollup/rollup-linux-arm64-musl': 4.28.1
3463 | '@rollup/rollup-linux-loongarch64-gnu': 4.28.1
3464 | '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1
3465 | '@rollup/rollup-linux-riscv64-gnu': 4.28.1
3466 | '@rollup/rollup-linux-s390x-gnu': 4.28.1
3467 | '@rollup/rollup-linux-x64-gnu': 4.28.1
3468 | '@rollup/rollup-linux-x64-musl': 4.28.1
3469 | '@rollup/rollup-win32-arm64-msvc': 4.28.1
3470 | '@rollup/rollup-win32-ia32-msvc': 4.28.1
3471 | '@rollup/rollup-win32-x64-msvc': 4.28.1
3472 | fsevents: 2.3.3
3473 | dev: true
3474 |
3475 | /rollup@4.9.6:
3476 | resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==}
3477 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
3478 | hasBin: true
3479 | dependencies:
3480 | '@types/estree': 1.0.5
3481 | optionalDependencies:
3482 | '@rollup/rollup-android-arm-eabi': 4.9.6
3483 | '@rollup/rollup-android-arm64': 4.9.6
3484 | '@rollup/rollup-darwin-arm64': 4.9.6
3485 | '@rollup/rollup-darwin-x64': 4.9.6
3486 | '@rollup/rollup-linux-arm-gnueabihf': 4.9.6
3487 | '@rollup/rollup-linux-arm64-gnu': 4.9.6
3488 | '@rollup/rollup-linux-arm64-musl': 4.9.6
3489 | '@rollup/rollup-linux-riscv64-gnu': 4.9.6
3490 | '@rollup/rollup-linux-x64-gnu': 4.9.6
3491 | '@rollup/rollup-linux-x64-musl': 4.9.6
3492 | '@rollup/rollup-win32-arm64-msvc': 4.9.6
3493 | '@rollup/rollup-win32-ia32-msvc': 4.9.6
3494 | '@rollup/rollup-win32-x64-msvc': 4.9.6
3495 | fsevents: 2.3.3
3496 | dev: true
3497 |
3498 | /rrweb-cssom@0.6.0:
3499 | resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
3500 | dev: true
3501 |
3502 | /run-parallel@1.2.0:
3503 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
3504 | dependencies:
3505 | queue-microtask: 1.2.3
3506 | dev: true
3507 |
3508 | /safer-buffer@2.1.2:
3509 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
3510 | dev: true
3511 |
3512 | /saxes@6.0.0:
3513 | resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
3514 | engines: {node: '>=v12.22.7'}
3515 | dependencies:
3516 | xmlchars: 2.2.0
3517 | dev: true
3518 |
3519 | /semver@6.3.1:
3520 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
3521 | hasBin: true
3522 | dev: true
3523 |
3524 | /semver@7.5.4:
3525 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
3526 | engines: {node: '>=10'}
3527 | hasBin: true
3528 | dependencies:
3529 | lru-cache: 6.0.0
3530 | dev: true
3531 |
3532 | /seroval-plugins@1.0.4(seroval@1.0.4):
3533 | resolution: {integrity: sha512-DQ2IK6oQVvy8k+c2V5x5YCtUa/GGGsUwUBNN9UqohrZ0rWdUapBFpNMYP1bCyRHoxOJjdKGl+dieacFIpU/i1A==}
3534 | engines: {node: '>=10'}
3535 | peerDependencies:
3536 | seroval: ^1.0
3537 | dependencies:
3538 | seroval: 1.0.4
3539 |
3540 | /seroval@1.0.4:
3541 | resolution: {integrity: sha512-qQs/N+KfJu83rmszFQaTxcoJoPn6KNUruX4KmnmyD0oZkUoiNvJ1rpdYKDf4YHM05k+HOgCxa3yvf15QbVijGg==}
3542 | engines: {node: '>=10'}
3543 |
3544 | /set-function-length@1.2.0:
3545 | resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==}
3546 | engines: {node: '>= 0.4'}
3547 | dependencies:
3548 | define-data-property: 1.1.1
3549 | function-bind: 1.1.2
3550 | get-intrinsic: 1.2.2
3551 | gopd: 1.0.1
3552 | has-property-descriptors: 1.0.1
3553 | dev: true
3554 |
3555 | /set-function-name@2.0.1:
3556 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
3557 | engines: {node: '>= 0.4'}
3558 | dependencies:
3559 | define-data-property: 1.1.1
3560 | functions-have-names: 1.2.3
3561 | has-property-descriptors: 1.0.1
3562 | dev: true
3563 |
3564 | /shebang-command@2.0.0:
3565 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
3566 | engines: {node: '>=8'}
3567 | dependencies:
3568 | shebang-regex: 3.0.0
3569 | dev: true
3570 |
3571 | /shebang-regex@3.0.0:
3572 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
3573 | engines: {node: '>=8'}
3574 | dev: true
3575 |
3576 | /side-channel@1.0.4:
3577 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
3578 | dependencies:
3579 | call-bind: 1.0.5
3580 | get-intrinsic: 1.2.2
3581 | object-inspect: 1.13.1
3582 | dev: true
3583 |
3584 | /siginfo@2.0.0:
3585 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
3586 | dev: true
3587 |
3588 | /signal-exit@4.1.0:
3589 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
3590 | engines: {node: '>=14'}
3591 | dev: true
3592 |
3593 | /slash@3.0.0:
3594 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
3595 | engines: {node: '>=8'}
3596 | dev: true
3597 |
3598 | /solid-js@1.8.12:
3599 | resolution: {integrity: sha512-sLE/i6M9FSWlov3a2pTC5ISzanH2aKwqXTZj+bbFt4SUrVb4iGEa7fpILBMOxsQjkv3eXqEk6JVLlogOdTe0UQ==}
3600 | dependencies:
3601 | csstype: 3.1.3
3602 | seroval: 1.0.4
3603 | seroval-plugins: 1.0.4(seroval@1.0.4)
3604 |
3605 | /solid-refresh@0.6.3(solid-js@1.8.12):
3606 | resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==}
3607 | peerDependencies:
3608 | solid-js: ^1.3
3609 | dependencies:
3610 | '@babel/generator': 7.23.6
3611 | '@babel/helper-module-imports': 7.22.15
3612 | '@babel/types': 7.23.9
3613 | solid-js: 1.8.12
3614 | dev: true
3615 |
3616 | /source-map-js@1.0.2:
3617 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
3618 | engines: {node: '>=0.10.0'}
3619 | dev: true
3620 |
3621 | /source-map@0.8.0-beta.0:
3622 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
3623 | engines: {node: '>= 8'}
3624 | dependencies:
3625 | whatwg-url: 7.1.0
3626 | dev: true
3627 |
3628 | /stackback@0.0.2:
3629 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
3630 | dev: true
3631 |
3632 | /std-env@3.7.0:
3633 | resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
3634 | dev: true
3635 |
3636 | /stop-iteration-iterator@1.0.0:
3637 | resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
3638 | engines: {node: '>= 0.4'}
3639 | dependencies:
3640 | internal-slot: 1.0.6
3641 | dev: true
3642 |
3643 | /string-width@4.2.3:
3644 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
3645 | engines: {node: '>=8'}
3646 | dependencies:
3647 | emoji-regex: 8.0.0
3648 | is-fullwidth-code-point: 3.0.0
3649 | strip-ansi: 6.0.1
3650 | dev: true
3651 |
3652 | /string-width@5.1.2:
3653 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
3654 | engines: {node: '>=12'}
3655 | dependencies:
3656 | eastasianwidth: 0.2.0
3657 | emoji-regex: 9.2.2
3658 | strip-ansi: 7.1.0
3659 | dev: true
3660 |
3661 | /strip-ansi@6.0.1:
3662 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
3663 | engines: {node: '>=8'}
3664 | dependencies:
3665 | ansi-regex: 5.0.1
3666 | dev: true
3667 |
3668 | /strip-ansi@7.1.0:
3669 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
3670 | engines: {node: '>=12'}
3671 | dependencies:
3672 | ansi-regex: 6.1.0
3673 | dev: true
3674 |
3675 | /strip-final-newline@3.0.0:
3676 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
3677 | engines: {node: '>=12'}
3678 | dev: true
3679 |
3680 | /strip-indent@3.0.0:
3681 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
3682 | engines: {node: '>=8'}
3683 | dependencies:
3684 | min-indent: 1.0.1
3685 | dev: true
3686 |
3687 | /strip-json-comments@3.1.1:
3688 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
3689 | engines: {node: '>=8'}
3690 | dev: true
3691 |
3692 | /strip-literal@1.3.0:
3693 | resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
3694 | dependencies:
3695 | acorn: 8.11.3
3696 | dev: true
3697 |
3698 | /style-to-object@0.3.0:
3699 | resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==}
3700 | dependencies:
3701 | inline-style-parser: 0.1.1
3702 | dev: true
3703 |
3704 | /sucrase@3.35.0:
3705 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
3706 | engines: {node: '>=16 || 14 >=14.17'}
3707 | hasBin: true
3708 | dependencies:
3709 | '@jridgewell/gen-mapping': 0.3.3
3710 | commander: 4.1.1
3711 | glob: 10.4.5
3712 | lines-and-columns: 1.2.4
3713 | mz: 2.7.0
3714 | pirates: 4.0.6
3715 | ts-interface-checker: 0.1.13
3716 | dev: true
3717 |
3718 | /supports-color@5.5.0:
3719 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
3720 | engines: {node: '>=4'}
3721 | dependencies:
3722 | has-flag: 3.0.0
3723 | dev: true
3724 |
3725 | /supports-color@7.2.0:
3726 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
3727 | engines: {node: '>=8'}
3728 | dependencies:
3729 | has-flag: 4.0.0
3730 | dev: true
3731 |
3732 | /symbol-tree@3.2.4:
3733 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
3734 | dev: true
3735 |
3736 | /synckit@0.8.8:
3737 | resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==}
3738 | engines: {node: ^14.18.0 || >=16.0.0}
3739 | dependencies:
3740 | '@pkgr/core': 0.1.1
3741 | tslib: 2.6.2
3742 | dev: true
3743 |
3744 | /text-table@0.2.0:
3745 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
3746 | dev: true
3747 |
3748 | /thenify-all@1.6.0:
3749 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
3750 | engines: {node: '>=0.8'}
3751 | dependencies:
3752 | thenify: 3.3.1
3753 | dev: true
3754 |
3755 | /thenify@3.3.1:
3756 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
3757 | dependencies:
3758 | any-promise: 1.3.0
3759 | dev: true
3760 |
3761 | /tinybench@2.6.0:
3762 | resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==}
3763 | dev: true
3764 |
3765 | /tinyexec@0.3.1:
3766 | resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==}
3767 | dev: true
3768 |
3769 | /tinyglobby@0.2.10:
3770 | resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
3771 | engines: {node: '>=12.0.0'}
3772 | dependencies:
3773 | fdir: 6.4.2(picomatch@4.0.2)
3774 | picomatch: 4.0.2
3775 | dev: true
3776 |
3777 | /tinypool@0.8.2:
3778 | resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==}
3779 | engines: {node: '>=14.0.0'}
3780 | dev: true
3781 |
3782 | /tinyspy@2.2.0:
3783 | resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==}
3784 | engines: {node: '>=14.0.0'}
3785 | dev: true
3786 |
3787 | /to-fast-properties@2.0.0:
3788 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
3789 | engines: {node: '>=4'}
3790 | dev: true
3791 |
3792 | /to-regex-range@5.0.1:
3793 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
3794 | engines: {node: '>=8.0'}
3795 | dependencies:
3796 | is-number: 7.0.0
3797 | dev: true
3798 |
3799 | /tough-cookie@4.1.3:
3800 | resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
3801 | engines: {node: '>=6'}
3802 | dependencies:
3803 | psl: 1.9.0
3804 | punycode: 2.3.1
3805 | universalify: 0.2.0
3806 | url-parse: 1.5.10
3807 | dev: true
3808 |
3809 | /tr46@1.0.1:
3810 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
3811 | dependencies:
3812 | punycode: 2.3.1
3813 | dev: true
3814 |
3815 | /tr46@5.0.0:
3816 | resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
3817 | engines: {node: '>=18'}
3818 | dependencies:
3819 | punycode: 2.3.1
3820 | dev: true
3821 |
3822 | /tree-kill@1.2.2:
3823 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
3824 | hasBin: true
3825 | dev: true
3826 |
3827 | /ts-api-utils@1.0.3(typescript@5.3.3):
3828 | resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
3829 | engines: {node: '>=16.13.0'}
3830 | peerDependencies:
3831 | typescript: '>=4.2.0'
3832 | dependencies:
3833 | typescript: 5.3.3
3834 | dev: true
3835 |
3836 | /ts-interface-checker@0.1.13:
3837 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
3838 | dev: true
3839 |
3840 | /tsconfck@3.0.1(typescript@5.3.3):
3841 | resolution: {integrity: sha512-7ppiBlF3UEddCLeI1JRx5m2Ryq+xk4JrZuq4EuYXykipebaq1dV0Fhgr1hb7CkmHt32QSgOZlcqVLEtHBG4/mg==}
3842 | engines: {node: ^18 || >=20}
3843 | hasBin: true
3844 | peerDependencies:
3845 | typescript: ^5.0.0
3846 | peerDependenciesMeta:
3847 | typescript:
3848 | optional: true
3849 | dependencies:
3850 | typescript: 5.3.3
3851 | dev: true
3852 |
3853 | /tslib@2.6.2:
3854 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
3855 | dev: true
3856 |
3857 | /tsup@8.3.5(typescript@5.3.3):
3858 | resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==}
3859 | engines: {node: '>=18'}
3860 | hasBin: true
3861 | peerDependencies:
3862 | '@microsoft/api-extractor': ^7.36.0
3863 | '@swc/core': ^1
3864 | postcss: ^8.4.12
3865 | typescript: '>=4.5.0'
3866 | peerDependenciesMeta:
3867 | '@microsoft/api-extractor':
3868 | optional: true
3869 | '@swc/core':
3870 | optional: true
3871 | postcss:
3872 | optional: true
3873 | typescript:
3874 | optional: true
3875 | dependencies:
3876 | bundle-require: 5.0.0(esbuild@0.24.0)
3877 | cac: 6.7.14
3878 | chokidar: 4.0.1
3879 | consola: 3.2.3
3880 | debug: 4.4.0
3881 | esbuild: 0.24.0
3882 | joycon: 3.1.1
3883 | picocolors: 1.1.1
3884 | postcss-load-config: 6.0.1
3885 | resolve-from: 5.0.0
3886 | rollup: 4.28.1
3887 | source-map: 0.8.0-beta.0
3888 | sucrase: 3.35.0
3889 | tinyexec: 0.3.1
3890 | tinyglobby: 0.2.10
3891 | tree-kill: 1.2.2
3892 | typescript: 5.3.3
3893 | transitivePeerDependencies:
3894 | - jiti
3895 | - supports-color
3896 | - tsx
3897 | - yaml
3898 | dev: true
3899 |
3900 | /type-check@0.4.0:
3901 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
3902 | engines: {node: '>= 0.8.0'}
3903 | dependencies:
3904 | prelude-ls: 1.2.1
3905 | dev: true
3906 |
3907 | /type-detect@4.0.8:
3908 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
3909 | engines: {node: '>=4'}
3910 | dev: true
3911 |
3912 | /type-fest@0.20.2:
3913 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
3914 | engines: {node: '>=10'}
3915 | dev: true
3916 |
3917 | /typescript@5.3.3:
3918 | resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
3919 | engines: {node: '>=14.17'}
3920 | hasBin: true
3921 | dev: true
3922 |
3923 | /ufo@1.3.2:
3924 | resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
3925 | dev: true
3926 |
3927 | /undici-types@5.26.5:
3928 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
3929 | dev: true
3930 |
3931 | /universalify@0.2.0:
3932 | resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
3933 | engines: {node: '>= 4.0.0'}
3934 | dev: true
3935 |
3936 | /update-browserslist-db@1.0.13(browserslist@4.22.3):
3937 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
3938 | hasBin: true
3939 | peerDependencies:
3940 | browserslist: '>= 4.21.0'
3941 | dependencies:
3942 | browserslist: 4.22.3
3943 | escalade: 3.1.1
3944 | picocolors: 1.0.0
3945 | dev: true
3946 |
3947 | /uri-js@4.4.1:
3948 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
3949 | dependencies:
3950 | punycode: 2.3.1
3951 | dev: true
3952 |
3953 | /url-parse@1.5.10:
3954 | resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
3955 | dependencies:
3956 | querystringify: 2.2.0
3957 | requires-port: 1.0.0
3958 | dev: true
3959 |
3960 | /validate-html-nesting@1.2.2:
3961 | resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==}
3962 | dev: true
3963 |
3964 | /vite-node@1.2.2(@types/node@20.11.16):
3965 | resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==}
3966 | engines: {node: ^18.0.0 || >=20.0.0}
3967 | hasBin: true
3968 | dependencies:
3969 | cac: 6.7.14
3970 | debug: 4.3.4
3971 | pathe: 1.1.2
3972 | picocolors: 1.0.0
3973 | vite: 5.0.12(@types/node@20.11.16)
3974 | transitivePeerDependencies:
3975 | - '@types/node'
3976 | - less
3977 | - lightningcss
3978 | - sass
3979 | - stylus
3980 | - sugarss
3981 | - supports-color
3982 | - terser
3983 | dev: true
3984 |
3985 | /vite-plugin-solid@2.9.1(@testing-library/jest-dom@6.3.0)(solid-js@1.8.12)(vite@5.0.12):
3986 | resolution: {integrity: sha512-RC4hj+lbvljw57BbMGDApvEOPEh14lwrr/GeXRLNQLcR1qnOdzOwwTSFy13Gj/6FNIZpBEl0bWPU+VYFawrqUw==}
3987 | peerDependencies:
3988 | '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.*
3989 | solid-js: ^1.7.2
3990 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0
3991 | peerDependenciesMeta:
3992 | '@testing-library/jest-dom':
3993 | optional: true
3994 | dependencies:
3995 | '@babel/core': 7.23.9
3996 | '@testing-library/jest-dom': 6.3.0(vitest@1.2.2)
3997 | '@types/babel__core': 7.20.5
3998 | babel-preset-solid: 1.8.12(@babel/core@7.23.9)
3999 | merge-anything: 5.1.7
4000 | solid-js: 1.8.12
4001 | solid-refresh: 0.6.3(solid-js@1.8.12)
4002 | vite: 5.0.12(@types/node@20.11.16)
4003 | vitefu: 0.2.5(vite@5.0.12)
4004 | transitivePeerDependencies:
4005 | - supports-color
4006 | dev: true
4007 |
4008 | /vite-tsconfig-paths@4.3.1(typescript@5.3.3)(vite@5.0.12):
4009 | resolution: {integrity: sha512-cfgJwcGOsIxXOLU/nELPny2/LUD/lcf1IbfyeKTv2bsupVbTH/xpFtdQlBmIP1GEK2CjjLxYhFfB+QODFAx5aw==}
4010 | peerDependencies:
4011 | vite: '*'
4012 | peerDependenciesMeta:
4013 | vite:
4014 | optional: true
4015 | dependencies:
4016 | debug: 4.3.4
4017 | globrex: 0.1.2
4018 | tsconfck: 3.0.1(typescript@5.3.3)
4019 | vite: 5.0.12(@types/node@20.11.16)
4020 | transitivePeerDependencies:
4021 | - supports-color
4022 | - typescript
4023 | dev: true
4024 |
4025 | /vite@5.0.12(@types/node@20.11.16):
4026 | resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==}
4027 | engines: {node: ^18.0.0 || >=20.0.0}
4028 | hasBin: true
4029 | peerDependencies:
4030 | '@types/node': ^18.0.0 || >=20.0.0
4031 | less: '*'
4032 | lightningcss: ^1.21.0
4033 | sass: '*'
4034 | stylus: '*'
4035 | sugarss: '*'
4036 | terser: ^5.4.0
4037 | peerDependenciesMeta:
4038 | '@types/node':
4039 | optional: true
4040 | less:
4041 | optional: true
4042 | lightningcss:
4043 | optional: true
4044 | sass:
4045 | optional: true
4046 | stylus:
4047 | optional: true
4048 | sugarss:
4049 | optional: true
4050 | terser:
4051 | optional: true
4052 | dependencies:
4053 | '@types/node': 20.11.16
4054 | esbuild: 0.19.12
4055 | postcss: 8.4.33
4056 | rollup: 4.9.6
4057 | optionalDependencies:
4058 | fsevents: 2.3.3
4059 | dev: true
4060 |
4061 | /vitefu@0.2.5(vite@5.0.12):
4062 | resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
4063 | peerDependencies:
4064 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0
4065 | peerDependenciesMeta:
4066 | vite:
4067 | optional: true
4068 | dependencies:
4069 | vite: 5.0.12(@types/node@20.11.16)
4070 | dev: true
4071 |
4072 | /vitest@1.2.2(@types/node@20.11.16)(jsdom@24.0.0):
4073 | resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==}
4074 | engines: {node: ^18.0.0 || >=20.0.0}
4075 | hasBin: true
4076 | peerDependencies:
4077 | '@edge-runtime/vm': '*'
4078 | '@types/node': ^18.0.0 || >=20.0.0
4079 | '@vitest/browser': ^1.0.0
4080 | '@vitest/ui': ^1.0.0
4081 | happy-dom: '*'
4082 | jsdom: '*'
4083 | peerDependenciesMeta:
4084 | '@edge-runtime/vm':
4085 | optional: true
4086 | '@types/node':
4087 | optional: true
4088 | '@vitest/browser':
4089 | optional: true
4090 | '@vitest/ui':
4091 | optional: true
4092 | happy-dom:
4093 | optional: true
4094 | jsdom:
4095 | optional: true
4096 | dependencies:
4097 | '@types/node': 20.11.16
4098 | '@vitest/expect': 1.2.2
4099 | '@vitest/runner': 1.2.2
4100 | '@vitest/snapshot': 1.2.2
4101 | '@vitest/spy': 1.2.2
4102 | '@vitest/utils': 1.2.2
4103 | acorn-walk: 8.3.2
4104 | cac: 6.7.14
4105 | chai: 4.4.1
4106 | debug: 4.3.4
4107 | execa: 8.0.1
4108 | jsdom: 24.0.0
4109 | local-pkg: 0.5.0
4110 | magic-string: 0.30.6
4111 | pathe: 1.1.2
4112 | picocolors: 1.0.0
4113 | std-env: 3.7.0
4114 | strip-literal: 1.3.0
4115 | tinybench: 2.6.0
4116 | tinypool: 0.8.2
4117 | vite: 5.0.12(@types/node@20.11.16)
4118 | vite-node: 1.2.2(@types/node@20.11.16)
4119 | why-is-node-running: 2.2.2
4120 | transitivePeerDependencies:
4121 | - less
4122 | - lightningcss
4123 | - sass
4124 | - stylus
4125 | - sugarss
4126 | - supports-color
4127 | - terser
4128 | dev: true
4129 |
4130 | /w3c-xmlserializer@5.0.0:
4131 | resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
4132 | engines: {node: '>=18'}
4133 | dependencies:
4134 | xml-name-validator: 5.0.0
4135 | dev: true
4136 |
4137 | /webidl-conversions@4.0.2:
4138 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
4139 | dev: true
4140 |
4141 | /webidl-conversions@7.0.0:
4142 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
4143 | engines: {node: '>=12'}
4144 | dev: true
4145 |
4146 | /whatwg-encoding@3.1.1:
4147 | resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
4148 | engines: {node: '>=18'}
4149 | dependencies:
4150 | iconv-lite: 0.6.3
4151 | dev: true
4152 |
4153 | /whatwg-mimetype@4.0.0:
4154 | resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
4155 | engines: {node: '>=18'}
4156 | dev: true
4157 |
4158 | /whatwg-url@14.0.0:
4159 | resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==}
4160 | engines: {node: '>=18'}
4161 | dependencies:
4162 | tr46: 5.0.0
4163 | webidl-conversions: 7.0.0
4164 | dev: true
4165 |
4166 | /whatwg-url@7.1.0:
4167 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
4168 | dependencies:
4169 | lodash.sortby: 4.7.0
4170 | tr46: 1.0.1
4171 | webidl-conversions: 4.0.2
4172 | dev: true
4173 |
4174 | /which-boxed-primitive@1.0.2:
4175 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
4176 | dependencies:
4177 | is-bigint: 1.0.4
4178 | is-boolean-object: 1.1.2
4179 | is-number-object: 1.0.7
4180 | is-string: 1.0.7
4181 | is-symbol: 1.0.4
4182 | dev: true
4183 |
4184 | /which-collection@1.0.1:
4185 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
4186 | dependencies:
4187 | is-map: 2.0.2
4188 | is-set: 2.0.2
4189 | is-weakmap: 2.0.1
4190 | is-weakset: 2.0.2
4191 | dev: true
4192 |
4193 | /which-typed-array@1.1.14:
4194 | resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==}
4195 | engines: {node: '>= 0.4'}
4196 | dependencies:
4197 | available-typed-arrays: 1.0.6
4198 | call-bind: 1.0.5
4199 | for-each: 0.3.3
4200 | gopd: 1.0.1
4201 | has-tostringtag: 1.0.2
4202 | dev: true
4203 |
4204 | /which@2.0.2:
4205 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
4206 | engines: {node: '>= 8'}
4207 | hasBin: true
4208 | dependencies:
4209 | isexe: 2.0.0
4210 | dev: true
4211 |
4212 | /why-is-node-running@2.2.2:
4213 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
4214 | engines: {node: '>=8'}
4215 | hasBin: true
4216 | dependencies:
4217 | siginfo: 2.0.0
4218 | stackback: 0.0.2
4219 | dev: true
4220 |
4221 | /wrap-ansi@7.0.0:
4222 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
4223 | engines: {node: '>=10'}
4224 | dependencies:
4225 | ansi-styles: 4.3.0
4226 | string-width: 4.2.3
4227 | strip-ansi: 6.0.1
4228 | dev: true
4229 |
4230 | /wrap-ansi@8.1.0:
4231 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
4232 | engines: {node: '>=12'}
4233 | dependencies:
4234 | ansi-styles: 6.2.1
4235 | string-width: 5.1.2
4236 | strip-ansi: 7.1.0
4237 | dev: true
4238 |
4239 | /wrappy@1.0.2:
4240 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
4241 | dev: true
4242 |
4243 | /ws@8.16.0:
4244 | resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
4245 | engines: {node: '>=10.0.0'}
4246 | peerDependencies:
4247 | bufferutil: ^4.0.1
4248 | utf-8-validate: '>=5.0.2'
4249 | peerDependenciesMeta:
4250 | bufferutil:
4251 | optional: true
4252 | utf-8-validate:
4253 | optional: true
4254 | dev: true
4255 |
4256 | /xml-name-validator@5.0.0:
4257 | resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
4258 | engines: {node: '>=18'}
4259 | dev: true
4260 |
4261 | /xmlchars@2.2.0:
4262 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
4263 | dev: true
4264 |
4265 | /yallist@3.1.1:
4266 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
4267 | dev: true
4268 |
4269 | /yallist@4.0.0:
4270 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
4271 | dev: true
4272 |
4273 | /yocto-queue@0.1.0:
4274 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
4275 | engines: {node: '>=10'}
4276 | dev: true
4277 |
4278 | /yocto-queue@1.0.0:
4279 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
4280 | engines: {node: '>=12.20'}
4281 | dev: true
4282 |
--------------------------------------------------------------------------------
/src/cache.ts:
--------------------------------------------------------------------------------
1 | import { LRU } from "./lru";
2 | import { StoreCache } from "./store";
3 |
4 | export { LRU };
5 |
6 | export const createCache = (lru: LRU): StoreCache => ({
7 | lookup: key => !!lru.get(key),
8 | insert: (key, onTrim) => lru.set(key, true, onTrim),
9 | });
10 |
--------------------------------------------------------------------------------
/src/core.test.tsx:
--------------------------------------------------------------------------------
1 | import { renderHook } from "@solidjs/testing-library";
2 | import { runWithOwner } from "solid-js";
3 | import { afterEach, beforeEach, describe, expect, it, MockedFunction, vi } from "vitest";
4 |
5 | import { createMutator, createRevalidator, SwrOpts, SwrProvider } from "./core";
6 | import { Store } from "./store";
7 |
8 | describe("core", () => {
9 | let fetcher: MockedFunction;
10 | let store: SwrOpts["store"];
11 | let key: string;
12 |
13 | const renderHelper = () =>
14 | renderHook(
15 | () => ({
16 | revalidator: createRevalidator(),
17 | mutator: createMutator(),
18 | }),
19 | {
20 | wrapper: props => (
21 | {props.children}
22 | ),
23 | }
24 | );
25 |
26 | beforeEach(() => {
27 | key = "foo";
28 |
29 | store = new Store();
30 | store.mount(key);
31 |
32 | fetcher = vi.fn((key, _opts) => Promise.resolve(key));
33 | vi.useFakeTimers();
34 | });
35 | afterEach(() => {
36 | vi.useRealTimers();
37 | });
38 |
39 | describe("createRevalidator", () => {
40 | it("calls fetcher and updates store", async () => {
41 | const { result } = renderHelper();
42 |
43 | void result.revalidator(key);
44 |
45 | expect(fetcher).toHaveBeenCalledTimes(1);
46 | expect(fetcher).toHaveBeenCalledWith(
47 | key,
48 | // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
49 | expect.objectContaining({ signal: expect.anything() })
50 | );
51 |
52 | expect(store.lookupOrDef(key)._isBusy).toBe(true);
53 | expect(store.lookupOrDef(key).isLoading).toBe(true);
54 | expect(store.lookupOrDef(key)._onSuccess).toBe(0);
55 | expect(store.lookupOrDef(key).err).toBeUndefined();
56 |
57 | await vi.runAllTimersAsync();
58 |
59 | expect(store.lookupOrDef(key)._isBusy).toBe(false);
60 | expect(store.lookupOrDef(key).isLoading).toBe(false);
61 | expect(store.lookupOrDef(key).data).toBe(key);
62 | expect(store.lookupOrDef(key)._onSuccess).toBe(1);
63 | expect(store.lookupOrDef(key).err).toBeUndefined();
64 | });
65 |
66 | it("null response from api", async () => {
67 | fetcher = vi.fn(() => Promise.resolve(null));
68 | store.update("foo", { data: "foo" });
69 |
70 | const { result } = renderHelper();
71 |
72 | void result.revalidator("foo");
73 |
74 | await vi.runAllTimersAsync();
75 |
76 | expect(store.lookupOrDef("foo").data).toBeNull();
77 | });
78 |
79 | it("deduplicates calls to fetcher", () => {
80 | const { result } = renderHelper();
81 |
82 | void result.revalidator(key);
83 | void result.revalidator(key);
84 | void result.revalidator(key);
85 |
86 | expect(fetcher).toHaveBeenCalledTimes(1);
87 | });
88 |
89 | it("aborts the previous call to fetcher", () => {
90 | const { owner, result, cleanup } = renderHelper();
91 |
92 | runWithOwner(owner, () => {
93 | void result.revalidator(key);
94 | });
95 |
96 | expect(store.lookupOrDef(key)._isBusy).toBe(true);
97 | cleanup();
98 | expect(store.lookupOrDef(key)._isBusy).toBe(false);
99 | });
100 |
101 | it("catches fetcher errors", async () => {
102 | fetcher.mockRejectedValue(new Error("error"));
103 |
104 | const { result } = renderHelper();
105 |
106 | void result.revalidator(key);
107 |
108 | expect(store.lookupOrDef(key)._onError).toBe(0);
109 | expect(store.lookupOrDef(key).err).toBeUndefined();
110 |
111 | await vi.runAllTimersAsync();
112 |
113 | expect(store.lookupOrDef(key).err).toBeInstanceOf(Error);
114 | expect(store.lookupOrDef(key)._onError).toBe(1);
115 | });
116 | });
117 |
118 | describe("createMutator", () => {
119 | it("mutates, xd", () => {
120 | const { result } = renderHelper();
121 |
122 | expect(store.lookupOrDef(key).data).toBeUndefined();
123 | result.mutator(key, key);
124 | expect(store.lookupOrDef(key).data).toBe(key);
125 | });
126 | });
127 | });
128 |
--------------------------------------------------------------------------------
/src/core.ts:
--------------------------------------------------------------------------------
1 | import {
2 | Accessor,
3 | batch,
4 | createComponent,
5 | createContext,
6 | createEffect,
7 | getOwner,
8 | JSX,
9 | mergeProps,
10 | on,
11 | onCleanup,
12 | untrack,
13 | useContext,
14 | } from "solid-js";
15 |
16 | import { Store } from "./store";
17 | import { noop, runIfTruthy, tryCatch } from "./utils";
18 |
19 | export type FetcherOpts = {
20 | signal: AbortSignal;
21 | };
22 |
23 | export type SwrOpts = {
24 | store: Store;
25 |
26 | fetcher: (key: string, { signal }: FetcherOpts) => Promise;
27 | /** gets direct store references (don't mutate) */
28 | onSuccess: (key: string, res: D) => void;
29 | /** gets direct store references (don't mutate) */
30 | onError: (key: string, err: E) => void;
31 |
32 | /** gets direct references to response (don't mutate) */
33 | onSuccessDeduped: (key: string, res: D) => void;
34 | /** gets direct reference to response (don't mutate) */
35 | onErrorDeduped: (key: string, err: E) => void;
36 | };
37 |
38 | /**
39 | * data will be reconcile'd or produce'd,
40 | * if `undefined` is passed, data is deleted
41 | * */
42 | export type Mutator = D | ((draft: D | undefined) => void) | undefined;
43 |
44 | const Context = createContext({
45 | store: new Store(),
46 | fetcher: () => Promise.reject(new Error("pass your own fetcher")),
47 | onSuccess: noop,
48 | onError: noop,
49 | onSuccessDeduped: noop,
50 | onErrorDeduped: noop,
51 | });
52 |
53 | export const useSwrContext = () => useContext(Context);
54 |
55 | export const SwrProvider = (props: { value: Partial; children: JSX.Element }) => {
56 | // eslint-disable-next-line solid/reactivity
57 | const value = mergeProps(useSwrContext(), props.value);
58 |
59 | return createComponent(Context.Provider, {
60 | value,
61 | get children() {
62 | return props.children;
63 | },
64 | });
65 | };
66 |
67 | export function createRevalidator(opts?: SwrOpts) {
68 | const ctx = opts || useSwrContext();
69 |
70 | return (key: string) =>
71 | // eslint-disable-next-line solid/reactivity
72 | untrack(async () => {
73 | const item = ctx.store.lookupOrDef(key);
74 | if (item._isBusy) return;
75 |
76 | const controller = new AbortController();
77 | if (getOwner()) {
78 | onCleanup(() => {
79 | ctx.store.update(key, { _isBusy: false });
80 | controller.abort();
81 | });
82 | }
83 |
84 | ctx.store.update(key, {
85 | err: undefined,
86 | _isBusy: true,
87 | isLoading: true,
88 | });
89 |
90 | const [err, res] = await tryCatch(
91 | // eslint-disable-next-line solid/reactivity
92 | () => ctx.fetcher(key, { signal: controller.signal }) as Promise
93 | );
94 |
95 | if (
96 | controller.signal.aborted &&
97 | err instanceof DOMException &&
98 | err.name === "AbortError"
99 | ) {
100 | return;
101 | }
102 |
103 | batch(() => {
104 | ctx.store.update(key, { _isBusy: false, isLoading: false });
105 |
106 | const item = ctx.store.lookupOrDef(key);
107 |
108 | if (err) {
109 | ctx.store.update(key, { err, _onError: item._onError + 1 });
110 | ctx.onErrorDeduped(key, err);
111 | } else {
112 | ctx.store.update(key, {
113 | data: res,
114 | _onSuccess: item._onSuccess + 1,
115 | });
116 | ctx.onSuccessDeduped(key, res as D);
117 | }
118 | });
119 |
120 | return res as D;
121 | });
122 | }
123 |
124 | export function createMutator(opts?: SwrOpts) {
125 | const ctx = opts || useSwrContext();
126 |
127 | return (key: string, mutator: Mutator) =>
128 | untrack(() => {
129 | if (mutator instanceof Function) {
130 | ctx.store.updateDataProduce(key, mutator);
131 | } else {
132 | ctx.store.update(key, { data: mutator });
133 | }
134 | });
135 | }
136 |
137 | export function useSwr(
138 | key: Accessor,
139 | local?: Partial>
140 | ) {
141 | const ctx = mergeProps(useSwrContext(), local);
142 |
143 | const runWithKey = any>(fn: T): ReturnType | undefined =>
144 | runIfTruthy(key, fn);
145 |
146 | const revalidator = createRevalidator(ctx as SwrOpts);
147 | const mutator = createMutator(ctx as SwrOpts);
148 |
149 | const revalidate = () => runWithKey(k => revalidator(k));
150 | const mutate = (payload: Mutator) => runWithKey(k => mutator(k, payload));
151 |
152 | createEffect(
153 | on(key, k => {
154 | if (!k) return;
155 | // rn only used in `useMatchRevalidate`
156 | // to reduce network requests for not used items
157 | ctx.store.mount(k);
158 | onCleanup(() => ctx.store.unmount(k));
159 |
160 | void revalidator(k);
161 | })
162 | );
163 |
164 | createEffect(
165 | on(
166 | () => ctx.store.lookupOrDef(key())._onSuccess,
167 | count => {
168 | if (count === 0) return;
169 | // eslint-disable-next-line solid/reactivity
170 | runWithKey(k => {
171 | ctx.onSuccess(k, ctx.store.lookupOrDef(k).data as D);
172 | });
173 | }
174 | )
175 | );
176 | createEffect(
177 | on(
178 | () => ctx.store.lookupOrDef(key())._onError,
179 | count => {
180 | if (count === 0) return;
181 | // eslint-disable-next-line solid/reactivity
182 | runWithKey(k => {
183 | ctx.onError(k, ctx.store.lookupOrDef(k).err as E);
184 | });
185 | }
186 | )
187 | );
188 |
189 | return {
190 | mutate,
191 | revalidate,
192 | v: () => ctx.store.lookupOrDef(key()),
193 | };
194 | }
195 |
--------------------------------------------------------------------------------
/src/extra.test.tsx:
--------------------------------------------------------------------------------
1 | import { renderHook } from "@solidjs/testing-library";
2 | import { Accessor, createSignal } from "solid-js";
3 | import { afterEach, beforeEach, describe, expect, it, MockedFunction, vi } from "vitest";
4 |
5 | import { SwrOpts, SwrProvider } from "./core";
6 | import { SwrFullOpts, useSwrFull } from "./extra";
7 | import { Store } from "./store";
8 |
9 | describe("extra", () => {
10 | let key: Accessor;
11 | let opts: Partial;
12 | let fetcher: MockedFunction;
13 | let store: SwrOpts["store"];
14 |
15 | beforeEach(() => {
16 | opts = {};
17 | key = () => "foo";
18 | store = new Store();
19 | fetcher = vi.fn((key, _opts) => Promise.resolve(key));
20 | vi.useFakeTimers();
21 | });
22 | afterEach(() => {
23 | vi.useRealTimers();
24 | });
25 |
26 | describe("useSwrFull", () => {
27 | const renderHelper = () =>
28 | renderHook(() => useSwrFull(key, opts), {
29 | wrapper: props => (
30 | {props.children}
31 | ),
32 | });
33 |
34 | it("calls fetcher and updates store", async () => {
35 | const { result } = renderHelper();
36 |
37 | expect(fetcher).toHaveBeenCalledTimes(1);
38 | expect(fetcher).toHaveBeenCalledWith(
39 | "foo",
40 | // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
41 | expect.objectContaining({ signal: expect.anything() })
42 | );
43 |
44 | expect(result.v()._isBusy).toBe(true);
45 | expect(result.v().isLoading).toBe(true);
46 | expect(result.v()._onSuccess).toBe(0);
47 | expect(result.v().err).toBeUndefined();
48 |
49 | await vi.runAllTimersAsync();
50 |
51 | expect(result.v()._isBusy).toBe(false);
52 | expect(result.v().isLoading).toBe(false);
53 | expect(result.v().data).toBe("foo");
54 | expect(result.v()._onSuccess).toBe(1);
55 | expect(result.v().err).toBeUndefined();
56 | });
57 |
58 | it("keeps previous data", async () => {
59 | opts.keepPreviousData = true;
60 |
61 | const [signal, setSignal] = createSignal("foo");
62 | key = signal;
63 |
64 | const { result } = renderHelper();
65 | await vi.runAllTimersAsync();
66 |
67 | expect(result.v().data).toBe("foo");
68 | expect(result.v().isLoading).toBe(false);
69 |
70 | setSignal("foobar");
71 | expect(result.v().data).toBe("foo");
72 | expect(result.v().isLoading).toBe(true);
73 |
74 | await vi.runAllTimersAsync();
75 | expect(result.v().data).toBe("foobar");
76 | expect(result.v().isLoading).toBe(false);
77 | });
78 |
79 | it("sets hasFetched on success", async () => {
80 | const { result } = renderHelper();
81 |
82 | expect(result.hasFetched()).toBe(false);
83 | await vi.runAllTimersAsync();
84 | expect(result.hasFetched()).toBe(true);
85 | });
86 |
87 | it("sets hasFetched on error", async () => {
88 | // @ts-expect-error I'm not typing this
89 | fetcher = () => Promise.reject(new Error("foo")) as any;
90 |
91 | const { result } = renderHelper();
92 |
93 | expect(result.hasFetched()).toBe(false);
94 | await vi.runAllTimersAsync();
95 | expect(result.hasFetched()).toBe(true);
96 | });
97 | });
98 | });
99 |
--------------------------------------------------------------------------------
/src/extra.ts:
--------------------------------------------------------------------------------
1 | import {
2 | Accessor,
3 | batch,
4 | createComponent,
5 | createContext,
6 | createEffect,
7 | createMemo,
8 | createSignal,
9 | JSX,
10 | mergeProps,
11 | on,
12 | onCleanup,
13 | untrack,
14 | useContext,
15 | } from "solid-js";
16 |
17 | import {
18 | createMutator,
19 | createRevalidator,
20 | Mutator,
21 | SwrOpts,
22 | useSwr,
23 | useSwrContext,
24 | } from "./core";
25 | import { StoreItem } from "./store";
26 | import { uFn, useWinEvent } from "./utils";
27 |
28 | export type Fallback = {
29 | [key: string]: unknown;
30 | };
31 |
32 | export type SwrFullOpts = {
33 | keepPreviousData: boolean;
34 | revalidateOnFocus: boolean;
35 | revalidateOnOnline: boolean;
36 | fallback: Fallback;
37 | refreshInterval: number;
38 | };
39 |
40 | const Context = createContext({
41 | keepPreviousData: false,
42 | revalidateOnFocus: true,
43 | revalidateOnOnline: true,
44 | fallback: {},
45 | refreshInterval: 0,
46 | });
47 |
48 | export const useSwrFullContext = () => useContext(Context);
49 |
50 | export const SwrFullProvider = (props: {
51 | children: JSX.Element;
52 | value: Partial;
53 | }) => {
54 | // eslint-disable-next-line solid/reactivity
55 | const value = mergeProps(useSwrFullContext(), props.value);
56 |
57 | return createComponent(Context.Provider, {
58 | value,
59 | get children() {
60 | return props.children;
61 | },
62 | });
63 | };
64 |
65 | export type GetKey = (index: number, prev: D | undefined) => string | undefined;
66 |
67 | export function useMatchRevalidate(opts?: SwrOpts) {
68 | const ctx = opts || useSwrContext();
69 | const revalidator = createRevalidator(ctx);
70 |
71 | const revalidate = (filter: (key: string) => boolean) => {
72 | batch(() => {
73 | const keys = ctx.store
74 | .keys()
75 | .filter(filter)
76 | // reduce unnecessary network requests
77 | .filter(x => ctx.store.lookupOrDef(x)._mountedCount > 0);
78 |
79 | for (const key of keys) {
80 | void revalidator(key);
81 | }
82 | });
83 | };
84 |
85 | return uFn(revalidate);
86 | }
87 |
88 | export function useMatchMutate(opts?: SwrOpts) {
89 | const ctx = opts || useSwrContext();
90 | const mutator = createMutator(ctx);
91 |
92 | const mutate = (filter: (key: string) => boolean, payload: Mutator) => {
93 | batch(() => {
94 | const keys = ctx.store.keys().filter(filter);
95 |
96 | for (const key of keys) {
97 | mutator(key, payload);
98 | }
99 | });
100 | };
101 |
102 | return uFn(mutate);
103 | }
104 |
105 | export function useSwrInfinite(getKey: GetKey, local?: Partial>) {
106 | const [data, setData] = createSignal>[]>([]);
107 | const [err, setErr] = createSignal();
108 | const [isLoading, setIsLoading] = createSignal(false);
109 |
110 | const [index, setIndex] = createSignal(0);
111 |
112 | const ctx = mergeProps(useSwrContext(), local);
113 |
114 | createEffect(
115 | on(index, index => {
116 | const key = getKey(index, data().at(-1)?.().data);
117 | if (!key) return;
118 |
119 | setIsLoading(true);
120 | setErr(undefined);
121 |
122 | useSwr(() => key, {
123 | ...local,
124 | onSuccess: () => {
125 | setIsLoading(false);
126 | setData(prev => {
127 | prev = [...prev];
128 | // eslint-disable-next-line solid/reactivity
129 | prev[index] = () => ctx.store.lookupOrDef(key);
130 | return prev;
131 | });
132 | },
133 | onError: (_, err) => {
134 | setIsLoading(false);
135 | setErr(() => err);
136 | },
137 | });
138 | })
139 | );
140 |
141 | return {
142 | index,
143 | setIndex,
144 | isLoading,
145 | data,
146 | err,
147 | };
148 | }
149 |
150 | export function useSwrFull(
151 | key: Accessor,
152 | _opts?: Partial>
153 | ) {
154 | const ctx = mergeProps(useSwrContext(), useSwrFullContext(), _opts);
155 |
156 | const [lazyKey, setLazyKey] = createSignal("");
157 |
158 | const core = useSwr(key, ctx);
159 |
160 | const [hasFetched, setHasFetched] = createSignal(false);
161 | // untrack is probably not needed here
162 | setHasFetched(untrack(() => !!core.v().data));
163 |
164 | createEffect(() => {
165 | if (ctx.refreshInterval <= 0) return;
166 | const interval = setInterval(core.revalidate, ctx.refreshInterval);
167 | onCleanup(() => clearInterval(interval));
168 | });
169 |
170 | createEffect(() => {
171 | if (!ctx.revalidateOnFocus) return;
172 | useWinEvent("focus", core.revalidate);
173 | });
174 |
175 | createEffect(() => {
176 | if (!ctx.revalidateOnOnline) return;
177 | useWinEvent("online", core.revalidate);
178 | });
179 |
180 | createEffect(() => {
181 | if (core.v().data || core.v().err) setHasFetched(true);
182 | });
183 |
184 | createEffect(() => {
185 | const k = key();
186 | if (ctx.keepPreviousData && core.v().data && k) setLazyKey(k);
187 | });
188 |
189 | const v = createMemo((): StoreItem => {
190 | const item = ctx.store.lookupOrDef(key());
191 |
192 | const lazy = ctx.store.lookupOrDef(lazyKey());
193 | const keepPrev = ctx.keepPreviousData;
194 |
195 | // untrack here to not track all item properties when v is accessed
196 | return untrack(() => {
197 | let data = item.data;
198 | if (keepPrev && lazy.data) data = lazy.data;
199 |
200 | const fallback = key() ? ctx.fallback[key()!] : undefined;
201 | // eslint-disable-next-line solid/reactivity
202 | return mergeProps(item, { data: data || fallback }) as StoreItem;
203 | });
204 | });
205 |
206 | return {
207 | ...core,
208 | hasFetched,
209 | v,
210 | };
211 | }
212 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./core";
2 | export * from "./store";
3 |
--------------------------------------------------------------------------------
/src/lru.test.ts:
--------------------------------------------------------------------------------
1 | import { describe, expect, it } from "vitest";
2 |
3 | import { LRU } from "./lru";
4 |
5 | describe("lru", () => {
6 | // thanks to:
7 | // https://github.com/ThePrimeagen/kata-machine/blob/master/src/__tests__/LRU.ts
8 | it("LRU", () => {
9 | const lru = new LRU(3);
10 |
11 | expect(lru.get("foo")).toEqual(undefined);
12 | lru.set("foo", 69);
13 | expect(lru.get("foo")).toEqual(69);
14 |
15 | lru.set("bar", 420);
16 | expect(lru.get("bar")).toEqual(420);
17 |
18 | lru.set("baz", 1337);
19 | expect(lru.get("baz")).toEqual(1337);
20 |
21 | lru.set("ball", 69420);
22 | expect(lru.get("ball")).toEqual(69420);
23 | expect(lru.get("foo")).toEqual(undefined);
24 | expect(lru.get("bar")).toEqual(420);
25 | lru.set("foo", 69);
26 | expect(lru.get("bar")).toEqual(420);
27 | expect(lru.get("foo")).toEqual(69);
28 |
29 | // shouldn't of been deleted, but since bar was get'd, bar was added to the
30 | // front of the list, so baz became the end
31 | expect(lru.get("baz")).toEqual(undefined);
32 | });
33 | });
34 |
--------------------------------------------------------------------------------
/src/lru.ts:
--------------------------------------------------------------------------------
1 | type Node = {
2 | value: V;
3 | next?: Node;
4 | prev?: Node;
5 | };
6 |
7 | type OnTrim = (key: K) => void;
8 |
9 | export class LRU {
10 | private lookup: Map>;
11 | private reverseLookup: Map, K>;
12 | private capacity: number;
13 | private length: number;
14 | private head?: Node;
15 | private tail?: Node;
16 |
17 | constructor(capacity = 500) {
18 | this.capacity = capacity;
19 |
20 | this.lookup = new Map();
21 | this.reverseLookup = new Map();
22 |
23 | this.length = 0;
24 | this.head = undefined;
25 | this.tail = undefined;
26 | }
27 |
28 | /** if the value is an object this returns a direct reference */
29 | get(key: K): V | undefined {
30 | const node = this.lookup.get(key);
31 | if (!node) return undefined;
32 |
33 | this.detach(node);
34 | this.prepend(node);
35 |
36 | return node.value;
37 | }
38 |
39 | set(key: K, value: V, onTrim?: OnTrim): void {
40 | let node = this.lookup.get(key);
41 | if (!node) {
42 | node = { value };
43 | this.length++;
44 |
45 | this.prepend(node);
46 | this.trimCache(onTrim);
47 |
48 | this.lookup.set(key, node);
49 | this.reverseLookup.set(node, key);
50 | } else {
51 | this.detach(node);
52 | this.prepend(node);
53 | node.value = value;
54 | }
55 | }
56 |
57 | keys(): K[] {
58 | return Array.from(this.lookup.keys());
59 | }
60 |
61 | private trimCache(onTrim?: OnTrim): void {
62 | if (this.length <= this.capacity) return;
63 |
64 | const tail = this.tail as Node;
65 | this.detach(tail);
66 |
67 | const key = this.reverseLookup.get(tail) as K;
68 | this.lookup.delete(key);
69 | this.reverseLookup.delete(tail);
70 |
71 | onTrim?.(key);
72 | }
73 |
74 | private detach(node: Node): void {
75 | if (node.prev) {
76 | node.prev.next = node.next;
77 | }
78 | if (node.next) {
79 | node.next.prev = node.prev;
80 | }
81 |
82 | if (this.head === node) {
83 | this.head = this.head.next;
84 | }
85 |
86 | if (this.tail === node) {
87 | this.tail = this.tail.prev;
88 | }
89 |
90 | node.next = undefined;
91 | node.prev = undefined;
92 | }
93 |
94 | private prepend(node: Node): void {
95 | if (!this.head) {
96 | this.head = node;
97 | this.tail = node;
98 | return;
99 | }
100 |
101 | node.next = this.head;
102 | this.head.prev = node;
103 | this.head = node;
104 | }
105 | }
106 |
--------------------------------------------------------------------------------
/src/store.test.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2 |
3 | import { beforeEach, describe, expect, it } from "vitest";
4 |
5 | import { Store, StoreCache } from "./store";
6 | import { noop } from "./utils";
7 |
8 | describe("store", () => {
9 | const key = "foobar";
10 | let store: Store;
11 | let cache: StoreCache;
12 |
13 | beforeEach(() => {
14 | cache = {
15 | lookup: noop,
16 | insert: noop,
17 | };
18 | store = new Store(cache);
19 | });
20 |
21 | it("inserts items into solid store", () => {
22 | store.update(key, {
23 | isLoading: true,
24 | _isBusy: true,
25 | });
26 |
27 | expect(store.lookupOrDef(key)).toEqual({
28 | ...Store.defaultItem,
29 | _exists: true,
30 | isLoading: true,
31 | _isBusy: true,
32 | });
33 | });
34 |
35 | it("cache can delete items at will", () => {
36 | const key2 = "foobar222";
37 |
38 | cache.insert = (_key, onTrim) => {
39 | // delete key
40 | if (_key === key2) onTrim(key);
41 | };
42 |
43 | store.update(key, {});
44 | store.update(key2, {});
45 |
46 | expect(store.lookupOrDef(key)._exists).toBe(false);
47 | expect(store.lookupOrDef(key2)._exists).toBe(true);
48 | });
49 |
50 | it("returns default item when key does not exist", () => {
51 | expect(store.lookupOrDef(key)).toEqual(Store.defaultItem);
52 | });
53 |
54 | it("keys() returns correct keys", () => {
55 | cache.insert = (_key, onTrim) => {
56 | if (_key === "3") onTrim("1");
57 | };
58 |
59 | store.update("1", {});
60 | store.update("2", {});
61 | store.update("3", {});
62 |
63 | expect(store.keys()).toEqual(["2", "3"]);
64 | });
65 |
66 | it("can update with produce", () => {
67 | store.update("1", { data: { foo: { bar: {} } } } as any);
68 |
69 | store.updateDataProduce("1", (prev: any) => {
70 | prev.foo.bar = { bar: 2 };
71 | });
72 |
73 | expect(store.lookupOrDef("1").data).toEqual(
74 | expect.objectContaining({
75 | foo: { bar: { bar: 2 } },
76 | })
77 | );
78 | });
79 | });
80 |
--------------------------------------------------------------------------------
/src/store.ts:
--------------------------------------------------------------------------------
1 | import { batch, untrack } from "solid-js";
2 | import { createStore, produce, reconcile, SetStoreFunction } from "solid-js/store";
3 |
4 | import { noop } from "./utils";
5 |
6 | export type OnTrimFn = (key: string) => void;
7 |
8 | export type StoreCache = {
9 | /** item has been inserted into store */
10 | insert: (key: string, onTrim: OnTrimFn) => void;
11 | /** item has been looked up */
12 | lookup: (key: string, onTrim: OnTrimFn) => void;
13 | };
14 |
15 | export type StoreItem = {
16 | data: D | undefined;
17 | err: E | undefined;
18 | isLoading: boolean;
19 |
20 | /** touch this only if you know what you're doing, this controls deduplication */
21 | _isBusy: boolean;
22 |
23 | /** whether this item exists in store */
24 | _exists: boolean;
25 |
26 | /** used to call onSuccess for every hook */
27 | _onSuccess: number;
28 | /** used to call onError for every hook */
29 | _onError: number;
30 |
31 | /** how many hooks (useSwr from core) are attached to this item */
32 | _mountedCount: number;
33 | };
34 |
35 | export type SolidStore = {
36 | [key: string]: StoreItem | undefined;
37 | };
38 |
39 | const defaultCache: StoreCache = {
40 | insert: noop,
41 | lookup: noop,
42 | };
43 |
44 | export class Store {
45 | private cache: StoreCache;
46 |
47 | private store: SolidStore;
48 | private setStore: SetStoreFunction;
49 |
50 | private boundDestroy: (key: string) => void;
51 |
52 | static defaultItem: StoreItem = {
53 | _mountedCount: 0,
54 | _exists: false,
55 | _isBusy: false,
56 | _onSuccess: 0,
57 | _onError: 0,
58 | isLoading: false,
59 | err: undefined,
60 | data: undefined,
61 | };
62 |
63 | constructor(cache?: StoreCache) {
64 | this.boundDestroy = this.destroy.bind(this);
65 |
66 | this.cache = defaultCache;
67 | if (cache) this.cache = cache;
68 |
69 | const [store, setStore] = createStore({});
70 | // eslint-disable-next-line solid/reactivity
71 | this.store = store;
72 | this.setStore = setStore;
73 | }
74 |
75 | keys(): string[] {
76 | return untrack(() => Object.keys(this.store));
77 | }
78 |
79 | updateDataProduce(key: string, producer: (data: D | undefined) => void): void {
80 | batch(() => {
81 | untrack(() => this.makeExist(key));
82 | this.setStore(key, "data", produce(producer));
83 | });
84 | }
85 |
86 | update(key: string, partial: Partial>): void {
87 | const setData = "data" in partial;
88 |
89 | const data = partial.data;
90 | // let's give our thanks to the GC that will let us hold on to data above
91 | delete partial.data;
92 |
93 | batch(() => {
94 | untrack(() => this.makeExist(key));
95 |
96 | this.setStore(key, partial);
97 | if (setData) {
98 | this.setStore(key, "data", reconcile(data));
99 | }
100 | });
101 | }
102 |
103 | mount(key: string) {
104 | const n = untrack(() => this.lookupOrDef(key)._mountedCount + 1);
105 | this.update(key, { _mountedCount: n });
106 | }
107 | unmount(key: string) {
108 | const n = untrack(() => this.lookupOrDef(key)._mountedCount - 1);
109 | this.update(key, { _mountedCount: Math.max(n, 0) });
110 | }
111 |
112 | lookupOrDef(key?: string): StoreItem {
113 | const def = Store.defaultItem as StoreItem;
114 | if (!key) return def;
115 |
116 | const already = this.lookup(key);
117 | return already || def;
118 | }
119 |
120 | private lookup(key: string): StoreItem | undefined {
121 | this.cache.lookup(key, this.boundDestroy);
122 | return this.store[key] as StoreItem;
123 | }
124 |
125 | private destroy(key: string) {
126 | this.setStore(key, undefined);
127 | }
128 |
129 | private makeExist(key: string): void {
130 | if (this.lookup(key)) return;
131 | this.cache.insert(key, this.boundDestroy);
132 | // have to copy here
133 | this.setStore(key, { ...Store.defaultItem, _exists: true });
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/src/utils.ts:
--------------------------------------------------------------------------------
1 | import { Accessor, onCleanup, onMount, untrack } from "solid-js";
2 |
3 | type Fn = (...params: any[]) => T;
4 |
5 | export function uFn>(fn: T) {
6 | return ((...params: Parameters) => untrack(() => fn(...params))) as T;
7 | }
8 |
9 | export function runIfTruthy) => R>(
10 | acc: Accessor,
11 | run: G
12 | ) {
13 | const x = acc();
14 | if (!x) return;
15 | return run(x);
16 | }
17 |
18 | export function noop() {}
19 |
20 | export async function tryCatch(
21 | fn: Fn>
22 | ): Promise<[E] | [undefined, D]> {
23 | try {
24 | return [undefined, await fn()];
25 | } catch (err: unknown) {
26 | return [err as E];
27 | }
28 | }
29 |
30 | export function useWinEvent(type: string, cb: Fn) {
31 | onMount(() => {
32 | window.addEventListener(type, cb);
33 | onCleanup(() => window.removeEventListener(type, cb));
34 | });
35 | }
36 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": "./src",
4 | "baseUrl": ".",
5 | "outDir": "./dist",
6 | "declaration": true,
7 |
8 | "target": "ESNext",
9 | "module": "ESNext",
10 | "lib": ["ESNext", "DOM", "DOM.Iterable"],
11 | "skipLibCheck": true,
12 | "esModuleInterop": true,
13 |
14 | "moduleResolution": "bundler",
15 | "resolveJsonModule": true,
16 | "isolatedModules": true,
17 | "jsx": "preserve",
18 | "jsxImportSource": "solid-js",
19 |
20 | "strict": true,
21 | "noFallthroughCasesInSwitch": true,
22 | "noUncheckedIndexedAccess": true,
23 | },
24 |
25 | "include": ["src"],
26 | }
27 |
--------------------------------------------------------------------------------
/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "tsup";
2 |
3 | export default defineConfig({
4 | clean: true,
5 | target: "esnext",
6 | format: ["cjs", "esm"],
7 | entry: {
8 | extra: "./src/extra.ts",
9 | cache: "./src/cache.ts",
10 | index: "./src/index.ts",
11 | },
12 | dts: true,
13 | });
14 |
--------------------------------------------------------------------------------
/vitest.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vitest/config";
2 | import solid from "vite-plugin-solid";
3 |
4 | export default defineConfig({
5 | plugins: [solid()],
6 | });
7 |
--------------------------------------------------------------------------------