a textual notation to locate fields within atproto records (draft spec) microcosm.tngl.io/RecordPath/
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

playground: svelte

phil b460c9ee 3c7782f4

+4613
+23
playground/.gitignore
··· 1 + node_modules 2 + 3 + # Output 4 + .output 5 + .vercel 6 + .netlify 7 + .wrangler 8 + /.svelte-kit 9 + /build 10 + 11 + # OS 12 + .DS_Store 13 + Thumbs.db 14 + 15 + # Env 16 + .env 17 + .env.* 18 + !.env.example 19 + !.env.test 20 + 21 + # Vite 22 + vite.config.js.timestamp-* 23 + vite.config.ts.timestamp-*
+1
playground/.npmrc
··· 1 + engine-strict=true
+9
playground/.prettierignore
··· 1 + # Package Managers 2 + package-lock.json 3 + pnpm-lock.yaml 4 + yarn.lock 5 + bun.lock 6 + bun.lockb 7 + 8 + # Miscellaneous 9 + /static/
+16
playground/.prettierrc
··· 1 + { 2 + "useTabs": true, 3 + "singleQuote": true, 4 + "trailingComma": "none", 5 + "printWidth": 100, 6 + "plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"], 7 + "overrides": [ 8 + { 9 + "files": "*.svelte", 10 + "options": { 11 + "parser": "svelte" 12 + } 13 + } 14 + ], 15 + "tailwindStylesheet": "./src/routes/layout.css" 16 + }
+8
playground/.vscode/extensions.json
··· 1 + { 2 + "recommendations": [ 3 + "svelte.svelte-vscode", 4 + "esbenp.prettier-vscode", 5 + "dbaeumer.vscode-eslint", 6 + "bradlc.vscode-tailwindcss" 7 + ] 8 + }
+5
playground/.vscode/settings.json
··· 1 + { 2 + "files.associations": { 3 + "*.css": "tailwindcss" 4 + } 5 + }
+42
playground/README.md
··· 1 + # sv 2 + 3 + Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). 4 + 5 + ## Creating a project 6 + 7 + If you're seeing this, you've probably already done this step. Congrats! 8 + 9 + ```sh 10 + # create a new project 11 + npx sv create my-app 12 + ``` 13 + 14 + To recreate this project with the same configuration: 15 + 16 + ```sh 17 + # recreate this project 18 + npx sv@0.15.1 create --template minimal --types ts --add prettier eslint vitest="usages:unit,component" tailwindcss="plugins:none" --install npm playground 19 + ``` 20 + 21 + ## Developing 22 + 23 + Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: 24 + 25 + ```sh 26 + npm run dev 27 + 28 + # or start the server and open the app in a new browser tab 29 + npm run dev -- --open 30 + ``` 31 + 32 + ## Building 33 + 34 + To create a production version of your app: 35 + 36 + ```sh 37 + npm run build 38 + ``` 39 + 40 + You can preview the production build with `npm run preview`. 41 + 42 + > To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
+44
playground/eslint.config.js
··· 1 + import prettier from 'eslint-config-prettier'; 2 + import path from 'node:path'; 3 + import { includeIgnoreFile } from '@eslint/compat'; 4 + import js from '@eslint/js'; 5 + import svelte from 'eslint-plugin-svelte'; 6 + import { defineConfig } from 'eslint/config'; 7 + import globals from 'globals'; 8 + import ts from 'typescript-eslint'; 9 + import svelteConfig from './svelte.config.js'; 10 + 11 + const gitignorePath = path.resolve(import.meta.dirname, '.gitignore'); 12 + 13 + export default defineConfig( 14 + includeIgnoreFile(gitignorePath), 15 + js.configs.recommended, 16 + ts.configs.recommended, 17 + svelte.configs.recommended, 18 + prettier, 19 + svelte.configs.prettier, 20 + { 21 + languageOptions: { globals: { ...globals.browser, ...globals.node } }, 22 + rules: { 23 + // typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects. 24 + // see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors 25 + 'no-undef': 'off' 26 + } 27 + }, 28 + { 29 + files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'], 30 + languageOptions: { 31 + parserOptions: { 32 + projectService: true, 33 + extraFileExtensions: ['.svelte'], 34 + parser: ts.parser, 35 + svelteConfig 36 + } 37 + } 38 + }, 39 + { 40 + // Override or add rule settings here, such as: 41 + // 'svelte/button-has-type': 'error' 42 + rules: {} 43 + } 44 + );
playground/index.html playground-orig/index.html
+3819
playground/package-lock.json
··· 1 + { 2 + "name": "playground", 3 + "version": "0.0.1", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "playground", 9 + "version": "0.0.1", 10 + "devDependencies": { 11 + "@eslint/compat": "^2.0.4", 12 + "@eslint/js": "^10.0.1", 13 + "@sveltejs/adapter-auto": "^7.0.1", 14 + "@sveltejs/kit": "^2.57.0", 15 + "@sveltejs/vite-plugin-svelte": "^7.0.0", 16 + "@tailwindcss/vite": "^4.2.2", 17 + "@types/node": "^22", 18 + "@vitest/browser-playwright": "^4.1.3", 19 + "eslint": "^10.2.0", 20 + "eslint-config-prettier": "^10.1.8", 21 + "eslint-plugin-svelte": "^3.17.0", 22 + "globals": "^17.4.0", 23 + "playwright": "^1.59.1", 24 + "prettier": "^3.8.1", 25 + "prettier-plugin-svelte": "^3.5.1", 26 + "prettier-plugin-tailwindcss": "^0.7.2", 27 + "svelte": "^5.55.2", 28 + "svelte-check": "^4.4.6", 29 + "tailwindcss": "^4.2.2", 30 + "typescript": "^6.0.2", 31 + "typescript-eslint": "^8.58.1", 32 + "vite": "^8.0.7", 33 + "vitest": "^4.1.3", 34 + "vitest-browser-svelte": "^2.1.0" 35 + } 36 + }, 37 + "node_modules/@blazediff/core": { 38 + "version": "1.9.1", 39 + "resolved": "https://registry.npmjs.org/@blazediff/core/-/core-1.9.1.tgz", 40 + "integrity": "sha512-ehg3jIkYKulZh+8om/O25vkvSsXXwC+skXmyA87FFx6A/45eqOkZsBltMw/TVteb0mloiGT8oGRTcjRAz66zaA==", 41 + "dev": true, 42 + "license": "MIT" 43 + }, 44 + "node_modules/@emnapi/core": { 45 + "version": "1.9.2", 46 + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", 47 + "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", 48 + "dev": true, 49 + "license": "MIT", 50 + "optional": true, 51 + "dependencies": { 52 + "@emnapi/wasi-threads": "1.2.1", 53 + "tslib": "^2.4.0" 54 + } 55 + }, 56 + "node_modules/@emnapi/runtime": { 57 + "version": "1.9.2", 58 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", 59 + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", 60 + "dev": true, 61 + "license": "MIT", 62 + "optional": true, 63 + "dependencies": { 64 + "tslib": "^2.4.0" 65 + } 66 + }, 67 + "node_modules/@emnapi/wasi-threads": { 68 + "version": "1.2.1", 69 + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", 70 + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", 71 + "dev": true, 72 + "license": "MIT", 73 + "optional": true, 74 + "dependencies": { 75 + "tslib": "^2.4.0" 76 + } 77 + }, 78 + "node_modules/@eslint-community/eslint-utils": { 79 + "version": "4.9.1", 80 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", 81 + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", 82 + "dev": true, 83 + "license": "MIT", 84 + "dependencies": { 85 + "eslint-visitor-keys": "^3.4.3" 86 + }, 87 + "engines": { 88 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 89 + }, 90 + "funding": { 91 + "url": "https://opencollective.com/eslint" 92 + }, 93 + "peerDependencies": { 94 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 95 + } 96 + }, 97 + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 98 + "version": "3.4.3", 99 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 100 + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 101 + "dev": true, 102 + "license": "Apache-2.0", 103 + "engines": { 104 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 105 + }, 106 + "funding": { 107 + "url": "https://opencollective.com/eslint" 108 + } 109 + }, 110 + "node_modules/@eslint-community/regexpp": { 111 + "version": "4.12.2", 112 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", 113 + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", 114 + "dev": true, 115 + "license": "MIT", 116 + "engines": { 117 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 118 + } 119 + }, 120 + "node_modules/@eslint/compat": { 121 + "version": "2.0.5", 122 + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-2.0.5.tgz", 123 + "integrity": "sha512-IbHDbHJfkVNv6xjlET8AIVo/K1NQt7YT4Rp6ok/clyBGcpRx1l6gv0Rq3vBvYfPJIZt6ODf66Zq08FJNDpnzgg==", 124 + "dev": true, 125 + "license": "Apache-2.0", 126 + "dependencies": { 127 + "@eslint/core": "^1.2.1" 128 + }, 129 + "engines": { 130 + "node": "^20.19.0 || ^22.13.0 || >=24" 131 + }, 132 + "peerDependencies": { 133 + "eslint": "^8.40 || 9 || 10" 134 + }, 135 + "peerDependenciesMeta": { 136 + "eslint": { 137 + "optional": true 138 + } 139 + } 140 + }, 141 + "node_modules/@eslint/config-array": { 142 + "version": "0.23.5", 143 + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", 144 + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", 145 + "dev": true, 146 + "license": "Apache-2.0", 147 + "dependencies": { 148 + "@eslint/object-schema": "^3.0.5", 149 + "debug": "^4.3.1", 150 + "minimatch": "^10.2.4" 151 + }, 152 + "engines": { 153 + "node": "^20.19.0 || ^22.13.0 || >=24" 154 + } 155 + }, 156 + "node_modules/@eslint/config-helpers": { 157 + "version": "0.5.5", 158 + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz", 159 + "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==", 160 + "dev": true, 161 + "license": "Apache-2.0", 162 + "dependencies": { 163 + "@eslint/core": "^1.2.1" 164 + }, 165 + "engines": { 166 + "node": "^20.19.0 || ^22.13.0 || >=24" 167 + } 168 + }, 169 + "node_modules/@eslint/core": { 170 + "version": "1.2.1", 171 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", 172 + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", 173 + "dev": true, 174 + "license": "Apache-2.0", 175 + "dependencies": { 176 + "@types/json-schema": "^7.0.15" 177 + }, 178 + "engines": { 179 + "node": "^20.19.0 || ^22.13.0 || >=24" 180 + } 181 + }, 182 + "node_modules/@eslint/js": { 183 + "version": "10.0.1", 184 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", 185 + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", 186 + "dev": true, 187 + "license": "MIT", 188 + "engines": { 189 + "node": "^20.19.0 || ^22.13.0 || >=24" 190 + }, 191 + "funding": { 192 + "url": "https://eslint.org/donate" 193 + }, 194 + "peerDependencies": { 195 + "eslint": "^10.0.0" 196 + }, 197 + "peerDependenciesMeta": { 198 + "eslint": { 199 + "optional": true 200 + } 201 + } 202 + }, 203 + "node_modules/@eslint/object-schema": { 204 + "version": "3.0.5", 205 + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", 206 + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", 207 + "dev": true, 208 + "license": "Apache-2.0", 209 + "engines": { 210 + "node": "^20.19.0 || ^22.13.0 || >=24" 211 + } 212 + }, 213 + "node_modules/@eslint/plugin-kit": { 214 + "version": "0.7.1", 215 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz", 216 + "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==", 217 + "dev": true, 218 + "license": "Apache-2.0", 219 + "dependencies": { 220 + "@eslint/core": "^1.2.1", 221 + "levn": "^0.4.1" 222 + }, 223 + "engines": { 224 + "node": "^20.19.0 || ^22.13.0 || >=24" 225 + } 226 + }, 227 + "node_modules/@humanfs/core": { 228 + "version": "0.19.1", 229 + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", 230 + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", 231 + "dev": true, 232 + "license": "Apache-2.0", 233 + "engines": { 234 + "node": ">=18.18.0" 235 + } 236 + }, 237 + "node_modules/@humanfs/node": { 238 + "version": "0.16.7", 239 + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", 240 + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", 241 + "dev": true, 242 + "license": "Apache-2.0", 243 + "dependencies": { 244 + "@humanfs/core": "^0.19.1", 245 + "@humanwhocodes/retry": "^0.4.0" 246 + }, 247 + "engines": { 248 + "node": ">=18.18.0" 249 + } 250 + }, 251 + "node_modules/@humanwhocodes/module-importer": { 252 + "version": "1.0.1", 253 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 254 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 255 + "dev": true, 256 + "license": "Apache-2.0", 257 + "engines": { 258 + "node": ">=12.22" 259 + }, 260 + "funding": { 261 + "type": "github", 262 + "url": "https://github.com/sponsors/nzakas" 263 + } 264 + }, 265 + "node_modules/@humanwhocodes/retry": { 266 + "version": "0.4.3", 267 + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", 268 + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", 269 + "dev": true, 270 + "license": "Apache-2.0", 271 + "engines": { 272 + "node": ">=18.18" 273 + }, 274 + "funding": { 275 + "type": "github", 276 + "url": "https://github.com/sponsors/nzakas" 277 + } 278 + }, 279 + "node_modules/@jridgewell/gen-mapping": { 280 + "version": "0.3.13", 281 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", 282 + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", 283 + "dev": true, 284 + "license": "MIT", 285 + "dependencies": { 286 + "@jridgewell/sourcemap-codec": "^1.5.0", 287 + "@jridgewell/trace-mapping": "^0.3.24" 288 + } 289 + }, 290 + "node_modules/@jridgewell/remapping": { 291 + "version": "2.3.5", 292 + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", 293 + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", 294 + "dev": true, 295 + "license": "MIT", 296 + "dependencies": { 297 + "@jridgewell/gen-mapping": "^0.3.5", 298 + "@jridgewell/trace-mapping": "^0.3.24" 299 + } 300 + }, 301 + "node_modules/@jridgewell/resolve-uri": { 302 + "version": "3.1.2", 303 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 304 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 305 + "dev": true, 306 + "license": "MIT", 307 + "engines": { 308 + "node": ">=6.0.0" 309 + } 310 + }, 311 + "node_modules/@jridgewell/sourcemap-codec": { 312 + "version": "1.5.5", 313 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 314 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 315 + "dev": true, 316 + "license": "MIT" 317 + }, 318 + "node_modules/@jridgewell/trace-mapping": { 319 + "version": "0.3.31", 320 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", 321 + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", 322 + "dev": true, 323 + "license": "MIT", 324 + "dependencies": { 325 + "@jridgewell/resolve-uri": "^3.1.0", 326 + "@jridgewell/sourcemap-codec": "^1.4.14" 327 + } 328 + }, 329 + "node_modules/@napi-rs/wasm-runtime": { 330 + "version": "1.1.4", 331 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", 332 + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", 333 + "dev": true, 334 + "license": "MIT", 335 + "optional": true, 336 + "dependencies": { 337 + "@tybys/wasm-util": "^0.10.1" 338 + }, 339 + "funding": { 340 + "type": "github", 341 + "url": "https://github.com/sponsors/Brooooooklyn" 342 + }, 343 + "peerDependencies": { 344 + "@emnapi/core": "^1.7.1", 345 + "@emnapi/runtime": "^1.7.1" 346 + } 347 + }, 348 + "node_modules/@oxc-project/types": { 349 + "version": "0.124.0", 350 + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz", 351 + "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==", 352 + "dev": true, 353 + "license": "MIT", 354 + "funding": { 355 + "url": "https://github.com/sponsors/Boshen" 356 + } 357 + }, 358 + "node_modules/@polka/url": { 359 + "version": "1.0.0-next.29", 360 + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", 361 + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", 362 + "dev": true, 363 + "license": "MIT" 364 + }, 365 + "node_modules/@rolldown/binding-android-arm64": { 366 + "version": "1.0.0-rc.15", 367 + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz", 368 + "integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==", 369 + "cpu": [ 370 + "arm64" 371 + ], 372 + "dev": true, 373 + "license": "MIT", 374 + "optional": true, 375 + "os": [ 376 + "android" 377 + ], 378 + "engines": { 379 + "node": "^20.19.0 || >=22.12.0" 380 + } 381 + }, 382 + "node_modules/@rolldown/binding-darwin-arm64": { 383 + "version": "1.0.0-rc.15", 384 + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz", 385 + "integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==", 386 + "cpu": [ 387 + "arm64" 388 + ], 389 + "dev": true, 390 + "license": "MIT", 391 + "optional": true, 392 + "os": [ 393 + "darwin" 394 + ], 395 + "engines": { 396 + "node": "^20.19.0 || >=22.12.0" 397 + } 398 + }, 399 + "node_modules/@rolldown/binding-darwin-x64": { 400 + "version": "1.0.0-rc.15", 401 + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz", 402 + "integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==", 403 + "cpu": [ 404 + "x64" 405 + ], 406 + "dev": true, 407 + "license": "MIT", 408 + "optional": true, 409 + "os": [ 410 + "darwin" 411 + ], 412 + "engines": { 413 + "node": "^20.19.0 || >=22.12.0" 414 + } 415 + }, 416 + "node_modules/@rolldown/binding-freebsd-x64": { 417 + "version": "1.0.0-rc.15", 418 + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz", 419 + "integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==", 420 + "cpu": [ 421 + "x64" 422 + ], 423 + "dev": true, 424 + "license": "MIT", 425 + "optional": true, 426 + "os": [ 427 + "freebsd" 428 + ], 429 + "engines": { 430 + "node": "^20.19.0 || >=22.12.0" 431 + } 432 + }, 433 + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { 434 + "version": "1.0.0-rc.15", 435 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz", 436 + "integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==", 437 + "cpu": [ 438 + "arm" 439 + ], 440 + "dev": true, 441 + "license": "MIT", 442 + "optional": true, 443 + "os": [ 444 + "linux" 445 + ], 446 + "engines": { 447 + "node": "^20.19.0 || >=22.12.0" 448 + } 449 + }, 450 + "node_modules/@rolldown/binding-linux-arm64-gnu": { 451 + "version": "1.0.0-rc.15", 452 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz", 453 + "integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==", 454 + "cpu": [ 455 + "arm64" 456 + ], 457 + "dev": true, 458 + "license": "MIT", 459 + "optional": true, 460 + "os": [ 461 + "linux" 462 + ], 463 + "engines": { 464 + "node": "^20.19.0 || >=22.12.0" 465 + } 466 + }, 467 + "node_modules/@rolldown/binding-linux-arm64-musl": { 468 + "version": "1.0.0-rc.15", 469 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz", 470 + "integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==", 471 + "cpu": [ 472 + "arm64" 473 + ], 474 + "dev": true, 475 + "license": "MIT", 476 + "optional": true, 477 + "os": [ 478 + "linux" 479 + ], 480 + "engines": { 481 + "node": "^20.19.0 || >=22.12.0" 482 + } 483 + }, 484 + "node_modules/@rolldown/binding-linux-ppc64-gnu": { 485 + "version": "1.0.0-rc.15", 486 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz", 487 + "integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==", 488 + "cpu": [ 489 + "ppc64" 490 + ], 491 + "dev": true, 492 + "license": "MIT", 493 + "optional": true, 494 + "os": [ 495 + "linux" 496 + ], 497 + "engines": { 498 + "node": "^20.19.0 || >=22.12.0" 499 + } 500 + }, 501 + "node_modules/@rolldown/binding-linux-s390x-gnu": { 502 + "version": "1.0.0-rc.15", 503 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz", 504 + "integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==", 505 + "cpu": [ 506 + "s390x" 507 + ], 508 + "dev": true, 509 + "license": "MIT", 510 + "optional": true, 511 + "os": [ 512 + "linux" 513 + ], 514 + "engines": { 515 + "node": "^20.19.0 || >=22.12.0" 516 + } 517 + }, 518 + "node_modules/@rolldown/binding-linux-x64-gnu": { 519 + "version": "1.0.0-rc.15", 520 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz", 521 + "integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==", 522 + "cpu": [ 523 + "x64" 524 + ], 525 + "dev": true, 526 + "license": "MIT", 527 + "optional": true, 528 + "os": [ 529 + "linux" 530 + ], 531 + "engines": { 532 + "node": "^20.19.0 || >=22.12.0" 533 + } 534 + }, 535 + "node_modules/@rolldown/binding-linux-x64-musl": { 536 + "version": "1.0.0-rc.15", 537 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz", 538 + "integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==", 539 + "cpu": [ 540 + "x64" 541 + ], 542 + "dev": true, 543 + "license": "MIT", 544 + "optional": true, 545 + "os": [ 546 + "linux" 547 + ], 548 + "engines": { 549 + "node": "^20.19.0 || >=22.12.0" 550 + } 551 + }, 552 + "node_modules/@rolldown/binding-openharmony-arm64": { 553 + "version": "1.0.0-rc.15", 554 + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz", 555 + "integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==", 556 + "cpu": [ 557 + "arm64" 558 + ], 559 + "dev": true, 560 + "license": "MIT", 561 + "optional": true, 562 + "os": [ 563 + "openharmony" 564 + ], 565 + "engines": { 566 + "node": "^20.19.0 || >=22.12.0" 567 + } 568 + }, 569 + "node_modules/@rolldown/binding-wasm32-wasi": { 570 + "version": "1.0.0-rc.15", 571 + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz", 572 + "integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==", 573 + "cpu": [ 574 + "wasm32" 575 + ], 576 + "dev": true, 577 + "license": "MIT", 578 + "optional": true, 579 + "dependencies": { 580 + "@emnapi/core": "1.9.2", 581 + "@emnapi/runtime": "1.9.2", 582 + "@napi-rs/wasm-runtime": "^1.1.3" 583 + }, 584 + "engines": { 585 + "node": ">=14.0.0" 586 + } 587 + }, 588 + "node_modules/@rolldown/binding-win32-arm64-msvc": { 589 + "version": "1.0.0-rc.15", 590 + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz", 591 + "integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==", 592 + "cpu": [ 593 + "arm64" 594 + ], 595 + "dev": true, 596 + "license": "MIT", 597 + "optional": true, 598 + "os": [ 599 + "win32" 600 + ], 601 + "engines": { 602 + "node": "^20.19.0 || >=22.12.0" 603 + } 604 + }, 605 + "node_modules/@rolldown/binding-win32-x64-msvc": { 606 + "version": "1.0.0-rc.15", 607 + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz", 608 + "integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==", 609 + "cpu": [ 610 + "x64" 611 + ], 612 + "dev": true, 613 + "license": "MIT", 614 + "optional": true, 615 + "os": [ 616 + "win32" 617 + ], 618 + "engines": { 619 + "node": "^20.19.0 || >=22.12.0" 620 + } 621 + }, 622 + "node_modules/@rolldown/pluginutils": { 623 + "version": "1.0.0-rc.15", 624 + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz", 625 + "integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==", 626 + "dev": true, 627 + "license": "MIT" 628 + }, 629 + "node_modules/@standard-schema/spec": { 630 + "version": "1.1.0", 631 + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", 632 + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", 633 + "dev": true, 634 + "license": "MIT" 635 + }, 636 + "node_modules/@sveltejs/acorn-typescript": { 637 + "version": "1.0.9", 638 + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.9.tgz", 639 + "integrity": "sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==", 640 + "dev": true, 641 + "license": "MIT", 642 + "peerDependencies": { 643 + "acorn": "^8.9.0" 644 + } 645 + }, 646 + "node_modules/@sveltejs/adapter-auto": { 647 + "version": "7.0.1", 648 + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-7.0.1.tgz", 649 + "integrity": "sha512-dvuPm1E7M9NI/+canIQ6KKQDU2AkEefEZ2Dp7cY6uKoPq9Z/PhOXABe526UdW2mN986gjVkuSLkOYIBnS/M2LQ==", 650 + "dev": true, 651 + "license": "MIT", 652 + "peerDependencies": { 653 + "@sveltejs/kit": "^2.0.0" 654 + } 655 + }, 656 + "node_modules/@sveltejs/kit": { 657 + "version": "2.57.1", 658 + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.57.1.tgz", 659 + "integrity": "sha512-VRdSbB96cI1EnRh09CqmnQqP/YJvET5buj8S6k7CxaJqBJD4bw4fRKDjcarAj/eX9k2eHifQfDH8NtOh+ZxxPw==", 660 + "dev": true, 661 + "license": "MIT", 662 + "dependencies": { 663 + "@standard-schema/spec": "^1.0.0", 664 + "@sveltejs/acorn-typescript": "^1.0.5", 665 + "@types/cookie": "^0.6.0", 666 + "acorn": "^8.14.1", 667 + "cookie": "^0.6.0", 668 + "devalue": "^5.6.4", 669 + "esm-env": "^1.2.2", 670 + "kleur": "^4.1.5", 671 + "magic-string": "^0.30.5", 672 + "mrmime": "^2.0.0", 673 + "set-cookie-parser": "^3.0.0", 674 + "sirv": "^3.0.0" 675 + }, 676 + "bin": { 677 + "svelte-kit": "svelte-kit.js" 678 + }, 679 + "engines": { 680 + "node": ">=18.13" 681 + }, 682 + "peerDependencies": { 683 + "@opentelemetry/api": "^1.0.0", 684 + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0", 685 + "svelte": "^4.0.0 || ^5.0.0-next.0", 686 + "typescript": "^5.3.3 || ^6.0.0", 687 + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0" 688 + }, 689 + "peerDependenciesMeta": { 690 + "@opentelemetry/api": { 691 + "optional": true 692 + }, 693 + "typescript": { 694 + "optional": true 695 + } 696 + } 697 + }, 698 + "node_modules/@sveltejs/vite-plugin-svelte": { 699 + "version": "7.0.0", 700 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.0.0.tgz", 701 + "integrity": "sha512-ILXmxC7HAsnkK2eslgPetrqqW1BKSL7LktsFgqzNj83MaivMGZzluWq32m25j2mDOjmSKX7GGWahePhuEs7P/g==", 702 + "dev": true, 703 + "license": "MIT", 704 + "dependencies": { 705 + "deepmerge": "^4.3.1", 706 + "magic-string": "^0.30.21", 707 + "obug": "^2.1.0", 708 + "vitefu": "^1.1.2" 709 + }, 710 + "engines": { 711 + "node": "^20.19 || ^22.12 || >=24" 712 + }, 713 + "peerDependencies": { 714 + "svelte": "^5.46.4", 715 + "vite": "^8.0.0-beta.7 || ^8.0.0" 716 + } 717 + }, 718 + "node_modules/@tailwindcss/node": { 719 + "version": "4.2.2", 720 + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", 721 + "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==", 722 + "dev": true, 723 + "license": "MIT", 724 + "dependencies": { 725 + "@jridgewell/remapping": "^2.3.5", 726 + "enhanced-resolve": "^5.19.0", 727 + "jiti": "^2.6.1", 728 + "lightningcss": "1.32.0", 729 + "magic-string": "^0.30.21", 730 + "source-map-js": "^1.2.1", 731 + "tailwindcss": "4.2.2" 732 + } 733 + }, 734 + "node_modules/@tailwindcss/oxide": { 735 + "version": "4.2.2", 736 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz", 737 + "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==", 738 + "dev": true, 739 + "license": "MIT", 740 + "engines": { 741 + "node": ">= 20" 742 + }, 743 + "optionalDependencies": { 744 + "@tailwindcss/oxide-android-arm64": "4.2.2", 745 + "@tailwindcss/oxide-darwin-arm64": "4.2.2", 746 + "@tailwindcss/oxide-darwin-x64": "4.2.2", 747 + "@tailwindcss/oxide-freebsd-x64": "4.2.2", 748 + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", 749 + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", 750 + "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", 751 + "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", 752 + "@tailwindcss/oxide-linux-x64-musl": "4.2.2", 753 + "@tailwindcss/oxide-wasm32-wasi": "4.2.2", 754 + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", 755 + "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" 756 + } 757 + }, 758 + "node_modules/@tailwindcss/oxide-android-arm64": { 759 + "version": "4.2.2", 760 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz", 761 + "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==", 762 + "cpu": [ 763 + "arm64" 764 + ], 765 + "dev": true, 766 + "license": "MIT", 767 + "optional": true, 768 + "os": [ 769 + "android" 770 + ], 771 + "engines": { 772 + "node": ">= 20" 773 + } 774 + }, 775 + "node_modules/@tailwindcss/oxide-darwin-arm64": { 776 + "version": "4.2.2", 777 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz", 778 + "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==", 779 + "cpu": [ 780 + "arm64" 781 + ], 782 + "dev": true, 783 + "license": "MIT", 784 + "optional": true, 785 + "os": [ 786 + "darwin" 787 + ], 788 + "engines": { 789 + "node": ">= 20" 790 + } 791 + }, 792 + "node_modules/@tailwindcss/oxide-darwin-x64": { 793 + "version": "4.2.2", 794 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz", 795 + "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==", 796 + "cpu": [ 797 + "x64" 798 + ], 799 + "dev": true, 800 + "license": "MIT", 801 + "optional": true, 802 + "os": [ 803 + "darwin" 804 + ], 805 + "engines": { 806 + "node": ">= 20" 807 + } 808 + }, 809 + "node_modules/@tailwindcss/oxide-freebsd-x64": { 810 + "version": "4.2.2", 811 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz", 812 + "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==", 813 + "cpu": [ 814 + "x64" 815 + ], 816 + "dev": true, 817 + "license": "MIT", 818 + "optional": true, 819 + "os": [ 820 + "freebsd" 821 + ], 822 + "engines": { 823 + "node": ">= 20" 824 + } 825 + }, 826 + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { 827 + "version": "4.2.2", 828 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz", 829 + "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==", 830 + "cpu": [ 831 + "arm" 832 + ], 833 + "dev": true, 834 + "license": "MIT", 835 + "optional": true, 836 + "os": [ 837 + "linux" 838 + ], 839 + "engines": { 840 + "node": ">= 20" 841 + } 842 + }, 843 + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { 844 + "version": "4.2.2", 845 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz", 846 + "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==", 847 + "cpu": [ 848 + "arm64" 849 + ], 850 + "dev": true, 851 + "license": "MIT", 852 + "optional": true, 853 + "os": [ 854 + "linux" 855 + ], 856 + "engines": { 857 + "node": ">= 20" 858 + } 859 + }, 860 + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { 861 + "version": "4.2.2", 862 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz", 863 + "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==", 864 + "cpu": [ 865 + "arm64" 866 + ], 867 + "dev": true, 868 + "license": "MIT", 869 + "optional": true, 870 + "os": [ 871 + "linux" 872 + ], 873 + "engines": { 874 + "node": ">= 20" 875 + } 876 + }, 877 + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { 878 + "version": "4.2.2", 879 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz", 880 + "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==", 881 + "cpu": [ 882 + "x64" 883 + ], 884 + "dev": true, 885 + "license": "MIT", 886 + "optional": true, 887 + "os": [ 888 + "linux" 889 + ], 890 + "engines": { 891 + "node": ">= 20" 892 + } 893 + }, 894 + "node_modules/@tailwindcss/oxide-linux-x64-musl": { 895 + "version": "4.2.2", 896 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz", 897 + "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==", 898 + "cpu": [ 899 + "x64" 900 + ], 901 + "dev": true, 902 + "license": "MIT", 903 + "optional": true, 904 + "os": [ 905 + "linux" 906 + ], 907 + "engines": { 908 + "node": ">= 20" 909 + } 910 + }, 911 + "node_modules/@tailwindcss/oxide-wasm32-wasi": { 912 + "version": "4.2.2", 913 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz", 914 + "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==", 915 + "bundleDependencies": [ 916 + "@napi-rs/wasm-runtime", 917 + "@emnapi/core", 918 + "@emnapi/runtime", 919 + "@tybys/wasm-util", 920 + "@emnapi/wasi-threads", 921 + "tslib" 922 + ], 923 + "cpu": [ 924 + "wasm32" 925 + ], 926 + "dev": true, 927 + "license": "MIT", 928 + "optional": true, 929 + "dependencies": { 930 + "@emnapi/core": "^1.8.1", 931 + "@emnapi/runtime": "^1.8.1", 932 + "@emnapi/wasi-threads": "^1.1.0", 933 + "@napi-rs/wasm-runtime": "^1.1.1", 934 + "@tybys/wasm-util": "^0.10.1", 935 + "tslib": "^2.8.1" 936 + }, 937 + "engines": { 938 + "node": ">=14.0.0" 939 + } 940 + }, 941 + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { 942 + "version": "4.2.2", 943 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz", 944 + "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==", 945 + "cpu": [ 946 + "arm64" 947 + ], 948 + "dev": true, 949 + "license": "MIT", 950 + "optional": true, 951 + "os": [ 952 + "win32" 953 + ], 954 + "engines": { 955 + "node": ">= 20" 956 + } 957 + }, 958 + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { 959 + "version": "4.2.2", 960 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz", 961 + "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==", 962 + "cpu": [ 963 + "x64" 964 + ], 965 + "dev": true, 966 + "license": "MIT", 967 + "optional": true, 968 + "os": [ 969 + "win32" 970 + ], 971 + "engines": { 972 + "node": ">= 20" 973 + } 974 + }, 975 + "node_modules/@tailwindcss/vite": { 976 + "version": "4.2.2", 977 + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz", 978 + "integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==", 979 + "dev": true, 980 + "license": "MIT", 981 + "dependencies": { 982 + "@tailwindcss/node": "4.2.2", 983 + "@tailwindcss/oxide": "4.2.2", 984 + "tailwindcss": "4.2.2" 985 + }, 986 + "peerDependencies": { 987 + "vite": "^5.2.0 || ^6 || ^7 || ^8" 988 + } 989 + }, 990 + "node_modules/@testing-library/svelte-core": { 991 + "version": "1.0.0", 992 + "resolved": "https://registry.npmjs.org/@testing-library/svelte-core/-/svelte-core-1.0.0.tgz", 993 + "integrity": "sha512-VkUePoLV6oOYwSUvX6ShA8KLnJqZiYMIbP2JW2t0GLWLkJxKGvuH5qrrZBV/X7cXFnLGuFQEC7RheYiZOW68KQ==", 994 + "dev": true, 995 + "license": "MIT", 996 + "engines": { 997 + "node": ">=16" 998 + }, 999 + "peerDependencies": { 1000 + "svelte": "^3 || ^4 || ^5 || ^5.0.0-next.0" 1001 + } 1002 + }, 1003 + "node_modules/@tybys/wasm-util": { 1004 + "version": "0.10.1", 1005 + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", 1006 + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", 1007 + "dev": true, 1008 + "license": "MIT", 1009 + "optional": true, 1010 + "dependencies": { 1011 + "tslib": "^2.4.0" 1012 + } 1013 + }, 1014 + "node_modules/@types/chai": { 1015 + "version": "5.2.3", 1016 + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", 1017 + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", 1018 + "dev": true, 1019 + "license": "MIT", 1020 + "dependencies": { 1021 + "@types/deep-eql": "*", 1022 + "assertion-error": "^2.0.1" 1023 + } 1024 + }, 1025 + "node_modules/@types/cookie": { 1026 + "version": "0.6.0", 1027 + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", 1028 + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", 1029 + "dev": true, 1030 + "license": "MIT" 1031 + }, 1032 + "node_modules/@types/deep-eql": { 1033 + "version": "4.0.2", 1034 + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", 1035 + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", 1036 + "dev": true, 1037 + "license": "MIT" 1038 + }, 1039 + "node_modules/@types/esrecurse": { 1040 + "version": "4.3.1", 1041 + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", 1042 + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", 1043 + "dev": true, 1044 + "license": "MIT" 1045 + }, 1046 + "node_modules/@types/estree": { 1047 + "version": "1.0.8", 1048 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 1049 + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 1050 + "dev": true, 1051 + "license": "MIT" 1052 + }, 1053 + "node_modules/@types/json-schema": { 1054 + "version": "7.0.15", 1055 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 1056 + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 1057 + "dev": true, 1058 + "license": "MIT" 1059 + }, 1060 + "node_modules/@types/node": { 1061 + "version": "22.19.17", 1062 + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", 1063 + "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", 1064 + "dev": true, 1065 + "license": "MIT", 1066 + "dependencies": { 1067 + "undici-types": "~6.21.0" 1068 + } 1069 + }, 1070 + "node_modules/@types/trusted-types": { 1071 + "version": "2.0.7", 1072 + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", 1073 + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", 1074 + "dev": true, 1075 + "license": "MIT" 1076 + }, 1077 + "node_modules/@typescript-eslint/eslint-plugin": { 1078 + "version": "8.58.2", 1079 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.2.tgz", 1080 + "integrity": "sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==", 1081 + "dev": true, 1082 + "license": "MIT", 1083 + "dependencies": { 1084 + "@eslint-community/regexpp": "^4.12.2", 1085 + "@typescript-eslint/scope-manager": "8.58.2", 1086 + "@typescript-eslint/type-utils": "8.58.2", 1087 + "@typescript-eslint/utils": "8.58.2", 1088 + "@typescript-eslint/visitor-keys": "8.58.2", 1089 + "ignore": "^7.0.5", 1090 + "natural-compare": "^1.4.0", 1091 + "ts-api-utils": "^2.5.0" 1092 + }, 1093 + "engines": { 1094 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1095 + }, 1096 + "funding": { 1097 + "type": "opencollective", 1098 + "url": "https://opencollective.com/typescript-eslint" 1099 + }, 1100 + "peerDependencies": { 1101 + "@typescript-eslint/parser": "^8.58.2", 1102 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 1103 + "typescript": ">=4.8.4 <6.1.0" 1104 + } 1105 + }, 1106 + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { 1107 + "version": "7.0.5", 1108 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", 1109 + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", 1110 + "dev": true, 1111 + "license": "MIT", 1112 + "engines": { 1113 + "node": ">= 4" 1114 + } 1115 + }, 1116 + "node_modules/@typescript-eslint/parser": { 1117 + "version": "8.58.2", 1118 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.58.2.tgz", 1119 + "integrity": "sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==", 1120 + "dev": true, 1121 + "license": "MIT", 1122 + "dependencies": { 1123 + "@typescript-eslint/scope-manager": "8.58.2", 1124 + "@typescript-eslint/types": "8.58.2", 1125 + "@typescript-eslint/typescript-estree": "8.58.2", 1126 + "@typescript-eslint/visitor-keys": "8.58.2", 1127 + "debug": "^4.4.3" 1128 + }, 1129 + "engines": { 1130 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1131 + }, 1132 + "funding": { 1133 + "type": "opencollective", 1134 + "url": "https://opencollective.com/typescript-eslint" 1135 + }, 1136 + "peerDependencies": { 1137 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 1138 + "typescript": ">=4.8.4 <6.1.0" 1139 + } 1140 + }, 1141 + "node_modules/@typescript-eslint/project-service": { 1142 + "version": "8.58.2", 1143 + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.58.2.tgz", 1144 + "integrity": "sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==", 1145 + "dev": true, 1146 + "license": "MIT", 1147 + "dependencies": { 1148 + "@typescript-eslint/tsconfig-utils": "^8.58.2", 1149 + "@typescript-eslint/types": "^8.58.2", 1150 + "debug": "^4.4.3" 1151 + }, 1152 + "engines": { 1153 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1154 + }, 1155 + "funding": { 1156 + "type": "opencollective", 1157 + "url": "https://opencollective.com/typescript-eslint" 1158 + }, 1159 + "peerDependencies": { 1160 + "typescript": ">=4.8.4 <6.1.0" 1161 + } 1162 + }, 1163 + "node_modules/@typescript-eslint/scope-manager": { 1164 + "version": "8.58.2", 1165 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.58.2.tgz", 1166 + "integrity": "sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==", 1167 + "dev": true, 1168 + "license": "MIT", 1169 + "dependencies": { 1170 + "@typescript-eslint/types": "8.58.2", 1171 + "@typescript-eslint/visitor-keys": "8.58.2" 1172 + }, 1173 + "engines": { 1174 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1175 + }, 1176 + "funding": { 1177 + "type": "opencollective", 1178 + "url": "https://opencollective.com/typescript-eslint" 1179 + } 1180 + }, 1181 + "node_modules/@typescript-eslint/tsconfig-utils": { 1182 + "version": "8.58.2", 1183 + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.2.tgz", 1184 + "integrity": "sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==", 1185 + "dev": true, 1186 + "license": "MIT", 1187 + "engines": { 1188 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1189 + }, 1190 + "funding": { 1191 + "type": "opencollective", 1192 + "url": "https://opencollective.com/typescript-eslint" 1193 + }, 1194 + "peerDependencies": { 1195 + "typescript": ">=4.8.4 <6.1.0" 1196 + } 1197 + }, 1198 + "node_modules/@typescript-eslint/type-utils": { 1199 + "version": "8.58.2", 1200 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.58.2.tgz", 1201 + "integrity": "sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==", 1202 + "dev": true, 1203 + "license": "MIT", 1204 + "dependencies": { 1205 + "@typescript-eslint/types": "8.58.2", 1206 + "@typescript-eslint/typescript-estree": "8.58.2", 1207 + "@typescript-eslint/utils": "8.58.2", 1208 + "debug": "^4.4.3", 1209 + "ts-api-utils": "^2.5.0" 1210 + }, 1211 + "engines": { 1212 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1213 + }, 1214 + "funding": { 1215 + "type": "opencollective", 1216 + "url": "https://opencollective.com/typescript-eslint" 1217 + }, 1218 + "peerDependencies": { 1219 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 1220 + "typescript": ">=4.8.4 <6.1.0" 1221 + } 1222 + }, 1223 + "node_modules/@typescript-eslint/types": { 1224 + "version": "8.58.2", 1225 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.58.2.tgz", 1226 + "integrity": "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==", 1227 + "dev": true, 1228 + "license": "MIT", 1229 + "engines": { 1230 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1231 + }, 1232 + "funding": { 1233 + "type": "opencollective", 1234 + "url": "https://opencollective.com/typescript-eslint" 1235 + } 1236 + }, 1237 + "node_modules/@typescript-eslint/typescript-estree": { 1238 + "version": "8.58.2", 1239 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.2.tgz", 1240 + "integrity": "sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==", 1241 + "dev": true, 1242 + "license": "MIT", 1243 + "dependencies": { 1244 + "@typescript-eslint/project-service": "8.58.2", 1245 + "@typescript-eslint/tsconfig-utils": "8.58.2", 1246 + "@typescript-eslint/types": "8.58.2", 1247 + "@typescript-eslint/visitor-keys": "8.58.2", 1248 + "debug": "^4.4.3", 1249 + "minimatch": "^10.2.2", 1250 + "semver": "^7.7.3", 1251 + "tinyglobby": "^0.2.15", 1252 + "ts-api-utils": "^2.5.0" 1253 + }, 1254 + "engines": { 1255 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1256 + }, 1257 + "funding": { 1258 + "type": "opencollective", 1259 + "url": "https://opencollective.com/typescript-eslint" 1260 + }, 1261 + "peerDependencies": { 1262 + "typescript": ">=4.8.4 <6.1.0" 1263 + } 1264 + }, 1265 + "node_modules/@typescript-eslint/utils": { 1266 + "version": "8.58.2", 1267 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.58.2.tgz", 1268 + "integrity": "sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==", 1269 + "dev": true, 1270 + "license": "MIT", 1271 + "dependencies": { 1272 + "@eslint-community/eslint-utils": "^4.9.1", 1273 + "@typescript-eslint/scope-manager": "8.58.2", 1274 + "@typescript-eslint/types": "8.58.2", 1275 + "@typescript-eslint/typescript-estree": "8.58.2" 1276 + }, 1277 + "engines": { 1278 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1279 + }, 1280 + "funding": { 1281 + "type": "opencollective", 1282 + "url": "https://opencollective.com/typescript-eslint" 1283 + }, 1284 + "peerDependencies": { 1285 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 1286 + "typescript": ">=4.8.4 <6.1.0" 1287 + } 1288 + }, 1289 + "node_modules/@typescript-eslint/visitor-keys": { 1290 + "version": "8.58.2", 1291 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.2.tgz", 1292 + "integrity": "sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==", 1293 + "dev": true, 1294 + "license": "MIT", 1295 + "dependencies": { 1296 + "@typescript-eslint/types": "8.58.2", 1297 + "eslint-visitor-keys": "^5.0.0" 1298 + }, 1299 + "engines": { 1300 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1301 + }, 1302 + "funding": { 1303 + "type": "opencollective", 1304 + "url": "https://opencollective.com/typescript-eslint" 1305 + } 1306 + }, 1307 + "node_modules/@vitest/browser": { 1308 + "version": "4.1.4", 1309 + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.4.tgz", 1310 + "integrity": "sha512-TrNaY/yVOwxtrxNsDUC/wQ56xSwplpytTeRAqF/197xV/ZddxxulBsxR6TrhVMyniJmp9in8d5u0AcDaNRY30w==", 1311 + "dev": true, 1312 + "license": "MIT", 1313 + "dependencies": { 1314 + "@blazediff/core": "1.9.1", 1315 + "@vitest/mocker": "4.1.4", 1316 + "@vitest/utils": "4.1.4", 1317 + "magic-string": "^0.30.21", 1318 + "pngjs": "^7.0.0", 1319 + "sirv": "^3.0.2", 1320 + "tinyrainbow": "^3.1.0", 1321 + "ws": "^8.19.0" 1322 + }, 1323 + "funding": { 1324 + "url": "https://opencollective.com/vitest" 1325 + }, 1326 + "peerDependencies": { 1327 + "vitest": "4.1.4" 1328 + } 1329 + }, 1330 + "node_modules/@vitest/browser-playwright": { 1331 + "version": "4.1.4", 1332 + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.4.tgz", 1333 + "integrity": "sha512-q3PchVhZINX23Pv+RERgAtDlp6wzVkID/smOPnZ5YGWpeWUe3jMNYppeVh15j4il3G7JIJty1d1Kicpm0HSMig==", 1334 + "dev": true, 1335 + "license": "MIT", 1336 + "dependencies": { 1337 + "@vitest/browser": "4.1.4", 1338 + "@vitest/mocker": "4.1.4", 1339 + "tinyrainbow": "^3.1.0" 1340 + }, 1341 + "funding": { 1342 + "url": "https://opencollective.com/vitest" 1343 + }, 1344 + "peerDependencies": { 1345 + "playwright": "*", 1346 + "vitest": "4.1.4" 1347 + }, 1348 + "peerDependenciesMeta": { 1349 + "playwright": { 1350 + "optional": false 1351 + } 1352 + } 1353 + }, 1354 + "node_modules/@vitest/expect": { 1355 + "version": "4.1.4", 1356 + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.4.tgz", 1357 + "integrity": "sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==", 1358 + "dev": true, 1359 + "license": "MIT", 1360 + "dependencies": { 1361 + "@standard-schema/spec": "^1.1.0", 1362 + "@types/chai": "^5.2.2", 1363 + "@vitest/spy": "4.1.4", 1364 + "@vitest/utils": "4.1.4", 1365 + "chai": "^6.2.2", 1366 + "tinyrainbow": "^3.1.0" 1367 + }, 1368 + "funding": { 1369 + "url": "https://opencollective.com/vitest" 1370 + } 1371 + }, 1372 + "node_modules/@vitest/mocker": { 1373 + "version": "4.1.4", 1374 + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.4.tgz", 1375 + "integrity": "sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==", 1376 + "dev": true, 1377 + "license": "MIT", 1378 + "dependencies": { 1379 + "@vitest/spy": "4.1.4", 1380 + "estree-walker": "^3.0.3", 1381 + "magic-string": "^0.30.21" 1382 + }, 1383 + "funding": { 1384 + "url": "https://opencollective.com/vitest" 1385 + }, 1386 + "peerDependencies": { 1387 + "msw": "^2.4.9", 1388 + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" 1389 + }, 1390 + "peerDependenciesMeta": { 1391 + "msw": { 1392 + "optional": true 1393 + }, 1394 + "vite": { 1395 + "optional": true 1396 + } 1397 + } 1398 + }, 1399 + "node_modules/@vitest/pretty-format": { 1400 + "version": "4.1.4", 1401 + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.4.tgz", 1402 + "integrity": "sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==", 1403 + "dev": true, 1404 + "license": "MIT", 1405 + "dependencies": { 1406 + "tinyrainbow": "^3.1.0" 1407 + }, 1408 + "funding": { 1409 + "url": "https://opencollective.com/vitest" 1410 + } 1411 + }, 1412 + "node_modules/@vitest/runner": { 1413 + "version": "4.1.4", 1414 + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.4.tgz", 1415 + "integrity": "sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==", 1416 + "dev": true, 1417 + "license": "MIT", 1418 + "dependencies": { 1419 + "@vitest/utils": "4.1.4", 1420 + "pathe": "^2.0.3" 1421 + }, 1422 + "funding": { 1423 + "url": "https://opencollective.com/vitest" 1424 + } 1425 + }, 1426 + "node_modules/@vitest/snapshot": { 1427 + "version": "4.1.4", 1428 + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.4.tgz", 1429 + "integrity": "sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==", 1430 + "dev": true, 1431 + "license": "MIT", 1432 + "dependencies": { 1433 + "@vitest/pretty-format": "4.1.4", 1434 + "@vitest/utils": "4.1.4", 1435 + "magic-string": "^0.30.21", 1436 + "pathe": "^2.0.3" 1437 + }, 1438 + "funding": { 1439 + "url": "https://opencollective.com/vitest" 1440 + } 1441 + }, 1442 + "node_modules/@vitest/spy": { 1443 + "version": "4.1.4", 1444 + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.4.tgz", 1445 + "integrity": "sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==", 1446 + "dev": true, 1447 + "license": "MIT", 1448 + "funding": { 1449 + "url": "https://opencollective.com/vitest" 1450 + } 1451 + }, 1452 + "node_modules/@vitest/utils": { 1453 + "version": "4.1.4", 1454 + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.4.tgz", 1455 + "integrity": "sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==", 1456 + "dev": true, 1457 + "license": "MIT", 1458 + "dependencies": { 1459 + "@vitest/pretty-format": "4.1.4", 1460 + "convert-source-map": "^2.0.0", 1461 + "tinyrainbow": "^3.1.0" 1462 + }, 1463 + "funding": { 1464 + "url": "https://opencollective.com/vitest" 1465 + } 1466 + }, 1467 + "node_modules/acorn": { 1468 + "version": "8.16.0", 1469 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", 1470 + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", 1471 + "dev": true, 1472 + "license": "MIT", 1473 + "bin": { 1474 + "acorn": "bin/acorn" 1475 + }, 1476 + "engines": { 1477 + "node": ">=0.4.0" 1478 + } 1479 + }, 1480 + "node_modules/acorn-jsx": { 1481 + "version": "5.3.2", 1482 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 1483 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 1484 + "dev": true, 1485 + "license": "MIT", 1486 + "peerDependencies": { 1487 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 1488 + } 1489 + }, 1490 + "node_modules/ajv": { 1491 + "version": "6.14.0", 1492 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", 1493 + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", 1494 + "dev": true, 1495 + "license": "MIT", 1496 + "dependencies": { 1497 + "fast-deep-equal": "^3.1.1", 1498 + "fast-json-stable-stringify": "^2.0.0", 1499 + "json-schema-traverse": "^0.4.1", 1500 + "uri-js": "^4.2.2" 1501 + }, 1502 + "funding": { 1503 + "type": "github", 1504 + "url": "https://github.com/sponsors/epoberezkin" 1505 + } 1506 + }, 1507 + "node_modules/aria-query": { 1508 + "version": "5.3.1", 1509 + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz", 1510 + "integrity": "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==", 1511 + "dev": true, 1512 + "license": "Apache-2.0", 1513 + "engines": { 1514 + "node": ">= 0.4" 1515 + } 1516 + }, 1517 + "node_modules/assertion-error": { 1518 + "version": "2.0.1", 1519 + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", 1520 + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", 1521 + "dev": true, 1522 + "license": "MIT", 1523 + "engines": { 1524 + "node": ">=12" 1525 + } 1526 + }, 1527 + "node_modules/axobject-query": { 1528 + "version": "4.1.0", 1529 + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", 1530 + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", 1531 + "dev": true, 1532 + "license": "Apache-2.0", 1533 + "engines": { 1534 + "node": ">= 0.4" 1535 + } 1536 + }, 1537 + "node_modules/balanced-match": { 1538 + "version": "4.0.4", 1539 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", 1540 + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", 1541 + "dev": true, 1542 + "license": "MIT", 1543 + "engines": { 1544 + "node": "18 || 20 || >=22" 1545 + } 1546 + }, 1547 + "node_modules/brace-expansion": { 1548 + "version": "5.0.5", 1549 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", 1550 + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", 1551 + "dev": true, 1552 + "license": "MIT", 1553 + "dependencies": { 1554 + "balanced-match": "^4.0.2" 1555 + }, 1556 + "engines": { 1557 + "node": "18 || 20 || >=22" 1558 + } 1559 + }, 1560 + "node_modules/chai": { 1561 + "version": "6.2.2", 1562 + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", 1563 + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", 1564 + "dev": true, 1565 + "license": "MIT", 1566 + "engines": { 1567 + "node": ">=18" 1568 + } 1569 + }, 1570 + "node_modules/chokidar": { 1571 + "version": "4.0.3", 1572 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", 1573 + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", 1574 + "dev": true, 1575 + "license": "MIT", 1576 + "dependencies": { 1577 + "readdirp": "^4.0.1" 1578 + }, 1579 + "engines": { 1580 + "node": ">= 14.16.0" 1581 + }, 1582 + "funding": { 1583 + "url": "https://paulmillr.com/funding/" 1584 + } 1585 + }, 1586 + "node_modules/clsx": { 1587 + "version": "2.1.1", 1588 + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 1589 + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 1590 + "dev": true, 1591 + "license": "MIT", 1592 + "engines": { 1593 + "node": ">=6" 1594 + } 1595 + }, 1596 + "node_modules/convert-source-map": { 1597 + "version": "2.0.0", 1598 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 1599 + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", 1600 + "dev": true, 1601 + "license": "MIT" 1602 + }, 1603 + "node_modules/cookie": { 1604 + "version": "0.6.0", 1605 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", 1606 + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", 1607 + "dev": true, 1608 + "license": "MIT", 1609 + "engines": { 1610 + "node": ">= 0.6" 1611 + } 1612 + }, 1613 + "node_modules/cross-spawn": { 1614 + "version": "7.0.6", 1615 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 1616 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 1617 + "dev": true, 1618 + "license": "MIT", 1619 + "dependencies": { 1620 + "path-key": "^3.1.0", 1621 + "shebang-command": "^2.0.0", 1622 + "which": "^2.0.1" 1623 + }, 1624 + "engines": { 1625 + "node": ">= 8" 1626 + } 1627 + }, 1628 + "node_modules/cssesc": { 1629 + "version": "3.0.0", 1630 + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 1631 + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 1632 + "dev": true, 1633 + "license": "MIT", 1634 + "bin": { 1635 + "cssesc": "bin/cssesc" 1636 + }, 1637 + "engines": { 1638 + "node": ">=4" 1639 + } 1640 + }, 1641 + "node_modules/debug": { 1642 + "version": "4.4.3", 1643 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 1644 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 1645 + "dev": true, 1646 + "license": "MIT", 1647 + "dependencies": { 1648 + "ms": "^2.1.3" 1649 + }, 1650 + "engines": { 1651 + "node": ">=6.0" 1652 + }, 1653 + "peerDependenciesMeta": { 1654 + "supports-color": { 1655 + "optional": true 1656 + } 1657 + } 1658 + }, 1659 + "node_modules/deep-is": { 1660 + "version": "0.1.4", 1661 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 1662 + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 1663 + "dev": true, 1664 + "license": "MIT" 1665 + }, 1666 + "node_modules/deepmerge": { 1667 + "version": "4.3.1", 1668 + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 1669 + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 1670 + "dev": true, 1671 + "license": "MIT", 1672 + "engines": { 1673 + "node": ">=0.10.0" 1674 + } 1675 + }, 1676 + "node_modules/detect-libc": { 1677 + "version": "2.1.2", 1678 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 1679 + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 1680 + "dev": true, 1681 + "license": "Apache-2.0", 1682 + "engines": { 1683 + "node": ">=8" 1684 + } 1685 + }, 1686 + "node_modules/devalue": { 1687 + "version": "5.7.1", 1688 + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.7.1.tgz", 1689 + "integrity": "sha512-MUbZ586EgQqdRnC4yDrlod3BEdyvE4TapGYHMW2CiaW+KkkFmWEFqBUaLltEZCGi0iFXCEjRF0OjF0DV2QHjOA==", 1690 + "dev": true, 1691 + "license": "MIT" 1692 + }, 1693 + "node_modules/enhanced-resolve": { 1694 + "version": "5.20.1", 1695 + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", 1696 + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", 1697 + "dev": true, 1698 + "license": "MIT", 1699 + "dependencies": { 1700 + "graceful-fs": "^4.2.4", 1701 + "tapable": "^2.3.0" 1702 + }, 1703 + "engines": { 1704 + "node": ">=10.13.0" 1705 + } 1706 + }, 1707 + "node_modules/es-module-lexer": { 1708 + "version": "2.0.0", 1709 + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", 1710 + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", 1711 + "dev": true, 1712 + "license": "MIT" 1713 + }, 1714 + "node_modules/escape-string-regexp": { 1715 + "version": "4.0.0", 1716 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 1717 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 1718 + "dev": true, 1719 + "license": "MIT", 1720 + "engines": { 1721 + "node": ">=10" 1722 + }, 1723 + "funding": { 1724 + "url": "https://github.com/sponsors/sindresorhus" 1725 + } 1726 + }, 1727 + "node_modules/eslint": { 1728 + "version": "10.2.0", 1729 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.2.0.tgz", 1730 + "integrity": "sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==", 1731 + "dev": true, 1732 + "license": "MIT", 1733 + "dependencies": { 1734 + "@eslint-community/eslint-utils": "^4.8.0", 1735 + "@eslint-community/regexpp": "^4.12.2", 1736 + "@eslint/config-array": "^0.23.4", 1737 + "@eslint/config-helpers": "^0.5.4", 1738 + "@eslint/core": "^1.2.0", 1739 + "@eslint/plugin-kit": "^0.7.0", 1740 + "@humanfs/node": "^0.16.6", 1741 + "@humanwhocodes/module-importer": "^1.0.1", 1742 + "@humanwhocodes/retry": "^0.4.2", 1743 + "@types/estree": "^1.0.6", 1744 + "ajv": "^6.14.0", 1745 + "cross-spawn": "^7.0.6", 1746 + "debug": "^4.3.2", 1747 + "escape-string-regexp": "^4.0.0", 1748 + "eslint-scope": "^9.1.2", 1749 + "eslint-visitor-keys": "^5.0.1", 1750 + "espree": "^11.2.0", 1751 + "esquery": "^1.7.0", 1752 + "esutils": "^2.0.2", 1753 + "fast-deep-equal": "^3.1.3", 1754 + "file-entry-cache": "^8.0.0", 1755 + "find-up": "^5.0.0", 1756 + "glob-parent": "^6.0.2", 1757 + "ignore": "^5.2.0", 1758 + "imurmurhash": "^0.1.4", 1759 + "is-glob": "^4.0.0", 1760 + "json-stable-stringify-without-jsonify": "^1.0.1", 1761 + "minimatch": "^10.2.4", 1762 + "natural-compare": "^1.4.0", 1763 + "optionator": "^0.9.3" 1764 + }, 1765 + "bin": { 1766 + "eslint": "bin/eslint.js" 1767 + }, 1768 + "engines": { 1769 + "node": "^20.19.0 || ^22.13.0 || >=24" 1770 + }, 1771 + "funding": { 1772 + "url": "https://eslint.org/donate" 1773 + }, 1774 + "peerDependencies": { 1775 + "jiti": "*" 1776 + }, 1777 + "peerDependenciesMeta": { 1778 + "jiti": { 1779 + "optional": true 1780 + } 1781 + } 1782 + }, 1783 + "node_modules/eslint-config-prettier": { 1784 + "version": "10.1.8", 1785 + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", 1786 + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", 1787 + "dev": true, 1788 + "license": "MIT", 1789 + "bin": { 1790 + "eslint-config-prettier": "bin/cli.js" 1791 + }, 1792 + "funding": { 1793 + "url": "https://opencollective.com/eslint-config-prettier" 1794 + }, 1795 + "peerDependencies": { 1796 + "eslint": ">=7.0.0" 1797 + } 1798 + }, 1799 + "node_modules/eslint-plugin-svelte": { 1800 + "version": "3.17.0", 1801 + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.17.0.tgz", 1802 + "integrity": "sha512-sF6wgd5FLS2P8CCaOy2HdYYYEcZ6TwL251dLHUkNmtLnWECk1Dwc+j6VeulmmnFxr7Xs0WNtjweOA+bJ0PnaFw==", 1803 + "dev": true, 1804 + "license": "MIT", 1805 + "dependencies": { 1806 + "@eslint-community/eslint-utils": "^4.6.1", 1807 + "@jridgewell/sourcemap-codec": "^1.5.0", 1808 + "esutils": "^2.0.3", 1809 + "globals": "^16.0.0", 1810 + "known-css-properties": "^0.37.0", 1811 + "postcss": "^8.4.49", 1812 + "postcss-load-config": "^3.1.4", 1813 + "postcss-safe-parser": "^7.0.0", 1814 + "semver": "^7.6.3", 1815 + "svelte-eslint-parser": "^1.4.0" 1816 + }, 1817 + "engines": { 1818 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1819 + }, 1820 + "funding": { 1821 + "url": "https://github.com/sponsors/ota-meshi" 1822 + }, 1823 + "peerDependencies": { 1824 + "eslint": "^8.57.1 || ^9.0.0 || ^10.0.0", 1825 + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" 1826 + }, 1827 + "peerDependenciesMeta": { 1828 + "svelte": { 1829 + "optional": true 1830 + } 1831 + } 1832 + }, 1833 + "node_modules/eslint-plugin-svelte/node_modules/globals": { 1834 + "version": "16.5.0", 1835 + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", 1836 + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", 1837 + "dev": true, 1838 + "license": "MIT", 1839 + "engines": { 1840 + "node": ">=18" 1841 + }, 1842 + "funding": { 1843 + "url": "https://github.com/sponsors/sindresorhus" 1844 + } 1845 + }, 1846 + "node_modules/eslint-scope": { 1847 + "version": "9.1.2", 1848 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", 1849 + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", 1850 + "dev": true, 1851 + "license": "BSD-2-Clause", 1852 + "dependencies": { 1853 + "@types/esrecurse": "^4.3.1", 1854 + "@types/estree": "^1.0.8", 1855 + "esrecurse": "^4.3.0", 1856 + "estraverse": "^5.2.0" 1857 + }, 1858 + "engines": { 1859 + "node": "^20.19.0 || ^22.13.0 || >=24" 1860 + }, 1861 + "funding": { 1862 + "url": "https://opencollective.com/eslint" 1863 + } 1864 + }, 1865 + "node_modules/eslint-visitor-keys": { 1866 + "version": "5.0.1", 1867 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", 1868 + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", 1869 + "dev": true, 1870 + "license": "Apache-2.0", 1871 + "engines": { 1872 + "node": "^20.19.0 || ^22.13.0 || >=24" 1873 + }, 1874 + "funding": { 1875 + "url": "https://opencollective.com/eslint" 1876 + } 1877 + }, 1878 + "node_modules/esm-env": { 1879 + "version": "1.2.2", 1880 + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", 1881 + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", 1882 + "dev": true, 1883 + "license": "MIT" 1884 + }, 1885 + "node_modules/espree": { 1886 + "version": "11.2.0", 1887 + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", 1888 + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", 1889 + "dev": true, 1890 + "license": "BSD-2-Clause", 1891 + "dependencies": { 1892 + "acorn": "^8.16.0", 1893 + "acorn-jsx": "^5.3.2", 1894 + "eslint-visitor-keys": "^5.0.1" 1895 + }, 1896 + "engines": { 1897 + "node": "^20.19.0 || ^22.13.0 || >=24" 1898 + }, 1899 + "funding": { 1900 + "url": "https://opencollective.com/eslint" 1901 + } 1902 + }, 1903 + "node_modules/esquery": { 1904 + "version": "1.7.0", 1905 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", 1906 + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", 1907 + "dev": true, 1908 + "license": "BSD-3-Clause", 1909 + "dependencies": { 1910 + "estraverse": "^5.1.0" 1911 + }, 1912 + "engines": { 1913 + "node": ">=0.10" 1914 + } 1915 + }, 1916 + "node_modules/esrap": { 1917 + "version": "2.2.5", 1918 + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.5.tgz", 1919 + "integrity": "sha512-/yLB1538mag+dn0wsePTe8C0rDIjUOaJpMs2McodSzmM2msWcZsBSdRtg6HOBt0A/r82BN+Md3pgwSc/uWt2Ig==", 1920 + "dev": true, 1921 + "license": "MIT", 1922 + "dependencies": { 1923 + "@jridgewell/sourcemap-codec": "^1.4.15" 1924 + }, 1925 + "peerDependencies": { 1926 + "@typescript-eslint/types": "^8.2.0" 1927 + }, 1928 + "peerDependenciesMeta": { 1929 + "@typescript-eslint/types": { 1930 + "optional": true 1931 + } 1932 + } 1933 + }, 1934 + "node_modules/esrecurse": { 1935 + "version": "4.3.0", 1936 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 1937 + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1938 + "dev": true, 1939 + "license": "BSD-2-Clause", 1940 + "dependencies": { 1941 + "estraverse": "^5.2.0" 1942 + }, 1943 + "engines": { 1944 + "node": ">=4.0" 1945 + } 1946 + }, 1947 + "node_modules/estraverse": { 1948 + "version": "5.3.0", 1949 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1950 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1951 + "dev": true, 1952 + "license": "BSD-2-Clause", 1953 + "engines": { 1954 + "node": ">=4.0" 1955 + } 1956 + }, 1957 + "node_modules/estree-walker": { 1958 + "version": "3.0.3", 1959 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", 1960 + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 1961 + "dev": true, 1962 + "license": "MIT", 1963 + "dependencies": { 1964 + "@types/estree": "^1.0.0" 1965 + } 1966 + }, 1967 + "node_modules/esutils": { 1968 + "version": "2.0.3", 1969 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1970 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1971 + "dev": true, 1972 + "license": "BSD-2-Clause", 1973 + "engines": { 1974 + "node": ">=0.10.0" 1975 + } 1976 + }, 1977 + "node_modules/expect-type": { 1978 + "version": "1.3.0", 1979 + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", 1980 + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", 1981 + "dev": true, 1982 + "license": "Apache-2.0", 1983 + "engines": { 1984 + "node": ">=12.0.0" 1985 + } 1986 + }, 1987 + "node_modules/fast-deep-equal": { 1988 + "version": "3.1.3", 1989 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1990 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1991 + "dev": true, 1992 + "license": "MIT" 1993 + }, 1994 + "node_modules/fast-json-stable-stringify": { 1995 + "version": "2.1.0", 1996 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1997 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1998 + "dev": true, 1999 + "license": "MIT" 2000 + }, 2001 + "node_modules/fast-levenshtein": { 2002 + "version": "2.0.6", 2003 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2004 + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 2005 + "dev": true, 2006 + "license": "MIT" 2007 + }, 2008 + "node_modules/fdir": { 2009 + "version": "6.5.0", 2010 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 2011 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 2012 + "dev": true, 2013 + "license": "MIT", 2014 + "engines": { 2015 + "node": ">=12.0.0" 2016 + }, 2017 + "peerDependencies": { 2018 + "picomatch": "^3 || ^4" 2019 + }, 2020 + "peerDependenciesMeta": { 2021 + "picomatch": { 2022 + "optional": true 2023 + } 2024 + } 2025 + }, 2026 + "node_modules/file-entry-cache": { 2027 + "version": "8.0.0", 2028 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 2029 + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 2030 + "dev": true, 2031 + "license": "MIT", 2032 + "dependencies": { 2033 + "flat-cache": "^4.0.0" 2034 + }, 2035 + "engines": { 2036 + "node": ">=16.0.0" 2037 + } 2038 + }, 2039 + "node_modules/find-up": { 2040 + "version": "5.0.0", 2041 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 2042 + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 2043 + "dev": true, 2044 + "license": "MIT", 2045 + "dependencies": { 2046 + "locate-path": "^6.0.0", 2047 + "path-exists": "^4.0.0" 2048 + }, 2049 + "engines": { 2050 + "node": ">=10" 2051 + }, 2052 + "funding": { 2053 + "url": "https://github.com/sponsors/sindresorhus" 2054 + } 2055 + }, 2056 + "node_modules/flat-cache": { 2057 + "version": "4.0.1", 2058 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 2059 + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 2060 + "dev": true, 2061 + "license": "MIT", 2062 + "dependencies": { 2063 + "flatted": "^3.2.9", 2064 + "keyv": "^4.5.4" 2065 + }, 2066 + "engines": { 2067 + "node": ">=16" 2068 + } 2069 + }, 2070 + "node_modules/flatted": { 2071 + "version": "3.4.2", 2072 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", 2073 + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", 2074 + "dev": true, 2075 + "license": "ISC" 2076 + }, 2077 + "node_modules/fsevents": { 2078 + "version": "2.3.2", 2079 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 2080 + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2081 + "dev": true, 2082 + "hasInstallScript": true, 2083 + "license": "MIT", 2084 + "optional": true, 2085 + "os": [ 2086 + "darwin" 2087 + ], 2088 + "engines": { 2089 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 2090 + } 2091 + }, 2092 + "node_modules/glob-parent": { 2093 + "version": "6.0.2", 2094 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2095 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2096 + "dev": true, 2097 + "license": "ISC", 2098 + "dependencies": { 2099 + "is-glob": "^4.0.3" 2100 + }, 2101 + "engines": { 2102 + "node": ">=10.13.0" 2103 + } 2104 + }, 2105 + "node_modules/globals": { 2106 + "version": "17.5.0", 2107 + "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz", 2108 + "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==", 2109 + "dev": true, 2110 + "license": "MIT", 2111 + "engines": { 2112 + "node": ">=18" 2113 + }, 2114 + "funding": { 2115 + "url": "https://github.com/sponsors/sindresorhus" 2116 + } 2117 + }, 2118 + "node_modules/graceful-fs": { 2119 + "version": "4.2.11", 2120 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 2121 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 2122 + "dev": true, 2123 + "license": "ISC" 2124 + }, 2125 + "node_modules/ignore": { 2126 + "version": "5.3.2", 2127 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 2128 + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 2129 + "dev": true, 2130 + "license": "MIT", 2131 + "engines": { 2132 + "node": ">= 4" 2133 + } 2134 + }, 2135 + "node_modules/imurmurhash": { 2136 + "version": "0.1.4", 2137 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2138 + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 2139 + "dev": true, 2140 + "license": "MIT", 2141 + "engines": { 2142 + "node": ">=0.8.19" 2143 + } 2144 + }, 2145 + "node_modules/is-extglob": { 2146 + "version": "2.1.1", 2147 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2148 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2149 + "dev": true, 2150 + "license": "MIT", 2151 + "engines": { 2152 + "node": ">=0.10.0" 2153 + } 2154 + }, 2155 + "node_modules/is-glob": { 2156 + "version": "4.0.3", 2157 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2158 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2159 + "dev": true, 2160 + "license": "MIT", 2161 + "dependencies": { 2162 + "is-extglob": "^2.1.1" 2163 + }, 2164 + "engines": { 2165 + "node": ">=0.10.0" 2166 + } 2167 + }, 2168 + "node_modules/is-reference": { 2169 + "version": "3.0.3", 2170 + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", 2171 + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", 2172 + "dev": true, 2173 + "license": "MIT", 2174 + "dependencies": { 2175 + "@types/estree": "^1.0.6" 2176 + } 2177 + }, 2178 + "node_modules/isexe": { 2179 + "version": "2.0.0", 2180 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2181 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2182 + "dev": true, 2183 + "license": "ISC" 2184 + }, 2185 + "node_modules/jiti": { 2186 + "version": "2.6.1", 2187 + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", 2188 + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", 2189 + "dev": true, 2190 + "license": "MIT", 2191 + "bin": { 2192 + "jiti": "lib/jiti-cli.mjs" 2193 + } 2194 + }, 2195 + "node_modules/json-buffer": { 2196 + "version": "3.0.1", 2197 + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 2198 + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 2199 + "dev": true, 2200 + "license": "MIT" 2201 + }, 2202 + "node_modules/json-schema-traverse": { 2203 + "version": "0.4.1", 2204 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2205 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2206 + "dev": true, 2207 + "license": "MIT" 2208 + }, 2209 + "node_modules/json-stable-stringify-without-jsonify": { 2210 + "version": "1.0.1", 2211 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2212 + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 2213 + "dev": true, 2214 + "license": "MIT" 2215 + }, 2216 + "node_modules/keyv": { 2217 + "version": "4.5.4", 2218 + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 2219 + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 2220 + "dev": true, 2221 + "license": "MIT", 2222 + "dependencies": { 2223 + "json-buffer": "3.0.1" 2224 + } 2225 + }, 2226 + "node_modules/kleur": { 2227 + "version": "4.1.5", 2228 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 2229 + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 2230 + "dev": true, 2231 + "license": "MIT", 2232 + "engines": { 2233 + "node": ">=6" 2234 + } 2235 + }, 2236 + "node_modules/known-css-properties": { 2237 + "version": "0.37.0", 2238 + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", 2239 + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", 2240 + "dev": true, 2241 + "license": "MIT" 2242 + }, 2243 + "node_modules/levn": { 2244 + "version": "0.4.1", 2245 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 2246 + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 2247 + "dev": true, 2248 + "license": "MIT", 2249 + "dependencies": { 2250 + "prelude-ls": "^1.2.1", 2251 + "type-check": "~0.4.0" 2252 + }, 2253 + "engines": { 2254 + "node": ">= 0.8.0" 2255 + } 2256 + }, 2257 + "node_modules/lightningcss": { 2258 + "version": "1.32.0", 2259 + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", 2260 + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", 2261 + "dev": true, 2262 + "license": "MPL-2.0", 2263 + "dependencies": { 2264 + "detect-libc": "^2.0.3" 2265 + }, 2266 + "engines": { 2267 + "node": ">= 12.0.0" 2268 + }, 2269 + "funding": { 2270 + "type": "opencollective", 2271 + "url": "https://opencollective.com/parcel" 2272 + }, 2273 + "optionalDependencies": { 2274 + "lightningcss-android-arm64": "1.32.0", 2275 + "lightningcss-darwin-arm64": "1.32.0", 2276 + "lightningcss-darwin-x64": "1.32.0", 2277 + "lightningcss-freebsd-x64": "1.32.0", 2278 + "lightningcss-linux-arm-gnueabihf": "1.32.0", 2279 + "lightningcss-linux-arm64-gnu": "1.32.0", 2280 + "lightningcss-linux-arm64-musl": "1.32.0", 2281 + "lightningcss-linux-x64-gnu": "1.32.0", 2282 + "lightningcss-linux-x64-musl": "1.32.0", 2283 + "lightningcss-win32-arm64-msvc": "1.32.0", 2284 + "lightningcss-win32-x64-msvc": "1.32.0" 2285 + } 2286 + }, 2287 + "node_modules/lightningcss-android-arm64": { 2288 + "version": "1.32.0", 2289 + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", 2290 + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", 2291 + "cpu": [ 2292 + "arm64" 2293 + ], 2294 + "dev": true, 2295 + "license": "MPL-2.0", 2296 + "optional": true, 2297 + "os": [ 2298 + "android" 2299 + ], 2300 + "engines": { 2301 + "node": ">= 12.0.0" 2302 + }, 2303 + "funding": { 2304 + "type": "opencollective", 2305 + "url": "https://opencollective.com/parcel" 2306 + } 2307 + }, 2308 + "node_modules/lightningcss-darwin-arm64": { 2309 + "version": "1.32.0", 2310 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", 2311 + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", 2312 + "cpu": [ 2313 + "arm64" 2314 + ], 2315 + "dev": true, 2316 + "license": "MPL-2.0", 2317 + "optional": true, 2318 + "os": [ 2319 + "darwin" 2320 + ], 2321 + "engines": { 2322 + "node": ">= 12.0.0" 2323 + }, 2324 + "funding": { 2325 + "type": "opencollective", 2326 + "url": "https://opencollective.com/parcel" 2327 + } 2328 + }, 2329 + "node_modules/lightningcss-darwin-x64": { 2330 + "version": "1.32.0", 2331 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", 2332 + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", 2333 + "cpu": [ 2334 + "x64" 2335 + ], 2336 + "dev": true, 2337 + "license": "MPL-2.0", 2338 + "optional": true, 2339 + "os": [ 2340 + "darwin" 2341 + ], 2342 + "engines": { 2343 + "node": ">= 12.0.0" 2344 + }, 2345 + "funding": { 2346 + "type": "opencollective", 2347 + "url": "https://opencollective.com/parcel" 2348 + } 2349 + }, 2350 + "node_modules/lightningcss-freebsd-x64": { 2351 + "version": "1.32.0", 2352 + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", 2353 + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", 2354 + "cpu": [ 2355 + "x64" 2356 + ], 2357 + "dev": true, 2358 + "license": "MPL-2.0", 2359 + "optional": true, 2360 + "os": [ 2361 + "freebsd" 2362 + ], 2363 + "engines": { 2364 + "node": ">= 12.0.0" 2365 + }, 2366 + "funding": { 2367 + "type": "opencollective", 2368 + "url": "https://opencollective.com/parcel" 2369 + } 2370 + }, 2371 + "node_modules/lightningcss-linux-arm-gnueabihf": { 2372 + "version": "1.32.0", 2373 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", 2374 + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", 2375 + "cpu": [ 2376 + "arm" 2377 + ], 2378 + "dev": true, 2379 + "license": "MPL-2.0", 2380 + "optional": true, 2381 + "os": [ 2382 + "linux" 2383 + ], 2384 + "engines": { 2385 + "node": ">= 12.0.0" 2386 + }, 2387 + "funding": { 2388 + "type": "opencollective", 2389 + "url": "https://opencollective.com/parcel" 2390 + } 2391 + }, 2392 + "node_modules/lightningcss-linux-arm64-gnu": { 2393 + "version": "1.32.0", 2394 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", 2395 + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", 2396 + "cpu": [ 2397 + "arm64" 2398 + ], 2399 + "dev": true, 2400 + "license": "MPL-2.0", 2401 + "optional": true, 2402 + "os": [ 2403 + "linux" 2404 + ], 2405 + "engines": { 2406 + "node": ">= 12.0.0" 2407 + }, 2408 + "funding": { 2409 + "type": "opencollective", 2410 + "url": "https://opencollective.com/parcel" 2411 + } 2412 + }, 2413 + "node_modules/lightningcss-linux-arm64-musl": { 2414 + "version": "1.32.0", 2415 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", 2416 + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", 2417 + "cpu": [ 2418 + "arm64" 2419 + ], 2420 + "dev": true, 2421 + "license": "MPL-2.0", 2422 + "optional": true, 2423 + "os": [ 2424 + "linux" 2425 + ], 2426 + "engines": { 2427 + "node": ">= 12.0.0" 2428 + }, 2429 + "funding": { 2430 + "type": "opencollective", 2431 + "url": "https://opencollective.com/parcel" 2432 + } 2433 + }, 2434 + "node_modules/lightningcss-linux-x64-gnu": { 2435 + "version": "1.32.0", 2436 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", 2437 + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", 2438 + "cpu": [ 2439 + "x64" 2440 + ], 2441 + "dev": true, 2442 + "license": "MPL-2.0", 2443 + "optional": true, 2444 + "os": [ 2445 + "linux" 2446 + ], 2447 + "engines": { 2448 + "node": ">= 12.0.0" 2449 + }, 2450 + "funding": { 2451 + "type": "opencollective", 2452 + "url": "https://opencollective.com/parcel" 2453 + } 2454 + }, 2455 + "node_modules/lightningcss-linux-x64-musl": { 2456 + "version": "1.32.0", 2457 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", 2458 + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", 2459 + "cpu": [ 2460 + "x64" 2461 + ], 2462 + "dev": true, 2463 + "license": "MPL-2.0", 2464 + "optional": true, 2465 + "os": [ 2466 + "linux" 2467 + ], 2468 + "engines": { 2469 + "node": ">= 12.0.0" 2470 + }, 2471 + "funding": { 2472 + "type": "opencollective", 2473 + "url": "https://opencollective.com/parcel" 2474 + } 2475 + }, 2476 + "node_modules/lightningcss-win32-arm64-msvc": { 2477 + "version": "1.32.0", 2478 + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", 2479 + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", 2480 + "cpu": [ 2481 + "arm64" 2482 + ], 2483 + "dev": true, 2484 + "license": "MPL-2.0", 2485 + "optional": true, 2486 + "os": [ 2487 + "win32" 2488 + ], 2489 + "engines": { 2490 + "node": ">= 12.0.0" 2491 + }, 2492 + "funding": { 2493 + "type": "opencollective", 2494 + "url": "https://opencollective.com/parcel" 2495 + } 2496 + }, 2497 + "node_modules/lightningcss-win32-x64-msvc": { 2498 + "version": "1.32.0", 2499 + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", 2500 + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", 2501 + "cpu": [ 2502 + "x64" 2503 + ], 2504 + "dev": true, 2505 + "license": "MPL-2.0", 2506 + "optional": true, 2507 + "os": [ 2508 + "win32" 2509 + ], 2510 + "engines": { 2511 + "node": ">= 12.0.0" 2512 + }, 2513 + "funding": { 2514 + "type": "opencollective", 2515 + "url": "https://opencollective.com/parcel" 2516 + } 2517 + }, 2518 + "node_modules/lilconfig": { 2519 + "version": "2.1.0", 2520 + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", 2521 + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", 2522 + "dev": true, 2523 + "license": "MIT", 2524 + "engines": { 2525 + "node": ">=10" 2526 + } 2527 + }, 2528 + "node_modules/locate-character": { 2529 + "version": "3.0.0", 2530 + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", 2531 + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", 2532 + "dev": true, 2533 + "license": "MIT" 2534 + }, 2535 + "node_modules/locate-path": { 2536 + "version": "6.0.0", 2537 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 2538 + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 2539 + "dev": true, 2540 + "license": "MIT", 2541 + "dependencies": { 2542 + "p-locate": "^5.0.0" 2543 + }, 2544 + "engines": { 2545 + "node": ">=10" 2546 + }, 2547 + "funding": { 2548 + "url": "https://github.com/sponsors/sindresorhus" 2549 + } 2550 + }, 2551 + "node_modules/magic-string": { 2552 + "version": "0.30.21", 2553 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 2554 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 2555 + "dev": true, 2556 + "license": "MIT", 2557 + "dependencies": { 2558 + "@jridgewell/sourcemap-codec": "^1.5.5" 2559 + } 2560 + }, 2561 + "node_modules/minimatch": { 2562 + "version": "10.2.5", 2563 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", 2564 + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", 2565 + "dev": true, 2566 + "license": "BlueOak-1.0.0", 2567 + "dependencies": { 2568 + "brace-expansion": "^5.0.5" 2569 + }, 2570 + "engines": { 2571 + "node": "18 || 20 || >=22" 2572 + }, 2573 + "funding": { 2574 + "url": "https://github.com/sponsors/isaacs" 2575 + } 2576 + }, 2577 + "node_modules/mri": { 2578 + "version": "1.2.0", 2579 + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 2580 + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 2581 + "dev": true, 2582 + "license": "MIT", 2583 + "engines": { 2584 + "node": ">=4" 2585 + } 2586 + }, 2587 + "node_modules/mrmime": { 2588 + "version": "2.0.1", 2589 + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", 2590 + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", 2591 + "dev": true, 2592 + "license": "MIT", 2593 + "engines": { 2594 + "node": ">=10" 2595 + } 2596 + }, 2597 + "node_modules/ms": { 2598 + "version": "2.1.3", 2599 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2600 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 2601 + "dev": true, 2602 + "license": "MIT" 2603 + }, 2604 + "node_modules/nanoid": { 2605 + "version": "3.3.11", 2606 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 2607 + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 2608 + "dev": true, 2609 + "funding": [ 2610 + { 2611 + "type": "github", 2612 + "url": "https://github.com/sponsors/ai" 2613 + } 2614 + ], 2615 + "license": "MIT", 2616 + "bin": { 2617 + "nanoid": "bin/nanoid.cjs" 2618 + }, 2619 + "engines": { 2620 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 2621 + } 2622 + }, 2623 + "node_modules/natural-compare": { 2624 + "version": "1.4.0", 2625 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2626 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 2627 + "dev": true, 2628 + "license": "MIT" 2629 + }, 2630 + "node_modules/obug": { 2631 + "version": "2.1.1", 2632 + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", 2633 + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", 2634 + "dev": true, 2635 + "funding": [ 2636 + "https://github.com/sponsors/sxzz", 2637 + "https://opencollective.com/debug" 2638 + ], 2639 + "license": "MIT" 2640 + }, 2641 + "node_modules/optionator": { 2642 + "version": "0.9.4", 2643 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 2644 + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 2645 + "dev": true, 2646 + "license": "MIT", 2647 + "dependencies": { 2648 + "deep-is": "^0.1.3", 2649 + "fast-levenshtein": "^2.0.6", 2650 + "levn": "^0.4.1", 2651 + "prelude-ls": "^1.2.1", 2652 + "type-check": "^0.4.0", 2653 + "word-wrap": "^1.2.5" 2654 + }, 2655 + "engines": { 2656 + "node": ">= 0.8.0" 2657 + } 2658 + }, 2659 + "node_modules/p-limit": { 2660 + "version": "3.1.0", 2661 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 2662 + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 2663 + "dev": true, 2664 + "license": "MIT", 2665 + "dependencies": { 2666 + "yocto-queue": "^0.1.0" 2667 + }, 2668 + "engines": { 2669 + "node": ">=10" 2670 + }, 2671 + "funding": { 2672 + "url": "https://github.com/sponsors/sindresorhus" 2673 + } 2674 + }, 2675 + "node_modules/p-locate": { 2676 + "version": "5.0.0", 2677 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 2678 + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 2679 + "dev": true, 2680 + "license": "MIT", 2681 + "dependencies": { 2682 + "p-limit": "^3.0.2" 2683 + }, 2684 + "engines": { 2685 + "node": ">=10" 2686 + }, 2687 + "funding": { 2688 + "url": "https://github.com/sponsors/sindresorhus" 2689 + } 2690 + }, 2691 + "node_modules/path-exists": { 2692 + "version": "4.0.0", 2693 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2694 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2695 + "dev": true, 2696 + "license": "MIT", 2697 + "engines": { 2698 + "node": ">=8" 2699 + } 2700 + }, 2701 + "node_modules/path-key": { 2702 + "version": "3.1.1", 2703 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2704 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2705 + "dev": true, 2706 + "license": "MIT", 2707 + "engines": { 2708 + "node": ">=8" 2709 + } 2710 + }, 2711 + "node_modules/pathe": { 2712 + "version": "2.0.3", 2713 + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 2714 + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 2715 + "dev": true, 2716 + "license": "MIT" 2717 + }, 2718 + "node_modules/picocolors": { 2719 + "version": "1.1.1", 2720 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 2721 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 2722 + "dev": true, 2723 + "license": "ISC" 2724 + }, 2725 + "node_modules/picomatch": { 2726 + "version": "4.0.4", 2727 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", 2728 + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", 2729 + "dev": true, 2730 + "license": "MIT", 2731 + "engines": { 2732 + "node": ">=12" 2733 + }, 2734 + "funding": { 2735 + "url": "https://github.com/sponsors/jonschlinkert" 2736 + } 2737 + }, 2738 + "node_modules/playwright": { 2739 + "version": "1.59.1", 2740 + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", 2741 + "integrity": "sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==", 2742 + "dev": true, 2743 + "license": "Apache-2.0", 2744 + "dependencies": { 2745 + "playwright-core": "1.59.1" 2746 + }, 2747 + "bin": { 2748 + "playwright": "cli.js" 2749 + }, 2750 + "engines": { 2751 + "node": ">=18" 2752 + }, 2753 + "optionalDependencies": { 2754 + "fsevents": "2.3.2" 2755 + } 2756 + }, 2757 + "node_modules/playwright-core": { 2758 + "version": "1.59.1", 2759 + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz", 2760 + "integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==", 2761 + "dev": true, 2762 + "license": "Apache-2.0", 2763 + "bin": { 2764 + "playwright-core": "cli.js" 2765 + }, 2766 + "engines": { 2767 + "node": ">=18" 2768 + } 2769 + }, 2770 + "node_modules/pngjs": { 2771 + "version": "7.0.0", 2772 + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", 2773 + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", 2774 + "dev": true, 2775 + "license": "MIT", 2776 + "engines": { 2777 + "node": ">=14.19.0" 2778 + } 2779 + }, 2780 + "node_modules/postcss": { 2781 + "version": "8.5.10", 2782 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", 2783 + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", 2784 + "dev": true, 2785 + "funding": [ 2786 + { 2787 + "type": "opencollective", 2788 + "url": "https://opencollective.com/postcss/" 2789 + }, 2790 + { 2791 + "type": "tidelift", 2792 + "url": "https://tidelift.com/funding/github/npm/postcss" 2793 + }, 2794 + { 2795 + "type": "github", 2796 + "url": "https://github.com/sponsors/ai" 2797 + } 2798 + ], 2799 + "license": "MIT", 2800 + "dependencies": { 2801 + "nanoid": "^3.3.11", 2802 + "picocolors": "^1.1.1", 2803 + "source-map-js": "^1.2.1" 2804 + }, 2805 + "engines": { 2806 + "node": "^10 || ^12 || >=14" 2807 + } 2808 + }, 2809 + "node_modules/postcss-load-config": { 2810 + "version": "3.1.4", 2811 + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 2812 + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 2813 + "dev": true, 2814 + "license": "MIT", 2815 + "dependencies": { 2816 + "lilconfig": "^2.0.5", 2817 + "yaml": "^1.10.2" 2818 + }, 2819 + "engines": { 2820 + "node": ">= 10" 2821 + }, 2822 + "funding": { 2823 + "type": "opencollective", 2824 + "url": "https://opencollective.com/postcss/" 2825 + }, 2826 + "peerDependencies": { 2827 + "postcss": ">=8.0.9", 2828 + "ts-node": ">=9.0.0" 2829 + }, 2830 + "peerDependenciesMeta": { 2831 + "postcss": { 2832 + "optional": true 2833 + }, 2834 + "ts-node": { 2835 + "optional": true 2836 + } 2837 + } 2838 + }, 2839 + "node_modules/postcss-load-config/node_modules/yaml": { 2840 + "version": "1.10.3", 2841 + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", 2842 + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", 2843 + "dev": true, 2844 + "license": "ISC", 2845 + "engines": { 2846 + "node": ">= 6" 2847 + } 2848 + }, 2849 + "node_modules/postcss-safe-parser": { 2850 + "version": "7.0.1", 2851 + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", 2852 + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", 2853 + "dev": true, 2854 + "funding": [ 2855 + { 2856 + "type": "opencollective", 2857 + "url": "https://opencollective.com/postcss/" 2858 + }, 2859 + { 2860 + "type": "tidelift", 2861 + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" 2862 + }, 2863 + { 2864 + "type": "github", 2865 + "url": "https://github.com/sponsors/ai" 2866 + } 2867 + ], 2868 + "license": "MIT", 2869 + "engines": { 2870 + "node": ">=18.0" 2871 + }, 2872 + "peerDependencies": { 2873 + "postcss": "^8.4.31" 2874 + } 2875 + }, 2876 + "node_modules/postcss-scss": { 2877 + "version": "4.0.9", 2878 + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", 2879 + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", 2880 + "dev": true, 2881 + "funding": [ 2882 + { 2883 + "type": "opencollective", 2884 + "url": "https://opencollective.com/postcss/" 2885 + }, 2886 + { 2887 + "type": "tidelift", 2888 + "url": "https://tidelift.com/funding/github/npm/postcss-scss" 2889 + }, 2890 + { 2891 + "type": "github", 2892 + "url": "https://github.com/sponsors/ai" 2893 + } 2894 + ], 2895 + "license": "MIT", 2896 + "engines": { 2897 + "node": ">=12.0" 2898 + }, 2899 + "peerDependencies": { 2900 + "postcss": "^8.4.29" 2901 + } 2902 + }, 2903 + "node_modules/postcss-selector-parser": { 2904 + "version": "7.1.1", 2905 + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", 2906 + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", 2907 + "dev": true, 2908 + "license": "MIT", 2909 + "dependencies": { 2910 + "cssesc": "^3.0.0", 2911 + "util-deprecate": "^1.0.2" 2912 + }, 2913 + "engines": { 2914 + "node": ">=4" 2915 + } 2916 + }, 2917 + "node_modules/prelude-ls": { 2918 + "version": "1.2.1", 2919 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 2920 + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 2921 + "dev": true, 2922 + "license": "MIT", 2923 + "engines": { 2924 + "node": ">= 0.8.0" 2925 + } 2926 + }, 2927 + "node_modules/prettier": { 2928 + "version": "3.8.3", 2929 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", 2930 + "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", 2931 + "dev": true, 2932 + "license": "MIT", 2933 + "bin": { 2934 + "prettier": "bin/prettier.cjs" 2935 + }, 2936 + "engines": { 2937 + "node": ">=14" 2938 + }, 2939 + "funding": { 2940 + "url": "https://github.com/prettier/prettier?sponsor=1" 2941 + } 2942 + }, 2943 + "node_modules/prettier-plugin-svelte": { 2944 + "version": "3.5.1", 2945 + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.5.1.tgz", 2946 + "integrity": "sha512-65+fr5+cgIKWKiqM1Doum4uX6bY8iFCdztvvp2RcF+AJoieaw9kJOFMNcJo/bkmKYsxFaM9OsVZK/gWauG/5mg==", 2947 + "dev": true, 2948 + "license": "MIT", 2949 + "peerDependencies": { 2950 + "prettier": "^3.0.0", 2951 + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" 2952 + } 2953 + }, 2954 + "node_modules/prettier-plugin-tailwindcss": { 2955 + "version": "0.7.2", 2956 + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.7.2.tgz", 2957 + "integrity": "sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==", 2958 + "dev": true, 2959 + "license": "MIT", 2960 + "engines": { 2961 + "node": ">=20.19" 2962 + }, 2963 + "peerDependencies": { 2964 + "@ianvs/prettier-plugin-sort-imports": "*", 2965 + "@prettier/plugin-hermes": "*", 2966 + "@prettier/plugin-oxc": "*", 2967 + "@prettier/plugin-pug": "*", 2968 + "@shopify/prettier-plugin-liquid": "*", 2969 + "@trivago/prettier-plugin-sort-imports": "*", 2970 + "@zackad/prettier-plugin-twig": "*", 2971 + "prettier": "^3.0", 2972 + "prettier-plugin-astro": "*", 2973 + "prettier-plugin-css-order": "*", 2974 + "prettier-plugin-jsdoc": "*", 2975 + "prettier-plugin-marko": "*", 2976 + "prettier-plugin-multiline-arrays": "*", 2977 + "prettier-plugin-organize-attributes": "*", 2978 + "prettier-plugin-organize-imports": "*", 2979 + "prettier-plugin-sort-imports": "*", 2980 + "prettier-plugin-svelte": "*" 2981 + }, 2982 + "peerDependenciesMeta": { 2983 + "@ianvs/prettier-plugin-sort-imports": { 2984 + "optional": true 2985 + }, 2986 + "@prettier/plugin-hermes": { 2987 + "optional": true 2988 + }, 2989 + "@prettier/plugin-oxc": { 2990 + "optional": true 2991 + }, 2992 + "@prettier/plugin-pug": { 2993 + "optional": true 2994 + }, 2995 + "@shopify/prettier-plugin-liquid": { 2996 + "optional": true 2997 + }, 2998 + "@trivago/prettier-plugin-sort-imports": { 2999 + "optional": true 3000 + }, 3001 + "@zackad/prettier-plugin-twig": { 3002 + "optional": true 3003 + }, 3004 + "prettier-plugin-astro": { 3005 + "optional": true 3006 + }, 3007 + "prettier-plugin-css-order": { 3008 + "optional": true 3009 + }, 3010 + "prettier-plugin-jsdoc": { 3011 + "optional": true 3012 + }, 3013 + "prettier-plugin-marko": { 3014 + "optional": true 3015 + }, 3016 + "prettier-plugin-multiline-arrays": { 3017 + "optional": true 3018 + }, 3019 + "prettier-plugin-organize-attributes": { 3020 + "optional": true 3021 + }, 3022 + "prettier-plugin-organize-imports": { 3023 + "optional": true 3024 + }, 3025 + "prettier-plugin-sort-imports": { 3026 + "optional": true 3027 + }, 3028 + "prettier-plugin-svelte": { 3029 + "optional": true 3030 + } 3031 + } 3032 + }, 3033 + "node_modules/punycode": { 3034 + "version": "2.3.1", 3035 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 3036 + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 3037 + "dev": true, 3038 + "license": "MIT", 3039 + "engines": { 3040 + "node": ">=6" 3041 + } 3042 + }, 3043 + "node_modules/readdirp": { 3044 + "version": "4.1.2", 3045 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", 3046 + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", 3047 + "dev": true, 3048 + "license": "MIT", 3049 + "engines": { 3050 + "node": ">= 14.18.0" 3051 + }, 3052 + "funding": { 3053 + "type": "individual", 3054 + "url": "https://paulmillr.com/funding/" 3055 + } 3056 + }, 3057 + "node_modules/rolldown": { 3058 + "version": "1.0.0-rc.15", 3059 + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.15.tgz", 3060 + "integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==", 3061 + "dev": true, 3062 + "license": "MIT", 3063 + "dependencies": { 3064 + "@oxc-project/types": "=0.124.0", 3065 + "@rolldown/pluginutils": "1.0.0-rc.15" 3066 + }, 3067 + "bin": { 3068 + "rolldown": "bin/cli.mjs" 3069 + }, 3070 + "engines": { 3071 + "node": "^20.19.0 || >=22.12.0" 3072 + }, 3073 + "optionalDependencies": { 3074 + "@rolldown/binding-android-arm64": "1.0.0-rc.15", 3075 + "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", 3076 + "@rolldown/binding-darwin-x64": "1.0.0-rc.15", 3077 + "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", 3078 + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", 3079 + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", 3080 + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", 3081 + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", 3082 + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", 3083 + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", 3084 + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", 3085 + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", 3086 + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", 3087 + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", 3088 + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" 3089 + } 3090 + }, 3091 + "node_modules/sade": { 3092 + "version": "1.8.1", 3093 + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 3094 + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 3095 + "dev": true, 3096 + "license": "MIT", 3097 + "dependencies": { 3098 + "mri": "^1.1.0" 3099 + }, 3100 + "engines": { 3101 + "node": ">=6" 3102 + } 3103 + }, 3104 + "node_modules/semver": { 3105 + "version": "7.7.4", 3106 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", 3107 + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", 3108 + "dev": true, 3109 + "license": "ISC", 3110 + "bin": { 3111 + "semver": "bin/semver.js" 3112 + }, 3113 + "engines": { 3114 + "node": ">=10" 3115 + } 3116 + }, 3117 + "node_modules/set-cookie-parser": { 3118 + "version": "3.1.0", 3119 + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.1.0.tgz", 3120 + "integrity": "sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==", 3121 + "dev": true, 3122 + "license": "MIT" 3123 + }, 3124 + "node_modules/shebang-command": { 3125 + "version": "2.0.0", 3126 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3127 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 3128 + "dev": true, 3129 + "license": "MIT", 3130 + "dependencies": { 3131 + "shebang-regex": "^3.0.0" 3132 + }, 3133 + "engines": { 3134 + "node": ">=8" 3135 + } 3136 + }, 3137 + "node_modules/shebang-regex": { 3138 + "version": "3.0.0", 3139 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3140 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 3141 + "dev": true, 3142 + "license": "MIT", 3143 + "engines": { 3144 + "node": ">=8" 3145 + } 3146 + }, 3147 + "node_modules/siginfo": { 3148 + "version": "2.0.0", 3149 + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", 3150 + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", 3151 + "dev": true, 3152 + "license": "ISC" 3153 + }, 3154 + "node_modules/sirv": { 3155 + "version": "3.0.2", 3156 + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", 3157 + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", 3158 + "dev": true, 3159 + "license": "MIT", 3160 + "dependencies": { 3161 + "@polka/url": "^1.0.0-next.24", 3162 + "mrmime": "^2.0.0", 3163 + "totalist": "^3.0.0" 3164 + }, 3165 + "engines": { 3166 + "node": ">=18" 3167 + } 3168 + }, 3169 + "node_modules/source-map-js": { 3170 + "version": "1.2.1", 3171 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 3172 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 3173 + "dev": true, 3174 + "license": "BSD-3-Clause", 3175 + "engines": { 3176 + "node": ">=0.10.0" 3177 + } 3178 + }, 3179 + "node_modules/stackback": { 3180 + "version": "0.0.2", 3181 + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", 3182 + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", 3183 + "dev": true, 3184 + "license": "MIT" 3185 + }, 3186 + "node_modules/std-env": { 3187 + "version": "4.1.0", 3188 + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", 3189 + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", 3190 + "dev": true, 3191 + "license": "MIT" 3192 + }, 3193 + "node_modules/svelte": { 3194 + "version": "5.55.4", 3195 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.55.4.tgz", 3196 + "integrity": "sha512-q8DFohk6vUswSng95IZb9nzWJnbINZsK7OiM1snAa3qCjJBL0ZQpvMyAaVXjUukdM75J/m8UE8xwqat8Ors/zQ==", 3197 + "dev": true, 3198 + "license": "MIT", 3199 + "dependencies": { 3200 + "@jridgewell/remapping": "^2.3.4", 3201 + "@jridgewell/sourcemap-codec": "^1.5.0", 3202 + "@sveltejs/acorn-typescript": "^1.0.5", 3203 + "@types/estree": "^1.0.5", 3204 + "@types/trusted-types": "^2.0.7", 3205 + "acorn": "^8.12.1", 3206 + "aria-query": "5.3.1", 3207 + "axobject-query": "^4.1.0", 3208 + "clsx": "^2.1.1", 3209 + "devalue": "^5.6.4", 3210 + "esm-env": "^1.2.1", 3211 + "esrap": "^2.2.4", 3212 + "is-reference": "^3.0.3", 3213 + "locate-character": "^3.0.0", 3214 + "magic-string": "^0.30.11", 3215 + "zimmerframe": "^1.1.2" 3216 + }, 3217 + "engines": { 3218 + "node": ">=18" 3219 + } 3220 + }, 3221 + "node_modules/svelte-check": { 3222 + "version": "4.4.6", 3223 + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.4.6.tgz", 3224 + "integrity": "sha512-kP1zG81EWaFe9ZyTv4ZXv44Csi6Pkdpb7S3oj6m+K2ec/IcDg/a8LsFsnVLqm2nxtkSwsd5xPj/qFkTBgXHXjg==", 3225 + "dev": true, 3226 + "license": "MIT", 3227 + "dependencies": { 3228 + "@jridgewell/trace-mapping": "^0.3.25", 3229 + "chokidar": "^4.0.1", 3230 + "fdir": "^6.2.0", 3231 + "picocolors": "^1.0.0", 3232 + "sade": "^1.7.4" 3233 + }, 3234 + "bin": { 3235 + "svelte-check": "bin/svelte-check" 3236 + }, 3237 + "engines": { 3238 + "node": ">= 18.0.0" 3239 + }, 3240 + "peerDependencies": { 3241 + "svelte": "^4.0.0 || ^5.0.0-next.0", 3242 + "typescript": ">=5.0.0" 3243 + } 3244 + }, 3245 + "node_modules/svelte-eslint-parser": { 3246 + "version": "1.6.0", 3247 + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.6.0.tgz", 3248 + "integrity": "sha512-qoB1ehychT6OxEtQAqc/guSqLS20SlA53Uijl7x375s8nlUT0lb9ol/gzraEEatQwsyPTJo87s2CmKL9Xab+Uw==", 3249 + "dev": true, 3250 + "license": "MIT", 3251 + "dependencies": { 3252 + "eslint-scope": "^8.2.0", 3253 + "eslint-visitor-keys": "^4.0.0", 3254 + "espree": "^10.0.0", 3255 + "postcss": "^8.4.49", 3256 + "postcss-scss": "^4.0.9", 3257 + "postcss-selector-parser": "^7.0.0", 3258 + "semver": "^7.7.2" 3259 + }, 3260 + "engines": { 3261 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0", 3262 + "pnpm": "10.30.3" 3263 + }, 3264 + "funding": { 3265 + "url": "https://github.com/sponsors/ota-meshi" 3266 + }, 3267 + "peerDependencies": { 3268 + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" 3269 + }, 3270 + "peerDependenciesMeta": { 3271 + "svelte": { 3272 + "optional": true 3273 + } 3274 + } 3275 + }, 3276 + "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { 3277 + "version": "8.4.0", 3278 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", 3279 + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", 3280 + "dev": true, 3281 + "license": "BSD-2-Clause", 3282 + "dependencies": { 3283 + "esrecurse": "^4.3.0", 3284 + "estraverse": "^5.2.0" 3285 + }, 3286 + "engines": { 3287 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3288 + }, 3289 + "funding": { 3290 + "url": "https://opencollective.com/eslint" 3291 + } 3292 + }, 3293 + "node_modules/svelte-eslint-parser/node_modules/eslint-visitor-keys": { 3294 + "version": "4.2.1", 3295 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", 3296 + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", 3297 + "dev": true, 3298 + "license": "Apache-2.0", 3299 + "engines": { 3300 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3301 + }, 3302 + "funding": { 3303 + "url": "https://opencollective.com/eslint" 3304 + } 3305 + }, 3306 + "node_modules/svelte-eslint-parser/node_modules/espree": { 3307 + "version": "10.4.0", 3308 + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", 3309 + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", 3310 + "dev": true, 3311 + "license": "BSD-2-Clause", 3312 + "dependencies": { 3313 + "acorn": "^8.15.0", 3314 + "acorn-jsx": "^5.3.2", 3315 + "eslint-visitor-keys": "^4.2.1" 3316 + }, 3317 + "engines": { 3318 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3319 + }, 3320 + "funding": { 3321 + "url": "https://opencollective.com/eslint" 3322 + } 3323 + }, 3324 + "node_modules/tailwindcss": { 3325 + "version": "4.2.2", 3326 + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", 3327 + "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==", 3328 + "dev": true, 3329 + "license": "MIT" 3330 + }, 3331 + "node_modules/tapable": { 3332 + "version": "2.3.2", 3333 + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", 3334 + "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", 3335 + "dev": true, 3336 + "license": "MIT", 3337 + "engines": { 3338 + "node": ">=6" 3339 + }, 3340 + "funding": { 3341 + "type": "opencollective", 3342 + "url": "https://opencollective.com/webpack" 3343 + } 3344 + }, 3345 + "node_modules/tinybench": { 3346 + "version": "2.9.0", 3347 + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", 3348 + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", 3349 + "dev": true, 3350 + "license": "MIT" 3351 + }, 3352 + "node_modules/tinyexec": { 3353 + "version": "1.1.1", 3354 + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz", 3355 + "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==", 3356 + "dev": true, 3357 + "license": "MIT", 3358 + "engines": { 3359 + "node": ">=18" 3360 + } 3361 + }, 3362 + "node_modules/tinyglobby": { 3363 + "version": "0.2.16", 3364 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", 3365 + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", 3366 + "dev": true, 3367 + "license": "MIT", 3368 + "dependencies": { 3369 + "fdir": "^6.5.0", 3370 + "picomatch": "^4.0.4" 3371 + }, 3372 + "engines": { 3373 + "node": ">=12.0.0" 3374 + }, 3375 + "funding": { 3376 + "url": "https://github.com/sponsors/SuperchupuDev" 3377 + } 3378 + }, 3379 + "node_modules/tinyrainbow": { 3380 + "version": "3.1.0", 3381 + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", 3382 + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", 3383 + "dev": true, 3384 + "license": "MIT", 3385 + "engines": { 3386 + "node": ">=14.0.0" 3387 + } 3388 + }, 3389 + "node_modules/totalist": { 3390 + "version": "3.0.1", 3391 + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 3392 + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 3393 + "dev": true, 3394 + "license": "MIT", 3395 + "engines": { 3396 + "node": ">=6" 3397 + } 3398 + }, 3399 + "node_modules/ts-api-utils": { 3400 + "version": "2.5.0", 3401 + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", 3402 + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", 3403 + "dev": true, 3404 + "license": "MIT", 3405 + "engines": { 3406 + "node": ">=18.12" 3407 + }, 3408 + "peerDependencies": { 3409 + "typescript": ">=4.8.4" 3410 + } 3411 + }, 3412 + "node_modules/tslib": { 3413 + "version": "2.8.1", 3414 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 3415 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 3416 + "dev": true, 3417 + "license": "0BSD", 3418 + "optional": true 3419 + }, 3420 + "node_modules/type-check": { 3421 + "version": "0.4.0", 3422 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 3423 + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 3424 + "dev": true, 3425 + "license": "MIT", 3426 + "dependencies": { 3427 + "prelude-ls": "^1.2.1" 3428 + }, 3429 + "engines": { 3430 + "node": ">= 0.8.0" 3431 + } 3432 + }, 3433 + "node_modules/typescript": { 3434 + "version": "6.0.2", 3435 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", 3436 + "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", 3437 + "dev": true, 3438 + "license": "Apache-2.0", 3439 + "bin": { 3440 + "tsc": "bin/tsc", 3441 + "tsserver": "bin/tsserver" 3442 + }, 3443 + "engines": { 3444 + "node": ">=14.17" 3445 + } 3446 + }, 3447 + "node_modules/typescript-eslint": { 3448 + "version": "8.58.2", 3449 + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.58.2.tgz", 3450 + "integrity": "sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==", 3451 + "dev": true, 3452 + "license": "MIT", 3453 + "dependencies": { 3454 + "@typescript-eslint/eslint-plugin": "8.58.2", 3455 + "@typescript-eslint/parser": "8.58.2", 3456 + "@typescript-eslint/typescript-estree": "8.58.2", 3457 + "@typescript-eslint/utils": "8.58.2" 3458 + }, 3459 + "engines": { 3460 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3461 + }, 3462 + "funding": { 3463 + "type": "opencollective", 3464 + "url": "https://opencollective.com/typescript-eslint" 3465 + }, 3466 + "peerDependencies": { 3467 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 3468 + "typescript": ">=4.8.4 <6.1.0" 3469 + } 3470 + }, 3471 + "node_modules/undici-types": { 3472 + "version": "6.21.0", 3473 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", 3474 + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", 3475 + "dev": true, 3476 + "license": "MIT" 3477 + }, 3478 + "node_modules/uri-js": { 3479 + "version": "4.4.1", 3480 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 3481 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 3482 + "dev": true, 3483 + "license": "BSD-2-Clause", 3484 + "dependencies": { 3485 + "punycode": "^2.1.0" 3486 + } 3487 + }, 3488 + "node_modules/util-deprecate": { 3489 + "version": "1.0.2", 3490 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3491 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 3492 + "dev": true, 3493 + "license": "MIT" 3494 + }, 3495 + "node_modules/vite": { 3496 + "version": "8.0.8", 3497 + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.8.tgz", 3498 + "integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==", 3499 + "dev": true, 3500 + "license": "MIT", 3501 + "dependencies": { 3502 + "lightningcss": "^1.32.0", 3503 + "picomatch": "^4.0.4", 3504 + "postcss": "^8.5.8", 3505 + "rolldown": "1.0.0-rc.15", 3506 + "tinyglobby": "^0.2.15" 3507 + }, 3508 + "bin": { 3509 + "vite": "bin/vite.js" 3510 + }, 3511 + "engines": { 3512 + "node": "^20.19.0 || >=22.12.0" 3513 + }, 3514 + "funding": { 3515 + "url": "https://github.com/vitejs/vite?sponsor=1" 3516 + }, 3517 + "optionalDependencies": { 3518 + "fsevents": "~2.3.3" 3519 + }, 3520 + "peerDependencies": { 3521 + "@types/node": "^20.19.0 || >=22.12.0", 3522 + "@vitejs/devtools": "^0.1.0", 3523 + "esbuild": "^0.27.0 || ^0.28.0", 3524 + "jiti": ">=1.21.0", 3525 + "less": "^4.0.0", 3526 + "sass": "^1.70.0", 3527 + "sass-embedded": "^1.70.0", 3528 + "stylus": ">=0.54.8", 3529 + "sugarss": "^5.0.0", 3530 + "terser": "^5.16.0", 3531 + "tsx": "^4.8.1", 3532 + "yaml": "^2.4.2" 3533 + }, 3534 + "peerDependenciesMeta": { 3535 + "@types/node": { 3536 + "optional": true 3537 + }, 3538 + "@vitejs/devtools": { 3539 + "optional": true 3540 + }, 3541 + "esbuild": { 3542 + "optional": true 3543 + }, 3544 + "jiti": { 3545 + "optional": true 3546 + }, 3547 + "less": { 3548 + "optional": true 3549 + }, 3550 + "sass": { 3551 + "optional": true 3552 + }, 3553 + "sass-embedded": { 3554 + "optional": true 3555 + }, 3556 + "stylus": { 3557 + "optional": true 3558 + }, 3559 + "sugarss": { 3560 + "optional": true 3561 + }, 3562 + "terser": { 3563 + "optional": true 3564 + }, 3565 + "tsx": { 3566 + "optional": true 3567 + }, 3568 + "yaml": { 3569 + "optional": true 3570 + } 3571 + } 3572 + }, 3573 + "node_modules/vite/node_modules/fsevents": { 3574 + "version": "2.3.3", 3575 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 3576 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 3577 + "dev": true, 3578 + "hasInstallScript": true, 3579 + "license": "MIT", 3580 + "optional": true, 3581 + "os": [ 3582 + "darwin" 3583 + ], 3584 + "engines": { 3585 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 3586 + } 3587 + }, 3588 + "node_modules/vitefu": { 3589 + "version": "1.1.3", 3590 + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", 3591 + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", 3592 + "dev": true, 3593 + "license": "MIT", 3594 + "workspaces": [ 3595 + "tests/deps/*", 3596 + "tests/projects/*", 3597 + "tests/projects/workspace/packages/*" 3598 + ], 3599 + "peerDependencies": { 3600 + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" 3601 + }, 3602 + "peerDependenciesMeta": { 3603 + "vite": { 3604 + "optional": true 3605 + } 3606 + } 3607 + }, 3608 + "node_modules/vitest": { 3609 + "version": "4.1.4", 3610 + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.4.tgz", 3611 + "integrity": "sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==", 3612 + "dev": true, 3613 + "license": "MIT", 3614 + "dependencies": { 3615 + "@vitest/expect": "4.1.4", 3616 + "@vitest/mocker": "4.1.4", 3617 + "@vitest/pretty-format": "4.1.4", 3618 + "@vitest/runner": "4.1.4", 3619 + "@vitest/snapshot": "4.1.4", 3620 + "@vitest/spy": "4.1.4", 3621 + "@vitest/utils": "4.1.4", 3622 + "es-module-lexer": "^2.0.0", 3623 + "expect-type": "^1.3.0", 3624 + "magic-string": "^0.30.21", 3625 + "obug": "^2.1.1", 3626 + "pathe": "^2.0.3", 3627 + "picomatch": "^4.0.3", 3628 + "std-env": "^4.0.0-rc.1", 3629 + "tinybench": "^2.9.0", 3630 + "tinyexec": "^1.0.2", 3631 + "tinyglobby": "^0.2.15", 3632 + "tinyrainbow": "^3.1.0", 3633 + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", 3634 + "why-is-node-running": "^2.3.0" 3635 + }, 3636 + "bin": { 3637 + "vitest": "vitest.mjs" 3638 + }, 3639 + "engines": { 3640 + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" 3641 + }, 3642 + "funding": { 3643 + "url": "https://opencollective.com/vitest" 3644 + }, 3645 + "peerDependencies": { 3646 + "@edge-runtime/vm": "*", 3647 + "@opentelemetry/api": "^1.9.0", 3648 + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", 3649 + "@vitest/browser-playwright": "4.1.4", 3650 + "@vitest/browser-preview": "4.1.4", 3651 + "@vitest/browser-webdriverio": "4.1.4", 3652 + "@vitest/coverage-istanbul": "4.1.4", 3653 + "@vitest/coverage-v8": "4.1.4", 3654 + "@vitest/ui": "4.1.4", 3655 + "happy-dom": "*", 3656 + "jsdom": "*", 3657 + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" 3658 + }, 3659 + "peerDependenciesMeta": { 3660 + "@edge-runtime/vm": { 3661 + "optional": true 3662 + }, 3663 + "@opentelemetry/api": { 3664 + "optional": true 3665 + }, 3666 + "@types/node": { 3667 + "optional": true 3668 + }, 3669 + "@vitest/browser-playwright": { 3670 + "optional": true 3671 + }, 3672 + "@vitest/browser-preview": { 3673 + "optional": true 3674 + }, 3675 + "@vitest/browser-webdriverio": { 3676 + "optional": true 3677 + }, 3678 + "@vitest/coverage-istanbul": { 3679 + "optional": true 3680 + }, 3681 + "@vitest/coverage-v8": { 3682 + "optional": true 3683 + }, 3684 + "@vitest/ui": { 3685 + "optional": true 3686 + }, 3687 + "happy-dom": { 3688 + "optional": true 3689 + }, 3690 + "jsdom": { 3691 + "optional": true 3692 + }, 3693 + "vite": { 3694 + "optional": false 3695 + } 3696 + } 3697 + }, 3698 + "node_modules/vitest-browser-svelte": { 3699 + "version": "2.1.1", 3700 + "resolved": "https://registry.npmjs.org/vitest-browser-svelte/-/vitest-browser-svelte-2.1.1.tgz", 3701 + "integrity": "sha512-qbunYRSm+N92r9bfTkdDTpBZESLmp4QFz2SluV3n/x8U7ysosfeXYJZ4vXbJ0Y0LzoqqDnV5LHprmFgn4Eo+Ug==", 3702 + "dev": true, 3703 + "license": "MIT", 3704 + "dependencies": { 3705 + "@testing-library/svelte-core": "^1.0.0" 3706 + }, 3707 + "funding": { 3708 + "url": "https://opencollective.com/vitest" 3709 + }, 3710 + "peerDependencies": { 3711 + "svelte": "^3 || ^4 || ^5 || ^5.0.0-next.0", 3712 + "vitest": "^4.0.0" 3713 + } 3714 + }, 3715 + "node_modules/which": { 3716 + "version": "2.0.2", 3717 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 3718 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 3719 + "dev": true, 3720 + "license": "ISC", 3721 + "dependencies": { 3722 + "isexe": "^2.0.0" 3723 + }, 3724 + "bin": { 3725 + "node-which": "bin/node-which" 3726 + }, 3727 + "engines": { 3728 + "node": ">= 8" 3729 + } 3730 + }, 3731 + "node_modules/why-is-node-running": { 3732 + "version": "2.3.0", 3733 + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", 3734 + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", 3735 + "dev": true, 3736 + "license": "MIT", 3737 + "dependencies": { 3738 + "siginfo": "^2.0.0", 3739 + "stackback": "0.0.2" 3740 + }, 3741 + "bin": { 3742 + "why-is-node-running": "cli.js" 3743 + }, 3744 + "engines": { 3745 + "node": ">=8" 3746 + } 3747 + }, 3748 + "node_modules/word-wrap": { 3749 + "version": "1.2.5", 3750 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 3751 + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 3752 + "dev": true, 3753 + "license": "MIT", 3754 + "engines": { 3755 + "node": ">=0.10.0" 3756 + } 3757 + }, 3758 + "node_modules/ws": { 3759 + "version": "8.20.0", 3760 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", 3761 + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", 3762 + "dev": true, 3763 + "license": "MIT", 3764 + "engines": { 3765 + "node": ">=10.0.0" 3766 + }, 3767 + "peerDependencies": { 3768 + "bufferutil": "^4.0.1", 3769 + "utf-8-validate": ">=5.0.2" 3770 + }, 3771 + "peerDependenciesMeta": { 3772 + "bufferutil": { 3773 + "optional": true 3774 + }, 3775 + "utf-8-validate": { 3776 + "optional": true 3777 + } 3778 + } 3779 + }, 3780 + "node_modules/yaml": { 3781 + "version": "2.8.3", 3782 + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", 3783 + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", 3784 + "dev": true, 3785 + "license": "ISC", 3786 + "optional": true, 3787 + "peer": true, 3788 + "bin": { 3789 + "yaml": "bin.mjs" 3790 + }, 3791 + "engines": { 3792 + "node": ">= 14.6" 3793 + }, 3794 + "funding": { 3795 + "url": "https://github.com/sponsors/eemeli" 3796 + } 3797 + }, 3798 + "node_modules/yocto-queue": { 3799 + "version": "0.1.0", 3800 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 3801 + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 3802 + "dev": true, 3803 + "license": "MIT", 3804 + "engines": { 3805 + "node": ">=10" 3806 + }, 3807 + "funding": { 3808 + "url": "https://github.com/sponsors/sindresorhus" 3809 + } 3810 + }, 3811 + "node_modules/zimmerframe": { 3812 + "version": "1.1.4", 3813 + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", 3814 + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", 3815 + "dev": true, 3816 + "license": "MIT" 3817 + } 3818 + } 3819 + }
+44
playground/package.json
··· 1 + { 2 + "name": "playground", 3 + "private": true, 4 + "version": "0.0.1", 5 + "type": "module", 6 + "scripts": { 7 + "dev": "vite dev", 8 + "build": "vite build", 9 + "preview": "vite preview", 10 + "prepare": "svelte-kit sync || echo ''", 11 + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", 12 + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", 13 + "lint": "prettier --check . && eslint .", 14 + "format": "prettier --write .", 15 + "test:unit": "vitest", 16 + "test": "npm run test:unit -- --run" 17 + }, 18 + "devDependencies": { 19 + "@eslint/compat": "^2.0.4", 20 + "@eslint/js": "^10.0.1", 21 + "@sveltejs/adapter-auto": "^7.0.1", 22 + "@sveltejs/kit": "^2.57.0", 23 + "@sveltejs/vite-plugin-svelte": "^7.0.0", 24 + "@tailwindcss/vite": "^4.2.2", 25 + "@types/node": "^22", 26 + "@vitest/browser-playwright": "^4.1.3", 27 + "eslint": "^10.2.0", 28 + "eslint-config-prettier": "^10.1.8", 29 + "eslint-plugin-svelte": "^3.17.0", 30 + "globals": "^17.4.0", 31 + "playwright": "^1.59.1", 32 + "prettier": "^3.8.1", 33 + "prettier-plugin-svelte": "^3.5.1", 34 + "prettier-plugin-tailwindcss": "^0.7.2", 35 + "svelte": "^5.55.2", 36 + "svelte-check": "^4.4.6", 37 + "tailwindcss": "^4.2.2", 38 + "typescript": "^6.0.2", 39 + "typescript-eslint": "^8.58.1", 40 + "vite": "^8.0.7", 41 + "vitest": "^4.1.3", 42 + "vitest-browser-svelte": "^2.1.0" 43 + } 44 + }
playground/playground.js playground-orig/playground.js
playground/recordpath.js playground-orig/recordpath.js
+13
playground/src/app.d.ts
··· 1 + // See https://svelte.dev/docs/kit/types#app.d.ts 2 + // for information about these interfaces 3 + declare global { 4 + namespace App { 5 + // interface Error {} 6 + // interface Locals {} 7 + // interface PageData {} 8 + // interface PageState {} 9 + // interface Platform {} 10 + } 11 + } 12 + 13 + export {};
+12
playground/src/app.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="utf-8" /> 5 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 + <meta name="text-scale" content="scale" /> 7 + %sveltekit.head% 8 + </head> 9 + <body data-sveltekit-preload-data="hover"> 10 + <div style="display: contents">%sveltekit.body%</div> 11 + </body> 12 + </html>
+1
playground/src/lib/assets/favicon.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" width="107" height="128" viewBox="0 0 107 128"><title>svelte-logo</title><path d="M94.157 22.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282 29.608A29.92 29.92 0 0 0 8.764 49.65a31.5 31.5 0 0 0 3.108 20.231 30 30 0 0 0-4.477 11.183 31.9 31.9 0 0 0 5.448 24.116c10.402 14.887 30.942 19.297 45.791 9.835l26.083-16.624A29.92 29.92 0 0 0 98.235 78.35a31.53 31.53 0 0 0-3.105-20.232 30 30 0 0 0 4.474-11.182 31.88 31.88 0 0 0-5.447-24.116" style="fill:#ff3e00"/><path d="M45.817 106.582a20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.503 18 18 0 0 1 .624-2.435l.49-1.498 1.337.981a33.6 33.6 0 0 0 10.203 5.098l.97.294-.09.968a5.85 5.85 0 0 0 1.052 3.878 6.24 6.24 0 0 0 6.695 2.485 5.8 5.8 0 0 0 1.603-.704L69.27 76.28a5.43 5.43 0 0 0 2.45-3.631 5.8 5.8 0 0 0-.987-4.371 6.24 6.24 0 0 0-6.698-2.487 5.7 5.7 0 0 0-1.6.704l-9.953 6.345a19 19 0 0 1-5.296 2.326 20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.502 17.99 17.99 0 0 1 8.13-12.052l26.081-16.623a19 19 0 0 1 5.3-2.329 20.72 20.72 0 0 1 22.237 8.243 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-.624 2.435l-.49 1.498-1.337-.98a33.6 33.6 0 0 0-10.203-5.1l-.97-.294.09-.968a5.86 5.86 0 0 0-1.052-3.878 6.24 6.24 0 0 0-6.696-2.485 5.8 5.8 0 0 0-1.602.704L37.73 51.72a5.42 5.42 0 0 0-2.449 3.63 5.79 5.79 0 0 0 .986 4.372 6.24 6.24 0 0 0 6.698 2.486 5.8 5.8 0 0 0 1.602-.704l9.952-6.342a19 19 0 0 1 5.295-2.328 20.72 20.72 0 0 1 22.237 8.242 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-8.13 12.053l-26.081 16.622a19 19 0 0 1-5.3 2.328" style="fill:#fff"/></svg>
+1
playground/src/lib/index.ts
··· 1 + // place files you want to import through the `$lib` alias in this folder.
+230
playground/src/lib/recordpath.ts
··· 1 + // RecordPath — parser, matcher, enumerator 2 + // Implements the RecordPath draft spec 3 + 4 + const STRUCTURAL = new Set(['.', '[', ']', '{', '}', '!']); 5 + 6 + export interface Qualifier { 7 + type: 'array' | 'arrayUnion' | 'scalarUnion'; 8 + nsid?: string; 9 + } 10 + 11 + export interface Segment { 12 + key: string; 13 + qualifiers: Qualifier[]; 14 + } 15 + 16 + export interface PathInfo { 17 + path: string; 18 + type: 'scalar' | 'vector'; 19 + } 20 + 21 + export function escapeFieldName(key: string): string { 22 + let out = ''; 23 + for (const ch of key) { 24 + if (STRUCTURAL.has(ch)) out += '!' + ch; 25 + else out += ch; 26 + } 27 + return out; 28 + } 29 + 30 + // Parse a RecordPath string into segments. 31 + // TODO: error returns?? (or throws) 32 + export function parse(str: string): Segment[] { 33 + const segments: Segment[] = []; 34 + let i = 0; 35 + 36 + while (i < str.length) { 37 + let key = ''; 38 + 39 + // TODO: does this permit misplaced unescaped close chars? `]` and `}` 40 + // we should probably fail/reject those. 41 + while (i < str.length && str[i] !== '.' && str[i] !== '[' && str[i] !== '{') { 42 + if (str[i] === '!' && i + 1 < str.length) { 43 + key += str[i + 1]; 44 + i += 2; 45 + } else { 46 + key += str[i]; 47 + i++; 48 + } 49 + } 50 + 51 + const qualifiers: Qualifier[] = []; 52 + while (i < str.length && (str[i] === '[' || str[i] === '{')) { 53 + const open = str[i]; 54 + const close = open === '[' ? ']' : '}'; 55 + i++; 56 + let content = ''; 57 + while (i < str.length && str[i] !== close) { 58 + content += str[i]; 59 + i++; 60 + } 61 + if (i < str.length) i++; 62 + 63 + if (open === '[') { 64 + qualifiers.push( 65 + content === '' ? { type: 'array' } : { type: 'arrayUnion', nsid: content } 66 + ); 67 + } else { 68 + qualifiers.push({ type: 'scalarUnion', nsid: content }); 69 + } 70 + } 71 + 72 + segments.push({ key, qualifiers }); 73 + if (i < str.length && str[i] === '.') i++; 74 + } 75 + 76 + return segments; 77 + } 78 + 79 + // Match a RecordPath against a record, returning all matched values. 80 + export function match(record: Record<string, unknown>, pathStr: string): unknown[] { 81 + if (!pathStr || pathStr.trim() === '') return []; 82 + try { 83 + const segments = parse(pathStr); 84 + return matchSegments(record, segments, 0); 85 + } catch { 86 + return []; 87 + } 88 + } 89 + 90 + function matchSegments(data: unknown, segments: Segment[], segIdx: number): unknown[] { 91 + if (segIdx >= segments.length) return [data]; 92 + const seg = segments[segIdx]; 93 + if (typeof data !== 'object' || data === null || Array.isArray(data)) return []; 94 + const obj = data as Record<string, unknown>; 95 + const value = obj[seg.key]; 96 + if (value === undefined) return []; 97 + return applyQualifiers(value, seg.qualifiers, 0, segments, segIdx); 98 + } 99 + 100 + function applyQualifiers( 101 + value: unknown, 102 + qualifiers: Qualifier[], 103 + qualIdx: number, 104 + segments: Segment[], 105 + segIdx: number 106 + ): unknown[] { 107 + if (qualIdx >= qualifiers.length) { 108 + if (segIdx + 1 >= segments.length) return [value]; 109 + return matchSegments(value, segments, segIdx + 1); 110 + } 111 + 112 + const qual = qualifiers[qualIdx]; 113 + 114 + if (qual.type === 'scalarUnion') { 115 + if (typeof value !== 'object' || value === null || Array.isArray(value)) return []; 116 + const obj = value as Record<string, unknown>; 117 + if (obj.$type !== qual.nsid) return []; 118 + return applyQualifiers(value, qualifiers, qualIdx + 1, segments, segIdx); 119 + } 120 + 121 + if (qual.type === 'array' || qual.type === 'arrayUnion') { 122 + if (!Array.isArray(value)) return []; 123 + const results: unknown[] = []; 124 + for (const elem of value) { 125 + if (qual.type === 'arrayUnion') { 126 + if (typeof elem !== 'object' || elem === null) continue; 127 + if ((elem as Record<string, unknown>).$type !== qual.nsid) continue; 128 + } 129 + results.push(...applyQualifiers(elem, qualifiers, qualIdx + 1, segments, segIdx)); 130 + } 131 + return results; 132 + } 133 + 134 + return []; 135 + } 136 + 137 + // Enumerate all RecordPaths reachable from a record. 138 + export function enumerate(record: Record<string, unknown>): PathInfo[] { 139 + const paths = new Map<string, PathInfo>(); 140 + enumObject(record, '', true, false, paths); 141 + return Array.from(paths.values()); 142 + } 143 + 144 + function enumObject( 145 + obj: Record<string, unknown>, 146 + prefix: string, 147 + isRoot: boolean, 148 + isVector: boolean, 149 + paths: Map<string, PathInfo> 150 + ) { 151 + for (const key of Object.keys(obj)) { 152 + const child = obj[key]; 153 + const escaped = escapeFieldName(key); 154 + const keyPath = prefix ? prefix + '.' + escaped : escaped; 155 + const vtype = isVector ? 'vector' : 'scalar'; 156 + 157 + if (child === null || child === undefined || typeof child !== 'object') { 158 + paths.set(keyPath, { path: keyPath, type: vtype }); 159 + } else if (Array.isArray(child)) { 160 + paths.set(keyPath, { path: keyPath, type: vtype }); 161 + enumArray(child, keyPath, isVector, paths); 162 + } else if ((child as Record<string, unknown>).$type && !isRoot) { 163 + paths.set(keyPath, { path: keyPath, type: vtype }); 164 + const nsid = (child as Record<string, unknown>).$type as string; 165 + const qualified = keyPath + '{' + nsid + '}'; 166 + paths.set(qualified, { path: qualified, type: vtype }); 167 + enumObject(child as Record<string, unknown>, qualified, false, isVector, paths); 168 + } else { 169 + paths.set(keyPath, { path: keyPath, type: vtype }); 170 + enumObject(child as Record<string, unknown>, keyPath, false, isVector, paths); 171 + } 172 + } 173 + } 174 + 175 + function enumArray( 176 + arr: unknown[], 177 + prefix: string, 178 + parentIsVector: boolean, 179 + paths: Map<string, PathInfo> 180 + ) { 181 + const hasUnion = arr.some( 182 + (el) => typeof el === 'object' && el !== null && !Array.isArray(el) && (el as Record<string, unknown>).$type 183 + ); 184 + 185 + if (hasUnion) { 186 + const byType: Record<string, Record<string, unknown>[]> = {}; 187 + const plain: unknown[] = []; 188 + for (const el of arr) { 189 + if (typeof el === 'object' && el !== null && !Array.isArray(el) && (el as Record<string, unknown>).$type) { 190 + const nsid = (el as Record<string, unknown>).$type as string; 191 + (byType[nsid] || (byType[nsid] = [])).push(el as Record<string, unknown>); 192 + } else { 193 + plain.push(el); 194 + } 195 + } 196 + for (const [nsid, elements] of Object.entries(byType)) { 197 + const qp = prefix + '[' + nsid + ']'; 198 + paths.set(qp, { path: qp, type: 'vector' }); 199 + for (const el of elements) { 200 + enumObject(el, qp, false, true, paths); 201 + } 202 + } 203 + if (plain.length > 0) { 204 + enumPlainArray(plain, prefix + '[]', paths); 205 + } 206 + } else { 207 + enumPlainArray(arr, prefix + '[]', paths); 208 + } 209 + } 210 + 211 + function enumPlainArray(arr: unknown[], prefix: string, paths: Map<string, PathInfo>) { 212 + paths.set(prefix, { path: prefix, type: 'vector' }); 213 + for (const el of arr) { 214 + if (el === null || el === undefined || typeof el !== 'object') { 215 + // scalar elements — path is the array prefix itself 216 + } else if (Array.isArray(el)) { 217 + enumArray(el, prefix, true, paths); 218 + } else { 219 + enumObject(el as Record<string, unknown>, prefix, false, true, paths); 220 + } 221 + } 222 + } 223 + 224 + // TODO: enumerateMatching? pass a test fn that accepts (path, value) pairs and returns bool 225 + // could just filter the output of enumerate, but this avoids collecting lots of stuff we don't need 226 + // (or enumerate could be a generator?? that might be even nicer) 227 + 228 + export function isVector(pathStr: string): boolean { 229 + return /\[/.test(pathStr); 230 + }
+8
playground/src/lib/vitest-examples/Welcome.svelte
··· 1 + <script> 2 + import { greet } from './greet'; 3 + 4 + let { host = 'SvelteKit', guest = 'Vitest' } = $props(); 5 + </script> 6 + 7 + <h1>{greet(host)}</h1> 8 + <p>{greet(guest)}</p>
+15
playground/src/lib/vitest-examples/Welcome.svelte.spec.ts
··· 1 + import { page } from 'vitest/browser'; 2 + import { describe, expect, it } from 'vitest'; 3 + import { render } from 'vitest-browser-svelte'; 4 + import Welcome from './Welcome.svelte'; 5 + 6 + describe('Welcome.svelte', () => { 7 + it('renders greetings for host and guest', async () => { 8 + render(Welcome, { host: 'SvelteKit', guest: 'Vitest' }); 9 + 10 + await expect 11 + .element(page.getByRole('heading', { level: 1 })) 12 + .toHaveTextContent('Hello, SvelteKit!'); 13 + await expect.element(page.getByText('Hello, Vitest!')).toBeInTheDocument(); 14 + }); 15 + });
+8
playground/src/lib/vitest-examples/greet.spec.ts
··· 1 + import { describe, it, expect } from 'vitest'; 2 + import { greet } from './greet'; 3 + 4 + describe('greet', () => { 5 + it('returns a greeting', () => { 6 + expect(greet('Svelte')).toBe('Hello, Svelte!'); 7 + }); 8 + });
+3
playground/src/lib/vitest-examples/greet.ts
··· 1 + export function greet(name: string): string { 2 + return 'Hello, ' + name + '!'; 3 + }
+6
playground/src/routes/+layout.svelte
··· 1 + <script lang="ts"> 2 + import './layout.css'; 3 + let { children } = $props(); 4 + </script> 5 + 6 + {@render children()}
+228
playground/src/routes/+page.svelte
··· 1 + <script lang="ts"> 2 + import { enumerate, match, type PathInfo } from '$lib/recordpath'; 3 + 4 + const SAMPLE = { 5 + $type: 'app.bsky.feed.post', 6 + text: 'Check out this project by @alice.bsky.social! Really impressive work on atproto tooling.', 7 + langs: ['en'], 8 + createdAt: '2026-04-15T12:38:49.982Z', 9 + reply: { 10 + root: { 11 + cid: 'bafyreieac34fnjyhuuzvgdnsyeeueyn45se5kuk6yppesn25gydjf5m5hy', 12 + uri: 'at://did:plc:rnpkyqnmsw4ipey6eotbdnnf/app.bsky.feed.post/3mjjvykdfo22r' 13 + }, 14 + parent: { 15 + cid: 'bafyreibm3lim4hfn4fggpbtxkuoyyjokbonyetkyqfmr6qegqrgatxkhue', 16 + uri: 'at://did:plc:rnpkyqnmsw4ipey6eotbdnnf/app.bsky.feed.post/3mjkj5zd7lc2b' 17 + } 18 + }, 19 + facets: [ 20 + { 21 + index: { byteStart: 32, byteEnd: 52 }, 22 + features: [ 23 + { 24 + $type: 'app.bsky.richtext.facet#mention', 25 + did: 'did:plc:ewvi7nxzyoun6zhxrhs64oiz' 26 + } 27 + ] 28 + }, 29 + { 30 + index: { byteStart: 0, byteEnd: 31 }, 31 + features: [ 32 + { 33 + $type: 'app.bsky.richtext.facet#link', 34 + uri: 'https://example.com/atproto-tooling' 35 + } 36 + ] 37 + } 38 + ], 39 + embed: { 40 + $type: 'app.bsky.embed.external', 41 + external: { 42 + uri: 'https://example.com/atproto-tooling', 43 + title: 'ATProto Tooling Project', 44 + description: 'A collection of tools for building on the atmosphere.' 45 + } 46 + } 47 + }; 48 + 49 + let jsonText = $state(JSON.stringify(SAMPLE, null, 2)); 50 + let pathInput = $state(''); 51 + 52 + let parseResult = $derived.by(() => { 53 + const text = jsonText.trim(); 54 + if (!text) return { record: null, error: '' }; 55 + try { 56 + const parsed = JSON.parse(text); 57 + if (typeof parsed !== 'object' || Array.isArray(parsed) || parsed === null) { 58 + return { record: null, error: 'Expected a JSON object' }; 59 + } 60 + return { record: parsed as Record<string, unknown>, error: '' }; 61 + } catch (e) { 62 + return { record: null, error: (e as Error).message }; 63 + } 64 + }); 65 + 66 + let record = $derived(parseResult.record); 67 + let jsonError = $derived(parseResult.error); 68 + let paths: PathInfo[] = $derived(record ? enumerate(record) : []); 69 + let matches: unknown[] = $derived( 70 + record && pathInput.trim() ? match(record, pathInput.trim()) : [] 71 + ); 72 + let hasInput = $derived(pathInput.trim().length > 0); 73 + let noMatch = $derived(hasInput && record !== null && matches.length === 0); 74 + 75 + function selectPath(path: string) { 76 + pathInput = path; 77 + } 78 + 79 + function loadSample() { 80 + jsonText = JSON.stringify(SAMPLE, null, 2); 81 + } 82 + 83 + function formatJson() { 84 + if (!record) return; 85 + jsonText = JSON.stringify(record, null, 2); 86 + } 87 + 88 + function formatValue(val: unknown): string { 89 + if (val === null) return 'null'; 90 + if (val === undefined) return 'undefined'; 91 + if (typeof val === 'string') return JSON.stringify(val); 92 + if (typeof val !== 'object') return String(val); 93 + const str = JSON.stringify(val, null, 2); 94 + if (str.length > 500) return str.slice(0, 500) + '\n…'; 95 + return str; 96 + } 97 + </script> 98 + 99 + <div class="flex h-screen flex-col overflow-hidden bg-stone-50 text-stone-900"> 100 + <!-- Header --> 101 + <header class="flex items-center gap-3 border-b border-stone-200 bg-white px-4 py-2"> 102 + <h1 class="text-sm font-semibold">RecordPath Playground</h1> 103 + <span class="rounded-full bg-blue-50 px-2 py-0.5 text-[0.6875rem] font-medium text-blue-600" 104 + >draft spec</span 105 + > 106 + <span class="flex-1"></span> 107 + <button 108 + onclick={loadSample} 109 + class="cursor-pointer rounded border border-stone-200 bg-white px-3 py-1.5 text-xs hover:bg-stone-50" 110 + >Load sample</button 111 + > 112 + <button 113 + onclick={formatJson} 114 + class="cursor-pointer rounded border border-stone-200 bg-white px-3 py-1.5 text-xs hover:bg-stone-50" 115 + >Format</button 116 + > 117 + </header> 118 + 119 + <!-- Main panels --> 120 + <main class="grid flex-1 grid-cols-2 overflow-hidden"> 121 + <!-- Left: JSON editor --> 122 + <div class="flex flex-col overflow-hidden border-r border-stone-200"> 123 + <div 124 + class="border-b border-stone-200 bg-white px-3 py-1.5 text-[0.6875rem] font-semibold tracking-wide text-stone-400 uppercase" 125 + > 126 + Record JSON 127 + </div> 128 + <textarea 129 + bind:value={jsonText} 130 + spellcheck="false" 131 + placeholder="Paste a JSON record..." 132 + class="flex-1 resize-none bg-white p-3 font-mono text-[0.8125rem] leading-relaxed outline-none" 133 + style="tab-size: 2" 134 + ></textarea> 135 + {#if jsonError} 136 + <div class="border-t border-red-200 bg-red-50 px-3 py-1.5 text-xs text-red-600"> 137 + {jsonError} 138 + </div> 139 + {/if} 140 + </div> 141 + 142 + <!-- Right: paths + matches --> 143 + <div class="flex flex-col overflow-hidden"> 144 + <!-- Path input --> 145 + <div class="border-b border-stone-200 bg-white p-2"> 146 + <input 147 + type="text" 148 + bind:value={pathInput} 149 + placeholder="Type or click a RecordPath…" 150 + spellcheck="false" 151 + autocomplete="off" 152 + class="w-full rounded border-[1.5px] bg-white px-2.5 py-2 font-mono text-sm outline-none 153 + {noMatch 154 + ? 'border-red-400 shadow-[0_0_0_2px_theme(colors.red.100)]' 155 + : 'border-stone-200 focus:border-blue-500 focus:shadow-[0_0_0_2px_theme(colors.blue.100)]'}" 156 + /> 157 + </div> 158 + 159 + <!-- Path list header --> 160 + <div 161 + class="flex items-center gap-2 border-b border-stone-200 bg-white px-3 py-1.5 text-[0.6875rem] font-semibold tracking-wide text-stone-400 uppercase" 162 + > 163 + Available paths 164 + {#if paths.length > 0} 165 + <span class="font-normal">({paths.length})</span> 166 + {/if} 167 + </div> 168 + 169 + <!-- Scrollable body --> 170 + <div class="flex min-h-0 flex-1 flex-col overflow-hidden"> 171 + <!-- Paths list --> 172 + <div class="flex-1 overflow-y-auto bg-white"> 173 + {#each paths as { path, type }} 174 + <button 175 + onclick={() => selectPath(path)} 176 + class="flex w-full cursor-pointer items-center gap-2 border-l-[3px] px-3 py-[0.3125rem] text-left font-mono text-[0.8125rem] 177 + {pathInput === path 178 + ? 'border-l-blue-500 bg-blue-50' 179 + : 'border-l-transparent hover:bg-stone-50'}" 180 + > 181 + <span class="min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap" 182 + >{path}</span 183 + > 184 + <span 185 + class="shrink-0 rounded px-1.5 py-px text-[0.625rem] font-medium uppercase tracking-wide 186 + {type === 'vector' 187 + ? 'bg-emerald-50 text-emerald-700' 188 + : 'bg-sky-50 text-sky-700'}" 189 + > 190 + {type} 191 + </span> 192 + </button> 193 + {/each} 194 + {#if paths.length === 0 && !jsonError} 195 + <div class="px-3 py-6 text-center text-xs text-stone-400"> 196 + Paste a JSON record to see available paths 197 + </div> 198 + {/if} 199 + </div> 200 + 201 + <!-- Matches --> 202 + {#if hasInput} 203 + <div class="flex max-h-[45%] flex-col overflow-hidden border-t border-stone-200"> 204 + <div 205 + class="flex items-center gap-2 border-b border-stone-200 bg-white px-3 py-1.5 text-[0.6875rem] font-semibold tracking-wide text-stone-400 uppercase" 206 + > 207 + Matches 208 + <span class="font-normal">({matches.length})</span> 209 + </div> 210 + <div class="overflow-y-auto bg-white"> 211 + {#if matches.length === 0} 212 + <div class="px-3 py-3 text-xs text-stone-400">No matches</div> 213 + {:else} 214 + {#each matches as val} 215 + <div 216 + class="whitespace-pre-wrap break-all border-b border-amber-100 bg-amber-50 px-3 py-1.5 font-mono text-[0.8125rem]" 217 + > 218 + {formatValue(val)} 219 + </div> 220 + {/each} 221 + {/if} 222 + </div> 223 + </div> 224 + {/if} 225 + </div> 226 + </div> 227 + </main> 228 + </div>
+1
playground/src/routes/layout.css
··· 1 + @import 'tailwindcss';
+3
playground/static/robots.txt
··· 1 + # allow crawling everything by default 2 + User-agent: * 3 + Disallow:
playground/style.css playground-orig/style.css
+17
playground/svelte.config.js
··· 1 + import adapter from '@sveltejs/adapter-auto'; 2 + 3 + /** @type {import('@sveltejs/kit').Config} */ 4 + const config = { 5 + compilerOptions: { 6 + // Force runes mode for the project, except for libraries. Can be removed in svelte 6. 7 + runes: ({ filename }) => (filename.split(/[/\\]/).includes('node_modules') ? undefined : true) 8 + }, 9 + kit: { 10 + // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list. 11 + // If your environment is not supported, or you settled on a specific environment, switch out the adapter. 12 + // See https://svelte.dev/docs/kit/adapters for more information about adapters. 13 + adapter: adapter() 14 + } 15 + }; 16 + 17 + export default config;
+20
playground/tsconfig.json
··· 1 + { 2 + "extends": "./.svelte-kit/tsconfig.json", 3 + "compilerOptions": { 4 + "rewriteRelativeImportExtensions": true, 5 + "allowJs": true, 6 + "checkJs": true, 7 + "esModuleInterop": true, 8 + "forceConsistentCasingInFileNames": true, 9 + "resolveJsonModule": true, 10 + "skipLibCheck": true, 11 + "sourceMap": true, 12 + "strict": true, 13 + "moduleResolution": "bundler" 14 + } 15 + // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias 16 + // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files 17 + // 18 + // To make changes to top-level options such as include and exclude, we recommend extending 19 + // the generated config; see https://svelte.dev/docs/kit/configuration#typescript 20 + }
+36
playground/vite.config.ts
··· 1 + import tailwindcss from '@tailwindcss/vite'; 2 + import { defineConfig } from 'vitest/config'; 3 + import { playwright } from '@vitest/browser-playwright'; 4 + import { sveltekit } from '@sveltejs/kit/vite'; 5 + 6 + export default defineConfig({ 7 + plugins: [tailwindcss(), sveltekit()], 8 + test: { 9 + expect: { requireAssertions: true }, 10 + projects: [ 11 + { 12 + extends: './vite.config.ts', 13 + test: { 14 + name: 'client', 15 + browser: { 16 + enabled: true, 17 + provider: playwright(), 18 + instances: [{ browser: 'chromium', headless: true }] 19 + }, 20 + include: ['src/**/*.svelte.{test,spec}.{js,ts}'], 21 + exclude: ['src/lib/server/**'] 22 + } 23 + }, 24 + 25 + { 26 + extends: './vite.config.ts', 27 + test: { 28 + name: 'server', 29 + environment: 'node', 30 + include: ['src/**/*.{test,spec}.{js,ts}'], 31 + exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] 32 + } 33 + } 34 + ] 35 + } 36 + });