├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc
├── LICENSE.md
├── README.md
├── eslint.config.js
├── header-image.png
├── package.json
├── playwright.config.ts
├── pnpm-lock.yaml
├── postcss.config.cjs
├── src
├── app.css
├── app.d.ts
├── app.html
├── index.test.ts
├── lib
│ ├── components
│ │ ├── CheckmarkIcon.svelte
│ │ ├── ErrorIcon.svelte
│ │ ├── LoaderIcon.svelte
│ │ ├── ToastBar.svelte
│ │ ├── ToastIcon.svelte
│ │ ├── ToastMessage.svelte
│ │ ├── ToastWrapper.svelte
│ │ └── Toaster.svelte
│ ├── core
│ │ ├── store.ts
│ │ ├── toast.ts
│ │ ├── types.ts
│ │ ├── use-toaster.ts
│ │ └── utils.ts
│ └── index.ts
├── routes
│ ├── +layout.svelte
│ └── +page.svelte
└── www
│ ├── Copy.svelte
│ ├── Examples.svelte
│ ├── RichContent.svelte
│ ├── demo-code.ts
│ └── examples.ts
├── static
├── favicon.png
├── fonts
│ ├── HKGrotesk-Black.woff
│ ├── HKGrotesk-Black.woff2
│ ├── HKGrotesk-BlackItalic.woff
│ ├── HKGrotesk-BlackItalic.woff2
│ ├── HKGrotesk-Bold.woff
│ ├── HKGrotesk-Bold.woff2
│ ├── HKGrotesk-BoldItalic.woff
│ ├── HKGrotesk-BoldItalic.woff2
│ ├── HKGrotesk-ExtraBold.woff
│ ├── HKGrotesk-ExtraBold.woff2
│ ├── HKGrotesk-ExtraBoldItalic.woff
│ ├── HKGrotesk-ExtraBoldItalic.woff2
│ ├── HKGrotesk-Italic.woff
│ ├── HKGrotesk-Italic.woff2
│ ├── HKGrotesk-Medium.woff
│ ├── HKGrotesk-Medium.woff2
│ ├── HKGrotesk-MediumItalic.woff
│ ├── HKGrotesk-MediumItalic.woff2
│ ├── HKGrotesk-Regular.woff
│ ├── HKGrotesk-Regular.woff2
│ ├── HKGrotesk-SemiBold.woff
│ ├── HKGrotesk-SemiBold.woff2
│ ├── HKGrotesk-SemiBoldItalic.woff
│ └── HKGrotesk-SemiBoldItalic.woff2
├── og-image.png
└── prism-theme.css
├── svelte.config.js
├── tailwind.config.cjs
├── tests
└── test.ts
├── tsconfig.json
└── vite.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /dist
5 | /.svelte-kit
6 | /package
7 | .env
8 | .env.*
9 | !.env.example
10 | vite.config.js.timestamp-*
11 | vite.config.ts.timestamp-*
12 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 |
10 | # Ignore files for PNPM, NPM and YARN
11 | pnpm-lock.yaml
12 | package-lock.json
13 | yarn.lock
14 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": true,
3 | "singleQuote": true,
4 | "trailingComma": "none",
5 | "printWidth": 100,
6 | "plugins": ["prettier-plugin-svelte"],
7 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
8 | }
9 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Kabir Goel
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Website · NPM Package
8 |
9 |
10 | # svelte-french-toast
11 |
12 | > Buttery smooth Svelte notifications.
13 |
14 | svelte-french-toast is a Svelte port of Timo Lins’s react-hot-toast, a lightweight, customizable, and beautiful-by-default toast notification library.
15 |
16 | ## Installation
17 |
18 | Install the package with your favorite package manager:
19 |
20 | ```
21 | npm install svelte-french-toast
22 | ```
23 |
24 | ```
25 | pnpm install svelte-french-toast
26 | ```
27 |
28 | ```
29 | yarn add svelte-french-toast
30 | ```
31 |
32 | ## Basic usage
33 |
34 | Mount a `` at the top level of your app and use the `toast` API to display toasts.
35 |
36 | ```js
37 |
44 |
45 |
46 |
47 | ```
48 |
49 | For more usage examples, see [the website](https://svelte-french-toast.vercel.app).
50 |
51 | ## Thanks
52 |
53 | Thanks to the original author of React Hot Toast and its contributors.
54 |
55 | ```
56 | MIT License
57 |
58 | Copyright (c) 2020 Timo Lins
59 |
60 | Permission is hereby granted, free of charge, to any person obtaining a copy
61 | of this software and associated documentation files (the "Software"), to deal
62 | in the Software without restriction, including without limitation the rights
63 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
64 | copies of the Software, and to permit persons to whom the Software is
65 | furnished to do so, subject to the following conditions:
66 |
67 | The above copyright notice and this permission notice shall be included in all
68 | copies or substantial portions of the Software.
69 |
70 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
71 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
72 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
73 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
74 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
75 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
76 | SOFTWARE.
77 | ```
78 |
--------------------------------------------------------------------------------
/eslint.config.js:
--------------------------------------------------------------------------------
1 | import eslint from '@eslint/js';
2 | import globals from 'globals';
3 | import tseslint from 'typescript-eslint';
4 | import tsParser from '@typescript-eslint/parser';
5 | import eslintPluginSvelte from 'eslint-plugin-svelte';
6 | import svelteParser from 'svelte-eslint-parser';
7 | import eslintConfigPrettier from 'eslint-config-prettier';
8 | import svelteConfig from './svelte.config.js';
9 |
10 | export default tseslint.config(
11 | eslint.configs.recommended,
12 | tseslint.configs.recommended,
13 | eslintPluginSvelte.configs['flat/recommended'],
14 | eslintConfigPrettier,
15 | {
16 | ignores: [
17 | '*.cjs',
18 | '.DS_Store',
19 | 'node_modules',
20 | '/build',
21 | '.svelte-kit',
22 | '/package',
23 | '.env',
24 | '.env.*',
25 | '!.env.example',
26 | 'pnpm-lock.yaml',
27 | 'package-lock.json',
28 | 'yarn.lock'
29 | ]
30 | },
31 | {
32 | languageOptions: {
33 | sourceType: 'module',
34 | ecmaVersion: 2020,
35 | globals: {
36 | ...globals.browser,
37 | ...globals.es2017,
38 | ...globals.node
39 | }
40 | }
41 | },
42 | {
43 | files: ['*.svelte', '**/*.svelte'],
44 | languageOptions: {
45 | parser: svelteParser,
46 | parserOptions: {
47 | parser: tsParser,
48 | svelteConfig
49 | }
50 | }
51 | }
52 | );
53 |
--------------------------------------------------------------------------------
/header-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/header-image.png
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-french-toast",
3 | "version": "2.0.0-alpha.0",
4 | "description": "Buttery smooth Svelte toasts. Lightweight, customizable, and beautiful by default.",
5 | "keywords": [
6 | "svelte",
7 | "notifications",
8 | "toast",
9 | "snackbar"
10 | ],
11 | "repository": {
12 | "type": "git",
13 | "url": "https://github.com/kbrgl/svelte-french-toast.git"
14 | },
15 | "license": "MIT",
16 | "author": "Kabir Goel",
17 | "type": "module",
18 | "exports": {
19 | ".": {
20 | "types": "./dist/index.d.ts",
21 | "svelte": "./dist/index.js"
22 | }
23 | },
24 | "svelte": "./dist/index.js",
25 | "types": "./dist/index.d.ts",
26 | "files": [
27 | "dist"
28 | ],
29 | "scripts": {
30 | "build": "vite build && pnpm run package",
31 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
32 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
33 | "dev": "vite dev",
34 | "format": "prettier --write .",
35 | "lint": "prettier --check . && eslint .",
36 | "package": "svelte-kit sync && svelte-package && publint && cp README.md header-image.png dist/",
37 | "prepare": "svelte-kit sync",
38 | "prepublishOnly": "pnpm run package",
39 | "preview": "vite preview",
40 | "test": "playwright test",
41 | "test:unit": "vitest"
42 | },
43 | "dependencies": {
44 | "svelte-writable-derived": "^3.1.1"
45 | },
46 | "peerDependencies": {
47 | "svelte": "^5.0.0"
48 | },
49 | "devDependencies": {
50 | "@eslint/js": "^9.21.0",
51 | "@playwright/test": "^1.50.1",
52 | "@sveltejs/adapter-auto": "^4.0.0",
53 | "@sveltejs/kit": "^2.17.2",
54 | "@sveltejs/package": "^2.3.10",
55 | "@sveltejs/vite-plugin-svelte": "^5.0.3",
56 | "@types/prismjs": "^1.26.5",
57 | "autoprefixer": "^10.4.20",
58 | "eslint": "^9.21.0",
59 | "eslint-config-prettier": "^8.10.0",
60 | "eslint-plugin-svelte": "^2.46.1",
61 | "globals": "^16.0.0",
62 | "postcss": "^8.5.3",
63 | "prettier": "^3.5.2",
64 | "prettier-plugin-svelte": "^3.3.3",
65 | "prism-svelte": "^0.5.0",
66 | "prismjs": "^1.29.0",
67 | "publint": "^0.1.16",
68 | "svelte": "^5.0.0",
69 | "svelte-check": "^4.1.4",
70 | "tailwindcss": "^3.4.17",
71 | "tslib": "^2.8.1",
72 | "typescript": "^5.7.3",
73 | "typescript-eslint": "^8.24.1",
74 | "vite": "^6.1.1",
75 | "vitest": "^3.0.6"
76 | },
77 | "packageManager": "pnpm@9.13.2+sha512.88c9c3864450350e65a33587ab801acf946d7c814ed1134da4a924f6df5a2120fd36b46aab68f7cd1d413149112d53c7db3a4136624cfd00ff1846a0c6cef48a"
78 | }
79 |
--------------------------------------------------------------------------------
/playwright.config.ts:
--------------------------------------------------------------------------------
1 | import type { PlaywrightTestConfig } from '@playwright/test';
2 |
3 | const config: PlaywrightTestConfig = {
4 | webServer: {
5 | command: 'npm run build && npm run preview',
6 | port: 4173
7 | },
8 | testDir: 'tests'
9 | };
10 |
11 | export default config;
12 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | svelte-writable-derived:
12 | specifier: ^3.1.1
13 | version: 3.1.1(svelte@5.20.2)
14 | devDependencies:
15 | '@eslint/js':
16 | specifier: ^9.21.0
17 | version: 9.21.0
18 | '@playwright/test':
19 | specifier: ^1.50.1
20 | version: 1.50.1
21 | '@sveltejs/adapter-auto':
22 | specifier: ^4.0.0
23 | version: 4.0.0(@sveltejs/kit@2.17.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)))(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)))
24 | '@sveltejs/kit':
25 | specifier: ^2.17.2
26 | version: 2.17.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)))(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))
27 | '@sveltejs/package':
28 | specifier: ^2.3.10
29 | version: 2.3.10(svelte@5.20.2)(typescript@5.7.3)
30 | '@sveltejs/vite-plugin-svelte':
31 | specifier: ^5.0.3
32 | version: 5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))
33 | '@types/prismjs':
34 | specifier: ^1.26.5
35 | version: 1.26.5
36 | autoprefixer:
37 | specifier: ^10.4.20
38 | version: 10.4.20(postcss@8.5.3)
39 | eslint:
40 | specifier: ^9.21.0
41 | version: 9.21.0(jiti@1.21.7)
42 | eslint-config-prettier:
43 | specifier: ^8.10.0
44 | version: 8.10.0(eslint@9.21.0(jiti@1.21.7))
45 | eslint-plugin-svelte:
46 | specifier: ^2.46.1
47 | version: 2.46.1(eslint@9.21.0(jiti@1.21.7))(svelte@5.20.2)
48 | globals:
49 | specifier: ^16.0.0
50 | version: 16.0.0
51 | postcss:
52 | specifier: ^8.5.3
53 | version: 8.5.3
54 | prettier:
55 | specifier: ^3.5.2
56 | version: 3.5.2
57 | prettier-plugin-svelte:
58 | specifier: ^3.3.3
59 | version: 3.3.3(prettier@3.5.2)(svelte@5.20.2)
60 | prism-svelte:
61 | specifier: ^0.5.0
62 | version: 0.5.0
63 | prismjs:
64 | specifier: ^1.29.0
65 | version: 1.29.0
66 | publint:
67 | specifier: ^0.1.16
68 | version: 0.1.16
69 | svelte:
70 | specifier: ^5.0.0
71 | version: 5.20.2
72 | svelte-check:
73 | specifier: ^4.1.4
74 | version: 4.1.4(svelte@5.20.2)(typescript@5.7.3)
75 | tailwindcss:
76 | specifier: ^3.4.17
77 | version: 3.4.17
78 | tslib:
79 | specifier: ^2.8.1
80 | version: 2.8.1
81 | typescript:
82 | specifier: ^5.7.3
83 | version: 5.7.3
84 | typescript-eslint:
85 | specifier: ^8.24.1
86 | version: 8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)
87 | vite:
88 | specifier: ^6.1.1
89 | version: 6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
90 | vitest:
91 | specifier: ^3.0.6
92 | version: 3.0.6(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
93 |
94 | packages:
95 |
96 | '@alloc/quick-lru@5.2.0':
97 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
98 | engines: {node: '>=10'}
99 |
100 | '@ampproject/remapping@2.3.0':
101 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
102 | engines: {node: '>=6.0.0'}
103 |
104 | '@esbuild/aix-ppc64@0.24.2':
105 | resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
106 | engines: {node: '>=18'}
107 | cpu: [ppc64]
108 | os: [aix]
109 |
110 | '@esbuild/android-arm64@0.24.2':
111 | resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
112 | engines: {node: '>=18'}
113 | cpu: [arm64]
114 | os: [android]
115 |
116 | '@esbuild/android-arm@0.24.2':
117 | resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
118 | engines: {node: '>=18'}
119 | cpu: [arm]
120 | os: [android]
121 |
122 | '@esbuild/android-x64@0.24.2':
123 | resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
124 | engines: {node: '>=18'}
125 | cpu: [x64]
126 | os: [android]
127 |
128 | '@esbuild/darwin-arm64@0.24.2':
129 | resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
130 | engines: {node: '>=18'}
131 | cpu: [arm64]
132 | os: [darwin]
133 |
134 | '@esbuild/darwin-x64@0.24.2':
135 | resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
136 | engines: {node: '>=18'}
137 | cpu: [x64]
138 | os: [darwin]
139 |
140 | '@esbuild/freebsd-arm64@0.24.2':
141 | resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
142 | engines: {node: '>=18'}
143 | cpu: [arm64]
144 | os: [freebsd]
145 |
146 | '@esbuild/freebsd-x64@0.24.2':
147 | resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
148 | engines: {node: '>=18'}
149 | cpu: [x64]
150 | os: [freebsd]
151 |
152 | '@esbuild/linux-arm64@0.24.2':
153 | resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
154 | engines: {node: '>=18'}
155 | cpu: [arm64]
156 | os: [linux]
157 |
158 | '@esbuild/linux-arm@0.24.2':
159 | resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
160 | engines: {node: '>=18'}
161 | cpu: [arm]
162 | os: [linux]
163 |
164 | '@esbuild/linux-ia32@0.24.2':
165 | resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
166 | engines: {node: '>=18'}
167 | cpu: [ia32]
168 | os: [linux]
169 |
170 | '@esbuild/linux-loong64@0.24.2':
171 | resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
172 | engines: {node: '>=18'}
173 | cpu: [loong64]
174 | os: [linux]
175 |
176 | '@esbuild/linux-mips64el@0.24.2':
177 | resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
178 | engines: {node: '>=18'}
179 | cpu: [mips64el]
180 | os: [linux]
181 |
182 | '@esbuild/linux-ppc64@0.24.2':
183 | resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
184 | engines: {node: '>=18'}
185 | cpu: [ppc64]
186 | os: [linux]
187 |
188 | '@esbuild/linux-riscv64@0.24.2':
189 | resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
190 | engines: {node: '>=18'}
191 | cpu: [riscv64]
192 | os: [linux]
193 |
194 | '@esbuild/linux-s390x@0.24.2':
195 | resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
196 | engines: {node: '>=18'}
197 | cpu: [s390x]
198 | os: [linux]
199 |
200 | '@esbuild/linux-x64@0.24.2':
201 | resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
202 | engines: {node: '>=18'}
203 | cpu: [x64]
204 | os: [linux]
205 |
206 | '@esbuild/netbsd-arm64@0.24.2':
207 | resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
208 | engines: {node: '>=18'}
209 | cpu: [arm64]
210 | os: [netbsd]
211 |
212 | '@esbuild/netbsd-x64@0.24.2':
213 | resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
214 | engines: {node: '>=18'}
215 | cpu: [x64]
216 | os: [netbsd]
217 |
218 | '@esbuild/openbsd-arm64@0.24.2':
219 | resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
220 | engines: {node: '>=18'}
221 | cpu: [arm64]
222 | os: [openbsd]
223 |
224 | '@esbuild/openbsd-x64@0.24.2':
225 | resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
226 | engines: {node: '>=18'}
227 | cpu: [x64]
228 | os: [openbsd]
229 |
230 | '@esbuild/sunos-x64@0.24.2':
231 | resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
232 | engines: {node: '>=18'}
233 | cpu: [x64]
234 | os: [sunos]
235 |
236 | '@esbuild/win32-arm64@0.24.2':
237 | resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
238 | engines: {node: '>=18'}
239 | cpu: [arm64]
240 | os: [win32]
241 |
242 | '@esbuild/win32-ia32@0.24.2':
243 | resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
244 | engines: {node: '>=18'}
245 | cpu: [ia32]
246 | os: [win32]
247 |
248 | '@esbuild/win32-x64@0.24.2':
249 | resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
250 | engines: {node: '>=18'}
251 | cpu: [x64]
252 | os: [win32]
253 |
254 | '@eslint-community/eslint-utils@4.4.1':
255 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
256 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
257 | peerDependencies:
258 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
259 |
260 | '@eslint-community/regexpp@4.12.1':
261 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
262 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
263 |
264 | '@eslint/config-array@0.19.2':
265 | resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
266 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
267 |
268 | '@eslint/core@0.12.0':
269 | resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
270 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
271 |
272 | '@eslint/eslintrc@3.3.0':
273 | resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==}
274 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
275 |
276 | '@eslint/js@9.21.0':
277 | resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==}
278 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
279 |
280 | '@eslint/object-schema@2.1.6':
281 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
282 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
283 |
284 | '@eslint/plugin-kit@0.2.7':
285 | resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==}
286 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
287 |
288 | '@humanfs/core@0.19.1':
289 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
290 | engines: {node: '>=18.18.0'}
291 |
292 | '@humanfs/node@0.16.6':
293 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
294 | engines: {node: '>=18.18.0'}
295 |
296 | '@humanwhocodes/module-importer@1.0.1':
297 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
298 | engines: {node: '>=12.22'}
299 |
300 | '@humanwhocodes/retry@0.3.1':
301 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
302 | engines: {node: '>=18.18'}
303 |
304 | '@humanwhocodes/retry@0.4.2':
305 | resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
306 | engines: {node: '>=18.18'}
307 |
308 | '@isaacs/cliui@8.0.2':
309 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
310 | engines: {node: '>=12'}
311 |
312 | '@jridgewell/gen-mapping@0.3.8':
313 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
314 | engines: {node: '>=6.0.0'}
315 |
316 | '@jridgewell/resolve-uri@3.1.0':
317 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
318 | engines: {node: '>=6.0.0'}
319 |
320 | '@jridgewell/set-array@1.2.1':
321 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
322 | engines: {node: '>=6.0.0'}
323 |
324 | '@jridgewell/sourcemap-codec@1.5.0':
325 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
326 |
327 | '@jridgewell/trace-mapping@0.3.25':
328 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
329 |
330 | '@nodelib/fs.scandir@2.1.5':
331 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
332 | engines: {node: '>= 8'}
333 |
334 | '@nodelib/fs.stat@2.0.5':
335 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
336 | engines: {node: '>= 8'}
337 |
338 | '@nodelib/fs.walk@1.2.8':
339 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
340 | engines: {node: '>= 8'}
341 |
342 | '@pkgjs/parseargs@0.11.0':
343 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
344 | engines: {node: '>=14'}
345 |
346 | '@playwright/test@1.50.1':
347 | resolution: {integrity: sha512-Jii3aBg+CEDpgnuDxEp/h7BimHcUTDlpEtce89xEumlJ5ef2hqepZ+PWp1DDpYC/VO9fmWVI1IlEaoI5fK9FXQ==}
348 | engines: {node: '>=18'}
349 | hasBin: true
350 |
351 | '@polka/url@1.0.0-next.28':
352 | resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
353 |
354 | '@rollup/rollup-android-arm-eabi@4.34.8':
355 | resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==}
356 | cpu: [arm]
357 | os: [android]
358 |
359 | '@rollup/rollup-android-arm64@4.34.8':
360 | resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==}
361 | cpu: [arm64]
362 | os: [android]
363 |
364 | '@rollup/rollup-darwin-arm64@4.34.8':
365 | resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==}
366 | cpu: [arm64]
367 | os: [darwin]
368 |
369 | '@rollup/rollup-darwin-x64@4.34.8':
370 | resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==}
371 | cpu: [x64]
372 | os: [darwin]
373 |
374 | '@rollup/rollup-freebsd-arm64@4.34.8':
375 | resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==}
376 | cpu: [arm64]
377 | os: [freebsd]
378 |
379 | '@rollup/rollup-freebsd-x64@4.34.8':
380 | resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==}
381 | cpu: [x64]
382 | os: [freebsd]
383 |
384 | '@rollup/rollup-linux-arm-gnueabihf@4.34.8':
385 | resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==}
386 | cpu: [arm]
387 | os: [linux]
388 |
389 | '@rollup/rollup-linux-arm-musleabihf@4.34.8':
390 | resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==}
391 | cpu: [arm]
392 | os: [linux]
393 |
394 | '@rollup/rollup-linux-arm64-gnu@4.34.8':
395 | resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==}
396 | cpu: [arm64]
397 | os: [linux]
398 |
399 | '@rollup/rollup-linux-arm64-musl@4.34.8':
400 | resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==}
401 | cpu: [arm64]
402 | os: [linux]
403 |
404 | '@rollup/rollup-linux-loongarch64-gnu@4.34.8':
405 | resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==}
406 | cpu: [loong64]
407 | os: [linux]
408 |
409 | '@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
410 | resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==}
411 | cpu: [ppc64]
412 | os: [linux]
413 |
414 | '@rollup/rollup-linux-riscv64-gnu@4.34.8':
415 | resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==}
416 | cpu: [riscv64]
417 | os: [linux]
418 |
419 | '@rollup/rollup-linux-s390x-gnu@4.34.8':
420 | resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==}
421 | cpu: [s390x]
422 | os: [linux]
423 |
424 | '@rollup/rollup-linux-x64-gnu@4.34.8':
425 | resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==}
426 | cpu: [x64]
427 | os: [linux]
428 |
429 | '@rollup/rollup-linux-x64-musl@4.34.8':
430 | resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==}
431 | cpu: [x64]
432 | os: [linux]
433 |
434 | '@rollup/rollup-win32-arm64-msvc@4.34.8':
435 | resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==}
436 | cpu: [arm64]
437 | os: [win32]
438 |
439 | '@rollup/rollup-win32-ia32-msvc@4.34.8':
440 | resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==}
441 | cpu: [ia32]
442 | os: [win32]
443 |
444 | '@rollup/rollup-win32-x64-msvc@4.34.8':
445 | resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==}
446 | cpu: [x64]
447 | os: [win32]
448 |
449 | '@sveltejs/adapter-auto@4.0.0':
450 | resolution: {integrity: sha512-kmuYSQdD2AwThymQF0haQhM8rE5rhutQXG4LNbnbShwhMO4qQGnKaaTy+88DuNSuoQDi58+thpq8XpHc1+oEKQ==}
451 | peerDependencies:
452 | '@sveltejs/kit': ^2.0.0
453 |
454 | '@sveltejs/kit@2.17.2':
455 | resolution: {integrity: sha512-Vypk02baf7qd3SOB1uUwUC/3Oka+srPo2J0a8YN3EfJypRshDkNx9HzNKjSmhOnGWwT+SSO06+N0mAb8iVTmTQ==}
456 | engines: {node: '>=18.13'}
457 | hasBin: true
458 | peerDependencies:
459 | '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0
460 | svelte: ^4.0.0 || ^5.0.0-next.0
461 | vite: ^5.0.3 || ^6.0.0
462 |
463 | '@sveltejs/package@2.3.10':
464 | resolution: {integrity: sha512-A4fQacgjJ7C/7oSmxR61/TdB14u6ecyMZ8V9JCR5Lol0bLj/PdJPU4uFodFBsKzO3iFiJMpNTgZZ+zYsYZNpUg==}
465 | engines: {node: ^16.14 || >=18}
466 | hasBin: true
467 | peerDependencies:
468 | svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1
469 |
470 | '@sveltejs/vite-plugin-svelte-inspector@4.0.1':
471 | resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==}
472 | engines: {node: ^18.0.0 || ^20.0.0 || >=22}
473 | peerDependencies:
474 | '@sveltejs/vite-plugin-svelte': ^5.0.0
475 | svelte: ^5.0.0
476 | vite: ^6.0.0
477 |
478 | '@sveltejs/vite-plugin-svelte@5.0.3':
479 | resolution: {integrity: sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==}
480 | engines: {node: ^18.0.0 || ^20.0.0 || >=22}
481 | peerDependencies:
482 | svelte: ^5.0.0
483 | vite: ^6.0.0
484 |
485 | '@types/cookie@0.6.0':
486 | resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
487 |
488 | '@types/estree@1.0.6':
489 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
490 |
491 | '@types/json-schema@7.0.15':
492 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
493 |
494 | '@types/node@18.15.3':
495 | resolution: {integrity: sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==}
496 |
497 | '@types/prismjs@1.26.5':
498 | resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==}
499 |
500 | '@typescript-eslint/eslint-plugin@8.24.1':
501 | resolution: {integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==}
502 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
503 | peerDependencies:
504 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
505 | eslint: ^8.57.0 || ^9.0.0
506 | typescript: '>=4.8.4 <5.8.0'
507 |
508 | '@typescript-eslint/parser@8.24.1':
509 | resolution: {integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==}
510 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
511 | peerDependencies:
512 | eslint: ^8.57.0 || ^9.0.0
513 | typescript: '>=4.8.4 <5.8.0'
514 |
515 | '@typescript-eslint/scope-manager@8.24.1':
516 | resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==}
517 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
518 |
519 | '@typescript-eslint/type-utils@8.24.1':
520 | resolution: {integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==}
521 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
522 | peerDependencies:
523 | eslint: ^8.57.0 || ^9.0.0
524 | typescript: '>=4.8.4 <5.8.0'
525 |
526 | '@typescript-eslint/types@8.24.1':
527 | resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==}
528 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
529 |
530 | '@typescript-eslint/typescript-estree@8.24.1':
531 | resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==}
532 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
533 | peerDependencies:
534 | typescript: '>=4.8.4 <5.8.0'
535 |
536 | '@typescript-eslint/utils@8.24.1':
537 | resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==}
538 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
539 | peerDependencies:
540 | eslint: ^8.57.0 || ^9.0.0
541 | typescript: '>=4.8.4 <5.8.0'
542 |
543 | '@typescript-eslint/visitor-keys@8.24.1':
544 | resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==}
545 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
546 |
547 | '@vitest/expect@3.0.6':
548 | resolution: {integrity: sha512-zBduHf/ja7/QRX4HdP1DSq5XrPgdN+jzLOwaTq/0qZjYfgETNFCKf9nOAp2j3hmom3oTbczuUzrzg9Hafh7hNg==}
549 |
550 | '@vitest/mocker@3.0.6':
551 | resolution: {integrity: sha512-KPztr4/tn7qDGZfqlSPQoF2VgJcKxnDNhmfR3VgZ6Fy1bO8T9Fc1stUiTXtqz0yG24VpD00pZP5f8EOFknjNuQ==}
552 | peerDependencies:
553 | msw: ^2.4.9
554 | vite: ^5.0.0 || ^6.0.0
555 | peerDependenciesMeta:
556 | msw:
557 | optional: true
558 | vite:
559 | optional: true
560 |
561 | '@vitest/pretty-format@3.0.6':
562 | resolution: {integrity: sha512-Zyctv3dbNL+67qtHfRnUE/k8qxduOamRfAL1BurEIQSyOEFffoMvx2pnDSSbKAAVxY0Ej2J/GH2dQKI0W2JyVg==}
563 |
564 | '@vitest/runner@3.0.6':
565 | resolution: {integrity: sha512-JopP4m/jGoaG1+CBqubV/5VMbi7L+NQCJTu1J1Pf6YaUbk7bZtaq5CX7p+8sY64Sjn1UQ1XJparHfcvTTdu9cA==}
566 |
567 | '@vitest/snapshot@3.0.6':
568 | resolution: {integrity: sha512-qKSmxNQwT60kNwwJHMVwavvZsMGXWmngD023OHSgn873pV0lylK7dwBTfYP7e4URy5NiBCHHiQGA9DHkYkqRqg==}
569 |
570 | '@vitest/spy@3.0.6':
571 | resolution: {integrity: sha512-HfOGx/bXtjy24fDlTOpgiAEJbRfFxoX3zIGagCqACkFKKZ/TTOE6gYMKXlqecvxEndKFuNHcHqP081ggZ2yM0Q==}
572 |
573 | '@vitest/utils@3.0.6':
574 | resolution: {integrity: sha512-18ktZpf4GQFTbf9jK543uspU03Q2qya7ZGya5yiZ0Gx0nnnalBvd5ZBislbl2EhLjM8A8rt4OilqKG7QwcGkvQ==}
575 |
576 | acorn-jsx@5.3.2:
577 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
578 | peerDependencies:
579 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
580 |
581 | acorn-typescript@1.4.13:
582 | resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==}
583 | peerDependencies:
584 | acorn: '>=8.9.0'
585 |
586 | acorn@8.14.0:
587 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
588 | engines: {node: '>=0.4.0'}
589 | hasBin: true
590 |
591 | acorn@8.9.0:
592 | resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==}
593 | engines: {node: '>=0.4.0'}
594 | hasBin: true
595 |
596 | ajv@6.12.6:
597 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
598 |
599 | ansi-regex@5.0.1:
600 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
601 | engines: {node: '>=8'}
602 |
603 | ansi-regex@6.1.0:
604 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
605 | engines: {node: '>=12'}
606 |
607 | ansi-styles@4.3.0:
608 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
609 | engines: {node: '>=8'}
610 |
611 | ansi-styles@6.2.1:
612 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
613 | engines: {node: '>=12'}
614 |
615 | any-promise@1.3.0:
616 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
617 |
618 | anymatch@3.1.3:
619 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
620 | engines: {node: '>= 8'}
621 |
622 | arg@5.0.2:
623 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
624 |
625 | argparse@2.0.1:
626 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
627 |
628 | aria-query@5.3.2:
629 | resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
630 | engines: {node: '>= 0.4'}
631 |
632 | assertion-error@2.0.1:
633 | resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
634 | engines: {node: '>=12'}
635 |
636 | autoprefixer@10.4.20:
637 | resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
638 | engines: {node: ^10 || ^12 || >=14}
639 | hasBin: true
640 | peerDependencies:
641 | postcss: ^8.1.0
642 |
643 | axobject-query@4.1.0:
644 | resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
645 | engines: {node: '>= 0.4'}
646 |
647 | balanced-match@1.0.2:
648 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
649 |
650 | binary-extensions@2.2.0:
651 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
652 | engines: {node: '>=8'}
653 |
654 | brace-expansion@1.1.11:
655 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
656 |
657 | brace-expansion@2.0.1:
658 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
659 |
660 | braces@3.0.3:
661 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
662 | engines: {node: '>=8'}
663 |
664 | browserslist@4.24.4:
665 | resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
666 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
667 | hasBin: true
668 |
669 | cac@6.7.14:
670 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
671 | engines: {node: '>=8'}
672 |
673 | callsites@3.1.0:
674 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
675 | engines: {node: '>=6'}
676 |
677 | camelcase-css@2.0.1:
678 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
679 | engines: {node: '>= 6'}
680 |
681 | caniuse-lite@1.0.30001700:
682 | resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==}
683 |
684 | chai@5.2.0:
685 | resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}
686 | engines: {node: '>=12'}
687 |
688 | chalk@4.1.2:
689 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
690 | engines: {node: '>=10'}
691 |
692 | check-error@2.1.1:
693 | resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
694 | engines: {node: '>= 16'}
695 |
696 | chokidar@3.6.0:
697 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
698 | engines: {node: '>= 8.10.0'}
699 |
700 | chokidar@4.0.3:
701 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
702 | engines: {node: '>= 14.16.0'}
703 |
704 | clsx@2.1.1:
705 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
706 | engines: {node: '>=6'}
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 | commander@4.1.1:
716 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
717 | engines: {node: '>= 6'}
718 |
719 | concat-map@0.0.1:
720 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
721 |
722 | cookie@0.6.0:
723 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
724 | engines: {node: '>= 0.6'}
725 |
726 | cross-spawn@7.0.3:
727 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
728 | engines: {node: '>= 8'}
729 |
730 | cross-spawn@7.0.6:
731 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
732 | engines: {node: '>= 8'}
733 |
734 | cssesc@3.0.0:
735 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
736 | engines: {node: '>=4'}
737 | hasBin: true
738 |
739 | debug@4.4.0:
740 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
741 | engines: {node: '>=6.0'}
742 | peerDependencies:
743 | supports-color: '*'
744 | peerDependenciesMeta:
745 | supports-color:
746 | optional: true
747 |
748 | dedent-js@1.0.1:
749 | resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==}
750 |
751 | deep-eql@5.0.2:
752 | resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
753 | engines: {node: '>=6'}
754 |
755 | deep-is@0.1.4:
756 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
757 |
758 | deepmerge@4.3.1:
759 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
760 | engines: {node: '>=0.10.0'}
761 |
762 | devalue@5.1.1:
763 | resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==}
764 |
765 | didyoumean@1.2.2:
766 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
767 |
768 | dlv@1.1.3:
769 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
770 |
771 | eastasianwidth@0.2.0:
772 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
773 |
774 | electron-to-chromium@1.5.103:
775 | resolution: {integrity: sha512-P6+XzIkfndgsrjROJWfSvVEgNHtPgbhVyTkwLjUM2HU/h7pZRORgaTlHqfAikqxKmdJMLW8fftrdGWbd/Ds0FA==}
776 |
777 | emoji-regex@8.0.0:
778 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
779 |
780 | emoji-regex@9.2.2:
781 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
782 |
783 | es-module-lexer@1.6.0:
784 | resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}
785 |
786 | esbuild@0.24.2:
787 | resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
788 | engines: {node: '>=18'}
789 | hasBin: true
790 |
791 | escalade@3.2.0:
792 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
793 | engines: {node: '>=6'}
794 |
795 | escape-string-regexp@4.0.0:
796 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
797 | engines: {node: '>=10'}
798 |
799 | eslint-compat-utils@0.5.1:
800 | resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==}
801 | engines: {node: '>=12'}
802 | peerDependencies:
803 | eslint: '>=6.0.0'
804 |
805 | eslint-config-prettier@8.10.0:
806 | resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
807 | hasBin: true
808 | peerDependencies:
809 | eslint: '>=7.0.0'
810 |
811 | eslint-plugin-svelte@2.46.1:
812 | resolution: {integrity: sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==}
813 | engines: {node: ^14.17.0 || >=16.0.0}
814 | peerDependencies:
815 | eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0
816 | svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
817 | peerDependenciesMeta:
818 | svelte:
819 | optional: true
820 |
821 | eslint-scope@7.2.2:
822 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
823 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
824 |
825 | eslint-scope@8.2.0:
826 | resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
827 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
828 |
829 | eslint-visitor-keys@3.4.3:
830 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
831 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
832 |
833 | eslint-visitor-keys@4.2.0:
834 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
835 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
836 |
837 | eslint@9.21.0:
838 | resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==}
839 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
840 | hasBin: true
841 | peerDependencies:
842 | jiti: '*'
843 | peerDependenciesMeta:
844 | jiti:
845 | optional: true
846 |
847 | esm-env@1.2.2:
848 | resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
849 |
850 | espree@10.3.0:
851 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
852 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
853 |
854 | espree@9.6.1:
855 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
856 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
857 |
858 | esquery@1.5.0:
859 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
860 | engines: {node: '>=0.10'}
861 |
862 | esrap@1.4.5:
863 | resolution: {integrity: sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==}
864 |
865 | esrecurse@4.3.0:
866 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
867 | engines: {node: '>=4.0'}
868 |
869 | estraverse@5.3.0:
870 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
871 | engines: {node: '>=4.0'}
872 |
873 | estree-walker@3.0.3:
874 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
875 |
876 | esutils@2.0.3:
877 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
878 | engines: {node: '>=0.10.0'}
879 |
880 | expect-type@1.1.0:
881 | resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
882 | engines: {node: '>=12.0.0'}
883 |
884 | fast-deep-equal@3.1.3:
885 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
886 |
887 | fast-glob@3.3.3:
888 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
889 | engines: {node: '>=8.6.0'}
890 |
891 | fast-json-stable-stringify@2.1.0:
892 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
893 |
894 | fast-levenshtein@2.0.6:
895 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
896 |
897 | fastq@1.15.0:
898 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
899 |
900 | fdir@6.4.3:
901 | resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
902 | peerDependencies:
903 | picomatch: ^3 || ^4
904 | peerDependenciesMeta:
905 | picomatch:
906 | optional: true
907 |
908 | file-entry-cache@8.0.0:
909 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
910 | engines: {node: '>=16.0.0'}
911 |
912 | fill-range@7.1.1:
913 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
914 | engines: {node: '>=8'}
915 |
916 | find-up@5.0.0:
917 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
918 | engines: {node: '>=10'}
919 |
920 | flat-cache@4.0.1:
921 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
922 | engines: {node: '>=16'}
923 |
924 | flatted@3.3.3:
925 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
926 |
927 | foreground-child@3.3.0:
928 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
929 | engines: {node: '>=14'}
930 |
931 | fraction.js@4.3.7:
932 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
933 |
934 | fs.realpath@1.0.0:
935 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
936 |
937 | fsevents@2.3.2:
938 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
939 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
940 | os: [darwin]
941 |
942 | fsevents@2.3.3:
943 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
944 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
945 | os: [darwin]
946 |
947 | function-bind@1.1.2:
948 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
949 |
950 | glob-parent@5.1.2:
951 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
952 | engines: {node: '>= 6'}
953 |
954 | glob-parent@6.0.2:
955 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
956 | engines: {node: '>=10.13.0'}
957 |
958 | glob@10.4.5:
959 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
960 | hasBin: true
961 |
962 | glob@8.1.0:
963 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
964 | engines: {node: '>=12'}
965 | deprecated: Glob versions prior to v9 are no longer supported
966 |
967 | globals@14.0.0:
968 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
969 | engines: {node: '>=18'}
970 |
971 | globals@16.0.0:
972 | resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==}
973 | engines: {node: '>=18'}
974 |
975 | graphemer@1.4.0:
976 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
977 |
978 | has-flag@4.0.0:
979 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
980 | engines: {node: '>=8'}
981 |
982 | hasown@2.0.2:
983 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
984 | engines: {node: '>= 0.4'}
985 |
986 | ignore-walk@5.0.1:
987 | resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==}
988 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
989 |
990 | ignore@5.2.4:
991 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
992 | engines: {node: '>= 4'}
993 |
994 | ignore@5.3.2:
995 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
996 | engines: {node: '>= 4'}
997 |
998 | import-fresh@3.3.0:
999 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1000 | engines: {node: '>=6'}
1001 |
1002 | import-meta-resolve@4.1.0:
1003 | resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
1004 |
1005 | imurmurhash@0.1.4:
1006 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1007 | engines: {node: '>=0.8.19'}
1008 |
1009 | inflight@1.0.6:
1010 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1011 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
1012 |
1013 | inherits@2.0.4:
1014 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1015 |
1016 | is-binary-path@2.1.0:
1017 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1018 | engines: {node: '>=8'}
1019 |
1020 | is-core-module@2.16.1:
1021 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
1022 | engines: {node: '>= 0.4'}
1023 |
1024 | is-extglob@2.1.1:
1025 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1026 | engines: {node: '>=0.10.0'}
1027 |
1028 | is-fullwidth-code-point@3.0.0:
1029 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1030 | engines: {node: '>=8'}
1031 |
1032 | is-glob@4.0.3:
1033 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1034 | engines: {node: '>=0.10.0'}
1035 |
1036 | is-number@7.0.0:
1037 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1038 | engines: {node: '>=0.12.0'}
1039 |
1040 | is-reference@3.0.3:
1041 | resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
1042 |
1043 | isexe@2.0.0:
1044 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1045 |
1046 | jackspeak@3.4.3:
1047 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
1048 |
1049 | jiti@1.21.7:
1050 | resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
1051 | hasBin: true
1052 |
1053 | js-yaml@4.1.0:
1054 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1055 | hasBin: true
1056 |
1057 | json-buffer@3.0.1:
1058 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1059 |
1060 | json-schema-traverse@0.4.1:
1061 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1062 |
1063 | json-stable-stringify-without-jsonify@1.0.1:
1064 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1065 |
1066 | keyv@4.5.4:
1067 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1068 |
1069 | kleur@4.1.5:
1070 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
1071 | engines: {node: '>=6'}
1072 |
1073 | known-css-properties@0.35.0:
1074 | resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==}
1075 |
1076 | levn@0.4.1:
1077 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1078 | engines: {node: '>= 0.8.0'}
1079 |
1080 | lilconfig@2.1.0:
1081 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
1082 | engines: {node: '>=10'}
1083 |
1084 | lilconfig@3.1.3:
1085 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
1086 | engines: {node: '>=14'}
1087 |
1088 | lines-and-columns@1.2.4:
1089 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1090 |
1091 | locate-character@3.0.0:
1092 | resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
1093 |
1094 | locate-path@6.0.0:
1095 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1096 | engines: {node: '>=10'}
1097 |
1098 | lodash.merge@4.6.2:
1099 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1100 |
1101 | loupe@3.1.3:
1102 | resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
1103 |
1104 | lower-case@2.0.2:
1105 | resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
1106 |
1107 | lru-cache@10.4.3:
1108 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
1109 |
1110 | magic-string@0.30.11:
1111 | resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
1112 |
1113 | magic-string@0.30.17:
1114 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
1115 |
1116 | merge2@1.4.1:
1117 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1118 | engines: {node: '>= 8'}
1119 |
1120 | micromatch@4.0.8:
1121 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1122 | engines: {node: '>=8.6'}
1123 |
1124 | minimatch@3.1.2:
1125 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1126 |
1127 | minimatch@5.1.6:
1128 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
1129 | engines: {node: '>=10'}
1130 |
1131 | minimatch@9.0.5:
1132 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1133 | engines: {node: '>=16 || 14 >=14.17'}
1134 |
1135 | minipass@7.1.2:
1136 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
1137 | engines: {node: '>=16 || 14 >=14.17'}
1138 |
1139 | mri@1.2.0:
1140 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
1141 | engines: {node: '>=4'}
1142 |
1143 | mrmime@2.0.1:
1144 | resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
1145 | engines: {node: '>=10'}
1146 |
1147 | ms@2.1.3:
1148 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1149 |
1150 | mz@2.7.0:
1151 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1152 |
1153 | nanoid@3.3.8:
1154 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
1155 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1156 | hasBin: true
1157 |
1158 | natural-compare@1.4.0:
1159 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1160 |
1161 | no-case@3.0.4:
1162 | resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
1163 |
1164 | node-releases@2.0.19:
1165 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
1166 |
1167 | normalize-path@3.0.0:
1168 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1169 | engines: {node: '>=0.10.0'}
1170 |
1171 | normalize-range@0.1.2:
1172 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1173 | engines: {node: '>=0.10.0'}
1174 |
1175 | npm-bundled@2.0.1:
1176 | resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==}
1177 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
1178 |
1179 | npm-normalize-package-bin@2.0.0:
1180 | resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
1181 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
1182 |
1183 | npm-packlist@5.1.3:
1184 | resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==}
1185 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
1186 | hasBin: true
1187 |
1188 | object-assign@4.1.1:
1189 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1190 | engines: {node: '>=0.10.0'}
1191 |
1192 | object-hash@3.0.0:
1193 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1194 | engines: {node: '>= 6'}
1195 |
1196 | once@1.4.0:
1197 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1198 |
1199 | optionator@0.9.4:
1200 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
1201 | engines: {node: '>= 0.8.0'}
1202 |
1203 | p-limit@3.1.0:
1204 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1205 | engines: {node: '>=10'}
1206 |
1207 | p-locate@5.0.0:
1208 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1209 | engines: {node: '>=10'}
1210 |
1211 | package-json-from-dist@1.0.1:
1212 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
1213 |
1214 | parent-module@1.0.1:
1215 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1216 | engines: {node: '>=6'}
1217 |
1218 | pascal-case@3.1.2:
1219 | resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
1220 |
1221 | path-exists@4.0.0:
1222 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1223 | engines: {node: '>=8'}
1224 |
1225 | path-key@3.1.1:
1226 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1227 | engines: {node: '>=8'}
1228 |
1229 | path-parse@1.0.7:
1230 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1231 |
1232 | path-scurry@1.11.1:
1233 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
1234 | engines: {node: '>=16 || 14 >=14.18'}
1235 |
1236 | pathe@2.0.3:
1237 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
1238 |
1239 | pathval@2.0.0:
1240 | resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
1241 | engines: {node: '>= 14.16'}
1242 |
1243 | picocolors@1.1.1:
1244 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1245 |
1246 | picomatch@2.3.1:
1247 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1248 | engines: {node: '>=8.6'}
1249 |
1250 | pify@2.3.0:
1251 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1252 | engines: {node: '>=0.10.0'}
1253 |
1254 | pirates@4.0.6:
1255 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
1256 | engines: {node: '>= 6'}
1257 |
1258 | playwright-core@1.50.1:
1259 | resolution: {integrity: sha512-ra9fsNWayuYumt+NiM069M6OkcRb1FZSK8bgi66AtpFoWkg2+y0bJSNmkFrWhMbEBbVKC/EruAHH3g0zmtwGmQ==}
1260 | engines: {node: '>=18'}
1261 | hasBin: true
1262 |
1263 | playwright@1.50.1:
1264 | resolution: {integrity: sha512-G8rwsOQJ63XG6BbKj2w5rHeavFjy5zynBA9zsJMMtBoe/Uf757oG12NXz6e6OirF7RCrTVAKFXbLmn1RbL7Qaw==}
1265 | engines: {node: '>=18'}
1266 | hasBin: true
1267 |
1268 | postcss-import@15.1.0:
1269 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
1270 | engines: {node: '>=14.0.0'}
1271 | peerDependencies:
1272 | postcss: ^8.0.0
1273 |
1274 | postcss-js@4.0.1:
1275 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
1276 | engines: {node: ^12 || ^14 || >= 16}
1277 | peerDependencies:
1278 | postcss: ^8.4.21
1279 |
1280 | postcss-load-config@3.1.4:
1281 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
1282 | engines: {node: '>= 10'}
1283 | peerDependencies:
1284 | postcss: '>=8.0.9'
1285 | ts-node: '>=9.0.0'
1286 | peerDependenciesMeta:
1287 | postcss:
1288 | optional: true
1289 | ts-node:
1290 | optional: true
1291 |
1292 | postcss-load-config@4.0.2:
1293 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
1294 | engines: {node: '>= 14'}
1295 | peerDependencies:
1296 | postcss: '>=8.0.9'
1297 | ts-node: '>=9.0.0'
1298 | peerDependenciesMeta:
1299 | postcss:
1300 | optional: true
1301 | ts-node:
1302 | optional: true
1303 |
1304 | postcss-nested@6.2.0:
1305 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
1306 | engines: {node: '>=12.0'}
1307 | peerDependencies:
1308 | postcss: ^8.2.14
1309 |
1310 | postcss-safe-parser@6.0.0:
1311 | resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
1312 | engines: {node: '>=12.0'}
1313 | peerDependencies:
1314 | postcss: ^8.3.3
1315 |
1316 | postcss-scss@4.0.9:
1317 | resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==}
1318 | engines: {node: '>=12.0'}
1319 | peerDependencies:
1320 | postcss: ^8.4.29
1321 |
1322 | postcss-selector-parser@6.1.2:
1323 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
1324 | engines: {node: '>=4'}
1325 |
1326 | postcss-value-parser@4.2.0:
1327 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1328 |
1329 | postcss@8.5.3:
1330 | resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
1331 | engines: {node: ^10 || ^12 || >=14}
1332 |
1333 | prelude-ls@1.2.1:
1334 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1335 | engines: {node: '>= 0.8.0'}
1336 |
1337 | prettier-plugin-svelte@3.3.3:
1338 | resolution: {integrity: sha512-yViK9zqQ+H2qZD1w/bH7W8i+bVfKrD8GIFjkFe4Thl6kCT9SlAsXVNmt3jCvQOCsnOhcvYgsoVlRV/Eu6x5nNw==}
1339 | peerDependencies:
1340 | prettier: ^3.0.0
1341 | svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0
1342 |
1343 | prettier@3.5.2:
1344 | resolution: {integrity: sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==}
1345 | engines: {node: '>=14'}
1346 | hasBin: true
1347 |
1348 | prism-svelte@0.5.0:
1349 | resolution: {integrity: sha512-db91Bf3pRGKDPz1lAqLFSJXeW13mulUJxhycysFpfXV5MIK7RgWWK2E5aPAa71s8TCzQUXxF5JOV42/iOs6QkA==}
1350 |
1351 | prismjs@1.29.0:
1352 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
1353 | engines: {node: '>=6'}
1354 |
1355 | publint@0.1.16:
1356 | resolution: {integrity: sha512-wJgk7HnXDT5Ap0DjFYbGz78kPkN44iQvDiaq8P63IEEyNU9mYXvaMd2cAyIM6OgqXM/IA3CK6XWIsRq+wjNpgw==}
1357 | engines: {node: '>=16'}
1358 | hasBin: true
1359 |
1360 | punycode@2.3.0:
1361 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
1362 | engines: {node: '>=6'}
1363 |
1364 | queue-microtask@1.2.3:
1365 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1366 |
1367 | read-cache@1.0.0:
1368 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1369 |
1370 | readdirp@3.6.0:
1371 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1372 | engines: {node: '>=8.10.0'}
1373 |
1374 | readdirp@4.1.2:
1375 | resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
1376 | engines: {node: '>= 14.18.0'}
1377 |
1378 | resolve-from@4.0.0:
1379 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1380 | engines: {node: '>=4'}
1381 |
1382 | resolve@1.22.10:
1383 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
1384 | engines: {node: '>= 0.4'}
1385 | hasBin: true
1386 |
1387 | reusify@1.0.4:
1388 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1389 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1390 |
1391 | rollup@4.34.8:
1392 | resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==}
1393 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1394 | hasBin: true
1395 |
1396 | run-parallel@1.2.0:
1397 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1398 |
1399 | sade@1.8.1:
1400 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
1401 | engines: {node: '>=6'}
1402 |
1403 | semver@7.7.1:
1404 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
1405 | engines: {node: '>=10'}
1406 | hasBin: true
1407 |
1408 | set-cookie-parser@2.6.0:
1409 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
1410 |
1411 | shebang-command@2.0.0:
1412 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1413 | engines: {node: '>=8'}
1414 |
1415 | shebang-regex@3.0.0:
1416 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1417 | engines: {node: '>=8'}
1418 |
1419 | siginfo@2.0.0:
1420 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
1421 |
1422 | signal-exit@4.1.0:
1423 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1424 | engines: {node: '>=14'}
1425 |
1426 | sirv@3.0.1:
1427 | resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
1428 | engines: {node: '>=18'}
1429 |
1430 | source-map-js@1.2.1:
1431 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1432 | engines: {node: '>=0.10.0'}
1433 |
1434 | stackback@0.0.2:
1435 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
1436 |
1437 | std-env@3.8.0:
1438 | resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==}
1439 |
1440 | string-width@4.2.3:
1441 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1442 | engines: {node: '>=8'}
1443 |
1444 | string-width@5.1.2:
1445 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
1446 | engines: {node: '>=12'}
1447 |
1448 | strip-ansi@6.0.1:
1449 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1450 | engines: {node: '>=8'}
1451 |
1452 | strip-ansi@7.1.0:
1453 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1454 | engines: {node: '>=12'}
1455 |
1456 | strip-json-comments@3.1.1:
1457 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1458 | engines: {node: '>=8'}
1459 |
1460 | sucrase@3.35.0:
1461 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
1462 | engines: {node: '>=16 || 14 >=14.17'}
1463 | hasBin: true
1464 |
1465 | supports-color@7.2.0:
1466 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1467 | engines: {node: '>=8'}
1468 |
1469 | supports-preserve-symlinks-flag@1.0.0:
1470 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1471 | engines: {node: '>= 0.4'}
1472 |
1473 | svelte-check@4.1.4:
1474 | resolution: {integrity: sha512-v0j7yLbT29MezzaQJPEDwksybTE2Ups9rUxEXy92T06TiA0cbqcO8wAOwNUVkFW6B0hsYHA+oAX3BS8b/2oHtw==}
1475 | engines: {node: '>= 18.0.0'}
1476 | hasBin: true
1477 | peerDependencies:
1478 | svelte: ^4.0.0 || ^5.0.0-next.0
1479 | typescript: '>=5.0.0'
1480 |
1481 | svelte-eslint-parser@0.43.0:
1482 | resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==}
1483 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1484 | peerDependencies:
1485 | svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
1486 | peerDependenciesMeta:
1487 | svelte:
1488 | optional: true
1489 |
1490 | svelte-writable-derived@3.1.1:
1491 | resolution: {integrity: sha512-w4LR6/bYZEuCs7SGr+M54oipk/UQKtiMadyOhW0PTwAtJ/Ai12QS77sLngEcfBx2q4H8ZBQucc9ktSA5sUGZWw==}
1492 | peerDependencies:
1493 | svelte: ^3.2.1 || ^4.0.0-next.1 || ^5.0.0-next.94
1494 |
1495 | svelte2tsx@0.7.34:
1496 | resolution: {integrity: sha512-WTMhpNhFf8/h3SMtR5dkdSy2qfveomkhYei/QW9gSPccb0/b82tjHvLop6vT303ZkGswU/da1s6XvrLgthQPCw==}
1497 | peerDependencies:
1498 | svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0
1499 | typescript: ^4.9.4 || ^5.0.0
1500 |
1501 | svelte@5.20.2:
1502 | resolution: {integrity: sha512-aYXJreNUiyTob0QOzRZeBXZMGeFZDch6SrSRV8QTncZb6zj0O3BEdUzPpojuHQ1pTvk+KX7I6rZCXPUf8pTPxA==}
1503 | engines: {node: '>=18'}
1504 |
1505 | tailwindcss@3.4.17:
1506 | resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
1507 | engines: {node: '>=14.0.0'}
1508 | hasBin: true
1509 |
1510 | thenify-all@1.6.0:
1511 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1512 | engines: {node: '>=0.8'}
1513 |
1514 | thenify@3.3.1:
1515 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1516 |
1517 | tinybench@2.9.0:
1518 | resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
1519 |
1520 | tinyexec@0.3.2:
1521 | resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
1522 |
1523 | tinypool@1.0.2:
1524 | resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
1525 | engines: {node: ^18.0.0 || >=20.0.0}
1526 |
1527 | tinyrainbow@2.0.0:
1528 | resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
1529 | engines: {node: '>=14.0.0'}
1530 |
1531 | tinyspy@3.0.2:
1532 | resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
1533 | engines: {node: '>=14.0.0'}
1534 |
1535 | to-regex-range@5.0.1:
1536 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1537 | engines: {node: '>=8.0'}
1538 |
1539 | totalist@3.0.0:
1540 | resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==}
1541 | engines: {node: '>=6'}
1542 |
1543 | ts-api-utils@2.0.1:
1544 | resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
1545 | engines: {node: '>=18.12'}
1546 | peerDependencies:
1547 | typescript: '>=4.8.4'
1548 |
1549 | ts-interface-checker@0.1.13:
1550 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1551 |
1552 | tslib@2.8.1:
1553 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
1554 |
1555 | type-check@0.4.0:
1556 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1557 | engines: {node: '>= 0.8.0'}
1558 |
1559 | typescript-eslint@8.24.1:
1560 | resolution: {integrity: sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==}
1561 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1562 | peerDependencies:
1563 | eslint: ^8.57.0 || ^9.0.0
1564 | typescript: '>=4.8.4 <5.8.0'
1565 |
1566 | typescript@5.7.3:
1567 | resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
1568 | engines: {node: '>=14.17'}
1569 | hasBin: true
1570 |
1571 | update-browserslist-db@1.1.2:
1572 | resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
1573 | hasBin: true
1574 | peerDependencies:
1575 | browserslist: '>= 4.21.0'
1576 |
1577 | uri-js@4.4.1:
1578 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1579 |
1580 | util-deprecate@1.0.2:
1581 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1582 |
1583 | vite-node@3.0.6:
1584 | resolution: {integrity: sha512-s51RzrTkXKJrhNbUzQRsarjmAae7VmMPAsRT7lppVpIg6mK3zGthP9Hgz0YQQKuNcF+Ii7DfYk3Fxz40jRmePw==}
1585 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1586 | hasBin: true
1587 |
1588 | vite@6.1.1:
1589 | resolution: {integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==}
1590 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1591 | hasBin: true
1592 | peerDependencies:
1593 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
1594 | jiti: '>=1.21.0'
1595 | less: '*'
1596 | lightningcss: ^1.21.0
1597 | sass: '*'
1598 | sass-embedded: '*'
1599 | stylus: '*'
1600 | sugarss: '*'
1601 | terser: ^5.16.0
1602 | tsx: ^4.8.1
1603 | yaml: ^2.4.2
1604 | peerDependenciesMeta:
1605 | '@types/node':
1606 | optional: true
1607 | jiti:
1608 | optional: true
1609 | less:
1610 | optional: true
1611 | lightningcss:
1612 | optional: true
1613 | sass:
1614 | optional: true
1615 | sass-embedded:
1616 | optional: true
1617 | stylus:
1618 | optional: true
1619 | sugarss:
1620 | optional: true
1621 | terser:
1622 | optional: true
1623 | tsx:
1624 | optional: true
1625 | yaml:
1626 | optional: true
1627 |
1628 | vitefu@1.0.5:
1629 | resolution: {integrity: sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==}
1630 | peerDependencies:
1631 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
1632 | peerDependenciesMeta:
1633 | vite:
1634 | optional: true
1635 |
1636 | vitest@3.0.6:
1637 | resolution: {integrity: sha512-/iL1Sc5VeDZKPDe58oGK4HUFLhw6b5XdY1MYawjuSaDA4sEfYlY9HnS6aCEG26fX+MgUi7MwlduTBHHAI/OvMA==}
1638 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1639 | hasBin: true
1640 | peerDependencies:
1641 | '@edge-runtime/vm': '*'
1642 | '@types/debug': ^4.1.12
1643 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
1644 | '@vitest/browser': 3.0.6
1645 | '@vitest/ui': 3.0.6
1646 | happy-dom: '*'
1647 | jsdom: '*'
1648 | peerDependenciesMeta:
1649 | '@edge-runtime/vm':
1650 | optional: true
1651 | '@types/debug':
1652 | optional: true
1653 | '@types/node':
1654 | optional: true
1655 | '@vitest/browser':
1656 | optional: true
1657 | '@vitest/ui':
1658 | optional: true
1659 | happy-dom:
1660 | optional: true
1661 | jsdom:
1662 | optional: true
1663 |
1664 | which@2.0.2:
1665 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1666 | engines: {node: '>= 8'}
1667 | hasBin: true
1668 |
1669 | why-is-node-running@2.3.0:
1670 | resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
1671 | engines: {node: '>=8'}
1672 | hasBin: true
1673 |
1674 | word-wrap@1.2.5:
1675 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
1676 | engines: {node: '>=0.10.0'}
1677 |
1678 | wrap-ansi@7.0.0:
1679 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1680 | engines: {node: '>=10'}
1681 |
1682 | wrap-ansi@8.1.0:
1683 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
1684 | engines: {node: '>=12'}
1685 |
1686 | wrappy@1.0.2:
1687 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1688 |
1689 | yaml@1.10.2:
1690 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
1691 | engines: {node: '>= 6'}
1692 |
1693 | yaml@2.7.0:
1694 | resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==}
1695 | engines: {node: '>= 14'}
1696 | hasBin: true
1697 |
1698 | yocto-queue@0.1.0:
1699 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1700 | engines: {node: '>=10'}
1701 |
1702 | zimmerframe@1.1.2:
1703 | resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==}
1704 |
1705 | snapshots:
1706 |
1707 | '@alloc/quick-lru@5.2.0': {}
1708 |
1709 | '@ampproject/remapping@2.3.0':
1710 | dependencies:
1711 | '@jridgewell/gen-mapping': 0.3.8
1712 | '@jridgewell/trace-mapping': 0.3.25
1713 |
1714 | '@esbuild/aix-ppc64@0.24.2':
1715 | optional: true
1716 |
1717 | '@esbuild/android-arm64@0.24.2':
1718 | optional: true
1719 |
1720 | '@esbuild/android-arm@0.24.2':
1721 | optional: true
1722 |
1723 | '@esbuild/android-x64@0.24.2':
1724 | optional: true
1725 |
1726 | '@esbuild/darwin-arm64@0.24.2':
1727 | optional: true
1728 |
1729 | '@esbuild/darwin-x64@0.24.2':
1730 | optional: true
1731 |
1732 | '@esbuild/freebsd-arm64@0.24.2':
1733 | optional: true
1734 |
1735 | '@esbuild/freebsd-x64@0.24.2':
1736 | optional: true
1737 |
1738 | '@esbuild/linux-arm64@0.24.2':
1739 | optional: true
1740 |
1741 | '@esbuild/linux-arm@0.24.2':
1742 | optional: true
1743 |
1744 | '@esbuild/linux-ia32@0.24.2':
1745 | optional: true
1746 |
1747 | '@esbuild/linux-loong64@0.24.2':
1748 | optional: true
1749 |
1750 | '@esbuild/linux-mips64el@0.24.2':
1751 | optional: true
1752 |
1753 | '@esbuild/linux-ppc64@0.24.2':
1754 | optional: true
1755 |
1756 | '@esbuild/linux-riscv64@0.24.2':
1757 | optional: true
1758 |
1759 | '@esbuild/linux-s390x@0.24.2':
1760 | optional: true
1761 |
1762 | '@esbuild/linux-x64@0.24.2':
1763 | optional: true
1764 |
1765 | '@esbuild/netbsd-arm64@0.24.2':
1766 | optional: true
1767 |
1768 | '@esbuild/netbsd-x64@0.24.2':
1769 | optional: true
1770 |
1771 | '@esbuild/openbsd-arm64@0.24.2':
1772 | optional: true
1773 |
1774 | '@esbuild/openbsd-x64@0.24.2':
1775 | optional: true
1776 |
1777 | '@esbuild/sunos-x64@0.24.2':
1778 | optional: true
1779 |
1780 | '@esbuild/win32-arm64@0.24.2':
1781 | optional: true
1782 |
1783 | '@esbuild/win32-ia32@0.24.2':
1784 | optional: true
1785 |
1786 | '@esbuild/win32-x64@0.24.2':
1787 | optional: true
1788 |
1789 | '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@1.21.7))':
1790 | dependencies:
1791 | eslint: 9.21.0(jiti@1.21.7)
1792 | eslint-visitor-keys: 3.4.3
1793 |
1794 | '@eslint-community/regexpp@4.12.1': {}
1795 |
1796 | '@eslint/config-array@0.19.2':
1797 | dependencies:
1798 | '@eslint/object-schema': 2.1.6
1799 | debug: 4.4.0
1800 | minimatch: 3.1.2
1801 | transitivePeerDependencies:
1802 | - supports-color
1803 |
1804 | '@eslint/core@0.12.0':
1805 | dependencies:
1806 | '@types/json-schema': 7.0.15
1807 |
1808 | '@eslint/eslintrc@3.3.0':
1809 | dependencies:
1810 | ajv: 6.12.6
1811 | debug: 4.4.0
1812 | espree: 10.3.0
1813 | globals: 14.0.0
1814 | ignore: 5.2.4
1815 | import-fresh: 3.3.0
1816 | js-yaml: 4.1.0
1817 | minimatch: 3.1.2
1818 | strip-json-comments: 3.1.1
1819 | transitivePeerDependencies:
1820 | - supports-color
1821 |
1822 | '@eslint/js@9.21.0': {}
1823 |
1824 | '@eslint/object-schema@2.1.6': {}
1825 |
1826 | '@eslint/plugin-kit@0.2.7':
1827 | dependencies:
1828 | '@eslint/core': 0.12.0
1829 | levn: 0.4.1
1830 |
1831 | '@humanfs/core@0.19.1': {}
1832 |
1833 | '@humanfs/node@0.16.6':
1834 | dependencies:
1835 | '@humanfs/core': 0.19.1
1836 | '@humanwhocodes/retry': 0.3.1
1837 |
1838 | '@humanwhocodes/module-importer@1.0.1': {}
1839 |
1840 | '@humanwhocodes/retry@0.3.1': {}
1841 |
1842 | '@humanwhocodes/retry@0.4.2': {}
1843 |
1844 | '@isaacs/cliui@8.0.2':
1845 | dependencies:
1846 | string-width: 5.1.2
1847 | string-width-cjs: string-width@4.2.3
1848 | strip-ansi: 7.1.0
1849 | strip-ansi-cjs: strip-ansi@6.0.1
1850 | wrap-ansi: 8.1.0
1851 | wrap-ansi-cjs: wrap-ansi@7.0.0
1852 |
1853 | '@jridgewell/gen-mapping@0.3.8':
1854 | dependencies:
1855 | '@jridgewell/set-array': 1.2.1
1856 | '@jridgewell/sourcemap-codec': 1.5.0
1857 | '@jridgewell/trace-mapping': 0.3.25
1858 |
1859 | '@jridgewell/resolve-uri@3.1.0': {}
1860 |
1861 | '@jridgewell/set-array@1.2.1': {}
1862 |
1863 | '@jridgewell/sourcemap-codec@1.5.0': {}
1864 |
1865 | '@jridgewell/trace-mapping@0.3.25':
1866 | dependencies:
1867 | '@jridgewell/resolve-uri': 3.1.0
1868 | '@jridgewell/sourcemap-codec': 1.5.0
1869 |
1870 | '@nodelib/fs.scandir@2.1.5':
1871 | dependencies:
1872 | '@nodelib/fs.stat': 2.0.5
1873 | run-parallel: 1.2.0
1874 |
1875 | '@nodelib/fs.stat@2.0.5': {}
1876 |
1877 | '@nodelib/fs.walk@1.2.8':
1878 | dependencies:
1879 | '@nodelib/fs.scandir': 2.1.5
1880 | fastq: 1.15.0
1881 |
1882 | '@pkgjs/parseargs@0.11.0':
1883 | optional: true
1884 |
1885 | '@playwright/test@1.50.1':
1886 | dependencies:
1887 | playwright: 1.50.1
1888 |
1889 | '@polka/url@1.0.0-next.28': {}
1890 |
1891 | '@rollup/rollup-android-arm-eabi@4.34.8':
1892 | optional: true
1893 |
1894 | '@rollup/rollup-android-arm64@4.34.8':
1895 | optional: true
1896 |
1897 | '@rollup/rollup-darwin-arm64@4.34.8':
1898 | optional: true
1899 |
1900 | '@rollup/rollup-darwin-x64@4.34.8':
1901 | optional: true
1902 |
1903 | '@rollup/rollup-freebsd-arm64@4.34.8':
1904 | optional: true
1905 |
1906 | '@rollup/rollup-freebsd-x64@4.34.8':
1907 | optional: true
1908 |
1909 | '@rollup/rollup-linux-arm-gnueabihf@4.34.8':
1910 | optional: true
1911 |
1912 | '@rollup/rollup-linux-arm-musleabihf@4.34.8':
1913 | optional: true
1914 |
1915 | '@rollup/rollup-linux-arm64-gnu@4.34.8':
1916 | optional: true
1917 |
1918 | '@rollup/rollup-linux-arm64-musl@4.34.8':
1919 | optional: true
1920 |
1921 | '@rollup/rollup-linux-loongarch64-gnu@4.34.8':
1922 | optional: true
1923 |
1924 | '@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
1925 | optional: true
1926 |
1927 | '@rollup/rollup-linux-riscv64-gnu@4.34.8':
1928 | optional: true
1929 |
1930 | '@rollup/rollup-linux-s390x-gnu@4.34.8':
1931 | optional: true
1932 |
1933 | '@rollup/rollup-linux-x64-gnu@4.34.8':
1934 | optional: true
1935 |
1936 | '@rollup/rollup-linux-x64-musl@4.34.8':
1937 | optional: true
1938 |
1939 | '@rollup/rollup-win32-arm64-msvc@4.34.8':
1940 | optional: true
1941 |
1942 | '@rollup/rollup-win32-ia32-msvc@4.34.8':
1943 | optional: true
1944 |
1945 | '@rollup/rollup-win32-x64-msvc@4.34.8':
1946 | optional: true
1947 |
1948 | '@sveltejs/adapter-auto@4.0.0(@sveltejs/kit@2.17.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)))(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)))':
1949 | dependencies:
1950 | '@sveltejs/kit': 2.17.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)))(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))
1951 | import-meta-resolve: 4.1.0
1952 |
1953 | '@sveltejs/kit@2.17.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)))(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))':
1954 | dependencies:
1955 | '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))
1956 | '@types/cookie': 0.6.0
1957 | cookie: 0.6.0
1958 | devalue: 5.1.1
1959 | esm-env: 1.2.2
1960 | import-meta-resolve: 4.1.0
1961 | kleur: 4.1.5
1962 | magic-string: 0.30.11
1963 | mrmime: 2.0.1
1964 | sade: 1.8.1
1965 | set-cookie-parser: 2.6.0
1966 | sirv: 3.0.1
1967 | svelte: 5.20.2
1968 | vite: 6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
1969 |
1970 | '@sveltejs/package@2.3.10(svelte@5.20.2)(typescript@5.7.3)':
1971 | dependencies:
1972 | chokidar: 4.0.3
1973 | kleur: 4.1.5
1974 | sade: 1.8.1
1975 | semver: 7.7.1
1976 | svelte: 5.20.2
1977 | svelte2tsx: 0.7.34(svelte@5.20.2)(typescript@5.7.3)
1978 | transitivePeerDependencies:
1979 | - typescript
1980 |
1981 | '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)))(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))':
1982 | dependencies:
1983 | '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))
1984 | debug: 4.4.0
1985 | svelte: 5.20.2
1986 | vite: 6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
1987 | transitivePeerDependencies:
1988 | - supports-color
1989 |
1990 | '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))':
1991 | dependencies:
1992 | '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)))(svelte@5.20.2)(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))
1993 | debug: 4.4.0
1994 | deepmerge: 4.3.1
1995 | kleur: 4.1.5
1996 | magic-string: 0.30.17
1997 | svelte: 5.20.2
1998 | vite: 6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
1999 | vitefu: 1.0.5(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))
2000 | transitivePeerDependencies:
2001 | - supports-color
2002 |
2003 | '@types/cookie@0.6.0': {}
2004 |
2005 | '@types/estree@1.0.6': {}
2006 |
2007 | '@types/json-schema@7.0.15': {}
2008 |
2009 | '@types/node@18.15.3':
2010 | optional: true
2011 |
2012 | '@types/prismjs@1.26.5': {}
2013 |
2014 | '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3))(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)':
2015 | dependencies:
2016 | '@eslint-community/regexpp': 4.12.1
2017 | '@typescript-eslint/parser': 8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)
2018 | '@typescript-eslint/scope-manager': 8.24.1
2019 | '@typescript-eslint/type-utils': 8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)
2020 | '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)
2021 | '@typescript-eslint/visitor-keys': 8.24.1
2022 | eslint: 9.21.0(jiti@1.21.7)
2023 | graphemer: 1.4.0
2024 | ignore: 5.3.2
2025 | natural-compare: 1.4.0
2026 | ts-api-utils: 2.0.1(typescript@5.7.3)
2027 | typescript: 5.7.3
2028 | transitivePeerDependencies:
2029 | - supports-color
2030 |
2031 | '@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)':
2032 | dependencies:
2033 | '@typescript-eslint/scope-manager': 8.24.1
2034 | '@typescript-eslint/types': 8.24.1
2035 | '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3)
2036 | '@typescript-eslint/visitor-keys': 8.24.1
2037 | debug: 4.4.0
2038 | eslint: 9.21.0(jiti@1.21.7)
2039 | typescript: 5.7.3
2040 | transitivePeerDependencies:
2041 | - supports-color
2042 |
2043 | '@typescript-eslint/scope-manager@8.24.1':
2044 | dependencies:
2045 | '@typescript-eslint/types': 8.24.1
2046 | '@typescript-eslint/visitor-keys': 8.24.1
2047 |
2048 | '@typescript-eslint/type-utils@8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)':
2049 | dependencies:
2050 | '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3)
2051 | '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)
2052 | debug: 4.4.0
2053 | eslint: 9.21.0(jiti@1.21.7)
2054 | ts-api-utils: 2.0.1(typescript@5.7.3)
2055 | typescript: 5.7.3
2056 | transitivePeerDependencies:
2057 | - supports-color
2058 |
2059 | '@typescript-eslint/types@8.24.1': {}
2060 |
2061 | '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)':
2062 | dependencies:
2063 | '@typescript-eslint/types': 8.24.1
2064 | '@typescript-eslint/visitor-keys': 8.24.1
2065 | debug: 4.4.0
2066 | fast-glob: 3.3.3
2067 | is-glob: 4.0.3
2068 | minimatch: 9.0.5
2069 | semver: 7.7.1
2070 | ts-api-utils: 2.0.1(typescript@5.7.3)
2071 | typescript: 5.7.3
2072 | transitivePeerDependencies:
2073 | - supports-color
2074 |
2075 | '@typescript-eslint/utils@8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)':
2076 | dependencies:
2077 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.7))
2078 | '@typescript-eslint/scope-manager': 8.24.1
2079 | '@typescript-eslint/types': 8.24.1
2080 | '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3)
2081 | eslint: 9.21.0(jiti@1.21.7)
2082 | typescript: 5.7.3
2083 | transitivePeerDependencies:
2084 | - supports-color
2085 |
2086 | '@typescript-eslint/visitor-keys@8.24.1':
2087 | dependencies:
2088 | '@typescript-eslint/types': 8.24.1
2089 | eslint-visitor-keys: 4.2.0
2090 |
2091 | '@vitest/expect@3.0.6':
2092 | dependencies:
2093 | '@vitest/spy': 3.0.6
2094 | '@vitest/utils': 3.0.6
2095 | chai: 5.2.0
2096 | tinyrainbow: 2.0.0
2097 |
2098 | '@vitest/mocker@3.0.6(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))':
2099 | dependencies:
2100 | '@vitest/spy': 3.0.6
2101 | estree-walker: 3.0.3
2102 | magic-string: 0.30.17
2103 | optionalDependencies:
2104 | vite: 6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
2105 |
2106 | '@vitest/pretty-format@3.0.6':
2107 | dependencies:
2108 | tinyrainbow: 2.0.0
2109 |
2110 | '@vitest/runner@3.0.6':
2111 | dependencies:
2112 | '@vitest/utils': 3.0.6
2113 | pathe: 2.0.3
2114 |
2115 | '@vitest/snapshot@3.0.6':
2116 | dependencies:
2117 | '@vitest/pretty-format': 3.0.6
2118 | magic-string: 0.30.17
2119 | pathe: 2.0.3
2120 |
2121 | '@vitest/spy@3.0.6':
2122 | dependencies:
2123 | tinyspy: 3.0.2
2124 |
2125 | '@vitest/utils@3.0.6':
2126 | dependencies:
2127 | '@vitest/pretty-format': 3.0.6
2128 | loupe: 3.1.3
2129 | tinyrainbow: 2.0.0
2130 |
2131 | acorn-jsx@5.3.2(acorn@8.14.0):
2132 | dependencies:
2133 | acorn: 8.14.0
2134 |
2135 | acorn-jsx@5.3.2(acorn@8.9.0):
2136 | dependencies:
2137 | acorn: 8.9.0
2138 |
2139 | acorn-typescript@1.4.13(acorn@8.14.0):
2140 | dependencies:
2141 | acorn: 8.14.0
2142 |
2143 | acorn@8.14.0: {}
2144 |
2145 | acorn@8.9.0: {}
2146 |
2147 | ajv@6.12.6:
2148 | dependencies:
2149 | fast-deep-equal: 3.1.3
2150 | fast-json-stable-stringify: 2.1.0
2151 | json-schema-traverse: 0.4.1
2152 | uri-js: 4.4.1
2153 |
2154 | ansi-regex@5.0.1: {}
2155 |
2156 | ansi-regex@6.1.0: {}
2157 |
2158 | ansi-styles@4.3.0:
2159 | dependencies:
2160 | color-convert: 2.0.1
2161 |
2162 | ansi-styles@6.2.1: {}
2163 |
2164 | any-promise@1.3.0: {}
2165 |
2166 | anymatch@3.1.3:
2167 | dependencies:
2168 | normalize-path: 3.0.0
2169 | picomatch: 2.3.1
2170 |
2171 | arg@5.0.2: {}
2172 |
2173 | argparse@2.0.1: {}
2174 |
2175 | aria-query@5.3.2: {}
2176 |
2177 | assertion-error@2.0.1: {}
2178 |
2179 | autoprefixer@10.4.20(postcss@8.5.3):
2180 | dependencies:
2181 | browserslist: 4.24.4
2182 | caniuse-lite: 1.0.30001700
2183 | fraction.js: 4.3.7
2184 | normalize-range: 0.1.2
2185 | picocolors: 1.1.1
2186 | postcss: 8.5.3
2187 | postcss-value-parser: 4.2.0
2188 |
2189 | axobject-query@4.1.0: {}
2190 |
2191 | balanced-match@1.0.2: {}
2192 |
2193 | binary-extensions@2.2.0: {}
2194 |
2195 | brace-expansion@1.1.11:
2196 | dependencies:
2197 | balanced-match: 1.0.2
2198 | concat-map: 0.0.1
2199 |
2200 | brace-expansion@2.0.1:
2201 | dependencies:
2202 | balanced-match: 1.0.2
2203 |
2204 | braces@3.0.3:
2205 | dependencies:
2206 | fill-range: 7.1.1
2207 |
2208 | browserslist@4.24.4:
2209 | dependencies:
2210 | caniuse-lite: 1.0.30001700
2211 | electron-to-chromium: 1.5.103
2212 | node-releases: 2.0.19
2213 | update-browserslist-db: 1.1.2(browserslist@4.24.4)
2214 |
2215 | cac@6.7.14: {}
2216 |
2217 | callsites@3.1.0: {}
2218 |
2219 | camelcase-css@2.0.1: {}
2220 |
2221 | caniuse-lite@1.0.30001700: {}
2222 |
2223 | chai@5.2.0:
2224 | dependencies:
2225 | assertion-error: 2.0.1
2226 | check-error: 2.1.1
2227 | deep-eql: 5.0.2
2228 | loupe: 3.1.3
2229 | pathval: 2.0.0
2230 |
2231 | chalk@4.1.2:
2232 | dependencies:
2233 | ansi-styles: 4.3.0
2234 | supports-color: 7.2.0
2235 |
2236 | check-error@2.1.1: {}
2237 |
2238 | chokidar@3.6.0:
2239 | dependencies:
2240 | anymatch: 3.1.3
2241 | braces: 3.0.3
2242 | glob-parent: 5.1.2
2243 | is-binary-path: 2.1.0
2244 | is-glob: 4.0.3
2245 | normalize-path: 3.0.0
2246 | readdirp: 3.6.0
2247 | optionalDependencies:
2248 | fsevents: 2.3.3
2249 |
2250 | chokidar@4.0.3:
2251 | dependencies:
2252 | readdirp: 4.1.2
2253 |
2254 | clsx@2.1.1: {}
2255 |
2256 | color-convert@2.0.1:
2257 | dependencies:
2258 | color-name: 1.1.4
2259 |
2260 | color-name@1.1.4: {}
2261 |
2262 | commander@4.1.1: {}
2263 |
2264 | concat-map@0.0.1: {}
2265 |
2266 | cookie@0.6.0: {}
2267 |
2268 | cross-spawn@7.0.3:
2269 | dependencies:
2270 | path-key: 3.1.1
2271 | shebang-command: 2.0.0
2272 | which: 2.0.2
2273 |
2274 | cross-spawn@7.0.6:
2275 | dependencies:
2276 | path-key: 3.1.1
2277 | shebang-command: 2.0.0
2278 | which: 2.0.2
2279 |
2280 | cssesc@3.0.0: {}
2281 |
2282 | debug@4.4.0:
2283 | dependencies:
2284 | ms: 2.1.3
2285 |
2286 | dedent-js@1.0.1: {}
2287 |
2288 | deep-eql@5.0.2: {}
2289 |
2290 | deep-is@0.1.4: {}
2291 |
2292 | deepmerge@4.3.1: {}
2293 |
2294 | devalue@5.1.1: {}
2295 |
2296 | didyoumean@1.2.2: {}
2297 |
2298 | dlv@1.1.3: {}
2299 |
2300 | eastasianwidth@0.2.0: {}
2301 |
2302 | electron-to-chromium@1.5.103: {}
2303 |
2304 | emoji-regex@8.0.0: {}
2305 |
2306 | emoji-regex@9.2.2: {}
2307 |
2308 | es-module-lexer@1.6.0: {}
2309 |
2310 | esbuild@0.24.2:
2311 | optionalDependencies:
2312 | '@esbuild/aix-ppc64': 0.24.2
2313 | '@esbuild/android-arm': 0.24.2
2314 | '@esbuild/android-arm64': 0.24.2
2315 | '@esbuild/android-x64': 0.24.2
2316 | '@esbuild/darwin-arm64': 0.24.2
2317 | '@esbuild/darwin-x64': 0.24.2
2318 | '@esbuild/freebsd-arm64': 0.24.2
2319 | '@esbuild/freebsd-x64': 0.24.2
2320 | '@esbuild/linux-arm': 0.24.2
2321 | '@esbuild/linux-arm64': 0.24.2
2322 | '@esbuild/linux-ia32': 0.24.2
2323 | '@esbuild/linux-loong64': 0.24.2
2324 | '@esbuild/linux-mips64el': 0.24.2
2325 | '@esbuild/linux-ppc64': 0.24.2
2326 | '@esbuild/linux-riscv64': 0.24.2
2327 | '@esbuild/linux-s390x': 0.24.2
2328 | '@esbuild/linux-x64': 0.24.2
2329 | '@esbuild/netbsd-arm64': 0.24.2
2330 | '@esbuild/netbsd-x64': 0.24.2
2331 | '@esbuild/openbsd-arm64': 0.24.2
2332 | '@esbuild/openbsd-x64': 0.24.2
2333 | '@esbuild/sunos-x64': 0.24.2
2334 | '@esbuild/win32-arm64': 0.24.2
2335 | '@esbuild/win32-ia32': 0.24.2
2336 | '@esbuild/win32-x64': 0.24.2
2337 |
2338 | escalade@3.2.0: {}
2339 |
2340 | escape-string-regexp@4.0.0: {}
2341 |
2342 | eslint-compat-utils@0.5.1(eslint@9.21.0(jiti@1.21.7)):
2343 | dependencies:
2344 | eslint: 9.21.0(jiti@1.21.7)
2345 | semver: 7.7.1
2346 |
2347 | eslint-config-prettier@8.10.0(eslint@9.21.0(jiti@1.21.7)):
2348 | dependencies:
2349 | eslint: 9.21.0(jiti@1.21.7)
2350 |
2351 | eslint-plugin-svelte@2.46.1(eslint@9.21.0(jiti@1.21.7))(svelte@5.20.2):
2352 | dependencies:
2353 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.7))
2354 | '@jridgewell/sourcemap-codec': 1.5.0
2355 | eslint: 9.21.0(jiti@1.21.7)
2356 | eslint-compat-utils: 0.5.1(eslint@9.21.0(jiti@1.21.7))
2357 | esutils: 2.0.3
2358 | known-css-properties: 0.35.0
2359 | postcss: 8.5.3
2360 | postcss-load-config: 3.1.4(postcss@8.5.3)
2361 | postcss-safe-parser: 6.0.0(postcss@8.5.3)
2362 | postcss-selector-parser: 6.1.2
2363 | semver: 7.7.1
2364 | svelte-eslint-parser: 0.43.0(svelte@5.20.2)
2365 | optionalDependencies:
2366 | svelte: 5.20.2
2367 | transitivePeerDependencies:
2368 | - ts-node
2369 |
2370 | eslint-scope@7.2.2:
2371 | dependencies:
2372 | esrecurse: 4.3.0
2373 | estraverse: 5.3.0
2374 |
2375 | eslint-scope@8.2.0:
2376 | dependencies:
2377 | esrecurse: 4.3.0
2378 | estraverse: 5.3.0
2379 |
2380 | eslint-visitor-keys@3.4.3: {}
2381 |
2382 | eslint-visitor-keys@4.2.0: {}
2383 |
2384 | eslint@9.21.0(jiti@1.21.7):
2385 | dependencies:
2386 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@1.21.7))
2387 | '@eslint-community/regexpp': 4.12.1
2388 | '@eslint/config-array': 0.19.2
2389 | '@eslint/core': 0.12.0
2390 | '@eslint/eslintrc': 3.3.0
2391 | '@eslint/js': 9.21.0
2392 | '@eslint/plugin-kit': 0.2.7
2393 | '@humanfs/node': 0.16.6
2394 | '@humanwhocodes/module-importer': 1.0.1
2395 | '@humanwhocodes/retry': 0.4.2
2396 | '@types/estree': 1.0.6
2397 | '@types/json-schema': 7.0.15
2398 | ajv: 6.12.6
2399 | chalk: 4.1.2
2400 | cross-spawn: 7.0.6
2401 | debug: 4.4.0
2402 | escape-string-regexp: 4.0.0
2403 | eslint-scope: 8.2.0
2404 | eslint-visitor-keys: 4.2.0
2405 | espree: 10.3.0
2406 | esquery: 1.5.0
2407 | esutils: 2.0.3
2408 | fast-deep-equal: 3.1.3
2409 | file-entry-cache: 8.0.0
2410 | find-up: 5.0.0
2411 | glob-parent: 6.0.2
2412 | ignore: 5.2.4
2413 | imurmurhash: 0.1.4
2414 | is-glob: 4.0.3
2415 | json-stable-stringify-without-jsonify: 1.0.1
2416 | lodash.merge: 4.6.2
2417 | minimatch: 3.1.2
2418 | natural-compare: 1.4.0
2419 | optionator: 0.9.4
2420 | optionalDependencies:
2421 | jiti: 1.21.7
2422 | transitivePeerDependencies:
2423 | - supports-color
2424 |
2425 | esm-env@1.2.2: {}
2426 |
2427 | espree@10.3.0:
2428 | dependencies:
2429 | acorn: 8.14.0
2430 | acorn-jsx: 5.3.2(acorn@8.14.0)
2431 | eslint-visitor-keys: 4.2.0
2432 |
2433 | espree@9.6.1:
2434 | dependencies:
2435 | acorn: 8.9.0
2436 | acorn-jsx: 5.3.2(acorn@8.9.0)
2437 | eslint-visitor-keys: 3.4.3
2438 |
2439 | esquery@1.5.0:
2440 | dependencies:
2441 | estraverse: 5.3.0
2442 |
2443 | esrap@1.4.5:
2444 | dependencies:
2445 | '@jridgewell/sourcemap-codec': 1.5.0
2446 |
2447 | esrecurse@4.3.0:
2448 | dependencies:
2449 | estraverse: 5.3.0
2450 |
2451 | estraverse@5.3.0: {}
2452 |
2453 | estree-walker@3.0.3:
2454 | dependencies:
2455 | '@types/estree': 1.0.6
2456 |
2457 | esutils@2.0.3: {}
2458 |
2459 | expect-type@1.1.0: {}
2460 |
2461 | fast-deep-equal@3.1.3: {}
2462 |
2463 | fast-glob@3.3.3:
2464 | dependencies:
2465 | '@nodelib/fs.stat': 2.0.5
2466 | '@nodelib/fs.walk': 1.2.8
2467 | glob-parent: 5.1.2
2468 | merge2: 1.4.1
2469 | micromatch: 4.0.8
2470 |
2471 | fast-json-stable-stringify@2.1.0: {}
2472 |
2473 | fast-levenshtein@2.0.6: {}
2474 |
2475 | fastq@1.15.0:
2476 | dependencies:
2477 | reusify: 1.0.4
2478 |
2479 | fdir@6.4.3: {}
2480 |
2481 | file-entry-cache@8.0.0:
2482 | dependencies:
2483 | flat-cache: 4.0.1
2484 |
2485 | fill-range@7.1.1:
2486 | dependencies:
2487 | to-regex-range: 5.0.1
2488 |
2489 | find-up@5.0.0:
2490 | dependencies:
2491 | locate-path: 6.0.0
2492 | path-exists: 4.0.0
2493 |
2494 | flat-cache@4.0.1:
2495 | dependencies:
2496 | flatted: 3.3.3
2497 | keyv: 4.5.4
2498 |
2499 | flatted@3.3.3: {}
2500 |
2501 | foreground-child@3.3.0:
2502 | dependencies:
2503 | cross-spawn: 7.0.3
2504 | signal-exit: 4.1.0
2505 |
2506 | fraction.js@4.3.7: {}
2507 |
2508 | fs.realpath@1.0.0: {}
2509 |
2510 | fsevents@2.3.2:
2511 | optional: true
2512 |
2513 | fsevents@2.3.3:
2514 | optional: true
2515 |
2516 | function-bind@1.1.2: {}
2517 |
2518 | glob-parent@5.1.2:
2519 | dependencies:
2520 | is-glob: 4.0.3
2521 |
2522 | glob-parent@6.0.2:
2523 | dependencies:
2524 | is-glob: 4.0.3
2525 |
2526 | glob@10.4.5:
2527 | dependencies:
2528 | foreground-child: 3.3.0
2529 | jackspeak: 3.4.3
2530 | minimatch: 9.0.5
2531 | minipass: 7.1.2
2532 | package-json-from-dist: 1.0.1
2533 | path-scurry: 1.11.1
2534 |
2535 | glob@8.1.0:
2536 | dependencies:
2537 | fs.realpath: 1.0.0
2538 | inflight: 1.0.6
2539 | inherits: 2.0.4
2540 | minimatch: 5.1.6
2541 | once: 1.4.0
2542 |
2543 | globals@14.0.0: {}
2544 |
2545 | globals@16.0.0: {}
2546 |
2547 | graphemer@1.4.0: {}
2548 |
2549 | has-flag@4.0.0: {}
2550 |
2551 | hasown@2.0.2:
2552 | dependencies:
2553 | function-bind: 1.1.2
2554 |
2555 | ignore-walk@5.0.1:
2556 | dependencies:
2557 | minimatch: 5.1.6
2558 |
2559 | ignore@5.2.4: {}
2560 |
2561 | ignore@5.3.2: {}
2562 |
2563 | import-fresh@3.3.0:
2564 | dependencies:
2565 | parent-module: 1.0.1
2566 | resolve-from: 4.0.0
2567 |
2568 | import-meta-resolve@4.1.0: {}
2569 |
2570 | imurmurhash@0.1.4: {}
2571 |
2572 | inflight@1.0.6:
2573 | dependencies:
2574 | once: 1.4.0
2575 | wrappy: 1.0.2
2576 |
2577 | inherits@2.0.4: {}
2578 |
2579 | is-binary-path@2.1.0:
2580 | dependencies:
2581 | binary-extensions: 2.2.0
2582 |
2583 | is-core-module@2.16.1:
2584 | dependencies:
2585 | hasown: 2.0.2
2586 |
2587 | is-extglob@2.1.1: {}
2588 |
2589 | is-fullwidth-code-point@3.0.0: {}
2590 |
2591 | is-glob@4.0.3:
2592 | dependencies:
2593 | is-extglob: 2.1.1
2594 |
2595 | is-number@7.0.0: {}
2596 |
2597 | is-reference@3.0.3:
2598 | dependencies:
2599 | '@types/estree': 1.0.6
2600 |
2601 | isexe@2.0.0: {}
2602 |
2603 | jackspeak@3.4.3:
2604 | dependencies:
2605 | '@isaacs/cliui': 8.0.2
2606 | optionalDependencies:
2607 | '@pkgjs/parseargs': 0.11.0
2608 |
2609 | jiti@1.21.7: {}
2610 |
2611 | js-yaml@4.1.0:
2612 | dependencies:
2613 | argparse: 2.0.1
2614 |
2615 | json-buffer@3.0.1: {}
2616 |
2617 | json-schema-traverse@0.4.1: {}
2618 |
2619 | json-stable-stringify-without-jsonify@1.0.1: {}
2620 |
2621 | keyv@4.5.4:
2622 | dependencies:
2623 | json-buffer: 3.0.1
2624 |
2625 | kleur@4.1.5: {}
2626 |
2627 | known-css-properties@0.35.0: {}
2628 |
2629 | levn@0.4.1:
2630 | dependencies:
2631 | prelude-ls: 1.2.1
2632 | type-check: 0.4.0
2633 |
2634 | lilconfig@2.1.0: {}
2635 |
2636 | lilconfig@3.1.3: {}
2637 |
2638 | lines-and-columns@1.2.4: {}
2639 |
2640 | locate-character@3.0.0: {}
2641 |
2642 | locate-path@6.0.0:
2643 | dependencies:
2644 | p-locate: 5.0.0
2645 |
2646 | lodash.merge@4.6.2: {}
2647 |
2648 | loupe@3.1.3: {}
2649 |
2650 | lower-case@2.0.2:
2651 | dependencies:
2652 | tslib: 2.8.1
2653 |
2654 | lru-cache@10.4.3: {}
2655 |
2656 | magic-string@0.30.11:
2657 | dependencies:
2658 | '@jridgewell/sourcemap-codec': 1.5.0
2659 |
2660 | magic-string@0.30.17:
2661 | dependencies:
2662 | '@jridgewell/sourcemap-codec': 1.5.0
2663 |
2664 | merge2@1.4.1: {}
2665 |
2666 | micromatch@4.0.8:
2667 | dependencies:
2668 | braces: 3.0.3
2669 | picomatch: 2.3.1
2670 |
2671 | minimatch@3.1.2:
2672 | dependencies:
2673 | brace-expansion: 1.1.11
2674 |
2675 | minimatch@5.1.6:
2676 | dependencies:
2677 | brace-expansion: 2.0.1
2678 |
2679 | minimatch@9.0.5:
2680 | dependencies:
2681 | brace-expansion: 2.0.1
2682 |
2683 | minipass@7.1.2: {}
2684 |
2685 | mri@1.2.0: {}
2686 |
2687 | mrmime@2.0.1: {}
2688 |
2689 | ms@2.1.3: {}
2690 |
2691 | mz@2.7.0:
2692 | dependencies:
2693 | any-promise: 1.3.0
2694 | object-assign: 4.1.1
2695 | thenify-all: 1.6.0
2696 |
2697 | nanoid@3.3.8: {}
2698 |
2699 | natural-compare@1.4.0: {}
2700 |
2701 | no-case@3.0.4:
2702 | dependencies:
2703 | lower-case: 2.0.2
2704 | tslib: 2.8.1
2705 |
2706 | node-releases@2.0.19: {}
2707 |
2708 | normalize-path@3.0.0: {}
2709 |
2710 | normalize-range@0.1.2: {}
2711 |
2712 | npm-bundled@2.0.1:
2713 | dependencies:
2714 | npm-normalize-package-bin: 2.0.0
2715 |
2716 | npm-normalize-package-bin@2.0.0: {}
2717 |
2718 | npm-packlist@5.1.3:
2719 | dependencies:
2720 | glob: 8.1.0
2721 | ignore-walk: 5.0.1
2722 | npm-bundled: 2.0.1
2723 | npm-normalize-package-bin: 2.0.0
2724 |
2725 | object-assign@4.1.1: {}
2726 |
2727 | object-hash@3.0.0: {}
2728 |
2729 | once@1.4.0:
2730 | dependencies:
2731 | wrappy: 1.0.2
2732 |
2733 | optionator@0.9.4:
2734 | dependencies:
2735 | deep-is: 0.1.4
2736 | fast-levenshtein: 2.0.6
2737 | levn: 0.4.1
2738 | prelude-ls: 1.2.1
2739 | type-check: 0.4.0
2740 | word-wrap: 1.2.5
2741 |
2742 | p-limit@3.1.0:
2743 | dependencies:
2744 | yocto-queue: 0.1.0
2745 |
2746 | p-locate@5.0.0:
2747 | dependencies:
2748 | p-limit: 3.1.0
2749 |
2750 | package-json-from-dist@1.0.1: {}
2751 |
2752 | parent-module@1.0.1:
2753 | dependencies:
2754 | callsites: 3.1.0
2755 |
2756 | pascal-case@3.1.2:
2757 | dependencies:
2758 | no-case: 3.0.4
2759 | tslib: 2.8.1
2760 |
2761 | path-exists@4.0.0: {}
2762 |
2763 | path-key@3.1.1: {}
2764 |
2765 | path-parse@1.0.7: {}
2766 |
2767 | path-scurry@1.11.1:
2768 | dependencies:
2769 | lru-cache: 10.4.3
2770 | minipass: 7.1.2
2771 |
2772 | pathe@2.0.3: {}
2773 |
2774 | pathval@2.0.0: {}
2775 |
2776 | picocolors@1.1.1: {}
2777 |
2778 | picomatch@2.3.1: {}
2779 |
2780 | pify@2.3.0: {}
2781 |
2782 | pirates@4.0.6: {}
2783 |
2784 | playwright-core@1.50.1: {}
2785 |
2786 | playwright@1.50.1:
2787 | dependencies:
2788 | playwright-core: 1.50.1
2789 | optionalDependencies:
2790 | fsevents: 2.3.2
2791 |
2792 | postcss-import@15.1.0(postcss@8.5.3):
2793 | dependencies:
2794 | postcss: 8.5.3
2795 | postcss-value-parser: 4.2.0
2796 | read-cache: 1.0.0
2797 | resolve: 1.22.10
2798 |
2799 | postcss-js@4.0.1(postcss@8.5.3):
2800 | dependencies:
2801 | camelcase-css: 2.0.1
2802 | postcss: 8.5.3
2803 |
2804 | postcss-load-config@3.1.4(postcss@8.5.3):
2805 | dependencies:
2806 | lilconfig: 2.1.0
2807 | yaml: 1.10.2
2808 | optionalDependencies:
2809 | postcss: 8.5.3
2810 |
2811 | postcss-load-config@4.0.2(postcss@8.5.3):
2812 | dependencies:
2813 | lilconfig: 3.1.3
2814 | yaml: 2.7.0
2815 | optionalDependencies:
2816 | postcss: 8.5.3
2817 |
2818 | postcss-nested@6.2.0(postcss@8.5.3):
2819 | dependencies:
2820 | postcss: 8.5.3
2821 | postcss-selector-parser: 6.1.2
2822 |
2823 | postcss-safe-parser@6.0.0(postcss@8.5.3):
2824 | dependencies:
2825 | postcss: 8.5.3
2826 |
2827 | postcss-scss@4.0.9(postcss@8.5.3):
2828 | dependencies:
2829 | postcss: 8.5.3
2830 |
2831 | postcss-selector-parser@6.1.2:
2832 | dependencies:
2833 | cssesc: 3.0.0
2834 | util-deprecate: 1.0.2
2835 |
2836 | postcss-value-parser@4.2.0: {}
2837 |
2838 | postcss@8.5.3:
2839 | dependencies:
2840 | nanoid: 3.3.8
2841 | picocolors: 1.1.1
2842 | source-map-js: 1.2.1
2843 |
2844 | prelude-ls@1.2.1: {}
2845 |
2846 | prettier-plugin-svelte@3.3.3(prettier@3.5.2)(svelte@5.20.2):
2847 | dependencies:
2848 | prettier: 3.5.2
2849 | svelte: 5.20.2
2850 |
2851 | prettier@3.5.2: {}
2852 |
2853 | prism-svelte@0.5.0: {}
2854 |
2855 | prismjs@1.29.0: {}
2856 |
2857 | publint@0.1.16:
2858 | dependencies:
2859 | npm-packlist: 5.1.3
2860 | picocolors: 1.1.1
2861 | sade: 1.8.1
2862 |
2863 | punycode@2.3.0: {}
2864 |
2865 | queue-microtask@1.2.3: {}
2866 |
2867 | read-cache@1.0.0:
2868 | dependencies:
2869 | pify: 2.3.0
2870 |
2871 | readdirp@3.6.0:
2872 | dependencies:
2873 | picomatch: 2.3.1
2874 |
2875 | readdirp@4.1.2: {}
2876 |
2877 | resolve-from@4.0.0: {}
2878 |
2879 | resolve@1.22.10:
2880 | dependencies:
2881 | is-core-module: 2.16.1
2882 | path-parse: 1.0.7
2883 | supports-preserve-symlinks-flag: 1.0.0
2884 |
2885 | reusify@1.0.4: {}
2886 |
2887 | rollup@4.34.8:
2888 | dependencies:
2889 | '@types/estree': 1.0.6
2890 | optionalDependencies:
2891 | '@rollup/rollup-android-arm-eabi': 4.34.8
2892 | '@rollup/rollup-android-arm64': 4.34.8
2893 | '@rollup/rollup-darwin-arm64': 4.34.8
2894 | '@rollup/rollup-darwin-x64': 4.34.8
2895 | '@rollup/rollup-freebsd-arm64': 4.34.8
2896 | '@rollup/rollup-freebsd-x64': 4.34.8
2897 | '@rollup/rollup-linux-arm-gnueabihf': 4.34.8
2898 | '@rollup/rollup-linux-arm-musleabihf': 4.34.8
2899 | '@rollup/rollup-linux-arm64-gnu': 4.34.8
2900 | '@rollup/rollup-linux-arm64-musl': 4.34.8
2901 | '@rollup/rollup-linux-loongarch64-gnu': 4.34.8
2902 | '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8
2903 | '@rollup/rollup-linux-riscv64-gnu': 4.34.8
2904 | '@rollup/rollup-linux-s390x-gnu': 4.34.8
2905 | '@rollup/rollup-linux-x64-gnu': 4.34.8
2906 | '@rollup/rollup-linux-x64-musl': 4.34.8
2907 | '@rollup/rollup-win32-arm64-msvc': 4.34.8
2908 | '@rollup/rollup-win32-ia32-msvc': 4.34.8
2909 | '@rollup/rollup-win32-x64-msvc': 4.34.8
2910 | fsevents: 2.3.3
2911 |
2912 | run-parallel@1.2.0:
2913 | dependencies:
2914 | queue-microtask: 1.2.3
2915 |
2916 | sade@1.8.1:
2917 | dependencies:
2918 | mri: 1.2.0
2919 |
2920 | semver@7.7.1: {}
2921 |
2922 | set-cookie-parser@2.6.0: {}
2923 |
2924 | shebang-command@2.0.0:
2925 | dependencies:
2926 | shebang-regex: 3.0.0
2927 |
2928 | shebang-regex@3.0.0: {}
2929 |
2930 | siginfo@2.0.0: {}
2931 |
2932 | signal-exit@4.1.0: {}
2933 |
2934 | sirv@3.0.1:
2935 | dependencies:
2936 | '@polka/url': 1.0.0-next.28
2937 | mrmime: 2.0.1
2938 | totalist: 3.0.0
2939 |
2940 | source-map-js@1.2.1: {}
2941 |
2942 | stackback@0.0.2: {}
2943 |
2944 | std-env@3.8.0: {}
2945 |
2946 | string-width@4.2.3:
2947 | dependencies:
2948 | emoji-regex: 8.0.0
2949 | is-fullwidth-code-point: 3.0.0
2950 | strip-ansi: 6.0.1
2951 |
2952 | string-width@5.1.2:
2953 | dependencies:
2954 | eastasianwidth: 0.2.0
2955 | emoji-regex: 9.2.2
2956 | strip-ansi: 7.1.0
2957 |
2958 | strip-ansi@6.0.1:
2959 | dependencies:
2960 | ansi-regex: 5.0.1
2961 |
2962 | strip-ansi@7.1.0:
2963 | dependencies:
2964 | ansi-regex: 6.1.0
2965 |
2966 | strip-json-comments@3.1.1: {}
2967 |
2968 | sucrase@3.35.0:
2969 | dependencies:
2970 | '@jridgewell/gen-mapping': 0.3.8
2971 | commander: 4.1.1
2972 | glob: 10.4.5
2973 | lines-and-columns: 1.2.4
2974 | mz: 2.7.0
2975 | pirates: 4.0.6
2976 | ts-interface-checker: 0.1.13
2977 |
2978 | supports-color@7.2.0:
2979 | dependencies:
2980 | has-flag: 4.0.0
2981 |
2982 | supports-preserve-symlinks-flag@1.0.0: {}
2983 |
2984 | svelte-check@4.1.4(svelte@5.20.2)(typescript@5.7.3):
2985 | dependencies:
2986 | '@jridgewell/trace-mapping': 0.3.25
2987 | chokidar: 4.0.3
2988 | fdir: 6.4.3
2989 | picocolors: 1.1.1
2990 | sade: 1.8.1
2991 | svelte: 5.20.2
2992 | typescript: 5.7.3
2993 | transitivePeerDependencies:
2994 | - picomatch
2995 |
2996 | svelte-eslint-parser@0.43.0(svelte@5.20.2):
2997 | dependencies:
2998 | eslint-scope: 7.2.2
2999 | eslint-visitor-keys: 3.4.3
3000 | espree: 9.6.1
3001 | postcss: 8.5.3
3002 | postcss-scss: 4.0.9(postcss@8.5.3)
3003 | optionalDependencies:
3004 | svelte: 5.20.2
3005 |
3006 | svelte-writable-derived@3.1.1(svelte@5.20.2):
3007 | dependencies:
3008 | svelte: 5.20.2
3009 |
3010 | svelte2tsx@0.7.34(svelte@5.20.2)(typescript@5.7.3):
3011 | dependencies:
3012 | dedent-js: 1.0.1
3013 | pascal-case: 3.1.2
3014 | svelte: 5.20.2
3015 | typescript: 5.7.3
3016 |
3017 | svelte@5.20.2:
3018 | dependencies:
3019 | '@ampproject/remapping': 2.3.0
3020 | '@jridgewell/sourcemap-codec': 1.5.0
3021 | '@types/estree': 1.0.6
3022 | acorn: 8.14.0
3023 | acorn-typescript: 1.4.13(acorn@8.14.0)
3024 | aria-query: 5.3.2
3025 | axobject-query: 4.1.0
3026 | clsx: 2.1.1
3027 | esm-env: 1.2.2
3028 | esrap: 1.4.5
3029 | is-reference: 3.0.3
3030 | locate-character: 3.0.0
3031 | magic-string: 0.30.11
3032 | zimmerframe: 1.1.2
3033 |
3034 | tailwindcss@3.4.17:
3035 | dependencies:
3036 | '@alloc/quick-lru': 5.2.0
3037 | arg: 5.0.2
3038 | chokidar: 3.6.0
3039 | didyoumean: 1.2.2
3040 | dlv: 1.1.3
3041 | fast-glob: 3.3.3
3042 | glob-parent: 6.0.2
3043 | is-glob: 4.0.3
3044 | jiti: 1.21.7
3045 | lilconfig: 3.1.3
3046 | micromatch: 4.0.8
3047 | normalize-path: 3.0.0
3048 | object-hash: 3.0.0
3049 | picocolors: 1.1.1
3050 | postcss: 8.5.3
3051 | postcss-import: 15.1.0(postcss@8.5.3)
3052 | postcss-js: 4.0.1(postcss@8.5.3)
3053 | postcss-load-config: 4.0.2(postcss@8.5.3)
3054 | postcss-nested: 6.2.0(postcss@8.5.3)
3055 | postcss-selector-parser: 6.1.2
3056 | resolve: 1.22.10
3057 | sucrase: 3.35.0
3058 | transitivePeerDependencies:
3059 | - ts-node
3060 |
3061 | thenify-all@1.6.0:
3062 | dependencies:
3063 | thenify: 3.3.1
3064 |
3065 | thenify@3.3.1:
3066 | dependencies:
3067 | any-promise: 1.3.0
3068 |
3069 | tinybench@2.9.0: {}
3070 |
3071 | tinyexec@0.3.2: {}
3072 |
3073 | tinypool@1.0.2: {}
3074 |
3075 | tinyrainbow@2.0.0: {}
3076 |
3077 | tinyspy@3.0.2: {}
3078 |
3079 | to-regex-range@5.0.1:
3080 | dependencies:
3081 | is-number: 7.0.0
3082 |
3083 | totalist@3.0.0: {}
3084 |
3085 | ts-api-utils@2.0.1(typescript@5.7.3):
3086 | dependencies:
3087 | typescript: 5.7.3
3088 |
3089 | ts-interface-checker@0.1.13: {}
3090 |
3091 | tslib@2.8.1: {}
3092 |
3093 | type-check@0.4.0:
3094 | dependencies:
3095 | prelude-ls: 1.2.1
3096 |
3097 | typescript-eslint@8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3):
3098 | dependencies:
3099 | '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3))(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)
3100 | '@typescript-eslint/parser': 8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)
3101 | '@typescript-eslint/utils': 8.24.1(eslint@9.21.0(jiti@1.21.7))(typescript@5.7.3)
3102 | eslint: 9.21.0(jiti@1.21.7)
3103 | typescript: 5.7.3
3104 | transitivePeerDependencies:
3105 | - supports-color
3106 |
3107 | typescript@5.7.3: {}
3108 |
3109 | update-browserslist-db@1.1.2(browserslist@4.24.4):
3110 | dependencies:
3111 | browserslist: 4.24.4
3112 | escalade: 3.2.0
3113 | picocolors: 1.1.1
3114 |
3115 | uri-js@4.4.1:
3116 | dependencies:
3117 | punycode: 2.3.0
3118 |
3119 | util-deprecate@1.0.2: {}
3120 |
3121 | vite-node@3.0.6(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0):
3122 | dependencies:
3123 | cac: 6.7.14
3124 | debug: 4.4.0
3125 | es-module-lexer: 1.6.0
3126 | pathe: 2.0.3
3127 | vite: 6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
3128 | transitivePeerDependencies:
3129 | - '@types/node'
3130 | - jiti
3131 | - less
3132 | - lightningcss
3133 | - sass
3134 | - sass-embedded
3135 | - stylus
3136 | - sugarss
3137 | - supports-color
3138 | - terser
3139 | - tsx
3140 | - yaml
3141 |
3142 | vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0):
3143 | dependencies:
3144 | esbuild: 0.24.2
3145 | postcss: 8.5.3
3146 | rollup: 4.34.8
3147 | optionalDependencies:
3148 | '@types/node': 18.15.3
3149 | fsevents: 2.3.3
3150 | jiti: 1.21.7
3151 | yaml: 2.7.0
3152 |
3153 | vitefu@1.0.5(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)):
3154 | optionalDependencies:
3155 | vite: 6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
3156 |
3157 | vitest@3.0.6(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0):
3158 | dependencies:
3159 | '@vitest/expect': 3.0.6
3160 | '@vitest/mocker': 3.0.6(vite@6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0))
3161 | '@vitest/pretty-format': 3.0.6
3162 | '@vitest/runner': 3.0.6
3163 | '@vitest/snapshot': 3.0.6
3164 | '@vitest/spy': 3.0.6
3165 | '@vitest/utils': 3.0.6
3166 | chai: 5.2.0
3167 | debug: 4.4.0
3168 | expect-type: 1.1.0
3169 | magic-string: 0.30.17
3170 | pathe: 2.0.3
3171 | std-env: 3.8.0
3172 | tinybench: 2.9.0
3173 | tinyexec: 0.3.2
3174 | tinypool: 1.0.2
3175 | tinyrainbow: 2.0.0
3176 | vite: 6.1.1(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
3177 | vite-node: 3.0.6(@types/node@18.15.3)(jiti@1.21.7)(yaml@2.7.0)
3178 | why-is-node-running: 2.3.0
3179 | optionalDependencies:
3180 | '@types/node': 18.15.3
3181 | transitivePeerDependencies:
3182 | - jiti
3183 | - less
3184 | - lightningcss
3185 | - msw
3186 | - sass
3187 | - sass-embedded
3188 | - stylus
3189 | - sugarss
3190 | - supports-color
3191 | - terser
3192 | - tsx
3193 | - yaml
3194 |
3195 | which@2.0.2:
3196 | dependencies:
3197 | isexe: 2.0.0
3198 |
3199 | why-is-node-running@2.3.0:
3200 | dependencies:
3201 | siginfo: 2.0.0
3202 | stackback: 0.0.2
3203 |
3204 | word-wrap@1.2.5: {}
3205 |
3206 | wrap-ansi@7.0.0:
3207 | dependencies:
3208 | ansi-styles: 4.3.0
3209 | string-width: 4.2.3
3210 | strip-ansi: 6.0.1
3211 |
3212 | wrap-ansi@8.1.0:
3213 | dependencies:
3214 | ansi-styles: 6.2.1
3215 | string-width: 5.1.2
3216 | strip-ansi: 7.1.0
3217 |
3218 | wrappy@1.0.2: {}
3219 |
3220 | yaml@1.10.2: {}
3221 |
3222 | yaml@2.7.0: {}
3223 |
3224 | yocto-queue@0.1.0: {}
3225 |
3226 | zimmerframe@1.1.2: {}
3227 |
--------------------------------------------------------------------------------
/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {}
5 | }
6 | };
7 |
--------------------------------------------------------------------------------
/src/app.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | @layer base {
6 | @font-face {
7 | font-family: 'HK Grotesk';
8 | src:
9 | url('/fonts/HKGrotesk-Bold.woff2') format('woff2'),
10 | url('/fonts/HKGrotesk-Bold.woff') format('woff');
11 | font-weight: bold;
12 | font-style: normal;
13 | font-display: swap;
14 | }
15 |
16 | @font-face {
17 | font-family: 'HK Grotesk';
18 | src:
19 | url('/fonts/HKGrotesk-BoldItalic.woff2') format('woff2'),
20 | url('/fonts/HKGrotesk-BoldItalic.woff') format('woff');
21 | font-weight: bold;
22 | font-style: italic;
23 | font-display: swap;
24 | }
25 |
26 | @font-face {
27 | font-family: 'HK Grotesk';
28 | src:
29 | url('/fonts/HKGrotesk-Black.woff2') format('woff2'),
30 | url('/fonts/HKGrotesk-Black.woff') format('woff');
31 | font-weight: 900;
32 | font-style: normal;
33 | font-display: swap;
34 | }
35 |
36 | @font-face {
37 | font-family: 'HK Grotesk';
38 | src:
39 | url('/fonts/HKGrotesk-BlackItalic.woff2') format('woff2'),
40 | url('/fonts/HKGrotesk-BlackItalic.woff') format('woff');
41 | font-weight: 900;
42 | font-style: italic;
43 | font-display: swap;
44 | }
45 |
46 | @font-face {
47 | font-family: 'HK Grotesk';
48 | src:
49 | url('/fonts/HKGrotesk-ExtraBold.woff2') format('woff2'),
50 | url('/fonts/HKGrotesk-ExtraBold.woff') format('woff');
51 | font-weight: 800;
52 | font-style: normal;
53 | font-display: swap;
54 | }
55 |
56 | @font-face {
57 | font-family: 'HK Grotesk';
58 | src:
59 | url('/fonts/HKGrotesk-ExtraBoldItalic.woff2') format('woff2'),
60 | url('/fonts/HKGrotesk-ExtraBoldItalic.woff') format('woff');
61 | font-weight: 800;
62 | font-style: italic;
63 | font-display: swap;
64 | }
65 |
66 | @font-face {
67 | font-family: 'HK Grotesk';
68 | src:
69 | url('/fonts/HKGrotesk-SemiBold.woff2') format('woff2'),
70 | url('/fonts/HKGrotesk-SemiBold.woff') format('woff');
71 | font-weight: 600;
72 | font-style: normal;
73 | font-display: swap;
74 | }
75 |
76 | @font-face {
77 | font-family: 'HK Grotesk';
78 | src:
79 | url('/fonts/HKGrotesk-SemiBoldItalic.woff2') format('woff2'),
80 | url('/fonts/HKGrotesk-SemiBoldItalic.woff') format('woff');
81 | font-weight: 600;
82 | font-style: italic;
83 | font-display: swap;
84 | }
85 |
86 | @font-face {
87 | font-family: 'HK Grotesk';
88 | src:
89 | url('/fonts/HKGrotesk-Regular.woff2') format('woff2'),
90 | url('/fonts/HKGrotesk-Regular.woff') format('woff');
91 | font-weight: normal;
92 | font-style: normal;
93 | font-display: swap;
94 | }
95 |
96 | @font-face {
97 | font-family: 'HK Grotesk';
98 | src:
99 | url('/fonts/HKGrotesk-Italic.woff2') format('woff2'),
100 | url('/fonts/HKGrotesk-Italic.woff') format('woff');
101 | font-weight: normal;
102 | font-style: italic;
103 | font-display: swap;
104 | }
105 |
106 | @font-face {
107 | font-family: 'HK Grotesk';
108 | src:
109 | url('/fonts/HKGrotesk-Medium.woff2') format('woff2'),
110 | url('/fonts/HKGrotesk-Medium.woff') format('woff');
111 | font-weight: 500;
112 | font-style: normal;
113 | font-display: swap;
114 | }
115 |
116 | @font-face {
117 | font-family: 'HK Grotesk';
118 | src:
119 | url('/fonts/HKGrotesk-MediumItalic.woff2') format('woff2'),
120 | url('/fonts/HKGrotesk-MediumItalic.woff') format('woff');
121 | font-weight: 500;
122 | font-style: italic;
123 | font-display: swap;
124 | }
125 | }
126 |
127 | @layer components {
128 | .container {
129 | @apply px-3;
130 | }
131 | }
132 |
--------------------------------------------------------------------------------
/src/app.d.ts:
--------------------------------------------------------------------------------
1 | // See https://kit.svelte.dev/docs/types#app
2 | // for information about these interfaces
3 | declare global {
4 | namespace App {
5 | // interface Error {}
6 | // interface Locals {}
7 | // interface PageData {}
8 | // interface Platform {}
9 | }
10 | }
11 |
12 | declare module 'prism-svelte';
13 |
14 | export {};
15 |
--------------------------------------------------------------------------------
/src/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | %sveltekit.head%
9 |
10 |
11 | %sveltekit.body%
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/index.test.ts:
--------------------------------------------------------------------------------
1 | import { describe, it, expect } from 'vitest';
2 |
3 | describe('sum test', () => {
4 | it('adds 1 + 2 to equal 3', () => {
5 | expect(1 + 2).toBe(3);
6 | });
7 | });
8 |
--------------------------------------------------------------------------------
/src/lib/components/CheckmarkIcon.svelte:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
15 |
72 |
--------------------------------------------------------------------------------
/src/lib/components/ErrorIcon.svelte:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
15 |
82 |
--------------------------------------------------------------------------------
/src/lib/components/LoaderIcon.svelte:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
15 |
36 |
--------------------------------------------------------------------------------
/src/lib/components/ToastBar.svelte:
--------------------------------------------------------------------------------
1 |
35 |
36 |
41 | {#if Component}
42 |
43 | {#snippet icon()}
44 |
45 | {/snippet}
46 | {#snippet message()}
47 |
48 | {/snippet}
49 |
50 | {:else if children}{@render children({ ToastIcon, ToastMessage, toast })}{:else}
51 |
52 |
53 | {/if}
54 |
55 |
56 |
133 |
--------------------------------------------------------------------------------
/src/lib/components/ToastIcon.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 | {#if typeof icon === 'string'}
16 | {icon}
17 | {:else if typeof icon !== 'undefined'}
18 | {@const IconComponent = icon}
19 |
20 | {:else if type !== 'blank'}
21 |
22 |
23 | {#if type !== 'loading'}
24 |
25 | {#if type === 'error'}
26 |
27 | {:else}
28 |
29 | {/if}
30 |
31 | {/if}
32 |
33 | {/if}
34 |
35 |
68 |
--------------------------------------------------------------------------------
/src/lib/components/ToastMessage.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 | {#if typeof toast.message === 'string'}
13 | {toast.message}
14 | {:else}
15 | {@const Message = toast.message}
16 |
17 | {/if}
18 |
19 |
20 |
30 |
--------------------------------------------------------------------------------
/src/lib/components/ToastWrapper.svelte:
--------------------------------------------------------------------------------
1 |
33 |
34 |
45 | {#if toast.type === 'custom'}
46 |
47 | {:else if children}{@render children({ toast })}{:else}
48 |
49 | {/if}
50 |
51 |
52 |
73 |
--------------------------------------------------------------------------------
/src/lib/components/Toaster.svelte:
--------------------------------------------------------------------------------
1 |
38 |
39 |
46 | {#each _toasts as toast (toast.id)}
47 | handlers.updateHeight(toast.id, height)} />
48 | {/each}
49 |
50 |
51 |
64 |
--------------------------------------------------------------------------------
/src/lib/core/store.ts:
--------------------------------------------------------------------------------
1 | import { get, writable, type Writable } from 'svelte/store';
2 | import type { DefaultToastOptions, Toast, ToastType } from './types';
3 | import writableDerived from 'svelte-writable-derived';
4 |
5 | const TOAST_LIMIT = 20;
6 |
7 | interface State {
8 | toasts: Writable;
9 | pausedAt: Writable;
10 | }
11 |
12 | export const toasts: State['toasts'] = writable([]);
13 | export const pausedAt: State['pausedAt'] = writable(null);
14 |
15 | const toastTimeouts = new Map>();
16 |
17 | const addToRemoveQueue = (toastId: string) => {
18 | if (toastTimeouts.has(toastId)) {
19 | return;
20 | }
21 |
22 | const timeout = setTimeout(() => {
23 | toastTimeouts.delete(toastId);
24 | remove(toastId);
25 | }, 1000);
26 |
27 | toastTimeouts.set(toastId, timeout);
28 | };
29 |
30 | const clearFromRemoveQueue = (toastId: string) => {
31 | const timeout = toastTimeouts.get(toastId);
32 | if (timeout) {
33 | clearTimeout(timeout);
34 | }
35 | };
36 |
37 | export function update(toast: Partial, clearTimeout = true) {
38 | if (clearTimeout && toast.id) {
39 | clearFromRemoveQueue(toast.id);
40 | }
41 | toasts.update(($toasts) => $toasts.map((t) => (t.id === toast.id ? { ...t, ...toast } : t)));
42 | }
43 |
44 | export function add(toast: Toast) {
45 | toasts.update(($toasts) => [toast, ...$toasts].slice(0, TOAST_LIMIT));
46 | }
47 |
48 | export function upsert(toast: Toast) {
49 | if (get(toasts).find((t) => t.id === toast.id)) {
50 | update(toast);
51 | } else {
52 | add(toast);
53 | }
54 | }
55 |
56 | export function dismiss(toastId?: Toast['id']) {
57 | toasts.update(($toasts) => {
58 | if (toastId) {
59 | addToRemoveQueue(toastId);
60 | } else {
61 | $toasts.forEach((toast) => {
62 | addToRemoveQueue(toast.id);
63 | });
64 | }
65 |
66 | return $toasts.map((t) =>
67 | t.id === toastId || toastId === undefined ? { ...t, visible: false } : t
68 | );
69 | });
70 | }
71 |
72 | export function remove(toastId?: Toast['id']) {
73 | toasts.update(($toasts) => {
74 | if (toastId === undefined) {
75 | return [];
76 | }
77 | return $toasts.filter((t) => t.id !== toastId);
78 | });
79 | }
80 |
81 | export function startPause(time: number) {
82 | pausedAt.set(time);
83 | }
84 |
85 | export function endPause(time: number) {
86 | let diff: number;
87 |
88 | pausedAt.update(($pausedAt) => {
89 | diff = time - ($pausedAt || 0);
90 | return null;
91 | });
92 |
93 | toasts.update(($toasts) =>
94 | $toasts.map((t) => ({
95 | ...t,
96 | pauseDuration: t.pauseDuration + diff
97 | }))
98 | );
99 | }
100 |
101 | const defaultTimeouts: {
102 | [key in ToastType]: number;
103 | } = {
104 | blank: 4000,
105 | error: 4000,
106 | success: 2000,
107 | loading: Infinity,
108 | custom: 4000
109 | };
110 |
111 | export function useToasterStore(toastOptions: DefaultToastOptions = {}): State {
112 | const mergedToasts = writableDerived(
113 | toasts,
114 | ($toasts) =>
115 | $toasts.map((t) => ({
116 | ...toastOptions,
117 | ...toastOptions[t.type],
118 | ...t,
119 | duration:
120 | t.duration ||
121 | toastOptions[t.type]?.duration ||
122 | toastOptions?.duration ||
123 | defaultTimeouts[t.type],
124 | style: [toastOptions.style, toastOptions[t.type]?.style, t.style].join(';')
125 | })),
126 | ($toasts) => $toasts
127 | );
128 | return {
129 | toasts: mergedToasts,
130 | pausedAt
131 | };
132 | }
133 |
--------------------------------------------------------------------------------
/src/lib/core/toast.ts:
--------------------------------------------------------------------------------
1 | import { dismiss, remove, upsert } from './store';
2 | import {
3 | type Toast,
4 | type Renderable,
5 | type DefaultToastOptions,
6 | type ToastOptions,
7 | type ToastType,
8 | type ValueOrFunction,
9 | resolveValue
10 | } from './types';
11 | import { genId } from './utils';
12 |
13 | type Message = Record> = Renderable;
14 |
15 | type ToastHandler = = Record>(
16 | message: Message,
17 | options?: ToastOptions
18 | ) => string;
19 |
20 | const createToast = = Record>(
21 | message: Message,
22 | type: ToastType = 'blank',
23 | opts?: ToastOptions
24 | ): Toast => ({
25 | createdAt: Date.now(),
26 | visible: true,
27 | type,
28 | ariaProps: {
29 | role: 'status',
30 | 'aria-live': 'polite'
31 | },
32 | message,
33 | pauseDuration: 0,
34 | icon: opts?.icon,
35 | duration: opts?.duration,
36 | iconTheme: opts?.iconTheme,
37 | position: opts?.position,
38 | props: opts?.props,
39 | id: opts?.id || genId()
40 | });
41 |
42 | const createHandler =
43 | (type?: ToastType): ToastHandler =>
44 | (message, options) => {
45 | const toast = createToast(message, type, options);
46 | upsert(toast);
47 | return toast.id;
48 | };
49 |
50 | const toast = = Record>(
51 | message: Message,
52 | opts?: ToastOptions
53 | ) => createHandler('blank')(message, opts);
54 |
55 | toast.error = createHandler('error');
56 | toast.success = createHandler('success');
57 | toast.loading = createHandler('loading');
58 | toast.custom = createHandler('custom');
59 |
60 | toast.dismiss = (toastId?: string) => {
61 | dismiss(toastId);
62 | };
63 |
64 | toast.remove = (toastId?: string) => remove(toastId);
65 |
66 | toast.promise = (
67 | promise: Promise,
68 | msgs: {
69 | loading: Renderable;
70 | success: ValueOrFunction;
71 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
72 | error: ValueOrFunction;
73 | },
74 | opts?: DefaultToastOptions
75 | ) => {
76 | const id = toast.loading(msgs.loading, { ...opts, ...opts?.loading });
77 |
78 | promise
79 | .then((p) => {
80 | toast.success(resolveValue(msgs.success, p), {
81 | id,
82 | ...opts,
83 | ...opts?.success
84 | });
85 | return p;
86 | })
87 | .catch((e) => {
88 | toast.error(resolveValue(msgs.error, e), {
89 | id,
90 | ...opts,
91 | ...opts?.error
92 | });
93 | });
94 |
95 | return promise;
96 | };
97 |
98 | export default toast;
99 |
--------------------------------------------------------------------------------
/src/lib/core/types.ts:
--------------------------------------------------------------------------------
1 | import type { SvelteComponent } from 'svelte';
2 |
3 | export type ToastType = 'success' | 'error' | 'loading' | 'blank' | 'custom';
4 | /** Specifies the toast's position on the screen
5 | *
6 | * Logical positions (`start`, `end`) are recommended over absolute positions
7 | * (`left`, `right`), as they automatically adjust based on the text direction
8 | * of the locale (LTR or RTL). Examples:
9 | * - Use `top-start` instead of `top-left`.
10 | * - Use `top-end` instead of `top-right`. */
11 | export type ToastPosition =
12 | | 'top-left'
13 | | 'top-center'
14 | | 'top-right'
15 | | 'bottom-left'
16 | | 'bottom-center'
17 | | 'bottom-right'
18 | | 'top-start'
19 | | 'top-end'
20 | | 'bottom-start'
21 | | 'bottom-end';
22 |
23 | export type Renderable = Record> =
24 | | typeof SvelteComponent
25 | | string
26 | | null;
27 |
28 | export interface IconTheme {
29 | primary: string;
30 | secondary: string;
31 | }
32 |
33 | export type ValueFunction = (arg: TArg) => TValue;
34 | export type ValueOrFunction = TValue | ValueFunction;
35 |
36 | const isFunction = (
37 | valOrFunction: ValueOrFunction
38 | ): valOrFunction is ValueFunction => typeof valOrFunction === 'function';
39 |
40 | export const resolveValue = (
41 | valOrFunction: ValueOrFunction,
42 | arg: TArg
43 | ): TValue => (isFunction(valOrFunction) ? valOrFunction(arg) : valOrFunction);
44 |
45 | export interface Toast = Record> {
46 | type: ToastType;
47 | id: string;
48 | message: Renderable;
49 | icon?: Renderable;
50 | duration?: number;
51 | pauseDuration: number;
52 | position?: ToastPosition;
53 |
54 | // We use `Omit` here in the case that the Component has `export let toast: Toast`.
55 | // We are already passing the toast to the component, and it should not be included in props.
56 | props?: Omit;
57 |
58 | ariaProps: {
59 | role: 'status' | 'alert';
60 | 'aria-live': 'assertive' | 'off' | 'polite';
61 | };
62 |
63 | style?: string;
64 | className?: string;
65 | iconTheme?: IconTheme;
66 |
67 | createdAt: number;
68 | visible: boolean;
69 | height?: number;
70 | }
71 |
72 | export type DOMToast = Record> = Toast & {
73 | offset: number;
74 | };
75 |
76 | export type ToastOptions = Record> = Partial<
77 | Pick<
78 | Toast,
79 | | 'id'
80 | | 'icon'
81 | | 'duration'
82 | | 'ariaProps'
83 | | 'className'
84 | | 'style'
85 | | 'position'
86 | | 'iconTheme'
87 | | 'props'
88 | >
89 | >;
90 |
91 | export type DefaultToastOptions = ToastOptions & {
92 | [key in ToastType]?: ToastOptions;
93 | };
94 |
95 | export interface ToasterProps {
96 | position?: ToastPosition;
97 | toastOptions?: DefaultToastOptions;
98 | reverseOrder?: boolean;
99 | gutter?: number;
100 | containerStyle?: string;
101 | containerClassName?: string;
102 | }
103 |
--------------------------------------------------------------------------------
/src/lib/core/use-toaster.ts:
--------------------------------------------------------------------------------
1 | import toast from './toast';
2 | import { endPause as _endPause, startPause as _startPause, update, useToasterStore } from './store';
3 | import type { Toast, ToastOptions, ToastPosition } from './types';
4 | import { onDestroy } from 'svelte';
5 |
6 | function calculateOffset(
7 | toast: Toast,
8 | $toasts: Toast[],
9 | opts?: {
10 | reverseOrder?: boolean;
11 | gutter?: number;
12 | defaultPosition?: ToastPosition;
13 | }
14 | ) {
15 | const { reverseOrder, gutter = 8, defaultPosition } = opts || {};
16 |
17 | const relevantToasts = $toasts.filter(
18 | (t) => (t.position || defaultPosition) === (toast.position || defaultPosition) && t.height
19 | );
20 | const toastIndex = relevantToasts.findIndex((t) => t.id === toast.id);
21 | const toastsBefore = relevantToasts.filter((toast, i) => i < toastIndex && toast.visible).length;
22 |
23 | const offset = relevantToasts
24 | .filter((t) => t.visible)
25 | .slice(...(reverseOrder ? [toastsBefore + 1] : [0, toastsBefore]))
26 | .reduce((acc, t) => acc + (t.height || 0) + gutter, 0);
27 |
28 | return offset;
29 | }
30 |
31 | const handlers = {
32 | startPause() {
33 | _startPause(Date.now());
34 | },
35 | endPause() {
36 | _endPause(Date.now());
37 | },
38 | updateHeight: (toastId: string, height: number) => {
39 | update({ id: toastId, height }, false);
40 | },
41 | calculateOffset
42 | };
43 |
44 | export default function useToaster(toastOptions?: ToastOptions) {
45 | const { toasts, pausedAt } = useToasterStore(toastOptions);
46 | const timeouts = new Map>();
47 | let _pausedAt: number | null;
48 |
49 | const unsubscribes = [
50 | pausedAt.subscribe(($pausedAt) => {
51 | if ($pausedAt) {
52 | for (const [, timeoutId] of timeouts) {
53 | clearTimeout(timeoutId);
54 | }
55 | timeouts.clear();
56 | }
57 | _pausedAt = $pausedAt;
58 | }),
59 | toasts.subscribe(($toasts) => {
60 | if (_pausedAt) {
61 | return;
62 | }
63 |
64 | const now = Date.now();
65 | for (const t of $toasts) {
66 | if (timeouts.has(t.id)) {
67 | continue;
68 | }
69 | if (t.duration === Infinity) {
70 | continue;
71 | }
72 |
73 | const durationLeft = (t.duration || 0) + t.pauseDuration - (now - t.createdAt);
74 |
75 | if (durationLeft < 0) {
76 | if (t.visible) {
77 | // FIXME: This causes a recursive cycle of updates.
78 | toast.dismiss(t.id);
79 | }
80 | return null;
81 | }
82 | timeouts.set(
83 | t.id,
84 | setTimeout(() => toast.dismiss(t.id), durationLeft)
85 | );
86 | }
87 | })
88 | ];
89 | onDestroy(() => {
90 | for (const unsubscribe of unsubscribes) {
91 | unsubscribe();
92 | }
93 | });
94 |
95 | return { toasts, handlers };
96 | }
97 |
--------------------------------------------------------------------------------
/src/lib/core/utils.ts:
--------------------------------------------------------------------------------
1 | export const genId = (() => {
2 | let count = 0;
3 |
4 | return () => {
5 | count += 1;
6 | return count.toString();
7 | };
8 | })();
9 |
10 | export const prefersReducedMotion = (() => {
11 | // Cache result
12 | let shouldReduceMotion: boolean | undefined;
13 |
14 | return () => {
15 | if (shouldReduceMotion === undefined && typeof window !== 'undefined') {
16 | const mediaQuery = matchMedia('(prefers-reduced-motion: reduce)');
17 | shouldReduceMotion = !mediaQuery || mediaQuery.matches;
18 | }
19 | return shouldReduceMotion;
20 | };
21 | })();
22 |
--------------------------------------------------------------------------------
/src/lib/index.ts:
--------------------------------------------------------------------------------
1 | import toast from './core/toast';
2 | export type {
3 | ToastOptions,
4 | ToastPosition,
5 | Toast,
6 | Renderable,
7 | ValueOrFunction,
8 | ToasterProps,
9 | DefaultToastOptions,
10 | IconTheme,
11 | ToastType,
12 | ValueFunction
13 | } from './core/types';
14 |
15 | export { default as useToaster } from './core/use-toaster';
16 | export { useToasterStore } from './core/store';
17 | export { default as ToastBar } from './components/ToastBar.svelte';
18 | export { default as ToastIcon } from './components/ToastIcon.svelte';
19 | export { default as Toaster } from './components/Toaster.svelte';
20 | export { default as CheckmarkIcon } from './components/CheckmarkIcon.svelte';
21 | export { default as ErrorIcon } from './components/ErrorIcon.svelte';
22 | export { default as LoaderIcon } from './components/LoaderIcon.svelte';
23 | export { resolveValue } from './core/types';
24 |
25 | export { toast };
26 | export default toast;
27 |
--------------------------------------------------------------------------------
/src/routes/+layout.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 | Svelte French Toast
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
36 |
37 |
38 | {@render children?.()}
39 |
--------------------------------------------------------------------------------
/src/routes/+page.svelte:
--------------------------------------------------------------------------------
1 |
27 |
28 |
29 |
30 |
31 |
32 |

33 |
36 |
39 | Svelte
40 |
41 |
44 | French
45 |
46 |
49 | Toast
50 |
51 |
52 |
Buttery smooth toast notifications.
53 |
54 | Lightweight, customizable, and beautiful by default.
Inspired by
55 | React Hot Toast.
60 |
61 |
93 |
94 | Version {pkg.version}
95 |
96 |
97 | {#each ['Emoji Support', 'Customizable', 'Promise API', 'Pause on hover', 'Accessible', 'Headless use'] as feature}
98 |
99 |
110 |
{feature}
111 |
112 | {/each}
113 |
114 |
115 |
116 |
117 |
118 |
119 |
1. Install
120 |
121 | {#each installers as i}
122 |
132 | {/each}
133 |
134 |
135 | {#each installers as i}
136 |
137 |
138 | {i.cmd}
139 |
140 |
141 |
142 | {/each}
143 |
144 |
145 | 2. Mount and use
146 | {demoCode}
147 |
148 |
149 |
150 |
Examples
151 |
152 |
153 | GitHub
154 |
155 |
156 | © 2022 svelte-french-toast · Built by Kabir Goel
159 |
160 |
161 |
162 |
179 |
--------------------------------------------------------------------------------
/src/www/Copy.svelte:
--------------------------------------------------------------------------------
1 |
15 |
16 |
27 |
--------------------------------------------------------------------------------
/src/www/Examples.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 | {#each examples as example (example.title)}
10 |
28 | {/each}
29 |
30 | {#each examples as example}
31 |
32 |
33 |
{example.snippet}
36 |
37 |
38 |
39 | {/each}
40 |
41 |
49 |
--------------------------------------------------------------------------------
/src/www/RichContent.svelte:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 | Custom and bold with props like {someProp}!
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/www/demo-code.ts:
--------------------------------------------------------------------------------
1 | export default `
9 |
10 | `;
11 |
--------------------------------------------------------------------------------
/src/www/examples.ts:
--------------------------------------------------------------------------------
1 | import toast from '../lib';
2 | import RichContent from './RichContent.svelte';
3 |
4 | export interface Example {
5 | title: string;
6 | action: () => void;
7 | emoji: string;
8 | snippet: string;
9 | html?: boolean;
10 | }
11 |
12 | const examples: Example[] = [
13 | {
14 | title: 'Success',
15 | emoji: '✅',
16 | snippet: "toast.success('Successfully toasted!')",
17 | action: () => {
18 | toast.success('Successfully toasted!');
19 | }
20 | },
21 | {
22 | title: 'Error',
23 | emoji: '❌',
24 | snippet: `toast.error("This didn't work.")`,
25 |
26 | action: () => {
27 | toast.error("This didn't work.");
28 | }
29 | },
30 | {
31 | title: 'Promise',
32 | emoji: '⏳',
33 | snippet: `toast.promise(
34 | saveSettings(settings),
35 | {
36 | loading: 'Saving...',
37 | success: 'Settings saved!',
38 | error: 'Could not save.',
39 | }
40 | );`,
41 | action: () => {
42 | const promise = new Promise((resolve, reject) => {
43 | setTimeout(Math.random() < 0.8 ? resolve : reject, 1000);
44 | });
45 |
46 | toast.promise(promise, {
47 | loading: 'Saving...',
48 | success: `Settings saved!`,
49 | error: `Could not save.`
50 | });
51 | }
52 | },
53 | {
54 | title: 'Multiline',
55 | emoji: '↩️',
56 | snippet: `toast(
57 | "This toast is super big. I don't think anyone could eat it in one bite.\\n\\nIt's larger than you expected. You eat it but it does not seem to get smaller.",
58 | {
59 | duration: 6000,
60 | }
61 | );`,
62 | action: () => {
63 | toast(
64 | "This toast is super big. I don't think anyone could eat it in one bite.\n\n It's larger than you expected. You eat it but it does not seem to get smaller.",
65 | {
66 | duration: 6000
67 | }
68 | );
69 | }
70 | },
71 | {
72 | title: 'Emoji',
73 | emoji: '👏',
74 | snippet: `toast('Good Job!', {
75 | icon: '👏',
76 | });`,
77 | action: () => {
78 | toast('Good Job!', {
79 | icon: '👏'
80 | });
81 | }
82 | },
83 | {
84 | title: 'Dark mode',
85 | emoji: '🌚',
86 | snippet: `toast('Hello Darkness!', {
87 | icon: '👏',
88 | style: 'border-radius: 200px; background: #333; color: #fff;'
89 | });`,
90 | action: () => {
91 | toast('Hello Darkness!', {
92 | icon: '👏',
93 | style: 'border-radius: 200px; background: #333; color: #fff;'
94 | });
95 | }
96 | },
97 | {
98 | title: 'Rich content',
99 | emoji: '🔩',
100 | snippet: `
108 |
109 |
112 |
113 | Custom and bold with props like {someProp}!
114 |
115 | `,
116 | html: true,
117 | action: () => {
118 | toast(RichContent, { props: { someProp: '⭐' } });
119 | }
120 | },
121 | {
122 | title: 'Themed',
123 | emoji: '🎨',
124 | snippet: `toast.success('Look at me!', {
125 | style: 'border: 1px solid #713200; padding: 16px; color: #713200;',
126 | iconTheme: {
127 | primary: '#713200',
128 | secondary: '#FFFAEE'
129 | }
130 | });`,
131 |
132 | action: () => {
133 | toast.success('Look at me!', {
134 | style: 'border: 1px solid #713200; padding: 16px; color: #713200;',
135 | iconTheme: {
136 | primary: '#713200',
137 | secondary: '#FFFAEE'
138 | }
139 | });
140 | }
141 | },
142 | {
143 | title: 'Positioning',
144 | emoji: '⬆️',
145 | snippet: `toast.success('Always at the bottom.', {
146 | position: "bottom-center"
147 | })`,
148 | action: () => {
149 | toast.success('Always at the bottom.', {
150 | position: 'bottom-center',
151 | duration: 10000
152 | });
153 | }
154 | }
155 | ];
156 |
157 | export default examples;
158 |
--------------------------------------------------------------------------------
/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/favicon.png
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Black.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Black.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Black.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Black.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-BlackItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-BlackItalic.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-BlackItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-BlackItalic.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Bold.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Bold.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-BoldItalic.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-BoldItalic.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-ExtraBold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-ExtraBold.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-ExtraBold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-ExtraBold.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-ExtraBoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-ExtraBoldItalic.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-ExtraBoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-ExtraBoldItalic.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Italic.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Italic.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Medium.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Medium.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-MediumItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-MediumItalic.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-MediumItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-MediumItalic.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Regular.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-Regular.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-SemiBold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-SemiBold.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-SemiBold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-SemiBold.woff2
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-SemiBoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-SemiBoldItalic.woff
--------------------------------------------------------------------------------
/static/fonts/HKGrotesk-SemiBoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/fonts/HKGrotesk-SemiBoldItalic.woff2
--------------------------------------------------------------------------------
/static/og-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kbrgl/svelte-french-toast/8cec351605967f7eeb9a488464172b8a2e60e681/static/og-image.png
--------------------------------------------------------------------------------
/static/prism-theme.css:
--------------------------------------------------------------------------------
1 | /*
2 | Name: Duotone Space
3 | Author: Simurai, adapted from DuoTone themes for Atom (http://simurai.com/projects/2016/01/01/duotone-themes)
4 |
5 | Conversion: Bram de Haan (http://atelierbram.github.io/Base2Tone-prism/output/prism/prism-base2tone-space-dark.css)
6 | Generated with Base16 Builder (https://github.com/base16-builder/base16-builder)
7 | */
8 |
9 | code[class*='language-'],
10 | pre[class*='language-'] {
11 | font-family:
12 | ui-monospace, SFMono-Regular, Consolas, Menlo, Monaco, 'Andale Mono WT', 'Andale Mono',
13 | 'Lucida Console', 'Lucida Sans Typewriter', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono',
14 | 'Liberation Mono', 'Nimbus Mono L', 'Courier New', Courier, monospace;
15 | font-size: 16px;
16 | line-height: 1.375;
17 | direction: ltr;
18 | text-align: left;
19 | white-space: pre;
20 | word-spacing: normal;
21 | word-break: normal;
22 |
23 | -moz-tab-size: 4;
24 | -o-tab-size: 4;
25 | tab-size: 4;
26 |
27 | -webkit-hyphens: none;
28 | -moz-hyphens: none;
29 | -ms-hyphens: none;
30 | hyphens: none;
31 | background: #24242e;
32 | color: #ddddf0;
33 | }
34 |
35 | pre > code[class*='language-'] {
36 | font-size: 1em;
37 | }
38 |
39 | pre[class*='language-']::-moz-selection,
40 | pre[class*='language-'] ::-moz-selection,
41 | code[class*='language-']::-moz-selection,
42 | code[class*='language-'] ::-moz-selection {
43 | text-shadow: none;
44 | background: #5151e6;
45 | }
46 |
47 | pre[class*='language-']::selection,
48 | pre[class*='language-'] ::selection,
49 | code[class*='language-']::selection,
50 | code[class*='language-'] ::selection {
51 | text-shadow: none;
52 | background: #5151e6;
53 | }
54 |
55 | /* Code blocks */
56 | pre[class*='language-'] {
57 | border-radius: 8px;
58 | padding: 1em;
59 | margin: 0.5em 0;
60 | overflow: auto;
61 | }
62 |
63 | /* Inline code */
64 | :not(pre) > code[class*='language-'] {
65 | padding: 2em;
66 | border-radius: 8px;
67 | }
68 |
69 | .token.comment,
70 | .token.prolog,
71 | .token.doctype,
72 | .token.cdata {
73 | color: #5b5b76;
74 | }
75 |
76 | .token.punctuation {
77 | color: #5b5b76;
78 | }
79 |
80 | .token.namespace {
81 | opacity: 0.7;
82 | }
83 |
84 | .token.tag,
85 | .token.operator,
86 | .token.number {
87 | color: #dd672c;
88 | }
89 |
90 | .token.property,
91 | .token.function {
92 | color: #767693;
93 | }
94 |
95 | .token.tag-id,
96 | .token.selector,
97 | .token.atrule-id {
98 | color: #ebebff;
99 | }
100 |
101 | code.language-javascript,
102 | .token.attr-name {
103 | color: #aaaaca;
104 | }
105 |
106 | code.language-css,
107 | code.language-scss,
108 | .token.boolean,
109 | .token.entity,
110 | .token.url,
111 | .language-css .token.string,
112 | .language-scss .token.string,
113 | .style .token.string,
114 | .token.attr-value,
115 | .token.keyword,
116 | .token.control,
117 | .token.directive,
118 | .token.unit,
119 | .token.statement,
120 | .token.regex,
121 | .token.atrule {
122 | color: #fe8c52;
123 | }
124 |
125 | .token.string {
126 | color: #fed352;
127 | }
128 |
129 | .token.placeholder,
130 | .token.variable {
131 | color: #fe8c52;
132 | }
133 |
134 | .token.deleted {
135 | text-decoration: line-through;
136 | }
137 |
138 | .token.inserted {
139 | border-bottom: 1px dotted #ebebff;
140 | text-decoration: none;
141 | }
142 |
143 | .token.italic {
144 | font-style: italic;
145 | }
146 |
147 | .token.important,
148 | .token.bold {
149 | font-weight: bold;
150 | }
151 |
152 | .token.important {
153 | color: #aaaaca;
154 | }
155 |
156 | .token.entity {
157 | cursor: help;
158 | }
159 |
160 | pre > code.highlight {
161 | outline: 0.4em solid #7676f4;
162 | outline-offset: 0.4em;
163 | }
164 |
165 | /* overrides color-values for the Line Numbers plugin
166 | * http://prismjs.com/plugins/line-numbers/
167 | */
168 | .line-numbers.line-numbers .line-numbers-rows {
169 | border-right-color: #262631;
170 | }
171 |
172 | .line-numbers .line-numbers-rows > span:before {
173 | color: #393949;
174 | }
175 |
176 | /* overrides color-values for the Line Highlight plugin
177 | * http://prismjs.com/plugins/line-highlight/
178 | */
179 | .line-highlight.line-highlight {
180 | background: rgba(221, 103, 44, 0.2);
181 | background: -webkit-linear-gradient(left, rgba(221, 103, 44, 0.2) 70%, rgba(221, 103, 44, 0));
182 | background: linear-gradient(to right, rgba(221, 103, 44, 0.2) 70%, rgba(221, 103, 44, 0));
183 | }
184 |
--------------------------------------------------------------------------------
/svelte.config.js:
--------------------------------------------------------------------------------
1 | import adapter from '@sveltejs/adapter-auto';
2 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
3 |
4 | /** @type {import('@sveltejs/kit').Config} */
5 | const config = {
6 | // Consult https://kit.svelte.dev/docs/integrations#preprocessors
7 | // for more information about preprocessors
8 | preprocess: vitePreprocess(),
9 |
10 | kit: {
11 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
12 | // If your environment is not supported or you settled on a specific environment, switch out the adapter.
13 | // See https://kit.svelte.dev/docs/adapters for more information about adapters.
14 | adapter: adapter()
15 | }
16 | };
17 |
18 | export default config;
19 |
--------------------------------------------------------------------------------
/tailwind.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | content: ['./src/**/*.{html,js,svelte,ts}'],
3 | theme: {
4 | fontFamily: {
5 | sans: 'HK Grotesk, -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif',
6 | serif:
7 | 'Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol',
8 | mono: 'Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace'
9 | },
10 | extend: {}
11 | },
12 | plugins: []
13 | };
14 |
--------------------------------------------------------------------------------
/tests/test.ts:
--------------------------------------------------------------------------------
1 | import { expect, test } from '@playwright/test';
2 |
3 | test('index page has expected h1', async ({ page }) => {
4 | await page.goto('/');
5 | await expect(page.getByRole('heading', { name: 'Welcome to SvelteKit' })).toBeVisible();
6 | });
7 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./.svelte-kit/tsconfig.json",
3 | "compilerOptions": {
4 | "allowJs": true,
5 | "checkJs": true,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "resolveJsonModule": true,
9 | "skipLibCheck": true,
10 | "sourceMap": true,
11 | "strict": true
12 | }
13 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
14 | //
15 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
16 | // from the referenced tsconfig.json - TypeScript does not merge them in
17 | }
18 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { sveltekit } from '@sveltejs/kit/vite';
2 | import { defineConfig } from 'vitest/config';
3 |
4 | export default defineConfig({
5 | plugins: [sveltekit()],
6 | test: {
7 | include: ['src/**/*.{test,spec}.{js,ts}']
8 | },
9 | server: {
10 | fs: {
11 | strict: false
12 | }
13 | }
14 | });
15 |
--------------------------------------------------------------------------------