├── dev ├── src │ ├── routes │ │ ├── posts │ │ │ ├── z.tsx │ │ │ ├── ooo │ │ │ │ ├── p.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── [[optional]] │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── test.tsx │ │ │ ├── t.tsx │ │ │ ├── [slug].tsx │ │ │ ├── ooo.tsx │ │ │ └── index.tsx │ │ ├── route-slash.tsx │ │ ├── multiple │ │ │ ├── [third] │ │ │ │ └── edit.tsx │ │ │ └── [first] │ │ │ │ └── [second] │ │ │ │ └── [third].tsx │ │ ├── manifest.json.tsx │ │ ├── api │ │ │ ├── test.ts │ │ │ └── sitemap.ts │ │ ├── (routeGroupAbout).tsx │ │ ├── auth(layout).tsx │ │ ├── auth(layout) │ │ │ └── abc.tsx │ │ ├── index.tsx │ │ ├── (routeGroupAbout) │ │ │ └── about.tsx │ │ └── [...404].tsx │ ├── global.d.ts │ ├── entry-client.tsx │ ├── components │ │ ├── Counter.tsx │ │ └── Counter.css │ ├── entry-server.tsx │ ├── app.css │ ├── app.tsx │ └── RouteManifest │ │ ├── index.d.ts │ │ └── index.js ├── public │ └── favicon.ico ├── app.config.ts ├── .gitignore ├── package.json ├── tsconfig.json ├── README.md └── test.txt ├── .DS_Store ├── .vscode └── extensions.json ├── .gitignore ├── .editorconfig ├── .prettierrc ├── src ├── index.ts ├── plugin.ts ├── utils.ts └── routeManifest.ts ├── .changeset ├── config.json └── README.md ├── tsup.config.ts ├── env.d.ts ├── tsconfig.json ├── CHANGELOG.md ├── .eslintrc ├── .github ├── ISSUE_TEMPLATE │ ├── feature-request.yml │ └── bug-report.yml └── workflows │ └── publish.yml ├── LICENSE ├── package.json ├── test └── index.test.ts ├── README.md └── pnpm-lock.yaml /dev/src/routes/posts/z.tsx: -------------------------------------------------------------------------------- 1 | export default () => 'z'; 2 | -------------------------------------------------------------------------------- /dev/src/routes/posts/ooo/p.tsx: -------------------------------------------------------------------------------- 1 | export default () => 'p'; 2 | -------------------------------------------------------------------------------- /dev/src/routes/route-slash.tsx: -------------------------------------------------------------------------------- 1 | export default () => ''; 2 | -------------------------------------------------------------------------------- /dev/src/global.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /dev/src/routes/posts/ooo/index.tsx: -------------------------------------------------------------------------------- 1 | export default () => 'ooo'; 2 | -------------------------------------------------------------------------------- /dev/src/routes/multiple/[third]/edit.tsx: -------------------------------------------------------------------------------- 1 | export default () => 'edit'; 2 | -------------------------------------------------------------------------------- /dev/src/routes/posts/t.tsx: -------------------------------------------------------------------------------- 1 | const t = () => 't'; 2 | export default t; 3 | -------------------------------------------------------------------------------- /dev/src/routes/manifest.json.tsx: -------------------------------------------------------------------------------- 1 | export default () => 'manifest.json'; 2 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madaxen86/solid-start-typesafe-fileroutes/HEAD/.DS_Store -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"] 3 | } 4 | -------------------------------------------------------------------------------- /dev/src/routes/posts/ooo/[[optional]]/index.tsx: -------------------------------------------------------------------------------- 1 | export default () => { 2 | return '[[optional]]'; 3 | }; 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | gitignore 4 | 5 | # tsup 6 | tsup.config.bundled_*.{m,c,}s 7 | 8 | dev2 9 | -------------------------------------------------------------------------------- /dev/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madaxen86/solid-start-typesafe-fileroutes/HEAD/dev/public/favicon.ico -------------------------------------------------------------------------------- /dev/src/routes/api/test.ts: -------------------------------------------------------------------------------- 1 | export function POST() { 2 | return 'test'; 3 | } 4 | 5 | export function GET() { 6 | return 'test'; 7 | } 8 | -------------------------------------------------------------------------------- /dev/src/routes/posts/ooo/[[optional]]/test.tsx: -------------------------------------------------------------------------------- 1 | export default () => { 2 | return
'[[optional]]'
; 3 | }; 4 | -------------------------------------------------------------------------------- /dev/src/entry-client.tsx: -------------------------------------------------------------------------------- 1 | // @refresh reload 2 | import { mount, StartClient } from "@solidjs/start/client"; 3 | 4 | mount(() => , document.getElementById("app")!); 5 | -------------------------------------------------------------------------------- /dev/src/routes/(routeGroupAbout).tsx: -------------------------------------------------------------------------------- 1 | import { ParentComponent } from 'solid-js'; 2 | const Layout: ParentComponent = props => { 3 | return
{props.children}
; 4 | }; 5 | export default Layout; 6 | -------------------------------------------------------------------------------- /dev/src/routes/posts/[slug].tsx: -------------------------------------------------------------------------------- 1 | import { useParams } from '@solidjs/router' 2 | const Slug = () => { 3 | const params = useParams() 4 | return
{params.slug}
5 | } 6 | export default Slug 7 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | -------------------------------------------------------------------------------- /dev/app.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@solidjs/start/config'; 2 | import typedRoutesPlugin from '../src/index'; 3 | export default defineConfig({ 4 | vite: { 5 | plugins: [typedRoutesPlugin()], 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "all", 3 | "tabWidth": 2, 4 | "printWidth": 100, 5 | "semi": true, 6 | "singleQuote": true, 7 | "useTabs": false, 8 | "arrowParens": "avoid", 9 | "bracketSpacing": true 10 | } 11 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import SolidStartTypesafeRouterPlugin from './plugin'; 2 | import { generateRouteManifest } from './routeManifest'; 3 | 4 | export { SolidStartTypesafeRouterPlugin, generateRouteManifest }; 5 | export default SolidStartTypesafeRouterPlugin; 6 | -------------------------------------------------------------------------------- /dev/src/routes/posts/ooo.tsx: -------------------------------------------------------------------------------- 1 | import { ParentProps } from 'solid-js'; 2 | 3 | export default function SomeLayout(p: ParentProps) { 4 | return ( 5 |
6 |

HEADER OOO

7 | {p.children} 8 |
9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /dev/src/routes/auth(layout).tsx: -------------------------------------------------------------------------------- 1 | import { ParentProps } from 'solid-js'; 2 | //ads 3 | export default function AboutLayout(props: ParentProps) { 4 | return ( 5 |
6 |

Auth Layout

7 | {props.children} 8 |
9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /dev/src/routes/multiple/[first]/[second]/[third].tsx: -------------------------------------------------------------------------------- 1 | import { useParams } from '@solidjs/router' 2 | const Slug = () => { 3 | const params = useParams() 4 | return ( 5 |
6 | {params.first} {params.second} 7 |
8 | ) 9 | } 10 | export default Slug 11 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json", 3 | "changelog": "@changesets/cli/changelog", 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "public", 8 | "baseBranch": "master", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /dev/src/components/Counter.tsx: -------------------------------------------------------------------------------- 1 | import { createSignal } from "solid-js"; 2 | import "./Counter.css"; 3 | 4 | export default function Counter() { 5 | const [count, setCount] = createSignal(0); 6 | return ( 7 | 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup'; 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | platform: 'node', 6 | format: 'esm', 7 | treeshake: true, 8 | dts: true, 9 | // plugins: [nodeExternalsPlugin()], 10 | external: ['vinxi', 'fs', 'path', 'stream', 'sitemap'], 11 | 12 | // array or single object 13 | }); 14 | -------------------------------------------------------------------------------- /env.d.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | interface ImportMeta { 3 | env: { 4 | NODE_ENV: 'production' | 'development'; 5 | PROD: boolean; 6 | DEV: boolean; 7 | }; 8 | } 9 | namespace NodeJS { 10 | interface ProcessEnv { 11 | NODE_ENV: 'production' | 'development'; 12 | PROD: boolean; 13 | DEV: boolean; 14 | } 15 | } 16 | } 17 | 18 | export {}; 19 | -------------------------------------------------------------------------------- /dev/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | dist 3 | .solid 4 | .output 5 | .vercel 6 | .netlify 7 | .vinxi 8 | app.config.timestamp_*.js 9 | 10 | # Environment 11 | .env 12 | .env*.local 13 | 14 | # dependencies 15 | /node_modules 16 | 17 | # IDEs and editors 18 | /.idea 19 | .project 20 | .classpath 21 | *.launch 22 | .settings/ 23 | 24 | # Temp 25 | gitignore 26 | 27 | # System Files 28 | .DS_Store 29 | Thumbs.db 30 | -------------------------------------------------------------------------------- /dev/src/routes/posts/index.tsx: -------------------------------------------------------------------------------- 1 | import { useNavigate, useSearchParams } from '@solidjs/router'; 2 | import { routes } from '~/RouteManifest'; 3 | 4 | export default () => { 5 | const [search, setSearch] = useSearchParams(); 6 | const nav = useNavigate(); 7 | 8 | const sp = new URLSearchParams(Object.entries(search).map(([k, v]) => [k, (v || '').toString()])); 9 | search && nav(routes().index); 10 | return <>asda; 11 | }; 12 | -------------------------------------------------------------------------------- /dev/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example-basic", 3 | "type": "module", 4 | "scripts": { 5 | "dev": "vinxi dev", 6 | "build": "vinxi build", 7 | "start": "vinxi start", 8 | "version": "vinxi version" 9 | }, 10 | "dependencies": { 11 | "@solidjs/meta": "^0.29.4", 12 | "@solidjs/router": "^0.15.0", 13 | "@solidjs/start": "^1.1.0", 14 | "solid-js": "^1.9.2", 15 | "vinxi": "^0.5.3" 16 | }, 17 | "engines": { 18 | "node": ">=22" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /dev/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "bundler", 6 | "allowSyntheticDefaultImports": true, 7 | "esModuleInterop": true, 8 | "jsx": "preserve", 9 | "jsxImportSource": "solid-js", 10 | "allowJs": true, 11 | "strict": true, 12 | "noEmit": true, 13 | "types": ["vinxi/types/client"], 14 | "isolatedModules": true, 15 | "paths": { 16 | "~/*": ["./src/*"] 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /dev/src/components/Counter.css: -------------------------------------------------------------------------------- 1 | .increment { 2 | font-family: inherit; 3 | font-size: inherit; 4 | padding: 1em 2em; 5 | color: #335d92; 6 | background-color: rgba(68, 107, 158, 0.1); 7 | border-radius: 2em; 8 | border: 2px solid rgba(68, 107, 158, 0); 9 | outline: none; 10 | width: 200px; 11 | font-variant-numeric: tabular-nums; 12 | cursor: pointer; 13 | } 14 | 15 | .increment:focus { 16 | border: 2px solid #335d92; 17 | } 18 | 19 | .increment:active { 20 | background-color: rgba(68, 107, 158, 0.2); 21 | } -------------------------------------------------------------------------------- /dev/src/routes/auth(layout)/abc.tsx: -------------------------------------------------------------------------------- 1 | import { action, cache, createAsync, reload, useAction } from '@solidjs/router'; 2 | import { onMount, Suspense } from 'solid-js'; 3 | import { getRoutes } from '../../../../src/utils'; 4 | 5 | const routes = cache(async () => getRoutes(), 'routes'); 6 | const refetch = action(async () => reload({ revalidate: routes.key })); 7 | 8 | const AboutPage = () => { 9 | console.log('Route'); 10 | 11 | return ( 12 | <> 13 |

abC

14 | 15 | ); 16 | }; 17 | export default AboutPage; 18 | -------------------------------------------------------------------------------- /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /dev/src/routes/api/sitemap.ts: -------------------------------------------------------------------------------- 1 | import { json } from "@solidjs/router"; 2 | import { getRoutes } from "../../../../src/utils"; 3 | import { createSitemap } from "../../../../src/index"; 4 | export const GET = async () => { 5 | try { 6 | const routes = await getRoutes(); 7 | await createSitemap({ 8 | hostname: process.env.NITRO_HOST || "http://localhost:3000", 9 | replaceRouteParams: { ":id": [1, 2, 3, "test"], ":locale": ["en", "de"] }, 10 | }); 11 | 12 | return json(routes); 13 | } catch (e) { 14 | console.log(e); 15 | 16 | return new Response("Error", { status: 500 }); 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "target": "ESNext", 5 | "module": "ESNext", 6 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 7 | "moduleResolution": "bundler", 8 | "resolveJsonModule": true, 9 | "esModuleInterop": true, 10 | "noEmit": true, 11 | "isolatedModules": true, 12 | "skipLibCheck": true, 13 | "allowSyntheticDefaultImports": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "noUncheckedIndexedAccess": true, 16 | "jsx": "preserve", 17 | "jsxImportSource": "solid-js" 18 | }, 19 | "exclude": ["node_modules", "dist", "./dev"] 20 | } 21 | -------------------------------------------------------------------------------- /dev/src/entry-server.tsx: -------------------------------------------------------------------------------- 1 | // @refresh reload 2 | import { createHandler, StartServer } from "@solidjs/start/server"; 3 | 4 | export default createHandler(() => ( 5 | ( 7 | 8 | 9 | 10 | 11 | 12 | {assets} 13 | 14 | 15 |
{children}
16 | {scripts} 17 | 18 | 19 | )} 20 | /> 21 | )); 22 | -------------------------------------------------------------------------------- /dev/src/routes/index.tsx: -------------------------------------------------------------------------------- 1 | import { cache, createAsync } from '@solidjs/router'; 2 | 3 | import { Suspense } from 'solid-js'; 4 | import { isServer } from 'solid-js/web'; 5 | 6 | // export const getTime = cache(async () => new Date().toLocaleTimeString(), 'getTime'); 7 | export default function Home() { 8 | // const time = createAsync(() => getTime()); 9 | 10 | return ( 11 |
12 | {/*
{JSON.stringify(routes()?.map(r => r.path), undefined, 2)}
*/} 13 | {/*

{JSON.stringify(generateRouteManifest(fileRoutes), undefined, 2)}

*/} 14 | asdasda {'asds'} 15 |
16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /dev/src/routes/(routeGroupAbout)/about.tsx: -------------------------------------------------------------------------------- 1 | import { A, createAsync } from '@solidjs/router'; 2 | import { onMount, Suspense } from 'solid-js'; 3 | import Counter from '~/components/Counter'; 4 | 5 | export const getTime = async () => { 6 | 'use server'; 7 | return new Date().toLocaleTimeString(); 8 | }; 9 | 10 | export default function About() { 11 | const time = createAsync(() => getTime()); 12 | return ( 13 |
14 |

About Page

15 |

16 | Time: 17 | {time()} 18 |

19 |
20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /dev/src/app.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: Gordita, Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; 3 | } 4 | 5 | a { 6 | margin-right: 1rem; 7 | } 8 | 9 | main { 10 | text-align: center; 11 | padding: 1em; 12 | margin: 0 auto; 13 | } 14 | 15 | h1 { 16 | color: #335d92; 17 | text-transform: uppercase; 18 | font-size: 4rem; 19 | font-weight: 100; 20 | line-height: 1.1; 21 | margin: 4rem auto; 22 | max-width: 14rem; 23 | } 24 | 25 | p { 26 | max-width: 14rem; 27 | margin: 2rem auto; 28 | line-height: 1.35; 29 | } 30 | 31 | @media (min-width: 480px) { 32 | h1 { 33 | max-width: none; 34 | } 35 | 36 | p { 37 | max-width: none; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /dev/src/app.tsx: -------------------------------------------------------------------------------- 1 | import { MetaProvider, Title } from '@solidjs/meta'; 2 | import { Router } from '@solidjs/router'; 3 | import { FileRoutes } from '@solidjs/start/router'; 4 | import { Suspense } from 'solid-js'; 5 | import './app.css'; 6 | import { routes } from '~/RouteManifest'; 7 | 8 | export default function App() { 9 | return ( 10 | ( 12 | 13 | SolidStart - Basic 14 | Index 15 | About 16 | {props.children} 17 | 18 | )} 19 | > 20 | 21 | 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /dev/src/routes/[...404].tsx: -------------------------------------------------------------------------------- 1 | import { A } from "@solidjs/router"; 2 | 3 | export default function NotFound() { 4 | return ( 5 |
6 |

Not Found

7 |

8 | Visit{" "} 9 | 10 | solidjs.com 11 | {" "} 12 | to learn how to build Solid apps. 13 |

14 |

15 | 16 | Home 17 | 18 | {" - "} 19 | 20 | About Page 21 | 22 |

23 |
24 | ); 25 | } 26 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # solid-start-typesafe-routes-plugin 2 | 3 | ## 1.2.0 4 | 5 | ### Minor Changes 6 | 7 | - 78b4b1b: support for devinxi - removed vinxi dependecy 8 | 9 | ## 1.1.0 10 | 11 | ### Minor Changes 12 | 13 | - updated dependecies to work with solid-start 1.1.x and vinix 0.5.3 14 | 15 | ## 0.3.1 16 | 17 | ### Patch Changes 18 | 19 | - 2c23010: transform "." to camelCase 20 | 21 | ## 0.3.0 22 | 23 | ### Minor Changes 24 | 25 | - 714f805: added eslint-disable to routesManifest.js file 26 | 27 | ### Patch Changes 28 | 29 | - 714f805: fix: keep catch all routes with numeric key dynamic -> [*404] 30 | 31 | ## 0.2.0 32 | 33 | ### Minor Changes 34 | 35 | - 8d1f6e2: intial working version 36 | - Debounced HMR update and support for optional route params 37 | 38 | ### Patch Changes 39 | 40 | - 21333c4: Removed \_\_dirname and use path.resolve. Made PluginProps Optional 41 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint", "no-only-tests", "eslint-comments"], 5 | "ignorePatterns": ["node_modules", "dist", "dev", "tsup.config.ts", "vitest.config.ts"], 6 | "parserOptions": { 7 | "project": "./tsconfig.json", 8 | "tsconfigRootDir": ".", 9 | "sourceType": "module" 10 | }, 11 | "rules": { 12 | "prefer-const": "warn", 13 | "no-console": "warn", 14 | "no-debugger": "warn", 15 | "@typescript-eslint/no-unused-vars": [ 16 | "warn", 17 | { 18 | "argsIgnorePattern": "^_", 19 | "varsIgnorePattern": "^_", 20 | "caughtErrorsIgnorePattern": "^_" 21 | } 22 | ], 23 | "@typescript-eslint/no-unnecessary-type-assertion": "warn", 24 | "@typescript-eslint/no-unnecessary-condition": "warn", 25 | "@typescript-eslint/no-useless-empty-export": "warn", 26 | "no-only-tests/no-only-tests": "warn", 27 | "eslint-comments/no-unused-disable": "warn" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.yml: -------------------------------------------------------------------------------- 1 | name: "Feature Request" 2 | description: For feature/enhancement requests. Please search for existing issues first. 3 | body: 4 | - type: markdown 5 | attributes: 6 | value: | 7 | Thank you for bringing your ideas here :pray:. 8 | 9 | The more information you fill in, the better the community can understand your idea. 10 | - type: textarea 11 | id: problem 12 | attributes: 13 | label: Describe The Problem To Be Solved 14 | description: Provide a clear and concise description of the challenge you are running into. 15 | validations: 16 | required: true 17 | - type: textarea 18 | id: solution 19 | attributes: 20 | label: Suggest A Solution 21 | description: | 22 | A concise description of your preferred solution. Things to address include: 23 | - Details of the technical implementation 24 | - Tradeoffs made in design decisions 25 | - Caveats and considerations for the future 26 | validations: 27 | required: true 28 | -------------------------------------------------------------------------------- /dev/README.md: -------------------------------------------------------------------------------- 1 | # SolidStart 2 | 3 | Everything you need to build a Solid project, powered by [`solid-start`](https://start.solidjs.com); 4 | 5 | ## Creating a project 6 | 7 | ```bash 8 | # create a new project in the current directory 9 | npm init solid@latest 10 | 11 | # create a new project in my-app 12 | npm init solid@latest my-app 13 | ``` 14 | 15 | ## Developing 16 | 17 | Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: 18 | 19 | ```bash 20 | npm run dev 21 | 22 | # or start the server and open the app in a new browser tab 23 | npm run dev -- --open 24 | ``` 25 | 26 | ## Building 27 | 28 | Solid apps are built with _presets_, which optimise your project for deployment to different environments. 29 | 30 | By default, `npm run build` will generate a Node app that you can run with `npm start`. To use a different preset, add it to the `devDependencies` in `package.json` and specify in your `app.config.js`. 31 | 32 | ## This project was created with the [Solid CLI](https://solid-cli.netlify.app) 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 madaxen86 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 | -------------------------------------------------------------------------------- /dev/src/RouteManifest/index.d.ts: -------------------------------------------------------------------------------- 1 | // ################################################ 2 | // ### THIS FILE IS AUTOGENERATED - DO NOT EDIT ### 3 | // ################################################ 4 | export declare function routes(searchParams?:Record):{ 5 | index: string; 6 | _404: (_404:string|number) => ({index: string}); 7 | about: {index: string}; 8 | posts: { 9 | index: string; 10 | t: {index: string}; 11 | z: {index: string}; 12 | ooo: { 13 | index: string; 14 | p: {index: string}; 15 | optional: (optional?:string|number) => ({ 16 | index: string; 17 | test: {index: string}; 18 | }); 19 | }; 20 | slug: (slug:string|number) => ({index: string}); 21 | }; 22 | auth: { 23 | abc: {index: string}; 24 | }; 25 | routeSlash: {index: string}; 26 | manifestJson: {index: string}; 27 | multiple: { 28 | third: (third:string|number) => ({ 29 | edit: {index: string}; 30 | }); 31 | first: (first:string|number) => ({ 32 | second: (second:string|number) => ({ 33 | third: (third:string|number) => ({index: string}); 34 | }); 35 | }); 36 | }; 37 | }; -------------------------------------------------------------------------------- /src/plugin.ts: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | 3 | import { debouncedGenerateRouteManifest, generateRouteManifest } from './routeManifest'; 4 | import { isValidFile } from './utils'; 5 | import { Plugin } from 'vite'; 6 | 7 | interface PluginProps { 8 | routeDir: string; 9 | outDir: string; 10 | } 11 | 12 | export default function routeManifestPlugin( 13 | { routeDir, outDir }: PluginProps = { routeDir: 'src/routes', outDir: './src/RouteManifest' }, 14 | ): Plugin { 15 | const targetDir = path.resolve(outDir); 16 | return { 17 | name: 'vite-plugin-route-manifest', 18 | enforce: 'post', 19 | async configResolved(config) { 20 | //@ts-expect-error - cant type vinxi and vite 21 | if (config.router && config.router?.name === 'ssr') { 22 | //use the ssr router to include API routes 23 | // TODO: get routeDir from config and set routeRootPath 24 | //vinxi 25 | await generateRouteManifest(targetDir); 26 | } else { 27 | //devinxi 28 | await generateRouteManifest(targetDir); 29 | } 30 | }, 31 | async handleHotUpdate({ file }) { 32 | if (!isValidFile(file, routeDir)) return; 33 | 34 | await debouncedGenerateRouteManifest(targetDir); 35 | }, 36 | async watchChange(filePath) { 37 | if (!isValidFile(filePath, routeDir)) return; 38 | await debouncedGenerateRouteManifest(targetDir); 39 | }, 40 | }; 41 | } 42 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.yml: -------------------------------------------------------------------------------- 1 | name: "🐛 Bug report" 2 | description: Create a report to help us improve 3 | body: 4 | - type: markdown 5 | attributes: 6 | value: | 7 | Thank you for reporting an issue :pray:. 8 | 9 | The more information you fill in, the better the community can help you. 10 | - type: textarea 11 | id: description 12 | attributes: 13 | label: Describe the bug 14 | description: Provide a clear and concise description of the challenge you are running into. 15 | validations: 16 | required: true 17 | - type: input 18 | id: link 19 | attributes: 20 | label: Minimal Reproduction Link 21 | description: | 22 | Please provide a link to a minimal reproduction of the bug you are running into. 23 | It makes the process of verifying and fixing the bug much easier. 24 | Note: 25 | - Your bug will may get fixed much faster if we can run your code and it doesn't have dependencies other than the solid-js and solid-primitives. 26 | - To create a shareable code example you can use [Stackblitz](https://stackblitz.com/) (https://solid.new). Please no localhost URLs. 27 | - Please read these tips for providing a minimal example: https://stackoverflow.com/help/mcve. 28 | placeholder: | 29 | e.g. https://stackblitz.com/edit/...... OR Github Repo 30 | validations: 31 | required: true 32 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish Package to npmjs 2 | on: 3 | release: 4 | types: [published] 5 | workflow_dispatch: 6 | jobs: 7 | build: 8 | runs-on: ubuntu-latest 9 | permissions: 10 | contents: read 11 | id-token: write 12 | steps: 13 | - uses: actions/checkout@v4 14 | with: 15 | ref: master 16 | 17 | - uses: pnpm/action-setup@v4 18 | name: Install pnpm 19 | with: 20 | run_install: false 21 | 22 | - name: Set up Node.js 23 | uses: actions/setup-node@v3 24 | with: 25 | node-version: '20' 26 | cache-dependency-path: pnpm-lock.yaml 27 | cache: 'pnpm' 28 | 29 | # Install dependencies with pnpm 30 | - name: Install dependencies 31 | run: pnpm install 32 | 33 | # Authenticate with npm using the NPM_TOKEN secret 34 | - name: Authenticate to npm 35 | run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc 36 | 37 | # Check the version and publish the package 38 | # - name: Publish package 39 | # run: pnpm publish --access public 40 | - name: create and publish versions 41 | uses: changesets/action@v1 42 | with: 43 | version: pnpm version 44 | commit: 'chore: update versions' 45 | title: 'chore: update versions' 46 | publish: pnpm publish 47 | env: 48 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 49 | GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} 50 | -------------------------------------------------------------------------------- /dev/src/RouteManifest/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // ################################################ 3 | // ### THIS FILE IS AUTOGENERATED - DO NOT EDIT ### 4 | // ################################################ 5 | export function routes(searchParams) { 6 | const query = searchParams ? '?' + new URLSearchParams(searchParams).toString() : ''; 7 | return { 8 | index: `/${query}` , 9 | _404: (_404) => ({index: `/${_404}${query}`}), 10 | about: {index: `/about${query}`}, 11 | posts: { 12 | index: `/posts${query}`, 13 | t: {index: `/posts/t${query}`}, 14 | z: {index: `/posts/z${query}`}, 15 | ooo: { 16 | index: `/posts/ooo${query}`, 17 | p: {index: `/posts/ooo/p${query}`}, 18 | optional: (optional) => ({ 19 | index: `/posts/ooo${optional ? `/${optional}` : ''}${query}`, 20 | test: {index: `/posts/ooo${optional ? `/${optional}` : ''}/test${query}`}, 21 | }), 22 | }, 23 | slug: (slug) => ({index: `/posts/${slug}${query}`}), 24 | }, 25 | auth: { 26 | abc: {index: `/auth/abc${query}`}, 27 | }, 28 | routeSlash: {index: `/route-slash${query}`}, 29 | manifestJson: {index: `/manifest.json${query}`}, 30 | multiple: { 31 | third: (third) => ({ 32 | edit: {index: `/multiple/${third}/edit${query}`}, 33 | }), 34 | first: (first) => ({ 35 | second: (second) => ({ 36 | third: (third) => ({index: `/multiple/${first}/${second}/${third}${query}`}), 37 | }), 38 | }), 39 | }, 40 | }; 41 | } -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | import { ResolvedConfig } from 'vite'; 2 | 3 | export type _FileRoute = { 4 | path: string; 5 | page: boolean; 6 | filePath?: string; 7 | $component?: { 8 | src: string; 9 | }; 10 | }; 11 | export type FileRoute = Required<_FileRoute>; 12 | type BaseFileSystemRouter = { 13 | getRoutes: () => Promise<_FileRoute[]>; 14 | }; 15 | let router: BaseFileSystemRouter | undefined; 16 | 17 | export async function getRoutes(config?: ResolvedConfig): Promise { 18 | if (!router) { 19 | const app = (globalThis as any)?.app; 20 | if (app) router = app?.getRouter?.('client')?.internals?.routes; 21 | const clientRouter = (globalThis as any)?.ROUTERS?.client; 22 | if (clientRouter) router = clientRouter; 23 | } 24 | 25 | if (!router) return []; 26 | 27 | const fileroutes = (await router.getRoutes()).map(r => { 28 | r; 29 | if (!r.filePath) return { ...r, filePath: r.$component!.src } as FileRoute; 30 | return { 31 | ...r, 32 | $component: { 33 | src: r.filePath, 34 | }, 35 | } as FileRoute; 36 | }); 37 | 38 | if (!fileroutes) throw new Error('Could not get router from fs-router'); 39 | 40 | const filteredRoutes = fileroutes 41 | .filter( 42 | route => 43 | // (route.page || route.path.startsWith('/api')) && 44 | !isLayout(route.path, route.filePath, fileroutes), 45 | ) 46 | .map(({ path }) => cleanPath(path)) 47 | .sort(function (a, b) { 48 | return a.length - b.length || a.localeCompare(b); 49 | }); 50 | 51 | return filteredRoutes; 52 | } 53 | export function cleanPath(path: string) { 54 | return ( 55 | path 56 | .replace(/\(.*?\)/gi, '') 57 | // remove consecutive slashes 58 | .replace(/\/+/gi, '/') 59 | .replace(/(.)\/$/gi, '$1') 60 | .replace('*', ':') 61 | ); 62 | } 63 | 64 | export const isValidFile = (path: string, routeRootPath: string) => 65 | path.includes(routeRootPath) && 66 | !path.endsWith('RouteManifest/index.js') && 67 | !path.endsWith('RouteManifest/index.d.ts') && 68 | path.match(/\.[tj]sx?$/gi); 69 | 70 | export function isLayout(route: string, filePath: string, allRoutes: FileRoute[]): boolean { 71 | // Check if any route in allRoutes starts with route + "/" 72 | return allRoutes.some(r => r.path.startsWith(route + '/') && r.filePath !== filePath); 73 | } 74 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "solid-start-typesafe-routes-plugin", 3 | "version": "1.2.0", 4 | "description": "Type-safe routes for solid-start file-routes. No more broken links.", 5 | "license": "MIT", 6 | "author": "madaxen86", 7 | "contributors": [], 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/madaxen86/solid-start-typesafe-fileroutes.git" 11 | }, 12 | "homepage": "https://github.com/madaxen86/solid-start-typesafe-fileroutes", 13 | "bugs": { 14 | "url": "https://github.com/madaxen86/solid-start-typesafe-fileroutes/issues" 15 | }, 16 | "files": [ 17 | "dist" 18 | ], 19 | "private": false, 20 | "sideEffects": false, 21 | "type": "module", 22 | "main": "./dist/index.js", 23 | "module": "./dist/index.js", 24 | "types": "./dist/index.d.ts", 25 | "browser": {}, 26 | "exports": { 27 | "import": { 28 | "types": "./dist/index.d.ts", 29 | "default": "./dist/index.js" 30 | } 31 | }, 32 | "typesVersions": {}, 33 | "scripts": { 34 | "dev": "vite serve dev", 35 | "build": "tsup", 36 | "test": "vitest", 37 | "prepublishOnly": "pnpm build", 38 | "format": "prettier --ignore-path .gitignore -w \"src/**/*.{js,ts,json,css,tsx,jsx}\" \"dev/**/*.{js,ts,json,css,tsx,jsx}\"", 39 | "lint": "concurrently pnpm:lint:*", 40 | "lint:code": "eslint --ignore-path .gitignore --max-warnings 0 ssrc/**/*.{js,ts,tsx,jsx}", 41 | "lint:types": "tsc --noEmit", 42 | "update-deps": "pnpm up -Li", 43 | "publish": "pnpm changeset version && pnpm publish" 44 | }, 45 | "peerDependencies": { 46 | "solid-js": ">=1.6.0" 47 | }, 48 | "devDependencies": { 49 | "@changesets/cli": "^2.28.1", 50 | "@types/node": "^22.13.4", 51 | "@typescript-eslint/eslint-plugin": "^8.24.1", 52 | "@typescript-eslint/parser": "^8.24.1", 53 | "concurrently": "^9.1.2", 54 | "esbuild": "^0.24.2", 55 | "eslint": "^9.20.1", 56 | "eslint-plugin-eslint-comments": "^3.2.0", 57 | "eslint-plugin-no-only-tests": "^3.3.0", 58 | "jsdom": "^25.0.1", 59 | "prettier": "3.3.3", 60 | "solid-js": "^1.9.4", 61 | "tsup": "^8.3.6", 62 | "typescript": "^5.7.3", 63 | "vite": "^6.1.1", 64 | "vitest": "^3.0.6" 65 | }, 66 | "keywords": [ 67 | "solid" 68 | ], 69 | "packageManager": "pnpm@9.1.1", 70 | "engines": { 71 | "node": ">=18", 72 | "pnpm": ">=9.0.0" 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /test/index.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest'; 2 | import { generateRoutesFunction } from '../src/routeManifest'; 3 | import { cleanPath } from '../src/utils'; 4 | 5 | // Example usage 6 | const routes = [ 7 | '/', 8 | '/about', 9 | '/auth/test', 10 | '/posts/:slug', 11 | '/multiple/:id/edit', 12 | '/multiple/:first/:second/:third', 13 | '/multiple/:first/:second/z', 14 | '/multiple/:first', 15 | '/(abc)xyz/(indexPlaceholder)', 16 | ]; 17 | 18 | const JSOutputReference = `/* eslint-disable */ 19 | // ################################################ 20 | // ### THIS FILE IS AUTOGENERATED - DO NOT EDIT ### 21 | // ################################################ 22 | export function routes(searchParams) { 23 | const query = searchParams ? '?' + new URLSearchParams(searchParams).toString() : ''; 24 | return { 25 | index: \`/\${query}\` , 26 | about: {index: \`/about\${query}\`}, 27 | auth: { 28 | test: {index: \`/auth/test\${query}\`}, 29 | }, 30 | posts: { 31 | slug: (slug) => ({index: \`/posts/\${slug}\${query}\`}), 32 | }, 33 | multiple: { 34 | id: (id) => ({ 35 | edit: {index: \`/multiple/\${id}/edit\${query}\`}, 36 | }), 37 | first: (first) => ({ 38 | index: \`/multiple/\${first}\${query}\`, 39 | second: (second) => ({ 40 | third: (third) => ({index: \`/multiple/\${first}/\${second}/\${third}\${query}\`}), 41 | z: {index: \`/multiple/\${first}/\${second}/z\${query}\`}, 42 | }), 43 | }), 44 | }, 45 | xyz: {index: \`/xyz\${query}\`}, 46 | }; 47 | }`; 48 | 49 | const DTSOutputReference = `// ################################################ 50 | // ### THIS FILE IS AUTOGENERATED - DO NOT EDIT ### 51 | // ################################################ 52 | export declare function routes(searchParams?:Record):{ 53 | index: string; 54 | about: {index: string}; 55 | auth: { 56 | test: {index: string}; 57 | }; 58 | posts: { 59 | slug: (slug:string|number) => ({index: string}); 60 | }; 61 | multiple: { 62 | id: (id:string|number) => ({ 63 | edit: {index: string}; 64 | }); 65 | first: (first:string|number) => ({ 66 | index: string; 67 | second: (second:string|number) => ({ 68 | third: (third:string|number) => ({index: string}); 69 | z: {index: string}; 70 | }); 71 | }); 72 | }; 73 | xyz: {index: string}; 74 | };`; 75 | 76 | /** 77 | * TESTS 78 | */ 79 | 80 | describe('Test generateRoutesFunction', async () => { 81 | const [JSOutput, typeDeclaration] = await generateRoutesFunction(routes.map(cleanPath)); 82 | it('File text is equal to JSOutputReference', () => { 83 | expect(JSOutput).toBe(JSOutputReference); 84 | }); 85 | 86 | it('File text is equal to typeDeclarationReference', () => { 87 | expect(typeDeclaration).toBe(DTSOutputReference); 88 | }); 89 | }); 90 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | solid-start-typesafe-routes-plugin 3 |

4 | 5 | # solid-start-typesafe-routes-plugin 6 | 7 | [![pnpm](https://img.shields.io/badge/maintained%20with-pnpm-cc00ff.svg?style=for-the-badge&logo=pnpm)](https://pnpm.io/) 8 | 9 | This plugin for solid-start will create a route manifest which provides type-safe routes based on the file-routing. This gives you auto-completion and errors. 10 | As solid-start itself this plugin is also router agnostic. So it'll work with any router which is able to include solid-start's `Fileroutes` component. 11 | 12 | ## Installation 13 | 14 | ```bash 15 | npm i --save-dev solid-start-typesafe-routes-plugin 16 | ``` 17 | 18 | ```bash 19 | yarn add -D solid-start-typesafe-routes-plugin 20 | ``` 21 | 22 | ```bash 23 | pnpm add -D solid-start-typesafe-routes-plugin 24 | ``` 25 | 26 | ## Usage 27 | 28 | ### Add the plugin to your `app.config.ts` 29 | 30 | ```ts 31 | interface PluginProps { 32 | routeDir: string; //default: 'src/routes' - path to the file routes root 33 | outDir: string; // default: './src/RouteManifest' - path where the output files are written to 34 | } 35 | ``` 36 | 37 | ```ts 38 | //app.config.ts 39 | import solidStartTypesafeRouterPlugin from 'solid-start-typesafe-routes-plugin'; 40 | defineConfig({ 41 | vite: { 42 | plugins: [solidStartTypesafeRouterPlugin()], 43 | }, 44 | }); 45 | ``` 46 | 47 | The plugin will create an `index.js` and `index.d.ts`the in `src/RouteManifest`. 48 | 49 | Layouts will be ignored. 50 | 51 | Updates automatically on 52 | 53 | 1. `pnpm build` 54 | 2. `pnpm dev` on startup of the dev server and when a file is `created/moved/deleted` in the `src/routes` directory 55 | 56 | Assuming this routes 57 | 58 | ``` 59 | src 60 | └─routes 61 | │ index.tsx 62 | │ about.tsx 63 | │ 64 | └─posts 65 | │ [slug].tsx 66 | │ 67 | └───multiple 68 | │ │ 69 | │ └───[first] 70 | │ │ 71 | │ └─[second] 72 | │ [third].tsx 73 | │ add.tsx 74 | │ 75 | └───auth(layout) 76 | [userId].tsx 77 | ``` 78 | 79 | You can get the routes like 80 | 81 | ```ts 82 | import { routes } from '~/RouteManifest'; 83 | 84 | routes().index; // => '/' 85 | routes().about.index; // => '/about' 86 | 87 | routes().posts.slug('hello-world').index; // => '/posts/hello-world' 88 | 89 | routes().multiple.first('a').second('b').third('c').index; // => '/multiple/a/b/c' 90 | routes().multiple.first('a').second('b').third('c').add.index; // => '/multiple/a/b/c/add' 91 | 92 | routes().auth.userId('xyz').index; // => '/auth/xyz' 93 | 94 | // Pass searchparams to routes 95 | routes({ q: 'apples' }).index; // => '/?q=apples' 96 | ``` 97 | 98 | So use it like 99 | 100 | ```tsx 101 | ... 102 | 103 | ... 104 | 105 | // ----------------------------------------- 106 | 107 | import { useNavigate } from '@solidjs/router'; 108 | 109 | const navigate = useNavigate(); 110 | navigate(routes({q:"hello"}).posts.index); 111 | 112 | // ----------------------------------------- 113 | 114 | export const login = action(async () => { 115 | 'use server' 116 | //... 117 | return redirect(routes().index, { revalidate:getUser.key }); 118 | }, "loginAction") 119 | ``` 120 | -------------------------------------------------------------------------------- /dev/test.txt: -------------------------------------------------------------------------------- 1 | [{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/(routeGroupAbout).tsx","pick":["default","$css"]},"path":"/(routeGroupAbout)","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/(routeGroupAbout).tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/[...404].tsx","pick":["default","$css"]},"path":"/*404","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/[...404].tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/auth(layout).tsx","pick":["default","$css"]},"path":"/auth(layout)","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/auth(layout).tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/index.tsx","pick":["default","$css"]},"path":"/","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/index.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/manifest.json.tsx","pick":["default","$css"]},"path":"/manifest.json","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/manifest.json.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/route-slash.tsx","pick":["default","$css"]},"path":"/route-slash","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/route-slash.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/(routeGroupAbout)/about.tsx","pick":["default","$css"]},"path":"/(routeGroupAbout)/about","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/(routeGroupAbout)/about.tsx"},{"page":false,"$GET":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/api/test.ts","pick":["GET"]},"$HEAD":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/api/test.ts","pick":["GET"]},"$POST":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/api/test.ts","pick":["POST"]},"path":"/api/test","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/api/test.ts"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/auth(layout)/abc.tsx","pick":["default","$css"]},"path":"/auth(layout)/abc","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/auth(layout)/abc.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/[slug].tsx","pick":["default","$css"]},"path":"/posts/:slug","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/[slug].tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/index.tsx","pick":["default","$css"]},"path":"/posts/","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/index.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo.tsx","pick":["default","$css"]},"path":"/posts/ooo","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/t.tsx","pick":["default","$css"]},"path":"/posts/t","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/t.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/z.tsx","pick":["default","$css"]},"path":"/posts/z","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/z.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/multiple/[third]/edit.tsx","pick":["default","$css"]},"path":"/multiple/:third/edit","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/multiple/[third]/edit.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo/index.tsx","pick":["default","$css"]},"path":"/posts/ooo/","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo/index.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo/p.tsx","pick":["default","$css"]},"path":"/posts/ooo/p","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo/p.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/multiple/[first]/[second]/[third].tsx","pick":["default","$css"]},"path":"/multiple/:first/:second/:third","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/multiple/[first]/[second]/[third].tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo/[[optional]]/index.tsx","pick":["default","$css"]},"path":"/posts/ooo/:optional?/","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo/[[optional]]/index.tsx"},{"page":true,"$component":{"src":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo/[[optional]]/test.tsx","pick":["default","$css"]},"path":"/posts/ooo/:optional?/test","filePath":"/Users/maddin/Sites/solid-start-typesafe-routes/dev/src/routes/posts/ooo/[[optional]]/test.tsx"}] -------------------------------------------------------------------------------- /src/routeManifest.ts: -------------------------------------------------------------------------------- 1 | import fs from 'fs'; 2 | import path, { resolve } from 'path'; 3 | import { getRoutes } from './utils'; 4 | type TreeNode = { 5 | type: 'static' | 'param' | 'optional'; 6 | index?: boolean; 7 | children: Record; 8 | }; 9 | 10 | type Tree = Record; 11 | 12 | // Ensure the .route directory exists 13 | function ensureRouteDirectoryExists(targertDir: string) { 14 | if (!fs.existsSync(targertDir)) { 15 | fs.mkdirSync(targertDir); 16 | } 17 | } 18 | 19 | // Function to build the route tree from segments 20 | function buildRouteTree(routes: string[]) { 21 | const tree: Tree = {}; 22 | 23 | routes.forEach(route => { 24 | const segments = route.split('/').filter(Boolean); // Ignore empty parts 25 | let currentNode: any = tree; 26 | 27 | segments.forEach((segment, index) => { 28 | // Prefeix numbers with _ => 29 | segment = segment.replace(/^(\:?\*?)([0-9]+)$/g, '$1_$2'); 30 | const isParam = segment.startsWith(':'); 31 | const isOptional = segment.endsWith('?'); 32 | const isLastPart = index === segments.length - 1; 33 | 34 | // Determine the key: parameterized routes or static segments 35 | let key = isParam ? segment.slice(1) : segment; 36 | key = isOptional ? key.slice(0, -1) : key; 37 | if (!currentNode[key]) { 38 | currentNode[key] = isParam 39 | ? { type: isOptional ? 'optional' : 'param', children: {} } 40 | : { type: 'static', children: {} }; 41 | } 42 | 43 | if (isLastPart) { 44 | currentNode[key].index = true; // Mark this as the final part of the route 45 | } 46 | 47 | currentNode = currentNode[key].children; // Traverse deeper 48 | }); 49 | }); 50 | 51 | return tree; 52 | } 53 | 54 | // Function to convert the route tree into the desired function string 55 | function buildRoutesFromTree(tree: Tree, parentPath = '', depth = 2) { 56 | const outputJS: string[] = []; 57 | const outputDTS: string[] = []; 58 | const indent = ' '.repeat(depth); 59 | 60 | for (const key in tree) { 61 | const node = tree[key]; 62 | //raw key "-" to camleCase 63 | const objectKey = key.replace(/[-\.](\w)/gi, g => 64 | g.length > 1 ? g[1]?.toUpperCase() + '' : '', 65 | ); 66 | if (!node) throw new Error('Node not found'); 67 | if (node.type === 'static') { 68 | const fullPath = `${parentPath}/${key}`; // Construct full path by appending the parent path 69 | 70 | // Traverse children for nested static routes 71 | if (Object.keys(node.children).length > 0) { 72 | outputJS.push(`${indent}${objectKey}: {`); 73 | outputDTS.push(`${indent}${objectKey}: {`); 74 | 75 | // Static route, if it's an index route 76 | if (node.index) { 77 | outputJS.push(`${indent} index: \`${fullPath}\${query}\`,`); 78 | outputDTS.push(`${indent} index: string;`); 79 | } 80 | 81 | const [contentJS, contentDTS] = buildRoutesFromTree(node.children, fullPath, depth + 1); 82 | if (contentJS) outputJS.push(contentJS); 83 | if (contentDTS) outputDTS.push(contentDTS); 84 | 85 | outputJS.push(`${indent}},`); 86 | outputDTS.push(`${indent}};`); 87 | } else { 88 | // dynamic tail 89 | outputJS.push(`${indent}${objectKey}: {index: \`${fullPath}\${query}\`},`); 90 | outputDTS.push(`${indent}${objectKey}: {index: string};`); 91 | } 92 | } 93 | 94 | if (node.type === 'param' || node.type === 'optional') { 95 | // Construct full path by appending the parent path 96 | const fullPath = 97 | node.type === 'param' 98 | ? `${parentPath}/\${${key}\}` 99 | : `${parentPath}\${${key} ? \`/\${${key}\}\` : ''}`; 100 | // Dynamic route parameter 101 | 102 | // Traverse children for nested dynamic routes 103 | if (Object.keys(node.children).length > 0) { 104 | outputJS.push(`${indent}${objectKey}: (${objectKey}) => ({`); 105 | outputDTS.push( 106 | `${indent}${objectKey}: (${objectKey}${ 107 | node.type === 'optional' ? '?' : '' 108 | }:string|number) => ({`, 109 | ); 110 | 111 | if (node.index) { 112 | outputJS.push(`${indent} index: \`${fullPath}\${query}\`,`); 113 | outputDTS.push(`${indent} index: string;`); 114 | } 115 | 116 | const [contentJS, contentDTS] = buildRoutesFromTree(node.children, fullPath, depth + 1); 117 | if (contentJS) outputJS.push(contentJS); 118 | if (contentDTS) outputDTS.push(contentDTS); 119 | 120 | outputJS.push(`${indent}}),`); 121 | outputDTS.push(`${indent}});`); 122 | } else { 123 | // dynamic tail 124 | outputJS.push( 125 | `${indent}${objectKey}: (${objectKey}) => ({index: \`${fullPath}\${query}\`}),`, 126 | ); 127 | outputDTS.push(`${indent}${objectKey}: (${objectKey}:string|number) => ({index: string});`); 128 | } 129 | } 130 | } 131 | 132 | return [outputJS.join('\n'), outputDTS.join('\n')]; 133 | } 134 | 135 | // Function to generate the entire Routes function 136 | async function generateRoutesFunction(customRoutes: string[]) { 137 | const fileRoutes = await getRoutes(); 138 | const routes = [...fileRoutes, ...customRoutes]; 139 | const tree = buildRouteTree(routes); // Build the tree from routes 140 | 141 | const outputJS = []; 142 | const outputDTS = []; 143 | 144 | outputJS.push('/* eslint-disable */'); 145 | outputJS.push('// ################################################'); 146 | outputJS.push('// ### THIS FILE IS AUTOGENERATED - DO NOT EDIT ###'); 147 | outputJS.push('// ################################################'); 148 | outputJS.push('export function routes(searchParams) {'); 149 | outputJS.push( 150 | " const query = searchParams ? '?' + new URLSearchParams(searchParams).toString() : '';", 151 | ); 152 | outputJS.push(' return {'); 153 | // Add top-level index route ("/") 154 | outputJS.push(' index: `/${query}` ,'); 155 | 156 | outputDTS.push('// ################################################'); 157 | outputDTS.push('// ### THIS FILE IS AUTOGENERATED - DO NOT EDIT ###'); 158 | outputDTS.push('// ################################################'); 159 | outputDTS.push('export declare function routes(searchParams?:Record):{'); 160 | outputDTS.push(' index: string;'); 161 | 162 | // Generate routes from the tree 163 | const [contentJS, contentDTS] = buildRoutesFromTree(tree); 164 | outputJS.push(contentJS); // Convert tree to function string 165 | outputDTS.push(contentDTS); 166 | 167 | outputJS.push(' };'); 168 | outputJS.push('}'); 169 | 170 | outputDTS.push('};'); 171 | 172 | return [outputJS.join('\n'), outputDTS.join('\n')]; 173 | } 174 | 175 | // Function to write the JS file 176 | async function generateJSFile(outDir: string, routes: string[]) { 177 | const jsFilePath = path.join(outDir, 'index.js'); 178 | const dtsFilePath = path.join(outDir, 'index.d.ts'); 179 | 180 | const [routesFunctionString, typeDeclarationString] = await generateRoutesFunction(routes); 181 | 182 | if (!routesFunctionString) throw new Error('Could not create routes function'); 183 | fs.writeFileSync(jsFilePath, routesFunctionString, 'utf-8'); 184 | 185 | if (!typeDeclarationString) 186 | throw new Error('Could not create type declaration for routes function'); 187 | fs.writeFileSync(dtsFilePath, typeDeclarationString, 'utf-8'); 188 | } 189 | 190 | // Main function to generate the route manifest 191 | async function generateRouteManifest(outDir: string, routes: string[] = []) { 192 | console.log('###############', 'generating', '###############'); 193 | ensureRouteDirectoryExists(outDir); 194 | await generateJSFile(outDir, routes); 195 | } 196 | 197 | let timer: NodeJS.Timeout; 198 | async function debouncedGenerateRouteManifest(outDir: string, routes: string[] = []) { 199 | if (timer) clearTimeout(timer); 200 | timer = setTimeout(() => { 201 | generateRouteManifest(outDir, routes); 202 | }, 1000); 203 | } 204 | 205 | export { generateRouteManifest, generateRoutesFunction, debouncedGenerateRouteManifest }; 206 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@changesets/cli': 12 | specifier: ^2.28.1 13 | version: 2.28.1 14 | '@types/node': 15 | specifier: ^22.13.4 16 | version: 22.13.4 17 | '@typescript-eslint/eslint-plugin': 18 | specifier: ^8.24.1 19 | version: 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) 20 | '@typescript-eslint/parser': 21 | specifier: ^8.24.1 22 | version: 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) 23 | concurrently: 24 | specifier: ^9.1.2 25 | version: 9.1.2 26 | esbuild: 27 | specifier: ^0.24.2 28 | version: 0.24.2 29 | eslint: 30 | specifier: ^9.20.1 31 | version: 9.20.1(jiti@2.4.2) 32 | eslint-plugin-eslint-comments: 33 | specifier: ^3.2.0 34 | version: 3.2.0(eslint@9.20.1(jiti@2.4.2)) 35 | eslint-plugin-no-only-tests: 36 | specifier: ^3.3.0 37 | version: 3.3.0 38 | jsdom: 39 | specifier: ^25.0.1 40 | version: 25.0.1 41 | prettier: 42 | specifier: 3.3.3 43 | version: 3.3.3 44 | solid-js: 45 | specifier: ^1.9.4 46 | version: 1.9.4 47 | tsup: 48 | specifier: ^8.3.6 49 | version: 8.3.6(jiti@2.4.2)(postcss@8.5.3)(typescript@5.7.3)(yaml@2.5.1) 50 | typescript: 51 | specifier: ^5.7.3 52 | version: 5.7.3 53 | vite: 54 | specifier: ^6.1.1 55 | version: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.39.0)(yaml@2.5.1) 56 | vitest: 57 | specifier: ^3.0.6 58 | version: 3.0.6(@types/node@22.13.4)(jiti@2.4.2)(jsdom@25.0.1)(terser@5.39.0)(yaml@2.5.1) 59 | 60 | packages: 61 | 62 | '@asamuzakjp/css-color@2.8.3': 63 | resolution: {integrity: sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==} 64 | 65 | '@babel/runtime@7.26.9': 66 | resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==} 67 | engines: {node: '>=6.9.0'} 68 | 69 | '@changesets/apply-release-plan@7.0.10': 70 | resolution: {integrity: sha512-wNyeIJ3yDsVspYvHnEz1xQDq18D9ifed3lI+wxRQRK4pArUcuHgCTrHv0QRnnwjhVCQACxZ+CBih3wgOct6UXw==} 71 | 72 | '@changesets/assemble-release-plan@6.0.6': 73 | resolution: {integrity: sha512-Frkj8hWJ1FRZiY3kzVCKzS0N5mMwWKwmv9vpam7vt8rZjLL1JMthdh6pSDVSPumHPshTTkKZ0VtNbE0cJHZZUg==} 74 | 75 | '@changesets/changelog-git@0.2.1': 76 | resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} 77 | 78 | '@changesets/cli@2.28.1': 79 | resolution: {integrity: sha512-PiIyGRmSc6JddQJe/W1hRPjiN4VrMvb2VfQ6Uydy2punBioQrsxppyG5WafinKcW1mT0jOe/wU4k9Zy5ff21AA==} 80 | hasBin: true 81 | 82 | '@changesets/config@3.1.1': 83 | resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==} 84 | 85 | '@changesets/errors@0.2.0': 86 | resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} 87 | 88 | '@changesets/get-dependents-graph@2.1.3': 89 | resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} 90 | 91 | '@changesets/get-release-plan@4.0.8': 92 | resolution: {integrity: sha512-MM4mq2+DQU1ZT7nqxnpveDMTkMBLnwNX44cX7NSxlXmr7f8hO6/S2MXNiXG54uf/0nYnefv0cfy4Czf/ZL/EKQ==} 93 | 94 | '@changesets/get-version-range-type@0.4.0': 95 | resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} 96 | 97 | '@changesets/git@3.0.2': 98 | resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==} 99 | 100 | '@changesets/logger@0.1.1': 101 | resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} 102 | 103 | '@changesets/parse@0.4.1': 104 | resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==} 105 | 106 | '@changesets/pre@2.0.2': 107 | resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} 108 | 109 | '@changesets/read@0.6.3': 110 | resolution: {integrity: sha512-9H4p/OuJ3jXEUTjaVGdQEhBdqoT2cO5Ts95JTFsQyawmKzpL8FnIeJSyhTDPW1MBRDnwZlHFEM9SpPwJDY5wIg==} 111 | 112 | '@changesets/should-skip-package@0.1.2': 113 | resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} 114 | 115 | '@changesets/types@4.1.0': 116 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} 117 | 118 | '@changesets/types@6.1.0': 119 | resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} 120 | 121 | '@changesets/write@0.4.0': 122 | resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} 123 | 124 | '@csstools/color-helpers@5.0.1': 125 | resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} 126 | engines: {node: '>=18'} 127 | 128 | '@csstools/css-calc@2.1.1': 129 | resolution: {integrity: sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==} 130 | engines: {node: '>=18'} 131 | peerDependencies: 132 | '@csstools/css-parser-algorithms': ^3.0.4 133 | '@csstools/css-tokenizer': ^3.0.3 134 | 135 | '@csstools/css-color-parser@3.0.7': 136 | resolution: {integrity: sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==} 137 | engines: {node: '>=18'} 138 | peerDependencies: 139 | '@csstools/css-parser-algorithms': ^3.0.4 140 | '@csstools/css-tokenizer': ^3.0.3 141 | 142 | '@csstools/css-parser-algorithms@3.0.4': 143 | resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} 144 | engines: {node: '>=18'} 145 | peerDependencies: 146 | '@csstools/css-tokenizer': ^3.0.3 147 | 148 | '@csstools/css-tokenizer@3.0.3': 149 | resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} 150 | engines: {node: '>=18'} 151 | 152 | '@esbuild/aix-ppc64@0.24.2': 153 | resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} 154 | engines: {node: '>=18'} 155 | cpu: [ppc64] 156 | os: [aix] 157 | 158 | '@esbuild/android-arm64@0.24.2': 159 | resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} 160 | engines: {node: '>=18'} 161 | cpu: [arm64] 162 | os: [android] 163 | 164 | '@esbuild/android-arm@0.24.2': 165 | resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} 166 | engines: {node: '>=18'} 167 | cpu: [arm] 168 | os: [android] 169 | 170 | '@esbuild/android-x64@0.24.2': 171 | resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} 172 | engines: {node: '>=18'} 173 | cpu: [x64] 174 | os: [android] 175 | 176 | '@esbuild/darwin-arm64@0.24.2': 177 | resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} 178 | engines: {node: '>=18'} 179 | cpu: [arm64] 180 | os: [darwin] 181 | 182 | '@esbuild/darwin-x64@0.24.2': 183 | resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} 184 | engines: {node: '>=18'} 185 | cpu: [x64] 186 | os: [darwin] 187 | 188 | '@esbuild/freebsd-arm64@0.24.2': 189 | resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} 190 | engines: {node: '>=18'} 191 | cpu: [arm64] 192 | os: [freebsd] 193 | 194 | '@esbuild/freebsd-x64@0.24.2': 195 | resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} 196 | engines: {node: '>=18'} 197 | cpu: [x64] 198 | os: [freebsd] 199 | 200 | '@esbuild/linux-arm64@0.24.2': 201 | resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} 202 | engines: {node: '>=18'} 203 | cpu: [arm64] 204 | os: [linux] 205 | 206 | '@esbuild/linux-arm@0.24.2': 207 | resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} 208 | engines: {node: '>=18'} 209 | cpu: [arm] 210 | os: [linux] 211 | 212 | '@esbuild/linux-ia32@0.24.2': 213 | resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} 214 | engines: {node: '>=18'} 215 | cpu: [ia32] 216 | os: [linux] 217 | 218 | '@esbuild/linux-loong64@0.24.2': 219 | resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} 220 | engines: {node: '>=18'} 221 | cpu: [loong64] 222 | os: [linux] 223 | 224 | '@esbuild/linux-mips64el@0.24.2': 225 | resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} 226 | engines: {node: '>=18'} 227 | cpu: [mips64el] 228 | os: [linux] 229 | 230 | '@esbuild/linux-ppc64@0.24.2': 231 | resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} 232 | engines: {node: '>=18'} 233 | cpu: [ppc64] 234 | os: [linux] 235 | 236 | '@esbuild/linux-riscv64@0.24.2': 237 | resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} 238 | engines: {node: '>=18'} 239 | cpu: [riscv64] 240 | os: [linux] 241 | 242 | '@esbuild/linux-s390x@0.24.2': 243 | resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} 244 | engines: {node: '>=18'} 245 | cpu: [s390x] 246 | os: [linux] 247 | 248 | '@esbuild/linux-x64@0.24.2': 249 | resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} 250 | engines: {node: '>=18'} 251 | cpu: [x64] 252 | os: [linux] 253 | 254 | '@esbuild/netbsd-arm64@0.24.2': 255 | resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} 256 | engines: {node: '>=18'} 257 | cpu: [arm64] 258 | os: [netbsd] 259 | 260 | '@esbuild/netbsd-x64@0.24.2': 261 | resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} 262 | engines: {node: '>=18'} 263 | cpu: [x64] 264 | os: [netbsd] 265 | 266 | '@esbuild/openbsd-arm64@0.24.2': 267 | resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} 268 | engines: {node: '>=18'} 269 | cpu: [arm64] 270 | os: [openbsd] 271 | 272 | '@esbuild/openbsd-x64@0.24.2': 273 | resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} 274 | engines: {node: '>=18'} 275 | cpu: [x64] 276 | os: [openbsd] 277 | 278 | '@esbuild/sunos-x64@0.24.2': 279 | resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} 280 | engines: {node: '>=18'} 281 | cpu: [x64] 282 | os: [sunos] 283 | 284 | '@esbuild/win32-arm64@0.24.2': 285 | resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} 286 | engines: {node: '>=18'} 287 | cpu: [arm64] 288 | os: [win32] 289 | 290 | '@esbuild/win32-ia32@0.24.2': 291 | resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} 292 | engines: {node: '>=18'} 293 | cpu: [ia32] 294 | os: [win32] 295 | 296 | '@esbuild/win32-x64@0.24.2': 297 | resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} 298 | engines: {node: '>=18'} 299 | cpu: [x64] 300 | os: [win32] 301 | 302 | '@eslint-community/eslint-utils@4.4.1': 303 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} 304 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 305 | peerDependencies: 306 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 307 | 308 | '@eslint-community/regexpp@4.12.1': 309 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 310 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 311 | 312 | '@eslint/config-array@0.19.2': 313 | resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} 314 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 315 | 316 | '@eslint/core@0.11.0': 317 | resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} 318 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 319 | 320 | '@eslint/eslintrc@3.2.0': 321 | resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} 322 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 323 | 324 | '@eslint/js@9.20.0': 325 | resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} 326 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 327 | 328 | '@eslint/object-schema@2.1.6': 329 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} 330 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 331 | 332 | '@eslint/plugin-kit@0.2.6': 333 | resolution: {integrity: sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==} 334 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 335 | 336 | '@humanfs/core@0.19.1': 337 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 338 | engines: {node: '>=18.18.0'} 339 | 340 | '@humanfs/node@0.16.6': 341 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} 342 | engines: {node: '>=18.18.0'} 343 | 344 | '@humanwhocodes/module-importer@1.0.1': 345 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 346 | engines: {node: '>=12.22'} 347 | 348 | '@humanwhocodes/retry@0.3.1': 349 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} 350 | engines: {node: '>=18.18'} 351 | 352 | '@humanwhocodes/retry@0.4.2': 353 | resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} 354 | engines: {node: '>=18.18'} 355 | 356 | '@isaacs/cliui@8.0.2': 357 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 358 | engines: {node: '>=12'} 359 | 360 | '@jridgewell/gen-mapping@0.3.8': 361 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 362 | engines: {node: '>=6.0.0'} 363 | 364 | '@jridgewell/resolve-uri@3.1.2': 365 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 366 | engines: {node: '>=6.0.0'} 367 | 368 | '@jridgewell/set-array@1.2.1': 369 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 370 | engines: {node: '>=6.0.0'} 371 | 372 | '@jridgewell/source-map@0.3.6': 373 | resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} 374 | 375 | '@jridgewell/sourcemap-codec@1.5.0': 376 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 377 | 378 | '@jridgewell/trace-mapping@0.3.25': 379 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 380 | 381 | '@manypkg/find-root@1.1.0': 382 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} 383 | 384 | '@manypkg/get-packages@1.1.3': 385 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} 386 | 387 | '@nodelib/fs.scandir@2.1.5': 388 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 389 | engines: {node: '>= 8'} 390 | 391 | '@nodelib/fs.stat@2.0.5': 392 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 393 | engines: {node: '>= 8'} 394 | 395 | '@nodelib/fs.walk@1.2.8': 396 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 397 | engines: {node: '>= 8'} 398 | 399 | '@pkgjs/parseargs@0.11.0': 400 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 401 | engines: {node: '>=14'} 402 | 403 | '@rollup/rollup-android-arm-eabi@4.34.8': 404 | resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==} 405 | cpu: [arm] 406 | os: [android] 407 | 408 | '@rollup/rollup-android-arm64@4.34.8': 409 | resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==} 410 | cpu: [arm64] 411 | os: [android] 412 | 413 | '@rollup/rollup-darwin-arm64@4.34.8': 414 | resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==} 415 | cpu: [arm64] 416 | os: [darwin] 417 | 418 | '@rollup/rollup-darwin-x64@4.34.8': 419 | resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==} 420 | cpu: [x64] 421 | os: [darwin] 422 | 423 | '@rollup/rollup-freebsd-arm64@4.34.8': 424 | resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==} 425 | cpu: [arm64] 426 | os: [freebsd] 427 | 428 | '@rollup/rollup-freebsd-x64@4.34.8': 429 | resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==} 430 | cpu: [x64] 431 | os: [freebsd] 432 | 433 | '@rollup/rollup-linux-arm-gnueabihf@4.34.8': 434 | resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} 435 | cpu: [arm] 436 | os: [linux] 437 | 438 | '@rollup/rollup-linux-arm-musleabihf@4.34.8': 439 | resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} 440 | cpu: [arm] 441 | os: [linux] 442 | 443 | '@rollup/rollup-linux-arm64-gnu@4.34.8': 444 | resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} 445 | cpu: [arm64] 446 | os: [linux] 447 | 448 | '@rollup/rollup-linux-arm64-musl@4.34.8': 449 | resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} 450 | cpu: [arm64] 451 | os: [linux] 452 | 453 | '@rollup/rollup-linux-loongarch64-gnu@4.34.8': 454 | resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} 455 | cpu: [loong64] 456 | os: [linux] 457 | 458 | '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': 459 | resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} 460 | cpu: [ppc64] 461 | os: [linux] 462 | 463 | '@rollup/rollup-linux-riscv64-gnu@4.34.8': 464 | resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} 465 | cpu: [riscv64] 466 | os: [linux] 467 | 468 | '@rollup/rollup-linux-s390x-gnu@4.34.8': 469 | resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} 470 | cpu: [s390x] 471 | os: [linux] 472 | 473 | '@rollup/rollup-linux-x64-gnu@4.34.8': 474 | resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} 475 | cpu: [x64] 476 | os: [linux] 477 | 478 | '@rollup/rollup-linux-x64-musl@4.34.8': 479 | resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} 480 | cpu: [x64] 481 | os: [linux] 482 | 483 | '@rollup/rollup-win32-arm64-msvc@4.34.8': 484 | resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} 485 | cpu: [arm64] 486 | os: [win32] 487 | 488 | '@rollup/rollup-win32-ia32-msvc@4.34.8': 489 | resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==} 490 | cpu: [ia32] 491 | os: [win32] 492 | 493 | '@rollup/rollup-win32-x64-msvc@4.34.8': 494 | resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==} 495 | cpu: [x64] 496 | os: [win32] 497 | 498 | '@types/estree@1.0.6': 499 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 500 | 501 | '@types/json-schema@7.0.15': 502 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 503 | 504 | '@types/node@12.20.55': 505 | resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} 506 | 507 | '@types/node@22.13.4': 508 | resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} 509 | 510 | '@typescript-eslint/eslint-plugin@8.24.1': 511 | resolution: {integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==} 512 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 513 | peerDependencies: 514 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 515 | eslint: ^8.57.0 || ^9.0.0 516 | typescript: '>=4.8.4 <5.8.0' 517 | 518 | '@typescript-eslint/parser@8.24.1': 519 | resolution: {integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==} 520 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 521 | peerDependencies: 522 | eslint: ^8.57.0 || ^9.0.0 523 | typescript: '>=4.8.4 <5.8.0' 524 | 525 | '@typescript-eslint/scope-manager@8.24.1': 526 | resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==} 527 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 528 | 529 | '@typescript-eslint/type-utils@8.24.1': 530 | resolution: {integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==} 531 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 532 | peerDependencies: 533 | eslint: ^8.57.0 || ^9.0.0 534 | typescript: '>=4.8.4 <5.8.0' 535 | 536 | '@typescript-eslint/types@8.24.1': 537 | resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==} 538 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 539 | 540 | '@typescript-eslint/typescript-estree@8.24.1': 541 | resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==} 542 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 543 | peerDependencies: 544 | typescript: '>=4.8.4 <5.8.0' 545 | 546 | '@typescript-eslint/utils@8.24.1': 547 | resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==} 548 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 549 | peerDependencies: 550 | eslint: ^8.57.0 || ^9.0.0 551 | typescript: '>=4.8.4 <5.8.0' 552 | 553 | '@typescript-eslint/visitor-keys@8.24.1': 554 | resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==} 555 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 556 | 557 | '@vitest/expect@3.0.6': 558 | resolution: {integrity: sha512-zBduHf/ja7/QRX4HdP1DSq5XrPgdN+jzLOwaTq/0qZjYfgETNFCKf9nOAp2j3hmom3oTbczuUzrzg9Hafh7hNg==} 559 | 560 | '@vitest/mocker@3.0.6': 561 | resolution: {integrity: sha512-KPztr4/tn7qDGZfqlSPQoF2VgJcKxnDNhmfR3VgZ6Fy1bO8T9Fc1stUiTXtqz0yG24VpD00pZP5f8EOFknjNuQ==} 562 | peerDependencies: 563 | msw: ^2.4.9 564 | vite: ^5.0.0 || ^6.0.0 565 | peerDependenciesMeta: 566 | msw: 567 | optional: true 568 | vite: 569 | optional: true 570 | 571 | '@vitest/pretty-format@3.0.6': 572 | resolution: {integrity: sha512-Zyctv3dbNL+67qtHfRnUE/k8qxduOamRfAL1BurEIQSyOEFffoMvx2pnDSSbKAAVxY0Ej2J/GH2dQKI0W2JyVg==} 573 | 574 | '@vitest/runner@3.0.6': 575 | resolution: {integrity: sha512-JopP4m/jGoaG1+CBqubV/5VMbi7L+NQCJTu1J1Pf6YaUbk7bZtaq5CX7p+8sY64Sjn1UQ1XJparHfcvTTdu9cA==} 576 | 577 | '@vitest/snapshot@3.0.6': 578 | resolution: {integrity: sha512-qKSmxNQwT60kNwwJHMVwavvZsMGXWmngD023OHSgn873pV0lylK7dwBTfYP7e4URy5NiBCHHiQGA9DHkYkqRqg==} 579 | 580 | '@vitest/spy@3.0.6': 581 | resolution: {integrity: sha512-HfOGx/bXtjy24fDlTOpgiAEJbRfFxoX3zIGagCqACkFKKZ/TTOE6gYMKXlqecvxEndKFuNHcHqP081ggZ2yM0Q==} 582 | 583 | '@vitest/utils@3.0.6': 584 | resolution: {integrity: sha512-18ktZpf4GQFTbf9jK543uspU03Q2qya7ZGya5yiZ0Gx0nnnalBvd5ZBislbl2EhLjM8A8rt4OilqKG7QwcGkvQ==} 585 | 586 | acorn-jsx@5.3.2: 587 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 588 | peerDependencies: 589 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 590 | 591 | acorn@8.14.0: 592 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 593 | engines: {node: '>=0.4.0'} 594 | hasBin: true 595 | 596 | agent-base@7.1.3: 597 | resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} 598 | engines: {node: '>= 14'} 599 | 600 | ajv@6.12.6: 601 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 602 | 603 | ansi-colors@4.1.3: 604 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 605 | engines: {node: '>=6'} 606 | 607 | ansi-regex@5.0.1: 608 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 609 | engines: {node: '>=8'} 610 | 611 | ansi-regex@6.1.0: 612 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 613 | engines: {node: '>=12'} 614 | 615 | ansi-styles@4.3.0: 616 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 617 | engines: {node: '>=8'} 618 | 619 | ansi-styles@6.2.1: 620 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 621 | engines: {node: '>=12'} 622 | 623 | any-promise@1.3.0: 624 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 625 | 626 | argparse@1.0.10: 627 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 628 | 629 | argparse@2.0.1: 630 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 631 | 632 | array-union@2.1.0: 633 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 634 | engines: {node: '>=8'} 635 | 636 | assertion-error@2.0.1: 637 | resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 638 | engines: {node: '>=12'} 639 | 640 | asynckit@0.4.0: 641 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 642 | 643 | balanced-match@1.0.2: 644 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 645 | 646 | better-path-resolve@1.0.0: 647 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} 648 | engines: {node: '>=4'} 649 | 650 | brace-expansion@1.1.11: 651 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 652 | 653 | brace-expansion@2.0.1: 654 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 655 | 656 | braces@3.0.3: 657 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 658 | engines: {node: '>=8'} 659 | 660 | buffer-from@1.1.2: 661 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 662 | 663 | bundle-require@5.1.0: 664 | resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} 665 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 666 | peerDependencies: 667 | esbuild: '>=0.18' 668 | 669 | cac@6.7.14: 670 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 671 | engines: {node: '>=8'} 672 | 673 | call-bind-apply-helpers@1.0.2: 674 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 675 | engines: {node: '>= 0.4'} 676 | 677 | callsites@3.1.0: 678 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 679 | engines: {node: '>=6'} 680 | 681 | chai@5.2.0: 682 | resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} 683 | engines: {node: '>=12'} 684 | 685 | chalk@4.1.2: 686 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 687 | engines: {node: '>=10'} 688 | 689 | chardet@0.7.0: 690 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 691 | 692 | check-error@2.1.1: 693 | resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} 694 | engines: {node: '>= 16'} 695 | 696 | chokidar@4.0.3: 697 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 698 | engines: {node: '>= 14.16.0'} 699 | 700 | ci-info@3.9.0: 701 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 702 | engines: {node: '>=8'} 703 | 704 | cliui@8.0.1: 705 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 706 | engines: {node: '>=12'} 707 | 708 | color-convert@2.0.1: 709 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 710 | engines: {node: '>=7.0.0'} 711 | 712 | color-name@1.1.4: 713 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 714 | 715 | combined-stream@1.0.8: 716 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 717 | engines: {node: '>= 0.8'} 718 | 719 | commander@2.20.3: 720 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 721 | 722 | commander@4.1.1: 723 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 724 | engines: {node: '>= 6'} 725 | 726 | concat-map@0.0.1: 727 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 728 | 729 | concurrently@9.1.2: 730 | resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==} 731 | engines: {node: '>=18'} 732 | hasBin: true 733 | 734 | consola@3.4.0: 735 | resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} 736 | engines: {node: ^14.18.0 || >=16.10.0} 737 | 738 | cross-spawn@7.0.6: 739 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 740 | engines: {node: '>= 8'} 741 | 742 | cssstyle@4.2.1: 743 | resolution: {integrity: sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==} 744 | engines: {node: '>=18'} 745 | 746 | csstype@3.1.3: 747 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 748 | 749 | data-urls@5.0.0: 750 | resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 751 | engines: {node: '>=18'} 752 | 753 | debug@4.4.0: 754 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 755 | engines: {node: '>=6.0'} 756 | peerDependencies: 757 | supports-color: '*' 758 | peerDependenciesMeta: 759 | supports-color: 760 | optional: true 761 | 762 | decimal.js@10.5.0: 763 | resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} 764 | 765 | deep-eql@5.0.2: 766 | resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} 767 | engines: {node: '>=6'} 768 | 769 | deep-is@0.1.4: 770 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 771 | 772 | delayed-stream@1.0.0: 773 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 774 | engines: {node: '>=0.4.0'} 775 | 776 | detect-indent@6.1.0: 777 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 778 | engines: {node: '>=8'} 779 | 780 | dir-glob@3.0.1: 781 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 782 | engines: {node: '>=8'} 783 | 784 | dunder-proto@1.0.1: 785 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 786 | engines: {node: '>= 0.4'} 787 | 788 | eastasianwidth@0.2.0: 789 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 790 | 791 | emoji-regex@8.0.0: 792 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 793 | 794 | emoji-regex@9.2.2: 795 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 796 | 797 | enquirer@2.4.1: 798 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} 799 | engines: {node: '>=8.6'} 800 | 801 | entities@4.5.0: 802 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 803 | engines: {node: '>=0.12'} 804 | 805 | es-define-property@1.0.1: 806 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 807 | engines: {node: '>= 0.4'} 808 | 809 | es-errors@1.3.0: 810 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 811 | engines: {node: '>= 0.4'} 812 | 813 | es-module-lexer@1.6.0: 814 | resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} 815 | 816 | es-object-atoms@1.1.1: 817 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 818 | engines: {node: '>= 0.4'} 819 | 820 | es-set-tostringtag@2.1.0: 821 | resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 822 | engines: {node: '>= 0.4'} 823 | 824 | esbuild@0.24.2: 825 | resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} 826 | engines: {node: '>=18'} 827 | hasBin: true 828 | 829 | escalade@3.2.0: 830 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 831 | engines: {node: '>=6'} 832 | 833 | escape-string-regexp@1.0.5: 834 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 835 | engines: {node: '>=0.8.0'} 836 | 837 | escape-string-regexp@4.0.0: 838 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 839 | engines: {node: '>=10'} 840 | 841 | eslint-plugin-eslint-comments@3.2.0: 842 | resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} 843 | engines: {node: '>=6.5.0'} 844 | peerDependencies: 845 | eslint: '>=4.19.1' 846 | 847 | eslint-plugin-no-only-tests@3.3.0: 848 | resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} 849 | engines: {node: '>=5.0.0'} 850 | 851 | eslint-scope@8.2.0: 852 | resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} 853 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 854 | 855 | eslint-visitor-keys@3.4.3: 856 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 857 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 858 | 859 | eslint-visitor-keys@4.2.0: 860 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 861 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 862 | 863 | eslint@9.20.1: 864 | resolution: {integrity: sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==} 865 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 866 | hasBin: true 867 | peerDependencies: 868 | jiti: '*' 869 | peerDependenciesMeta: 870 | jiti: 871 | optional: true 872 | 873 | espree@10.3.0: 874 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} 875 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 876 | 877 | esprima@4.0.1: 878 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 879 | engines: {node: '>=4'} 880 | hasBin: true 881 | 882 | esquery@1.6.0: 883 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 884 | engines: {node: '>=0.10'} 885 | 886 | esrecurse@4.3.0: 887 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 888 | engines: {node: '>=4.0'} 889 | 890 | estraverse@5.3.0: 891 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 892 | engines: {node: '>=4.0'} 893 | 894 | estree-walker@3.0.3: 895 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 896 | 897 | esutils@2.0.3: 898 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 899 | engines: {node: '>=0.10.0'} 900 | 901 | expect-type@1.1.0: 902 | resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} 903 | engines: {node: '>=12.0.0'} 904 | 905 | extendable-error@0.1.7: 906 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} 907 | 908 | external-editor@3.1.0: 909 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 910 | engines: {node: '>=4'} 911 | 912 | fast-deep-equal@3.1.3: 913 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 914 | 915 | fast-glob@3.3.3: 916 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 917 | engines: {node: '>=8.6.0'} 918 | 919 | fast-json-stable-stringify@2.1.0: 920 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 921 | 922 | fast-levenshtein@2.0.6: 923 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 924 | 925 | fastq@1.19.0: 926 | resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} 927 | 928 | fdir@6.4.3: 929 | resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} 930 | peerDependencies: 931 | picomatch: ^3 || ^4 932 | peerDependenciesMeta: 933 | picomatch: 934 | optional: true 935 | 936 | file-entry-cache@8.0.0: 937 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 938 | engines: {node: '>=16.0.0'} 939 | 940 | fill-range@7.1.1: 941 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 942 | engines: {node: '>=8'} 943 | 944 | find-up@4.1.0: 945 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 946 | engines: {node: '>=8'} 947 | 948 | find-up@5.0.0: 949 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 950 | engines: {node: '>=10'} 951 | 952 | flat-cache@4.0.1: 953 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 954 | engines: {node: '>=16'} 955 | 956 | flatted@3.3.3: 957 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 958 | 959 | foreground-child@3.3.0: 960 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 961 | engines: {node: '>=14'} 962 | 963 | form-data@4.0.2: 964 | resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} 965 | engines: {node: '>= 6'} 966 | 967 | fs-extra@7.0.1: 968 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 969 | engines: {node: '>=6 <7 || >=8'} 970 | 971 | fs-extra@8.1.0: 972 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 973 | engines: {node: '>=6 <7 || >=8'} 974 | 975 | fsevents@2.3.3: 976 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 977 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 978 | os: [darwin] 979 | 980 | function-bind@1.1.2: 981 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 982 | 983 | get-caller-file@2.0.5: 984 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 985 | engines: {node: 6.* || 8.* || >= 10.*} 986 | 987 | get-intrinsic@1.2.7: 988 | resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} 989 | engines: {node: '>= 0.4'} 990 | 991 | get-proto@1.0.1: 992 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 993 | engines: {node: '>= 0.4'} 994 | 995 | glob-parent@5.1.2: 996 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 997 | engines: {node: '>= 6'} 998 | 999 | glob-parent@6.0.2: 1000 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1001 | engines: {node: '>=10.13.0'} 1002 | 1003 | glob@10.4.5: 1004 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1005 | hasBin: true 1006 | 1007 | globals@14.0.0: 1008 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 1009 | engines: {node: '>=18'} 1010 | 1011 | globby@11.1.0: 1012 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1013 | engines: {node: '>=10'} 1014 | 1015 | gopd@1.2.0: 1016 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 1017 | engines: {node: '>= 0.4'} 1018 | 1019 | graceful-fs@4.2.11: 1020 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1021 | 1022 | graphemer@1.4.0: 1023 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1024 | 1025 | has-flag@4.0.0: 1026 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1027 | engines: {node: '>=8'} 1028 | 1029 | has-symbols@1.1.0: 1030 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 1031 | engines: {node: '>= 0.4'} 1032 | 1033 | has-tostringtag@1.0.2: 1034 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1035 | engines: {node: '>= 0.4'} 1036 | 1037 | hasown@2.0.2: 1038 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1039 | engines: {node: '>= 0.4'} 1040 | 1041 | html-encoding-sniffer@4.0.0: 1042 | resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 1043 | engines: {node: '>=18'} 1044 | 1045 | http-proxy-agent@7.0.2: 1046 | resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 1047 | engines: {node: '>= 14'} 1048 | 1049 | https-proxy-agent@7.0.6: 1050 | resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 1051 | engines: {node: '>= 14'} 1052 | 1053 | human-id@4.1.1: 1054 | resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} 1055 | hasBin: true 1056 | 1057 | iconv-lite@0.4.24: 1058 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1059 | engines: {node: '>=0.10.0'} 1060 | 1061 | iconv-lite@0.6.3: 1062 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1063 | engines: {node: '>=0.10.0'} 1064 | 1065 | ignore@5.3.2: 1066 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1067 | engines: {node: '>= 4'} 1068 | 1069 | import-fresh@3.3.1: 1070 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 1071 | engines: {node: '>=6'} 1072 | 1073 | imurmurhash@0.1.4: 1074 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1075 | engines: {node: '>=0.8.19'} 1076 | 1077 | is-extglob@2.1.1: 1078 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1079 | engines: {node: '>=0.10.0'} 1080 | 1081 | is-fullwidth-code-point@3.0.0: 1082 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1083 | engines: {node: '>=8'} 1084 | 1085 | is-glob@4.0.3: 1086 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1087 | engines: {node: '>=0.10.0'} 1088 | 1089 | is-number@7.0.0: 1090 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1091 | engines: {node: '>=0.12.0'} 1092 | 1093 | is-potential-custom-element-name@1.0.1: 1094 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 1095 | 1096 | is-subdir@1.2.0: 1097 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} 1098 | engines: {node: '>=4'} 1099 | 1100 | is-windows@1.0.2: 1101 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 1102 | engines: {node: '>=0.10.0'} 1103 | 1104 | isexe@2.0.0: 1105 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1106 | 1107 | jackspeak@3.4.3: 1108 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1109 | 1110 | jiti@2.4.2: 1111 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} 1112 | hasBin: true 1113 | 1114 | joycon@3.1.1: 1115 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1116 | engines: {node: '>=10'} 1117 | 1118 | js-yaml@3.14.1: 1119 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1120 | hasBin: true 1121 | 1122 | js-yaml@4.1.0: 1123 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1124 | hasBin: true 1125 | 1126 | jsdom@25.0.1: 1127 | resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} 1128 | engines: {node: '>=18'} 1129 | peerDependencies: 1130 | canvas: ^2.11.2 1131 | peerDependenciesMeta: 1132 | canvas: 1133 | optional: true 1134 | 1135 | json-buffer@3.0.1: 1136 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1137 | 1138 | json-schema-traverse@0.4.1: 1139 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1140 | 1141 | json-stable-stringify-without-jsonify@1.0.1: 1142 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1143 | 1144 | jsonfile@4.0.0: 1145 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 1146 | 1147 | keyv@4.5.4: 1148 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1149 | 1150 | levn@0.4.1: 1151 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1152 | engines: {node: '>= 0.8.0'} 1153 | 1154 | lilconfig@3.1.3: 1155 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 1156 | engines: {node: '>=14'} 1157 | 1158 | lines-and-columns@1.2.4: 1159 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1160 | 1161 | load-tsconfig@0.2.5: 1162 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 1163 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1164 | 1165 | locate-path@5.0.0: 1166 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1167 | engines: {node: '>=8'} 1168 | 1169 | locate-path@6.0.0: 1170 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1171 | engines: {node: '>=10'} 1172 | 1173 | lodash.merge@4.6.2: 1174 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1175 | 1176 | lodash.sortby@4.7.0: 1177 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 1178 | 1179 | lodash.startcase@4.4.0: 1180 | resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 1181 | 1182 | lodash@4.17.21: 1183 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1184 | 1185 | loupe@3.1.3: 1186 | resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} 1187 | 1188 | lru-cache@10.4.3: 1189 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1190 | 1191 | magic-string@0.30.17: 1192 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 1193 | 1194 | math-intrinsics@1.1.0: 1195 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1196 | engines: {node: '>= 0.4'} 1197 | 1198 | merge2@1.4.1: 1199 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1200 | engines: {node: '>= 8'} 1201 | 1202 | micromatch@4.0.8: 1203 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1204 | engines: {node: '>=8.6'} 1205 | 1206 | mime-db@1.52.0: 1207 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1208 | engines: {node: '>= 0.6'} 1209 | 1210 | mime-types@2.1.35: 1211 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1212 | engines: {node: '>= 0.6'} 1213 | 1214 | minimatch@3.1.2: 1215 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1216 | 1217 | minimatch@9.0.5: 1218 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1219 | engines: {node: '>=16 || 14 >=14.17'} 1220 | 1221 | minipass@7.1.2: 1222 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1223 | engines: {node: '>=16 || 14 >=14.17'} 1224 | 1225 | mri@1.2.0: 1226 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1227 | engines: {node: '>=4'} 1228 | 1229 | ms@2.1.3: 1230 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1231 | 1232 | mz@2.7.0: 1233 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1234 | 1235 | nanoid@3.3.8: 1236 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 1237 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1238 | hasBin: true 1239 | 1240 | natural-compare@1.4.0: 1241 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1242 | 1243 | nwsapi@2.2.16: 1244 | resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==} 1245 | 1246 | object-assign@4.1.1: 1247 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1248 | engines: {node: '>=0.10.0'} 1249 | 1250 | optionator@0.9.4: 1251 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1252 | engines: {node: '>= 0.8.0'} 1253 | 1254 | os-tmpdir@1.0.2: 1255 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 1256 | engines: {node: '>=0.10.0'} 1257 | 1258 | outdent@0.5.0: 1259 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} 1260 | 1261 | p-filter@2.1.0: 1262 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 1263 | engines: {node: '>=8'} 1264 | 1265 | p-limit@2.3.0: 1266 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1267 | engines: {node: '>=6'} 1268 | 1269 | p-limit@3.1.0: 1270 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1271 | engines: {node: '>=10'} 1272 | 1273 | p-locate@4.1.0: 1274 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1275 | engines: {node: '>=8'} 1276 | 1277 | p-locate@5.0.0: 1278 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1279 | engines: {node: '>=10'} 1280 | 1281 | p-map@2.1.0: 1282 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 1283 | engines: {node: '>=6'} 1284 | 1285 | p-try@2.2.0: 1286 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1287 | engines: {node: '>=6'} 1288 | 1289 | package-json-from-dist@1.0.1: 1290 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1291 | 1292 | package-manager-detector@0.2.9: 1293 | resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==} 1294 | 1295 | parent-module@1.0.1: 1296 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1297 | engines: {node: '>=6'} 1298 | 1299 | parse5@7.2.1: 1300 | resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} 1301 | 1302 | path-exists@4.0.0: 1303 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1304 | engines: {node: '>=8'} 1305 | 1306 | path-key@3.1.1: 1307 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1308 | engines: {node: '>=8'} 1309 | 1310 | path-scurry@1.11.1: 1311 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1312 | engines: {node: '>=16 || 14 >=14.18'} 1313 | 1314 | path-type@4.0.0: 1315 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1316 | engines: {node: '>=8'} 1317 | 1318 | pathe@2.0.3: 1319 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1320 | 1321 | pathval@2.0.0: 1322 | resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} 1323 | engines: {node: '>= 14.16'} 1324 | 1325 | picocolors@1.1.1: 1326 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1327 | 1328 | picomatch@2.3.1: 1329 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1330 | engines: {node: '>=8.6'} 1331 | 1332 | picomatch@4.0.2: 1333 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1334 | engines: {node: '>=12'} 1335 | 1336 | pify@4.0.1: 1337 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 1338 | engines: {node: '>=6'} 1339 | 1340 | pirates@4.0.6: 1341 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1342 | engines: {node: '>= 6'} 1343 | 1344 | postcss-load-config@6.0.1: 1345 | resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} 1346 | engines: {node: '>= 18'} 1347 | peerDependencies: 1348 | jiti: '>=1.21.0' 1349 | postcss: '>=8.0.9' 1350 | tsx: ^4.8.1 1351 | yaml: ^2.4.2 1352 | peerDependenciesMeta: 1353 | jiti: 1354 | optional: true 1355 | postcss: 1356 | optional: true 1357 | tsx: 1358 | optional: true 1359 | yaml: 1360 | optional: true 1361 | 1362 | postcss@8.5.3: 1363 | resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 1364 | engines: {node: ^10 || ^12 || >=14} 1365 | 1366 | prelude-ls@1.2.1: 1367 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1368 | engines: {node: '>= 0.8.0'} 1369 | 1370 | prettier@2.8.8: 1371 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1372 | engines: {node: '>=10.13.0'} 1373 | hasBin: true 1374 | 1375 | prettier@3.3.3: 1376 | resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} 1377 | engines: {node: '>=14'} 1378 | hasBin: true 1379 | 1380 | punycode@2.3.1: 1381 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1382 | engines: {node: '>=6'} 1383 | 1384 | queue-microtask@1.2.3: 1385 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1386 | 1387 | read-yaml-file@1.1.0: 1388 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} 1389 | engines: {node: '>=6'} 1390 | 1391 | readdirp@4.1.2: 1392 | resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1393 | engines: {node: '>= 14.18.0'} 1394 | 1395 | regenerator-runtime@0.14.1: 1396 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1397 | 1398 | require-directory@2.1.1: 1399 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1400 | engines: {node: '>=0.10.0'} 1401 | 1402 | resolve-from@4.0.0: 1403 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1404 | engines: {node: '>=4'} 1405 | 1406 | resolve-from@5.0.0: 1407 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1408 | engines: {node: '>=8'} 1409 | 1410 | reusify@1.0.4: 1411 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1412 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1413 | 1414 | rollup@4.34.8: 1415 | resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==} 1416 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1417 | hasBin: true 1418 | 1419 | rrweb-cssom@0.7.1: 1420 | resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} 1421 | 1422 | rrweb-cssom@0.8.0: 1423 | resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} 1424 | 1425 | run-parallel@1.2.0: 1426 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1427 | 1428 | rxjs@7.8.1: 1429 | resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} 1430 | 1431 | safer-buffer@2.1.2: 1432 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1433 | 1434 | saxes@6.0.0: 1435 | resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 1436 | engines: {node: '>=v12.22.7'} 1437 | 1438 | semver@7.7.1: 1439 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} 1440 | engines: {node: '>=10'} 1441 | hasBin: true 1442 | 1443 | seroval-plugins@1.2.1: 1444 | resolution: {integrity: sha512-H5vs53+39+x4Udwp4J5rNZfgFuA+Lt+uU+09w1gYBVWomtAl98B+E9w7yC05Xc81/HgLvJdlyqJbU0fJCKCmdw==} 1445 | engines: {node: '>=10'} 1446 | peerDependencies: 1447 | seroval: ^1.0 1448 | 1449 | seroval@1.2.1: 1450 | resolution: {integrity: sha512-yBxFFs3zmkvKNmR0pFSU//rIsYjuX418TnlDmc2weaq5XFDqDIV/NOMPBoLrbxjLH42p4UzRuXHryXh9dYcKcw==} 1451 | engines: {node: '>=10'} 1452 | 1453 | shebang-command@2.0.0: 1454 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1455 | engines: {node: '>=8'} 1456 | 1457 | shebang-regex@3.0.0: 1458 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1459 | engines: {node: '>=8'} 1460 | 1461 | shell-quote@1.8.2: 1462 | resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} 1463 | engines: {node: '>= 0.4'} 1464 | 1465 | siginfo@2.0.0: 1466 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 1467 | 1468 | signal-exit@4.1.0: 1469 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1470 | engines: {node: '>=14'} 1471 | 1472 | slash@3.0.0: 1473 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1474 | engines: {node: '>=8'} 1475 | 1476 | solid-js@1.9.4: 1477 | resolution: {integrity: sha512-ipQl8FJ31bFUoBNScDQTG3BjN6+9Rg+Q+f10bUbnO6EOTTf5NGerJeHc7wyu5I4RMHEl/WwZwUmy/PTRgxxZ8g==} 1478 | 1479 | source-map-js@1.2.1: 1480 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1481 | engines: {node: '>=0.10.0'} 1482 | 1483 | source-map-support@0.5.21: 1484 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1485 | 1486 | source-map@0.6.1: 1487 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1488 | engines: {node: '>=0.10.0'} 1489 | 1490 | source-map@0.8.0-beta.0: 1491 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 1492 | engines: {node: '>= 8'} 1493 | 1494 | spawndamnit@3.0.1: 1495 | resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} 1496 | 1497 | sprintf-js@1.0.3: 1498 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1499 | 1500 | stackback@0.0.2: 1501 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1502 | 1503 | std-env@3.8.0: 1504 | resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} 1505 | 1506 | string-width@4.2.3: 1507 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1508 | engines: {node: '>=8'} 1509 | 1510 | string-width@5.1.2: 1511 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1512 | engines: {node: '>=12'} 1513 | 1514 | strip-ansi@6.0.1: 1515 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1516 | engines: {node: '>=8'} 1517 | 1518 | strip-ansi@7.1.0: 1519 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1520 | engines: {node: '>=12'} 1521 | 1522 | strip-bom@3.0.0: 1523 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1524 | engines: {node: '>=4'} 1525 | 1526 | strip-json-comments@3.1.1: 1527 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1528 | engines: {node: '>=8'} 1529 | 1530 | sucrase@3.35.0: 1531 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1532 | engines: {node: '>=16 || 14 >=14.17'} 1533 | hasBin: true 1534 | 1535 | supports-color@7.2.0: 1536 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1537 | engines: {node: '>=8'} 1538 | 1539 | supports-color@8.1.1: 1540 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1541 | engines: {node: '>=10'} 1542 | 1543 | symbol-tree@3.2.4: 1544 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 1545 | 1546 | term-size@2.2.1: 1547 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 1548 | engines: {node: '>=8'} 1549 | 1550 | terser@5.39.0: 1551 | resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} 1552 | engines: {node: '>=10'} 1553 | hasBin: true 1554 | 1555 | thenify-all@1.6.0: 1556 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1557 | engines: {node: '>=0.8'} 1558 | 1559 | thenify@3.3.1: 1560 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1561 | 1562 | tinybench@2.9.0: 1563 | resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 1564 | 1565 | tinyexec@0.3.2: 1566 | resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 1567 | 1568 | tinyglobby@0.2.12: 1569 | resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} 1570 | engines: {node: '>=12.0.0'} 1571 | 1572 | tinypool@1.0.2: 1573 | resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} 1574 | engines: {node: ^18.0.0 || >=20.0.0} 1575 | 1576 | tinyrainbow@2.0.0: 1577 | resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} 1578 | engines: {node: '>=14.0.0'} 1579 | 1580 | tinyspy@3.0.2: 1581 | resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} 1582 | engines: {node: '>=14.0.0'} 1583 | 1584 | tldts-core@6.1.78: 1585 | resolution: {integrity: sha512-jS0svNsB99jR6AJBmfmEWuKIgz91Haya91Z43PATaeHJ24BkMoNRb/jlaD37VYjb0mYf6gRL/HOnvS1zEnYBiw==} 1586 | 1587 | tldts@6.1.78: 1588 | resolution: {integrity: sha512-fSgYrW0ITH0SR/CqKMXIruYIPpNu5aDgUp22UhYoSrnUQwc7SBqifEBFNce7AAcygUPBo6a/gbtcguWdmko4RQ==} 1589 | hasBin: true 1590 | 1591 | tmp@0.0.33: 1592 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 1593 | engines: {node: '>=0.6.0'} 1594 | 1595 | to-regex-range@5.0.1: 1596 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1597 | engines: {node: '>=8.0'} 1598 | 1599 | tough-cookie@5.1.1: 1600 | resolution: {integrity: sha512-Ek7HndSVkp10hmHP9V4qZO1u+pn1RU5sI0Fw+jCU3lyvuMZcgqsNgc6CmJJZyByK4Vm/qotGRJlfgAX8q+4JiA==} 1601 | engines: {node: '>=16'} 1602 | 1603 | tr46@1.0.1: 1604 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 1605 | 1606 | tr46@5.0.0: 1607 | resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} 1608 | engines: {node: '>=18'} 1609 | 1610 | tree-kill@1.2.2: 1611 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 1612 | hasBin: true 1613 | 1614 | ts-api-utils@2.0.1: 1615 | resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} 1616 | engines: {node: '>=18.12'} 1617 | peerDependencies: 1618 | typescript: '>=4.8.4' 1619 | 1620 | ts-interface-checker@0.1.13: 1621 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1622 | 1623 | tslib@2.8.1: 1624 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1625 | 1626 | tsup@8.3.6: 1627 | resolution: {integrity: sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g==} 1628 | engines: {node: '>=18'} 1629 | hasBin: true 1630 | peerDependencies: 1631 | '@microsoft/api-extractor': ^7.36.0 1632 | '@swc/core': ^1 1633 | postcss: ^8.4.12 1634 | typescript: '>=4.5.0' 1635 | peerDependenciesMeta: 1636 | '@microsoft/api-extractor': 1637 | optional: true 1638 | '@swc/core': 1639 | optional: true 1640 | postcss: 1641 | optional: true 1642 | typescript: 1643 | optional: true 1644 | 1645 | type-check@0.4.0: 1646 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1647 | engines: {node: '>= 0.8.0'} 1648 | 1649 | typescript@5.7.3: 1650 | resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 1651 | engines: {node: '>=14.17'} 1652 | hasBin: true 1653 | 1654 | undici-types@6.20.0: 1655 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1656 | 1657 | universalify@0.1.2: 1658 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 1659 | engines: {node: '>= 4.0.0'} 1660 | 1661 | uri-js@4.4.1: 1662 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1663 | 1664 | vite-node@3.0.6: 1665 | resolution: {integrity: sha512-s51RzrTkXKJrhNbUzQRsarjmAae7VmMPAsRT7lppVpIg6mK3zGthP9Hgz0YQQKuNcF+Ii7DfYk3Fxz40jRmePw==} 1666 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1667 | hasBin: true 1668 | 1669 | vite@6.1.1: 1670 | resolution: {integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==} 1671 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1672 | hasBin: true 1673 | peerDependencies: 1674 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1675 | jiti: '>=1.21.0' 1676 | less: '*' 1677 | lightningcss: ^1.21.0 1678 | sass: '*' 1679 | sass-embedded: '*' 1680 | stylus: '*' 1681 | sugarss: '*' 1682 | terser: ^5.16.0 1683 | tsx: ^4.8.1 1684 | yaml: ^2.4.2 1685 | peerDependenciesMeta: 1686 | '@types/node': 1687 | optional: true 1688 | jiti: 1689 | optional: true 1690 | less: 1691 | optional: true 1692 | lightningcss: 1693 | optional: true 1694 | sass: 1695 | optional: true 1696 | sass-embedded: 1697 | optional: true 1698 | stylus: 1699 | optional: true 1700 | sugarss: 1701 | optional: true 1702 | terser: 1703 | optional: true 1704 | tsx: 1705 | optional: true 1706 | yaml: 1707 | optional: true 1708 | 1709 | vitest@3.0.6: 1710 | resolution: {integrity: sha512-/iL1Sc5VeDZKPDe58oGK4HUFLhw6b5XdY1MYawjuSaDA4sEfYlY9HnS6aCEG26fX+MgUi7MwlduTBHHAI/OvMA==} 1711 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1712 | hasBin: true 1713 | peerDependencies: 1714 | '@edge-runtime/vm': '*' 1715 | '@types/debug': ^4.1.12 1716 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1717 | '@vitest/browser': 3.0.6 1718 | '@vitest/ui': 3.0.6 1719 | happy-dom: '*' 1720 | jsdom: '*' 1721 | peerDependenciesMeta: 1722 | '@edge-runtime/vm': 1723 | optional: true 1724 | '@types/debug': 1725 | optional: true 1726 | '@types/node': 1727 | optional: true 1728 | '@vitest/browser': 1729 | optional: true 1730 | '@vitest/ui': 1731 | optional: true 1732 | happy-dom: 1733 | optional: true 1734 | jsdom: 1735 | optional: true 1736 | 1737 | w3c-xmlserializer@5.0.0: 1738 | resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 1739 | engines: {node: '>=18'} 1740 | 1741 | webidl-conversions@4.0.2: 1742 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 1743 | 1744 | webidl-conversions@7.0.0: 1745 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 1746 | engines: {node: '>=12'} 1747 | 1748 | whatwg-encoding@3.1.1: 1749 | resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 1750 | engines: {node: '>=18'} 1751 | 1752 | whatwg-mimetype@4.0.0: 1753 | resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 1754 | engines: {node: '>=18'} 1755 | 1756 | whatwg-url@14.1.1: 1757 | resolution: {integrity: sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ==} 1758 | engines: {node: '>=18'} 1759 | 1760 | whatwg-url@7.1.0: 1761 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 1762 | 1763 | which@2.0.2: 1764 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1765 | engines: {node: '>= 8'} 1766 | hasBin: true 1767 | 1768 | why-is-node-running@2.3.0: 1769 | resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 1770 | engines: {node: '>=8'} 1771 | hasBin: true 1772 | 1773 | word-wrap@1.2.5: 1774 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1775 | engines: {node: '>=0.10.0'} 1776 | 1777 | wrap-ansi@7.0.0: 1778 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1779 | engines: {node: '>=10'} 1780 | 1781 | wrap-ansi@8.1.0: 1782 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1783 | engines: {node: '>=12'} 1784 | 1785 | ws@8.18.0: 1786 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 1787 | engines: {node: '>=10.0.0'} 1788 | peerDependencies: 1789 | bufferutil: ^4.0.1 1790 | utf-8-validate: '>=5.0.2' 1791 | peerDependenciesMeta: 1792 | bufferutil: 1793 | optional: true 1794 | utf-8-validate: 1795 | optional: true 1796 | 1797 | xml-name-validator@5.0.0: 1798 | resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 1799 | engines: {node: '>=18'} 1800 | 1801 | xmlchars@2.2.0: 1802 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 1803 | 1804 | y18n@5.0.8: 1805 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1806 | engines: {node: '>=10'} 1807 | 1808 | yaml@2.5.1: 1809 | resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} 1810 | engines: {node: '>= 14'} 1811 | hasBin: true 1812 | 1813 | yargs-parser@21.1.1: 1814 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1815 | engines: {node: '>=12'} 1816 | 1817 | yargs@17.7.2: 1818 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 1819 | engines: {node: '>=12'} 1820 | 1821 | yocto-queue@0.1.0: 1822 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1823 | engines: {node: '>=10'} 1824 | 1825 | snapshots: 1826 | 1827 | '@asamuzakjp/css-color@2.8.3': 1828 | dependencies: 1829 | '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) 1830 | '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) 1831 | '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) 1832 | '@csstools/css-tokenizer': 3.0.3 1833 | lru-cache: 10.4.3 1834 | 1835 | '@babel/runtime@7.26.9': 1836 | dependencies: 1837 | regenerator-runtime: 0.14.1 1838 | 1839 | '@changesets/apply-release-plan@7.0.10': 1840 | dependencies: 1841 | '@changesets/config': 3.1.1 1842 | '@changesets/get-version-range-type': 0.4.0 1843 | '@changesets/git': 3.0.2 1844 | '@changesets/should-skip-package': 0.1.2 1845 | '@changesets/types': 6.1.0 1846 | '@manypkg/get-packages': 1.1.3 1847 | detect-indent: 6.1.0 1848 | fs-extra: 7.0.1 1849 | lodash.startcase: 4.4.0 1850 | outdent: 0.5.0 1851 | prettier: 2.8.8 1852 | resolve-from: 5.0.0 1853 | semver: 7.7.1 1854 | 1855 | '@changesets/assemble-release-plan@6.0.6': 1856 | dependencies: 1857 | '@changesets/errors': 0.2.0 1858 | '@changesets/get-dependents-graph': 2.1.3 1859 | '@changesets/should-skip-package': 0.1.2 1860 | '@changesets/types': 6.1.0 1861 | '@manypkg/get-packages': 1.1.3 1862 | semver: 7.7.1 1863 | 1864 | '@changesets/changelog-git@0.2.1': 1865 | dependencies: 1866 | '@changesets/types': 6.1.0 1867 | 1868 | '@changesets/cli@2.28.1': 1869 | dependencies: 1870 | '@changesets/apply-release-plan': 7.0.10 1871 | '@changesets/assemble-release-plan': 6.0.6 1872 | '@changesets/changelog-git': 0.2.1 1873 | '@changesets/config': 3.1.1 1874 | '@changesets/errors': 0.2.0 1875 | '@changesets/get-dependents-graph': 2.1.3 1876 | '@changesets/get-release-plan': 4.0.8 1877 | '@changesets/git': 3.0.2 1878 | '@changesets/logger': 0.1.1 1879 | '@changesets/pre': 2.0.2 1880 | '@changesets/read': 0.6.3 1881 | '@changesets/should-skip-package': 0.1.2 1882 | '@changesets/types': 6.1.0 1883 | '@changesets/write': 0.4.0 1884 | '@manypkg/get-packages': 1.1.3 1885 | ansi-colors: 4.1.3 1886 | ci-info: 3.9.0 1887 | enquirer: 2.4.1 1888 | external-editor: 3.1.0 1889 | fs-extra: 7.0.1 1890 | mri: 1.2.0 1891 | p-limit: 2.3.0 1892 | package-manager-detector: 0.2.9 1893 | picocolors: 1.1.1 1894 | resolve-from: 5.0.0 1895 | semver: 7.7.1 1896 | spawndamnit: 3.0.1 1897 | term-size: 2.2.1 1898 | 1899 | '@changesets/config@3.1.1': 1900 | dependencies: 1901 | '@changesets/errors': 0.2.0 1902 | '@changesets/get-dependents-graph': 2.1.3 1903 | '@changesets/logger': 0.1.1 1904 | '@changesets/types': 6.1.0 1905 | '@manypkg/get-packages': 1.1.3 1906 | fs-extra: 7.0.1 1907 | micromatch: 4.0.8 1908 | 1909 | '@changesets/errors@0.2.0': 1910 | dependencies: 1911 | extendable-error: 0.1.7 1912 | 1913 | '@changesets/get-dependents-graph@2.1.3': 1914 | dependencies: 1915 | '@changesets/types': 6.1.0 1916 | '@manypkg/get-packages': 1.1.3 1917 | picocolors: 1.1.1 1918 | semver: 7.7.1 1919 | 1920 | '@changesets/get-release-plan@4.0.8': 1921 | dependencies: 1922 | '@changesets/assemble-release-plan': 6.0.6 1923 | '@changesets/config': 3.1.1 1924 | '@changesets/pre': 2.0.2 1925 | '@changesets/read': 0.6.3 1926 | '@changesets/types': 6.1.0 1927 | '@manypkg/get-packages': 1.1.3 1928 | 1929 | '@changesets/get-version-range-type@0.4.0': {} 1930 | 1931 | '@changesets/git@3.0.2': 1932 | dependencies: 1933 | '@changesets/errors': 0.2.0 1934 | '@manypkg/get-packages': 1.1.3 1935 | is-subdir: 1.2.0 1936 | micromatch: 4.0.8 1937 | spawndamnit: 3.0.1 1938 | 1939 | '@changesets/logger@0.1.1': 1940 | dependencies: 1941 | picocolors: 1.1.1 1942 | 1943 | '@changesets/parse@0.4.1': 1944 | dependencies: 1945 | '@changesets/types': 6.1.0 1946 | js-yaml: 3.14.1 1947 | 1948 | '@changesets/pre@2.0.2': 1949 | dependencies: 1950 | '@changesets/errors': 0.2.0 1951 | '@changesets/types': 6.1.0 1952 | '@manypkg/get-packages': 1.1.3 1953 | fs-extra: 7.0.1 1954 | 1955 | '@changesets/read@0.6.3': 1956 | dependencies: 1957 | '@changesets/git': 3.0.2 1958 | '@changesets/logger': 0.1.1 1959 | '@changesets/parse': 0.4.1 1960 | '@changesets/types': 6.1.0 1961 | fs-extra: 7.0.1 1962 | p-filter: 2.1.0 1963 | picocolors: 1.1.1 1964 | 1965 | '@changesets/should-skip-package@0.1.2': 1966 | dependencies: 1967 | '@changesets/types': 6.1.0 1968 | '@manypkg/get-packages': 1.1.3 1969 | 1970 | '@changesets/types@4.1.0': {} 1971 | 1972 | '@changesets/types@6.1.0': {} 1973 | 1974 | '@changesets/write@0.4.0': 1975 | dependencies: 1976 | '@changesets/types': 6.1.0 1977 | fs-extra: 7.0.1 1978 | human-id: 4.1.1 1979 | prettier: 2.8.8 1980 | 1981 | '@csstools/color-helpers@5.0.1': {} 1982 | 1983 | '@csstools/css-calc@2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': 1984 | dependencies: 1985 | '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) 1986 | '@csstools/css-tokenizer': 3.0.3 1987 | 1988 | '@csstools/css-color-parser@3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': 1989 | dependencies: 1990 | '@csstools/color-helpers': 5.0.1 1991 | '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) 1992 | '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) 1993 | '@csstools/css-tokenizer': 3.0.3 1994 | 1995 | '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': 1996 | dependencies: 1997 | '@csstools/css-tokenizer': 3.0.3 1998 | 1999 | '@csstools/css-tokenizer@3.0.3': {} 2000 | 2001 | '@esbuild/aix-ppc64@0.24.2': 2002 | optional: true 2003 | 2004 | '@esbuild/android-arm64@0.24.2': 2005 | optional: true 2006 | 2007 | '@esbuild/android-arm@0.24.2': 2008 | optional: true 2009 | 2010 | '@esbuild/android-x64@0.24.2': 2011 | optional: true 2012 | 2013 | '@esbuild/darwin-arm64@0.24.2': 2014 | optional: true 2015 | 2016 | '@esbuild/darwin-x64@0.24.2': 2017 | optional: true 2018 | 2019 | '@esbuild/freebsd-arm64@0.24.2': 2020 | optional: true 2021 | 2022 | '@esbuild/freebsd-x64@0.24.2': 2023 | optional: true 2024 | 2025 | '@esbuild/linux-arm64@0.24.2': 2026 | optional: true 2027 | 2028 | '@esbuild/linux-arm@0.24.2': 2029 | optional: true 2030 | 2031 | '@esbuild/linux-ia32@0.24.2': 2032 | optional: true 2033 | 2034 | '@esbuild/linux-loong64@0.24.2': 2035 | optional: true 2036 | 2037 | '@esbuild/linux-mips64el@0.24.2': 2038 | optional: true 2039 | 2040 | '@esbuild/linux-ppc64@0.24.2': 2041 | optional: true 2042 | 2043 | '@esbuild/linux-riscv64@0.24.2': 2044 | optional: true 2045 | 2046 | '@esbuild/linux-s390x@0.24.2': 2047 | optional: true 2048 | 2049 | '@esbuild/linux-x64@0.24.2': 2050 | optional: true 2051 | 2052 | '@esbuild/netbsd-arm64@0.24.2': 2053 | optional: true 2054 | 2055 | '@esbuild/netbsd-x64@0.24.2': 2056 | optional: true 2057 | 2058 | '@esbuild/openbsd-arm64@0.24.2': 2059 | optional: true 2060 | 2061 | '@esbuild/openbsd-x64@0.24.2': 2062 | optional: true 2063 | 2064 | '@esbuild/sunos-x64@0.24.2': 2065 | optional: true 2066 | 2067 | '@esbuild/win32-arm64@0.24.2': 2068 | optional: true 2069 | 2070 | '@esbuild/win32-ia32@0.24.2': 2071 | optional: true 2072 | 2073 | '@esbuild/win32-x64@0.24.2': 2074 | optional: true 2075 | 2076 | '@eslint-community/eslint-utils@4.4.1(eslint@9.20.1(jiti@2.4.2))': 2077 | dependencies: 2078 | eslint: 9.20.1(jiti@2.4.2) 2079 | eslint-visitor-keys: 3.4.3 2080 | 2081 | '@eslint-community/regexpp@4.12.1': {} 2082 | 2083 | '@eslint/config-array@0.19.2': 2084 | dependencies: 2085 | '@eslint/object-schema': 2.1.6 2086 | debug: 4.4.0 2087 | minimatch: 3.1.2 2088 | transitivePeerDependencies: 2089 | - supports-color 2090 | 2091 | '@eslint/core@0.11.0': 2092 | dependencies: 2093 | '@types/json-schema': 7.0.15 2094 | 2095 | '@eslint/eslintrc@3.2.0': 2096 | dependencies: 2097 | ajv: 6.12.6 2098 | debug: 4.4.0 2099 | espree: 10.3.0 2100 | globals: 14.0.0 2101 | ignore: 5.3.2 2102 | import-fresh: 3.3.1 2103 | js-yaml: 4.1.0 2104 | minimatch: 3.1.2 2105 | strip-json-comments: 3.1.1 2106 | transitivePeerDependencies: 2107 | - supports-color 2108 | 2109 | '@eslint/js@9.20.0': {} 2110 | 2111 | '@eslint/object-schema@2.1.6': {} 2112 | 2113 | '@eslint/plugin-kit@0.2.6': 2114 | dependencies: 2115 | '@eslint/core': 0.11.0 2116 | levn: 0.4.1 2117 | 2118 | '@humanfs/core@0.19.1': {} 2119 | 2120 | '@humanfs/node@0.16.6': 2121 | dependencies: 2122 | '@humanfs/core': 0.19.1 2123 | '@humanwhocodes/retry': 0.3.1 2124 | 2125 | '@humanwhocodes/module-importer@1.0.1': {} 2126 | 2127 | '@humanwhocodes/retry@0.3.1': {} 2128 | 2129 | '@humanwhocodes/retry@0.4.2': {} 2130 | 2131 | '@isaacs/cliui@8.0.2': 2132 | dependencies: 2133 | string-width: 5.1.2 2134 | string-width-cjs: string-width@4.2.3 2135 | strip-ansi: 7.1.0 2136 | strip-ansi-cjs: strip-ansi@6.0.1 2137 | wrap-ansi: 8.1.0 2138 | wrap-ansi-cjs: wrap-ansi@7.0.0 2139 | 2140 | '@jridgewell/gen-mapping@0.3.8': 2141 | dependencies: 2142 | '@jridgewell/set-array': 1.2.1 2143 | '@jridgewell/sourcemap-codec': 1.5.0 2144 | '@jridgewell/trace-mapping': 0.3.25 2145 | 2146 | '@jridgewell/resolve-uri@3.1.2': {} 2147 | 2148 | '@jridgewell/set-array@1.2.1': {} 2149 | 2150 | '@jridgewell/source-map@0.3.6': 2151 | dependencies: 2152 | '@jridgewell/gen-mapping': 0.3.8 2153 | '@jridgewell/trace-mapping': 0.3.25 2154 | optional: true 2155 | 2156 | '@jridgewell/sourcemap-codec@1.5.0': {} 2157 | 2158 | '@jridgewell/trace-mapping@0.3.25': 2159 | dependencies: 2160 | '@jridgewell/resolve-uri': 3.1.2 2161 | '@jridgewell/sourcemap-codec': 1.5.0 2162 | 2163 | '@manypkg/find-root@1.1.0': 2164 | dependencies: 2165 | '@babel/runtime': 7.26.9 2166 | '@types/node': 12.20.55 2167 | find-up: 4.1.0 2168 | fs-extra: 8.1.0 2169 | 2170 | '@manypkg/get-packages@1.1.3': 2171 | dependencies: 2172 | '@babel/runtime': 7.26.9 2173 | '@changesets/types': 4.1.0 2174 | '@manypkg/find-root': 1.1.0 2175 | fs-extra: 8.1.0 2176 | globby: 11.1.0 2177 | read-yaml-file: 1.1.0 2178 | 2179 | '@nodelib/fs.scandir@2.1.5': 2180 | dependencies: 2181 | '@nodelib/fs.stat': 2.0.5 2182 | run-parallel: 1.2.0 2183 | 2184 | '@nodelib/fs.stat@2.0.5': {} 2185 | 2186 | '@nodelib/fs.walk@1.2.8': 2187 | dependencies: 2188 | '@nodelib/fs.scandir': 2.1.5 2189 | fastq: 1.19.0 2190 | 2191 | '@pkgjs/parseargs@0.11.0': 2192 | optional: true 2193 | 2194 | '@rollup/rollup-android-arm-eabi@4.34.8': 2195 | optional: true 2196 | 2197 | '@rollup/rollup-android-arm64@4.34.8': 2198 | optional: true 2199 | 2200 | '@rollup/rollup-darwin-arm64@4.34.8': 2201 | optional: true 2202 | 2203 | '@rollup/rollup-darwin-x64@4.34.8': 2204 | optional: true 2205 | 2206 | '@rollup/rollup-freebsd-arm64@4.34.8': 2207 | optional: true 2208 | 2209 | '@rollup/rollup-freebsd-x64@4.34.8': 2210 | optional: true 2211 | 2212 | '@rollup/rollup-linux-arm-gnueabihf@4.34.8': 2213 | optional: true 2214 | 2215 | '@rollup/rollup-linux-arm-musleabihf@4.34.8': 2216 | optional: true 2217 | 2218 | '@rollup/rollup-linux-arm64-gnu@4.34.8': 2219 | optional: true 2220 | 2221 | '@rollup/rollup-linux-arm64-musl@4.34.8': 2222 | optional: true 2223 | 2224 | '@rollup/rollup-linux-loongarch64-gnu@4.34.8': 2225 | optional: true 2226 | 2227 | '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': 2228 | optional: true 2229 | 2230 | '@rollup/rollup-linux-riscv64-gnu@4.34.8': 2231 | optional: true 2232 | 2233 | '@rollup/rollup-linux-s390x-gnu@4.34.8': 2234 | optional: true 2235 | 2236 | '@rollup/rollup-linux-x64-gnu@4.34.8': 2237 | optional: true 2238 | 2239 | '@rollup/rollup-linux-x64-musl@4.34.8': 2240 | optional: true 2241 | 2242 | '@rollup/rollup-win32-arm64-msvc@4.34.8': 2243 | optional: true 2244 | 2245 | '@rollup/rollup-win32-ia32-msvc@4.34.8': 2246 | optional: true 2247 | 2248 | '@rollup/rollup-win32-x64-msvc@4.34.8': 2249 | optional: true 2250 | 2251 | '@types/estree@1.0.6': {} 2252 | 2253 | '@types/json-schema@7.0.15': {} 2254 | 2255 | '@types/node@12.20.55': {} 2256 | 2257 | '@types/node@22.13.4': 2258 | dependencies: 2259 | undici-types: 6.20.0 2260 | 2261 | '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': 2262 | dependencies: 2263 | '@eslint-community/regexpp': 4.12.1 2264 | '@typescript-eslint/parser': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) 2265 | '@typescript-eslint/scope-manager': 8.24.1 2266 | '@typescript-eslint/type-utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) 2267 | '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) 2268 | '@typescript-eslint/visitor-keys': 8.24.1 2269 | eslint: 9.20.1(jiti@2.4.2) 2270 | graphemer: 1.4.0 2271 | ignore: 5.3.2 2272 | natural-compare: 1.4.0 2273 | ts-api-utils: 2.0.1(typescript@5.7.3) 2274 | typescript: 5.7.3 2275 | transitivePeerDependencies: 2276 | - supports-color 2277 | 2278 | '@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': 2279 | dependencies: 2280 | '@typescript-eslint/scope-manager': 8.24.1 2281 | '@typescript-eslint/types': 8.24.1 2282 | '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) 2283 | '@typescript-eslint/visitor-keys': 8.24.1 2284 | debug: 4.4.0 2285 | eslint: 9.20.1(jiti@2.4.2) 2286 | typescript: 5.7.3 2287 | transitivePeerDependencies: 2288 | - supports-color 2289 | 2290 | '@typescript-eslint/scope-manager@8.24.1': 2291 | dependencies: 2292 | '@typescript-eslint/types': 8.24.1 2293 | '@typescript-eslint/visitor-keys': 8.24.1 2294 | 2295 | '@typescript-eslint/type-utils@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': 2296 | dependencies: 2297 | '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) 2298 | '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) 2299 | debug: 4.4.0 2300 | eslint: 9.20.1(jiti@2.4.2) 2301 | ts-api-utils: 2.0.1(typescript@5.7.3) 2302 | typescript: 5.7.3 2303 | transitivePeerDependencies: 2304 | - supports-color 2305 | 2306 | '@typescript-eslint/types@8.24.1': {} 2307 | 2308 | '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)': 2309 | dependencies: 2310 | '@typescript-eslint/types': 8.24.1 2311 | '@typescript-eslint/visitor-keys': 8.24.1 2312 | debug: 4.4.0 2313 | fast-glob: 3.3.3 2314 | is-glob: 4.0.3 2315 | minimatch: 9.0.5 2316 | semver: 7.7.1 2317 | ts-api-utils: 2.0.1(typescript@5.7.3) 2318 | typescript: 5.7.3 2319 | transitivePeerDependencies: 2320 | - supports-color 2321 | 2322 | '@typescript-eslint/utils@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': 2323 | dependencies: 2324 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) 2325 | '@typescript-eslint/scope-manager': 8.24.1 2326 | '@typescript-eslint/types': 8.24.1 2327 | '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) 2328 | eslint: 9.20.1(jiti@2.4.2) 2329 | typescript: 5.7.3 2330 | transitivePeerDependencies: 2331 | - supports-color 2332 | 2333 | '@typescript-eslint/visitor-keys@8.24.1': 2334 | dependencies: 2335 | '@typescript-eslint/types': 8.24.1 2336 | eslint-visitor-keys: 4.2.0 2337 | 2338 | '@vitest/expect@3.0.6': 2339 | dependencies: 2340 | '@vitest/spy': 3.0.6 2341 | '@vitest/utils': 3.0.6 2342 | chai: 5.2.0 2343 | tinyrainbow: 2.0.0 2344 | 2345 | '@vitest/mocker@3.0.6(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.39.0)(yaml@2.5.1))': 2346 | dependencies: 2347 | '@vitest/spy': 3.0.6 2348 | estree-walker: 3.0.3 2349 | magic-string: 0.30.17 2350 | optionalDependencies: 2351 | vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.39.0)(yaml@2.5.1) 2352 | 2353 | '@vitest/pretty-format@3.0.6': 2354 | dependencies: 2355 | tinyrainbow: 2.0.0 2356 | 2357 | '@vitest/runner@3.0.6': 2358 | dependencies: 2359 | '@vitest/utils': 3.0.6 2360 | pathe: 2.0.3 2361 | 2362 | '@vitest/snapshot@3.0.6': 2363 | dependencies: 2364 | '@vitest/pretty-format': 3.0.6 2365 | magic-string: 0.30.17 2366 | pathe: 2.0.3 2367 | 2368 | '@vitest/spy@3.0.6': 2369 | dependencies: 2370 | tinyspy: 3.0.2 2371 | 2372 | '@vitest/utils@3.0.6': 2373 | dependencies: 2374 | '@vitest/pretty-format': 3.0.6 2375 | loupe: 3.1.3 2376 | tinyrainbow: 2.0.0 2377 | 2378 | acorn-jsx@5.3.2(acorn@8.14.0): 2379 | dependencies: 2380 | acorn: 8.14.0 2381 | 2382 | acorn@8.14.0: {} 2383 | 2384 | agent-base@7.1.3: {} 2385 | 2386 | ajv@6.12.6: 2387 | dependencies: 2388 | fast-deep-equal: 3.1.3 2389 | fast-json-stable-stringify: 2.1.0 2390 | json-schema-traverse: 0.4.1 2391 | uri-js: 4.4.1 2392 | 2393 | ansi-colors@4.1.3: {} 2394 | 2395 | ansi-regex@5.0.1: {} 2396 | 2397 | ansi-regex@6.1.0: {} 2398 | 2399 | ansi-styles@4.3.0: 2400 | dependencies: 2401 | color-convert: 2.0.1 2402 | 2403 | ansi-styles@6.2.1: {} 2404 | 2405 | any-promise@1.3.0: {} 2406 | 2407 | argparse@1.0.10: 2408 | dependencies: 2409 | sprintf-js: 1.0.3 2410 | 2411 | argparse@2.0.1: {} 2412 | 2413 | array-union@2.1.0: {} 2414 | 2415 | assertion-error@2.0.1: {} 2416 | 2417 | asynckit@0.4.0: {} 2418 | 2419 | balanced-match@1.0.2: {} 2420 | 2421 | better-path-resolve@1.0.0: 2422 | dependencies: 2423 | is-windows: 1.0.2 2424 | 2425 | brace-expansion@1.1.11: 2426 | dependencies: 2427 | balanced-match: 1.0.2 2428 | concat-map: 0.0.1 2429 | 2430 | brace-expansion@2.0.1: 2431 | dependencies: 2432 | balanced-match: 1.0.2 2433 | 2434 | braces@3.0.3: 2435 | dependencies: 2436 | fill-range: 7.1.1 2437 | 2438 | buffer-from@1.1.2: 2439 | optional: true 2440 | 2441 | bundle-require@5.1.0(esbuild@0.24.2): 2442 | dependencies: 2443 | esbuild: 0.24.2 2444 | load-tsconfig: 0.2.5 2445 | 2446 | cac@6.7.14: {} 2447 | 2448 | call-bind-apply-helpers@1.0.2: 2449 | dependencies: 2450 | es-errors: 1.3.0 2451 | function-bind: 1.1.2 2452 | 2453 | callsites@3.1.0: {} 2454 | 2455 | chai@5.2.0: 2456 | dependencies: 2457 | assertion-error: 2.0.1 2458 | check-error: 2.1.1 2459 | deep-eql: 5.0.2 2460 | loupe: 3.1.3 2461 | pathval: 2.0.0 2462 | 2463 | chalk@4.1.2: 2464 | dependencies: 2465 | ansi-styles: 4.3.0 2466 | supports-color: 7.2.0 2467 | 2468 | chardet@0.7.0: {} 2469 | 2470 | check-error@2.1.1: {} 2471 | 2472 | chokidar@4.0.3: 2473 | dependencies: 2474 | readdirp: 4.1.2 2475 | 2476 | ci-info@3.9.0: {} 2477 | 2478 | cliui@8.0.1: 2479 | dependencies: 2480 | string-width: 4.2.3 2481 | strip-ansi: 6.0.1 2482 | wrap-ansi: 7.0.0 2483 | 2484 | color-convert@2.0.1: 2485 | dependencies: 2486 | color-name: 1.1.4 2487 | 2488 | color-name@1.1.4: {} 2489 | 2490 | combined-stream@1.0.8: 2491 | dependencies: 2492 | delayed-stream: 1.0.0 2493 | 2494 | commander@2.20.3: 2495 | optional: true 2496 | 2497 | commander@4.1.1: {} 2498 | 2499 | concat-map@0.0.1: {} 2500 | 2501 | concurrently@9.1.2: 2502 | dependencies: 2503 | chalk: 4.1.2 2504 | lodash: 4.17.21 2505 | rxjs: 7.8.1 2506 | shell-quote: 1.8.2 2507 | supports-color: 8.1.1 2508 | tree-kill: 1.2.2 2509 | yargs: 17.7.2 2510 | 2511 | consola@3.4.0: {} 2512 | 2513 | cross-spawn@7.0.6: 2514 | dependencies: 2515 | path-key: 3.1.1 2516 | shebang-command: 2.0.0 2517 | which: 2.0.2 2518 | 2519 | cssstyle@4.2.1: 2520 | dependencies: 2521 | '@asamuzakjp/css-color': 2.8.3 2522 | rrweb-cssom: 0.8.0 2523 | 2524 | csstype@3.1.3: {} 2525 | 2526 | data-urls@5.0.0: 2527 | dependencies: 2528 | whatwg-mimetype: 4.0.0 2529 | whatwg-url: 14.1.1 2530 | 2531 | debug@4.4.0: 2532 | dependencies: 2533 | ms: 2.1.3 2534 | 2535 | decimal.js@10.5.0: {} 2536 | 2537 | deep-eql@5.0.2: {} 2538 | 2539 | deep-is@0.1.4: {} 2540 | 2541 | delayed-stream@1.0.0: {} 2542 | 2543 | detect-indent@6.1.0: {} 2544 | 2545 | dir-glob@3.0.1: 2546 | dependencies: 2547 | path-type: 4.0.0 2548 | 2549 | dunder-proto@1.0.1: 2550 | dependencies: 2551 | call-bind-apply-helpers: 1.0.2 2552 | es-errors: 1.3.0 2553 | gopd: 1.2.0 2554 | 2555 | eastasianwidth@0.2.0: {} 2556 | 2557 | emoji-regex@8.0.0: {} 2558 | 2559 | emoji-regex@9.2.2: {} 2560 | 2561 | enquirer@2.4.1: 2562 | dependencies: 2563 | ansi-colors: 4.1.3 2564 | strip-ansi: 6.0.1 2565 | 2566 | entities@4.5.0: {} 2567 | 2568 | es-define-property@1.0.1: {} 2569 | 2570 | es-errors@1.3.0: {} 2571 | 2572 | es-module-lexer@1.6.0: {} 2573 | 2574 | es-object-atoms@1.1.1: 2575 | dependencies: 2576 | es-errors: 1.3.0 2577 | 2578 | es-set-tostringtag@2.1.0: 2579 | dependencies: 2580 | es-errors: 1.3.0 2581 | get-intrinsic: 1.2.7 2582 | has-tostringtag: 1.0.2 2583 | hasown: 2.0.2 2584 | 2585 | esbuild@0.24.2: 2586 | optionalDependencies: 2587 | '@esbuild/aix-ppc64': 0.24.2 2588 | '@esbuild/android-arm': 0.24.2 2589 | '@esbuild/android-arm64': 0.24.2 2590 | '@esbuild/android-x64': 0.24.2 2591 | '@esbuild/darwin-arm64': 0.24.2 2592 | '@esbuild/darwin-x64': 0.24.2 2593 | '@esbuild/freebsd-arm64': 0.24.2 2594 | '@esbuild/freebsd-x64': 0.24.2 2595 | '@esbuild/linux-arm': 0.24.2 2596 | '@esbuild/linux-arm64': 0.24.2 2597 | '@esbuild/linux-ia32': 0.24.2 2598 | '@esbuild/linux-loong64': 0.24.2 2599 | '@esbuild/linux-mips64el': 0.24.2 2600 | '@esbuild/linux-ppc64': 0.24.2 2601 | '@esbuild/linux-riscv64': 0.24.2 2602 | '@esbuild/linux-s390x': 0.24.2 2603 | '@esbuild/linux-x64': 0.24.2 2604 | '@esbuild/netbsd-arm64': 0.24.2 2605 | '@esbuild/netbsd-x64': 0.24.2 2606 | '@esbuild/openbsd-arm64': 0.24.2 2607 | '@esbuild/openbsd-x64': 0.24.2 2608 | '@esbuild/sunos-x64': 0.24.2 2609 | '@esbuild/win32-arm64': 0.24.2 2610 | '@esbuild/win32-ia32': 0.24.2 2611 | '@esbuild/win32-x64': 0.24.2 2612 | 2613 | escalade@3.2.0: {} 2614 | 2615 | escape-string-regexp@1.0.5: {} 2616 | 2617 | escape-string-regexp@4.0.0: {} 2618 | 2619 | eslint-plugin-eslint-comments@3.2.0(eslint@9.20.1(jiti@2.4.2)): 2620 | dependencies: 2621 | escape-string-regexp: 1.0.5 2622 | eslint: 9.20.1(jiti@2.4.2) 2623 | ignore: 5.3.2 2624 | 2625 | eslint-plugin-no-only-tests@3.3.0: {} 2626 | 2627 | eslint-scope@8.2.0: 2628 | dependencies: 2629 | esrecurse: 4.3.0 2630 | estraverse: 5.3.0 2631 | 2632 | eslint-visitor-keys@3.4.3: {} 2633 | 2634 | eslint-visitor-keys@4.2.0: {} 2635 | 2636 | eslint@9.20.1(jiti@2.4.2): 2637 | dependencies: 2638 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) 2639 | '@eslint-community/regexpp': 4.12.1 2640 | '@eslint/config-array': 0.19.2 2641 | '@eslint/core': 0.11.0 2642 | '@eslint/eslintrc': 3.2.0 2643 | '@eslint/js': 9.20.0 2644 | '@eslint/plugin-kit': 0.2.6 2645 | '@humanfs/node': 0.16.6 2646 | '@humanwhocodes/module-importer': 1.0.1 2647 | '@humanwhocodes/retry': 0.4.2 2648 | '@types/estree': 1.0.6 2649 | '@types/json-schema': 7.0.15 2650 | ajv: 6.12.6 2651 | chalk: 4.1.2 2652 | cross-spawn: 7.0.6 2653 | debug: 4.4.0 2654 | escape-string-regexp: 4.0.0 2655 | eslint-scope: 8.2.0 2656 | eslint-visitor-keys: 4.2.0 2657 | espree: 10.3.0 2658 | esquery: 1.6.0 2659 | esutils: 2.0.3 2660 | fast-deep-equal: 3.1.3 2661 | file-entry-cache: 8.0.0 2662 | find-up: 5.0.0 2663 | glob-parent: 6.0.2 2664 | ignore: 5.3.2 2665 | imurmurhash: 0.1.4 2666 | is-glob: 4.0.3 2667 | json-stable-stringify-without-jsonify: 1.0.1 2668 | lodash.merge: 4.6.2 2669 | minimatch: 3.1.2 2670 | natural-compare: 1.4.0 2671 | optionator: 0.9.4 2672 | optionalDependencies: 2673 | jiti: 2.4.2 2674 | transitivePeerDependencies: 2675 | - supports-color 2676 | 2677 | espree@10.3.0: 2678 | dependencies: 2679 | acorn: 8.14.0 2680 | acorn-jsx: 5.3.2(acorn@8.14.0) 2681 | eslint-visitor-keys: 4.2.0 2682 | 2683 | esprima@4.0.1: {} 2684 | 2685 | esquery@1.6.0: 2686 | dependencies: 2687 | estraverse: 5.3.0 2688 | 2689 | esrecurse@4.3.0: 2690 | dependencies: 2691 | estraverse: 5.3.0 2692 | 2693 | estraverse@5.3.0: {} 2694 | 2695 | estree-walker@3.0.3: 2696 | dependencies: 2697 | '@types/estree': 1.0.6 2698 | 2699 | esutils@2.0.3: {} 2700 | 2701 | expect-type@1.1.0: {} 2702 | 2703 | extendable-error@0.1.7: {} 2704 | 2705 | external-editor@3.1.0: 2706 | dependencies: 2707 | chardet: 0.7.0 2708 | iconv-lite: 0.4.24 2709 | tmp: 0.0.33 2710 | 2711 | fast-deep-equal@3.1.3: {} 2712 | 2713 | fast-glob@3.3.3: 2714 | dependencies: 2715 | '@nodelib/fs.stat': 2.0.5 2716 | '@nodelib/fs.walk': 1.2.8 2717 | glob-parent: 5.1.2 2718 | merge2: 1.4.1 2719 | micromatch: 4.0.8 2720 | 2721 | fast-json-stable-stringify@2.1.0: {} 2722 | 2723 | fast-levenshtein@2.0.6: {} 2724 | 2725 | fastq@1.19.0: 2726 | dependencies: 2727 | reusify: 1.0.4 2728 | 2729 | fdir@6.4.3(picomatch@4.0.2): 2730 | optionalDependencies: 2731 | picomatch: 4.0.2 2732 | 2733 | file-entry-cache@8.0.0: 2734 | dependencies: 2735 | flat-cache: 4.0.1 2736 | 2737 | fill-range@7.1.1: 2738 | dependencies: 2739 | to-regex-range: 5.0.1 2740 | 2741 | find-up@4.1.0: 2742 | dependencies: 2743 | locate-path: 5.0.0 2744 | path-exists: 4.0.0 2745 | 2746 | find-up@5.0.0: 2747 | dependencies: 2748 | locate-path: 6.0.0 2749 | path-exists: 4.0.0 2750 | 2751 | flat-cache@4.0.1: 2752 | dependencies: 2753 | flatted: 3.3.3 2754 | keyv: 4.5.4 2755 | 2756 | flatted@3.3.3: {} 2757 | 2758 | foreground-child@3.3.0: 2759 | dependencies: 2760 | cross-spawn: 7.0.6 2761 | signal-exit: 4.1.0 2762 | 2763 | form-data@4.0.2: 2764 | dependencies: 2765 | asynckit: 0.4.0 2766 | combined-stream: 1.0.8 2767 | es-set-tostringtag: 2.1.0 2768 | mime-types: 2.1.35 2769 | 2770 | fs-extra@7.0.1: 2771 | dependencies: 2772 | graceful-fs: 4.2.11 2773 | jsonfile: 4.0.0 2774 | universalify: 0.1.2 2775 | 2776 | fs-extra@8.1.0: 2777 | dependencies: 2778 | graceful-fs: 4.2.11 2779 | jsonfile: 4.0.0 2780 | universalify: 0.1.2 2781 | 2782 | fsevents@2.3.3: 2783 | optional: true 2784 | 2785 | function-bind@1.1.2: {} 2786 | 2787 | get-caller-file@2.0.5: {} 2788 | 2789 | get-intrinsic@1.2.7: 2790 | dependencies: 2791 | call-bind-apply-helpers: 1.0.2 2792 | es-define-property: 1.0.1 2793 | es-errors: 1.3.0 2794 | es-object-atoms: 1.1.1 2795 | function-bind: 1.1.2 2796 | get-proto: 1.0.1 2797 | gopd: 1.2.0 2798 | has-symbols: 1.1.0 2799 | hasown: 2.0.2 2800 | math-intrinsics: 1.1.0 2801 | 2802 | get-proto@1.0.1: 2803 | dependencies: 2804 | dunder-proto: 1.0.1 2805 | es-object-atoms: 1.1.1 2806 | 2807 | glob-parent@5.1.2: 2808 | dependencies: 2809 | is-glob: 4.0.3 2810 | 2811 | glob-parent@6.0.2: 2812 | dependencies: 2813 | is-glob: 4.0.3 2814 | 2815 | glob@10.4.5: 2816 | dependencies: 2817 | foreground-child: 3.3.0 2818 | jackspeak: 3.4.3 2819 | minimatch: 9.0.5 2820 | minipass: 7.1.2 2821 | package-json-from-dist: 1.0.1 2822 | path-scurry: 1.11.1 2823 | 2824 | globals@14.0.0: {} 2825 | 2826 | globby@11.1.0: 2827 | dependencies: 2828 | array-union: 2.1.0 2829 | dir-glob: 3.0.1 2830 | fast-glob: 3.3.3 2831 | ignore: 5.3.2 2832 | merge2: 1.4.1 2833 | slash: 3.0.0 2834 | 2835 | gopd@1.2.0: {} 2836 | 2837 | graceful-fs@4.2.11: {} 2838 | 2839 | graphemer@1.4.0: {} 2840 | 2841 | has-flag@4.0.0: {} 2842 | 2843 | has-symbols@1.1.0: {} 2844 | 2845 | has-tostringtag@1.0.2: 2846 | dependencies: 2847 | has-symbols: 1.1.0 2848 | 2849 | hasown@2.0.2: 2850 | dependencies: 2851 | function-bind: 1.1.2 2852 | 2853 | html-encoding-sniffer@4.0.0: 2854 | dependencies: 2855 | whatwg-encoding: 3.1.1 2856 | 2857 | http-proxy-agent@7.0.2: 2858 | dependencies: 2859 | agent-base: 7.1.3 2860 | debug: 4.4.0 2861 | transitivePeerDependencies: 2862 | - supports-color 2863 | 2864 | https-proxy-agent@7.0.6: 2865 | dependencies: 2866 | agent-base: 7.1.3 2867 | debug: 4.4.0 2868 | transitivePeerDependencies: 2869 | - supports-color 2870 | 2871 | human-id@4.1.1: {} 2872 | 2873 | iconv-lite@0.4.24: 2874 | dependencies: 2875 | safer-buffer: 2.1.2 2876 | 2877 | iconv-lite@0.6.3: 2878 | dependencies: 2879 | safer-buffer: 2.1.2 2880 | 2881 | ignore@5.3.2: {} 2882 | 2883 | import-fresh@3.3.1: 2884 | dependencies: 2885 | parent-module: 1.0.1 2886 | resolve-from: 4.0.0 2887 | 2888 | imurmurhash@0.1.4: {} 2889 | 2890 | is-extglob@2.1.1: {} 2891 | 2892 | is-fullwidth-code-point@3.0.0: {} 2893 | 2894 | is-glob@4.0.3: 2895 | dependencies: 2896 | is-extglob: 2.1.1 2897 | 2898 | is-number@7.0.0: {} 2899 | 2900 | is-potential-custom-element-name@1.0.1: {} 2901 | 2902 | is-subdir@1.2.0: 2903 | dependencies: 2904 | better-path-resolve: 1.0.0 2905 | 2906 | is-windows@1.0.2: {} 2907 | 2908 | isexe@2.0.0: {} 2909 | 2910 | jackspeak@3.4.3: 2911 | dependencies: 2912 | '@isaacs/cliui': 8.0.2 2913 | optionalDependencies: 2914 | '@pkgjs/parseargs': 0.11.0 2915 | 2916 | jiti@2.4.2: 2917 | optional: true 2918 | 2919 | joycon@3.1.1: {} 2920 | 2921 | js-yaml@3.14.1: 2922 | dependencies: 2923 | argparse: 1.0.10 2924 | esprima: 4.0.1 2925 | 2926 | js-yaml@4.1.0: 2927 | dependencies: 2928 | argparse: 2.0.1 2929 | 2930 | jsdom@25.0.1: 2931 | dependencies: 2932 | cssstyle: 4.2.1 2933 | data-urls: 5.0.0 2934 | decimal.js: 10.5.0 2935 | form-data: 4.0.2 2936 | html-encoding-sniffer: 4.0.0 2937 | http-proxy-agent: 7.0.2 2938 | https-proxy-agent: 7.0.6 2939 | is-potential-custom-element-name: 1.0.1 2940 | nwsapi: 2.2.16 2941 | parse5: 7.2.1 2942 | rrweb-cssom: 0.7.1 2943 | saxes: 6.0.0 2944 | symbol-tree: 3.2.4 2945 | tough-cookie: 5.1.1 2946 | w3c-xmlserializer: 5.0.0 2947 | webidl-conversions: 7.0.0 2948 | whatwg-encoding: 3.1.1 2949 | whatwg-mimetype: 4.0.0 2950 | whatwg-url: 14.1.1 2951 | ws: 8.18.0 2952 | xml-name-validator: 5.0.0 2953 | transitivePeerDependencies: 2954 | - bufferutil 2955 | - supports-color 2956 | - utf-8-validate 2957 | 2958 | json-buffer@3.0.1: {} 2959 | 2960 | json-schema-traverse@0.4.1: {} 2961 | 2962 | json-stable-stringify-without-jsonify@1.0.1: {} 2963 | 2964 | jsonfile@4.0.0: 2965 | optionalDependencies: 2966 | graceful-fs: 4.2.11 2967 | 2968 | keyv@4.5.4: 2969 | dependencies: 2970 | json-buffer: 3.0.1 2971 | 2972 | levn@0.4.1: 2973 | dependencies: 2974 | prelude-ls: 1.2.1 2975 | type-check: 0.4.0 2976 | 2977 | lilconfig@3.1.3: {} 2978 | 2979 | lines-and-columns@1.2.4: {} 2980 | 2981 | load-tsconfig@0.2.5: {} 2982 | 2983 | locate-path@5.0.0: 2984 | dependencies: 2985 | p-locate: 4.1.0 2986 | 2987 | locate-path@6.0.0: 2988 | dependencies: 2989 | p-locate: 5.0.0 2990 | 2991 | lodash.merge@4.6.2: {} 2992 | 2993 | lodash.sortby@4.7.0: {} 2994 | 2995 | lodash.startcase@4.4.0: {} 2996 | 2997 | lodash@4.17.21: {} 2998 | 2999 | loupe@3.1.3: {} 3000 | 3001 | lru-cache@10.4.3: {} 3002 | 3003 | magic-string@0.30.17: 3004 | dependencies: 3005 | '@jridgewell/sourcemap-codec': 1.5.0 3006 | 3007 | math-intrinsics@1.1.0: {} 3008 | 3009 | merge2@1.4.1: {} 3010 | 3011 | micromatch@4.0.8: 3012 | dependencies: 3013 | braces: 3.0.3 3014 | picomatch: 2.3.1 3015 | 3016 | mime-db@1.52.0: {} 3017 | 3018 | mime-types@2.1.35: 3019 | dependencies: 3020 | mime-db: 1.52.0 3021 | 3022 | minimatch@3.1.2: 3023 | dependencies: 3024 | brace-expansion: 1.1.11 3025 | 3026 | minimatch@9.0.5: 3027 | dependencies: 3028 | brace-expansion: 2.0.1 3029 | 3030 | minipass@7.1.2: {} 3031 | 3032 | mri@1.2.0: {} 3033 | 3034 | ms@2.1.3: {} 3035 | 3036 | mz@2.7.0: 3037 | dependencies: 3038 | any-promise: 1.3.0 3039 | object-assign: 4.1.1 3040 | thenify-all: 1.6.0 3041 | 3042 | nanoid@3.3.8: {} 3043 | 3044 | natural-compare@1.4.0: {} 3045 | 3046 | nwsapi@2.2.16: {} 3047 | 3048 | object-assign@4.1.1: {} 3049 | 3050 | optionator@0.9.4: 3051 | dependencies: 3052 | deep-is: 0.1.4 3053 | fast-levenshtein: 2.0.6 3054 | levn: 0.4.1 3055 | prelude-ls: 1.2.1 3056 | type-check: 0.4.0 3057 | word-wrap: 1.2.5 3058 | 3059 | os-tmpdir@1.0.2: {} 3060 | 3061 | outdent@0.5.0: {} 3062 | 3063 | p-filter@2.1.0: 3064 | dependencies: 3065 | p-map: 2.1.0 3066 | 3067 | p-limit@2.3.0: 3068 | dependencies: 3069 | p-try: 2.2.0 3070 | 3071 | p-limit@3.1.0: 3072 | dependencies: 3073 | yocto-queue: 0.1.0 3074 | 3075 | p-locate@4.1.0: 3076 | dependencies: 3077 | p-limit: 2.3.0 3078 | 3079 | p-locate@5.0.0: 3080 | dependencies: 3081 | p-limit: 3.1.0 3082 | 3083 | p-map@2.1.0: {} 3084 | 3085 | p-try@2.2.0: {} 3086 | 3087 | package-json-from-dist@1.0.1: {} 3088 | 3089 | package-manager-detector@0.2.9: {} 3090 | 3091 | parent-module@1.0.1: 3092 | dependencies: 3093 | callsites: 3.1.0 3094 | 3095 | parse5@7.2.1: 3096 | dependencies: 3097 | entities: 4.5.0 3098 | 3099 | path-exists@4.0.0: {} 3100 | 3101 | path-key@3.1.1: {} 3102 | 3103 | path-scurry@1.11.1: 3104 | dependencies: 3105 | lru-cache: 10.4.3 3106 | minipass: 7.1.2 3107 | 3108 | path-type@4.0.0: {} 3109 | 3110 | pathe@2.0.3: {} 3111 | 3112 | pathval@2.0.0: {} 3113 | 3114 | picocolors@1.1.1: {} 3115 | 3116 | picomatch@2.3.1: {} 3117 | 3118 | picomatch@4.0.2: {} 3119 | 3120 | pify@4.0.1: {} 3121 | 3122 | pirates@4.0.6: {} 3123 | 3124 | postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.5.1): 3125 | dependencies: 3126 | lilconfig: 3.1.3 3127 | optionalDependencies: 3128 | jiti: 2.4.2 3129 | postcss: 8.5.3 3130 | yaml: 2.5.1 3131 | 3132 | postcss@8.5.3: 3133 | dependencies: 3134 | nanoid: 3.3.8 3135 | picocolors: 1.1.1 3136 | source-map-js: 1.2.1 3137 | 3138 | prelude-ls@1.2.1: {} 3139 | 3140 | prettier@2.8.8: {} 3141 | 3142 | prettier@3.3.3: {} 3143 | 3144 | punycode@2.3.1: {} 3145 | 3146 | queue-microtask@1.2.3: {} 3147 | 3148 | read-yaml-file@1.1.0: 3149 | dependencies: 3150 | graceful-fs: 4.2.11 3151 | js-yaml: 3.14.1 3152 | pify: 4.0.1 3153 | strip-bom: 3.0.0 3154 | 3155 | readdirp@4.1.2: {} 3156 | 3157 | regenerator-runtime@0.14.1: {} 3158 | 3159 | require-directory@2.1.1: {} 3160 | 3161 | resolve-from@4.0.0: {} 3162 | 3163 | resolve-from@5.0.0: {} 3164 | 3165 | reusify@1.0.4: {} 3166 | 3167 | rollup@4.34.8: 3168 | dependencies: 3169 | '@types/estree': 1.0.6 3170 | optionalDependencies: 3171 | '@rollup/rollup-android-arm-eabi': 4.34.8 3172 | '@rollup/rollup-android-arm64': 4.34.8 3173 | '@rollup/rollup-darwin-arm64': 4.34.8 3174 | '@rollup/rollup-darwin-x64': 4.34.8 3175 | '@rollup/rollup-freebsd-arm64': 4.34.8 3176 | '@rollup/rollup-freebsd-x64': 4.34.8 3177 | '@rollup/rollup-linux-arm-gnueabihf': 4.34.8 3178 | '@rollup/rollup-linux-arm-musleabihf': 4.34.8 3179 | '@rollup/rollup-linux-arm64-gnu': 4.34.8 3180 | '@rollup/rollup-linux-arm64-musl': 4.34.8 3181 | '@rollup/rollup-linux-loongarch64-gnu': 4.34.8 3182 | '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8 3183 | '@rollup/rollup-linux-riscv64-gnu': 4.34.8 3184 | '@rollup/rollup-linux-s390x-gnu': 4.34.8 3185 | '@rollup/rollup-linux-x64-gnu': 4.34.8 3186 | '@rollup/rollup-linux-x64-musl': 4.34.8 3187 | '@rollup/rollup-win32-arm64-msvc': 4.34.8 3188 | '@rollup/rollup-win32-ia32-msvc': 4.34.8 3189 | '@rollup/rollup-win32-x64-msvc': 4.34.8 3190 | fsevents: 2.3.3 3191 | 3192 | rrweb-cssom@0.7.1: {} 3193 | 3194 | rrweb-cssom@0.8.0: {} 3195 | 3196 | run-parallel@1.2.0: 3197 | dependencies: 3198 | queue-microtask: 1.2.3 3199 | 3200 | rxjs@7.8.1: 3201 | dependencies: 3202 | tslib: 2.8.1 3203 | 3204 | safer-buffer@2.1.2: {} 3205 | 3206 | saxes@6.0.0: 3207 | dependencies: 3208 | xmlchars: 2.2.0 3209 | 3210 | semver@7.7.1: {} 3211 | 3212 | seroval-plugins@1.2.1(seroval@1.2.1): 3213 | dependencies: 3214 | seroval: 1.2.1 3215 | 3216 | seroval@1.2.1: {} 3217 | 3218 | shebang-command@2.0.0: 3219 | dependencies: 3220 | shebang-regex: 3.0.0 3221 | 3222 | shebang-regex@3.0.0: {} 3223 | 3224 | shell-quote@1.8.2: {} 3225 | 3226 | siginfo@2.0.0: {} 3227 | 3228 | signal-exit@4.1.0: {} 3229 | 3230 | slash@3.0.0: {} 3231 | 3232 | solid-js@1.9.4: 3233 | dependencies: 3234 | csstype: 3.1.3 3235 | seroval: 1.2.1 3236 | seroval-plugins: 1.2.1(seroval@1.2.1) 3237 | 3238 | source-map-js@1.2.1: {} 3239 | 3240 | source-map-support@0.5.21: 3241 | dependencies: 3242 | buffer-from: 1.1.2 3243 | source-map: 0.6.1 3244 | optional: true 3245 | 3246 | source-map@0.6.1: 3247 | optional: true 3248 | 3249 | source-map@0.8.0-beta.0: 3250 | dependencies: 3251 | whatwg-url: 7.1.0 3252 | 3253 | spawndamnit@3.0.1: 3254 | dependencies: 3255 | cross-spawn: 7.0.6 3256 | signal-exit: 4.1.0 3257 | 3258 | sprintf-js@1.0.3: {} 3259 | 3260 | stackback@0.0.2: {} 3261 | 3262 | std-env@3.8.0: {} 3263 | 3264 | string-width@4.2.3: 3265 | dependencies: 3266 | emoji-regex: 8.0.0 3267 | is-fullwidth-code-point: 3.0.0 3268 | strip-ansi: 6.0.1 3269 | 3270 | string-width@5.1.2: 3271 | dependencies: 3272 | eastasianwidth: 0.2.0 3273 | emoji-regex: 9.2.2 3274 | strip-ansi: 7.1.0 3275 | 3276 | strip-ansi@6.0.1: 3277 | dependencies: 3278 | ansi-regex: 5.0.1 3279 | 3280 | strip-ansi@7.1.0: 3281 | dependencies: 3282 | ansi-regex: 6.1.0 3283 | 3284 | strip-bom@3.0.0: {} 3285 | 3286 | strip-json-comments@3.1.1: {} 3287 | 3288 | sucrase@3.35.0: 3289 | dependencies: 3290 | '@jridgewell/gen-mapping': 0.3.8 3291 | commander: 4.1.1 3292 | glob: 10.4.5 3293 | lines-and-columns: 1.2.4 3294 | mz: 2.7.0 3295 | pirates: 4.0.6 3296 | ts-interface-checker: 0.1.13 3297 | 3298 | supports-color@7.2.0: 3299 | dependencies: 3300 | has-flag: 4.0.0 3301 | 3302 | supports-color@8.1.1: 3303 | dependencies: 3304 | has-flag: 4.0.0 3305 | 3306 | symbol-tree@3.2.4: {} 3307 | 3308 | term-size@2.2.1: {} 3309 | 3310 | terser@5.39.0: 3311 | dependencies: 3312 | '@jridgewell/source-map': 0.3.6 3313 | acorn: 8.14.0 3314 | commander: 2.20.3 3315 | source-map-support: 0.5.21 3316 | optional: true 3317 | 3318 | thenify-all@1.6.0: 3319 | dependencies: 3320 | thenify: 3.3.1 3321 | 3322 | thenify@3.3.1: 3323 | dependencies: 3324 | any-promise: 1.3.0 3325 | 3326 | tinybench@2.9.0: {} 3327 | 3328 | tinyexec@0.3.2: {} 3329 | 3330 | tinyglobby@0.2.12: 3331 | dependencies: 3332 | fdir: 6.4.3(picomatch@4.0.2) 3333 | picomatch: 4.0.2 3334 | 3335 | tinypool@1.0.2: {} 3336 | 3337 | tinyrainbow@2.0.0: {} 3338 | 3339 | tinyspy@3.0.2: {} 3340 | 3341 | tldts-core@6.1.78: {} 3342 | 3343 | tldts@6.1.78: 3344 | dependencies: 3345 | tldts-core: 6.1.78 3346 | 3347 | tmp@0.0.33: 3348 | dependencies: 3349 | os-tmpdir: 1.0.2 3350 | 3351 | to-regex-range@5.0.1: 3352 | dependencies: 3353 | is-number: 7.0.0 3354 | 3355 | tough-cookie@5.1.1: 3356 | dependencies: 3357 | tldts: 6.1.78 3358 | 3359 | tr46@1.0.1: 3360 | dependencies: 3361 | punycode: 2.3.1 3362 | 3363 | tr46@5.0.0: 3364 | dependencies: 3365 | punycode: 2.3.1 3366 | 3367 | tree-kill@1.2.2: {} 3368 | 3369 | ts-api-utils@2.0.1(typescript@5.7.3): 3370 | dependencies: 3371 | typescript: 5.7.3 3372 | 3373 | ts-interface-checker@0.1.13: {} 3374 | 3375 | tslib@2.8.1: {} 3376 | 3377 | tsup@8.3.6(jiti@2.4.2)(postcss@8.5.3)(typescript@5.7.3)(yaml@2.5.1): 3378 | dependencies: 3379 | bundle-require: 5.1.0(esbuild@0.24.2) 3380 | cac: 6.7.14 3381 | chokidar: 4.0.3 3382 | consola: 3.4.0 3383 | debug: 4.4.0 3384 | esbuild: 0.24.2 3385 | joycon: 3.1.1 3386 | picocolors: 1.1.1 3387 | postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.5.1) 3388 | resolve-from: 5.0.0 3389 | rollup: 4.34.8 3390 | source-map: 0.8.0-beta.0 3391 | sucrase: 3.35.0 3392 | tinyexec: 0.3.2 3393 | tinyglobby: 0.2.12 3394 | tree-kill: 1.2.2 3395 | optionalDependencies: 3396 | postcss: 8.5.3 3397 | typescript: 5.7.3 3398 | transitivePeerDependencies: 3399 | - jiti 3400 | - supports-color 3401 | - tsx 3402 | - yaml 3403 | 3404 | type-check@0.4.0: 3405 | dependencies: 3406 | prelude-ls: 1.2.1 3407 | 3408 | typescript@5.7.3: {} 3409 | 3410 | undici-types@6.20.0: {} 3411 | 3412 | universalify@0.1.2: {} 3413 | 3414 | uri-js@4.4.1: 3415 | dependencies: 3416 | punycode: 2.3.1 3417 | 3418 | vite-node@3.0.6(@types/node@22.13.4)(jiti@2.4.2)(terser@5.39.0)(yaml@2.5.1): 3419 | dependencies: 3420 | cac: 6.7.14 3421 | debug: 4.4.0 3422 | es-module-lexer: 1.6.0 3423 | pathe: 2.0.3 3424 | vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.39.0)(yaml@2.5.1) 3425 | transitivePeerDependencies: 3426 | - '@types/node' 3427 | - jiti 3428 | - less 3429 | - lightningcss 3430 | - sass 3431 | - sass-embedded 3432 | - stylus 3433 | - sugarss 3434 | - supports-color 3435 | - terser 3436 | - tsx 3437 | - yaml 3438 | 3439 | vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.39.0)(yaml@2.5.1): 3440 | dependencies: 3441 | esbuild: 0.24.2 3442 | postcss: 8.5.3 3443 | rollup: 4.34.8 3444 | optionalDependencies: 3445 | '@types/node': 22.13.4 3446 | fsevents: 2.3.3 3447 | jiti: 2.4.2 3448 | terser: 5.39.0 3449 | yaml: 2.5.1 3450 | 3451 | vitest@3.0.6(@types/node@22.13.4)(jiti@2.4.2)(jsdom@25.0.1)(terser@5.39.0)(yaml@2.5.1): 3452 | dependencies: 3453 | '@vitest/expect': 3.0.6 3454 | '@vitest/mocker': 3.0.6(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.39.0)(yaml@2.5.1)) 3455 | '@vitest/pretty-format': 3.0.6 3456 | '@vitest/runner': 3.0.6 3457 | '@vitest/snapshot': 3.0.6 3458 | '@vitest/spy': 3.0.6 3459 | '@vitest/utils': 3.0.6 3460 | chai: 5.2.0 3461 | debug: 4.4.0 3462 | expect-type: 1.1.0 3463 | magic-string: 0.30.17 3464 | pathe: 2.0.3 3465 | std-env: 3.8.0 3466 | tinybench: 2.9.0 3467 | tinyexec: 0.3.2 3468 | tinypool: 1.0.2 3469 | tinyrainbow: 2.0.0 3470 | vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.39.0)(yaml@2.5.1) 3471 | vite-node: 3.0.6(@types/node@22.13.4)(jiti@2.4.2)(terser@5.39.0)(yaml@2.5.1) 3472 | why-is-node-running: 2.3.0 3473 | optionalDependencies: 3474 | '@types/node': 22.13.4 3475 | jsdom: 25.0.1 3476 | transitivePeerDependencies: 3477 | - jiti 3478 | - less 3479 | - lightningcss 3480 | - msw 3481 | - sass 3482 | - sass-embedded 3483 | - stylus 3484 | - sugarss 3485 | - supports-color 3486 | - terser 3487 | - tsx 3488 | - yaml 3489 | 3490 | w3c-xmlserializer@5.0.0: 3491 | dependencies: 3492 | xml-name-validator: 5.0.0 3493 | 3494 | webidl-conversions@4.0.2: {} 3495 | 3496 | webidl-conversions@7.0.0: {} 3497 | 3498 | whatwg-encoding@3.1.1: 3499 | dependencies: 3500 | iconv-lite: 0.6.3 3501 | 3502 | whatwg-mimetype@4.0.0: {} 3503 | 3504 | whatwg-url@14.1.1: 3505 | dependencies: 3506 | tr46: 5.0.0 3507 | webidl-conversions: 7.0.0 3508 | 3509 | whatwg-url@7.1.0: 3510 | dependencies: 3511 | lodash.sortby: 4.7.0 3512 | tr46: 1.0.1 3513 | webidl-conversions: 4.0.2 3514 | 3515 | which@2.0.2: 3516 | dependencies: 3517 | isexe: 2.0.0 3518 | 3519 | why-is-node-running@2.3.0: 3520 | dependencies: 3521 | siginfo: 2.0.0 3522 | stackback: 0.0.2 3523 | 3524 | word-wrap@1.2.5: {} 3525 | 3526 | wrap-ansi@7.0.0: 3527 | dependencies: 3528 | ansi-styles: 4.3.0 3529 | string-width: 4.2.3 3530 | strip-ansi: 6.0.1 3531 | 3532 | wrap-ansi@8.1.0: 3533 | dependencies: 3534 | ansi-styles: 6.2.1 3535 | string-width: 5.1.2 3536 | strip-ansi: 7.1.0 3537 | 3538 | ws@8.18.0: {} 3539 | 3540 | xml-name-validator@5.0.0: {} 3541 | 3542 | xmlchars@2.2.0: {} 3543 | 3544 | y18n@5.0.8: {} 3545 | 3546 | yaml@2.5.1: 3547 | optional: true 3548 | 3549 | yargs-parser@21.1.1: {} 3550 | 3551 | yargs@17.7.2: 3552 | dependencies: 3553 | cliui: 8.0.1 3554 | escalade: 3.2.0 3555 | get-caller-file: 2.0.5 3556 | require-directory: 2.1.1 3557 | string-width: 4.2.3 3558 | y18n: 5.0.8 3559 | yargs-parser: 21.1.1 3560 | 3561 | yocto-queue@0.1.0: {} 3562 | --------------------------------------------------------------------------------