From 421e21f79bb01b5c6a429e12b8e6a92972980f57 Mon Sep 17 00:00:00 2001 From: rxliuli Date: Sun, 8 Dec 2024 02:44:28 +0800 Subject: [PATCH] tests: Add unit tests running in the browser --- .gitignore | 1 + package.json | 9 +- pnpm-lock.yaml | 773 +++++++++++++++--- src/App.svelte | 4 +- ...eptors.test.ts => interceptors.browser.ts} | 5 +- .../__tests__/converstation.svelte.browser.ts | 44 + .../stores/__tests__/converstation.test.ts | 24 + src/lib/stores/converstation.svelte.ts | 2 +- vite.config.ts | 6 +- vitest.workspace.ts | 39 + 10 files changed, 781 insertions(+), 126 deletions(-) rename src/lib/plugins/__tests__/{interceptors.test.ts => interceptors.browser.ts} (92%) create mode 100644 src/lib/stores/__tests__/converstation.svelte.browser.ts create mode 100644 vitest.workspace.ts diff --git a/.gitignore b/.gitignore index c2cce29..6061f34 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ dist dist-ssr *.local .temp +**/__tests__/__screenshots__ docs/.vitepress/dist docs/.vitepress/cache diff --git a/package.json b/package.json index dd65665..b71f9f5 100644 --- a/package.json +++ b/package.json @@ -12,19 +12,22 @@ "test": "vitest run", "docs:dev": "typedoc && vitepress dev docs", "docs:build": "typedoc && vitepress build docs", - "docs:preview": "vitepress preview docs" + "docs:preview": "vitepress preview docs", + "test:browser": "vitest --workspace=vitest.workspace.ts" }, "devDependencies": { "@internationalized/date": "^3.5.6", "@rollup/pluginutils": "^5.1.2", "@sveltejs/vite-plugin-svelte": "^4.0.0", "@tailwindcss/typography": "^0.5.14", + "@testing-library/svelte": "^5.2.6", "@tsconfig/svelte": "^5.0.4", "@types/hast": "^3.0.4", "@types/lodash-es": "^4.17.12", "@types/mdast": "^4.0.4", "@types/mockjs": "^1.0.10", "@types/node": "^22.7.3", + "@vitest/browser": "^2.1.8", "@vitest/web-worker": "^2.1.2", "autoprefixer": "^10.4.20", "bits-ui": "1.0.0-next.51", @@ -36,6 +39,7 @@ "lucide-svelte": "^0.446.0", "mode-watcher": "^0.4.1", "paneforge": "1.0.0-next.1", + "playwright": "^1.49.0", "rollup-plugin-import-data-uri": "^1.0.2", "serialize-error": "^11.0.3", "svelte": "^5.0.0", @@ -54,7 +58,8 @@ "vite": "^5.4.4", "vitepress": "^1.3.4", "vitepress-plugin-twitter-card": "^0.1.0", - "vitest": "^2.1.1", + "vitest": "^2.1.8", + "vitest-browser-svelte": "^0.0.1", "zod": "^3.23.8" }, "dependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6317fef..f09c399 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -174,6 +174,9 @@ importers: '@tailwindcss/typography': specifier: ^0.5.14 version: 0.5.15(tailwindcss@3.4.13) + '@testing-library/svelte': + specifier: ^5.2.6 + version: 5.2.6(svelte@5.1.14)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8) '@tsconfig/svelte': specifier: ^5.0.4 version: 5.0.4 @@ -192,9 +195,12 @@ importers: '@types/node': specifier: ^22.7.3 version: 22.7.4 + '@vitest/browser': + specifier: ^2.1.8 + version: 2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8) '@vitest/web-worker': specifier: ^2.1.2 - version: 2.1.2(vitest@2.1.1(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1)) + version: 2.1.2(vitest@2.1.8) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) @@ -225,6 +231,9 @@ importers: paneforge: specifier: 1.0.0-next.1 version: 1.0.0-next.1(svelte@5.1.14) + playwright: + specifier: ^1.49.0 + version: 1.49.0 rollup-plugin-import-data-uri: specifier: ^1.0.2 version: 1.0.2 @@ -280,8 +289,11 @@ importers: specifier: ^0.1.0 version: 0.1.0(vitepress@1.3.4(@algolia/client-search@4.24.0)(@types/node@22.7.4)(idb-keyval@6.2.1)(postcss@8.4.47)(search-insights@2.17.2)(typescript@5.6.2)) vitest: - specifier: ^2.1.1 - version: 2.1.1(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1) + specifier: ^2.1.8 + version: 2.1.8(@types/node@22.7.4)(@vitest/browser@2.1.8)(happy-dom@15.7.4)(jsdom@25.0.1)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2)) + vitest-browser-svelte: + specifier: ^0.0.1 + version: 0.0.1(@vitest/browser@2.1.8)(svelte@5.1.14)(vitest@2.1.8) zod: specifier: ^3.23.8 version: 3.23.8 @@ -303,7 +315,7 @@ importers: devDependencies: '@liuli-util/test': specifier: ^3.8.0 - version: 3.8.0(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 3.8.0(@types/node@22.7.4)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) '@types/chalk': specifier: ^2.2.0 version: 2.2.0 @@ -321,7 +333,7 @@ importers: version: 5.6.2 vitest: specifier: ^2.1.2 - version: 2.1.2(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2)) packages/cli/templates/plugin-template: devDependencies: @@ -336,7 +348,7 @@ importers: version: 5.6.2 vitest: specifier: ^1.2.2 - version: 1.6.0(@types/node@22.10.1)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 1.6.0(@types/node@22.10.1)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) packages/plugin: devDependencies: @@ -357,7 +369,7 @@ importers: version: 5.6.2 vitest: specifier: ^1.2.2 - version: 1.6.0(@types/node@22.10.1)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 1.6.0(@types/node@22.10.1)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) packages/plugin-anthropic: devDependencies: @@ -375,7 +387,7 @@ importers: version: 5.6.2 vitest: specifier: ^1.2.2 - version: 1.6.0(@types/node@22.10.1)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 1.6.0(@types/node@22.10.1)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) packages/plugin-gemini: devDependencies: @@ -393,7 +405,7 @@ importers: version: 5.6.2 vitest: specifier: ^1.2.2 - version: 1.6.0(@types/node@22.10.1)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 1.6.0(@types/node@22.10.1)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) packages/plugin-ollama: devDependencies: @@ -411,7 +423,7 @@ importers: version: 5.6.2 vitest: specifier: ^1.2.2 - version: 1.6.0(@types/node@22.10.1)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 1.6.0(@types/node@22.10.1)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) packages/plugin-openai: devDependencies: @@ -429,7 +441,7 @@ importers: version: 5.6.2 vitest: specifier: ^1.2.2 - version: 1.6.0(@types/node@22.10.1)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 1.6.0(@types/node@22.10.1)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) packages/plugin-reverse-proxy: dependencies: @@ -460,7 +472,7 @@ importers: version: 5.6.2 vitest: specifier: ^1.2.2 - version: 1.6.0(@types/node@22.10.1)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 1.6.0(@types/node@22.10.1)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) packages/plugin-vertex-anthropic: devDependencies: @@ -490,7 +502,7 @@ importers: version: 5.6.2 vitest: specifier: ^1.2.2 - version: 1.6.0(@types/node@22.10.1)(happy-dom@15.7.4)(jsdom@25.0.1) + version: 1.6.0(@types/node@22.10.1)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) packages: @@ -582,6 +594,10 @@ packages: '@ark/util@0.10.0': resolution: {integrity: sha512-uK+9VU5doGMYOoOZVE+XaSs1vYACoaEJdrDkuBx26S4X7y3ChyKsPnIg/9pIw2vUySph1GkAXbvBnfVE2GmXgQ==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.7': resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} @@ -590,6 +606,10 @@ packages: resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.25.7': resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} @@ -603,6 +623,15 @@ packages: resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} + '@bundled-es-modules/cookie@2.0.1': + resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} + + '@bundled-es-modules/statuses@1.0.1': + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + + '@bundled-es-modules/tough-cookie@0.1.6': + resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + '@cloudflare/kv-asset-handler@0.3.4': resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} @@ -1273,6 +1302,26 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@inquirer/confirm@5.0.2': + resolution: {integrity: sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + + '@inquirer/core@10.1.0': + resolution: {integrity: sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.8': + resolution: {integrity: sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==} + engines: {node: '>=18'} + + '@inquirer/type@3.0.1': + resolution: {integrity: sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@internationalized/date@3.5.6': resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==} @@ -1480,6 +1529,10 @@ packages: resolution: {integrity: sha512-nczv+fUcOtGZPjrTY2Bf9c3pwEUAma58tWDqaTDb2t7rpOQlY68OzAZJpV+ENTvrgS4qTaRg17Rz580gjKj7pQ==} engines: {node: '>=18'} + '@mswjs/interceptors@0.37.3': + resolution: {integrity: sha512-USvgCL/uOGFtVa6SVyRrC8kIAedzRohxIXN5LISlg5C5vLZCn7dgMFVSNhSF9cuBEFrm/O2spDWEZeMnw4ZXYg==} + engines: {node: '>=18'} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1702,6 +1755,29 @@ packages: peerDependencies: svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + engines: {node: '>=18'} + + '@testing-library/svelte@5.2.6': + resolution: {integrity: sha512-1Y8cEg/BtV4J6g9irkY0ksz+ueDFYLiikjTLiqvQPkOUeDzR4gg2zECBf8yrOrCy3e2TAOYMcaysFa0bQMyk1w==} + engines: {node: '>= 10'} + peerDependencies: + svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 + vite: '*' + vitest: '*' + peerDependenciesMeta: + vite: + optional: true + vitest: + optional: true + + '@testing-library/user-event@14.5.2': + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} @@ -1714,6 +1790,9 @@ packages: '@types/argparse@1.0.38': resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + '@types/chalk@2.2.0': resolution: {integrity: sha512-1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw==} deprecated: This is a stub types definition for chalk (https://github.com/chalk/chalk). chalk provides its own type definitions, so you don't need @types/chalk installed! @@ -1790,6 +1869,12 @@ packages: '@types/retry@0.12.0': resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + '@types/statuses@2.0.5': + resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -1845,19 +1930,34 @@ packages: vite: ^5.0.0 vue: ^3.2.25 + '@vitest/browser@2.1.8': + resolution: {integrity: sha512-OWVvEJThRgxlNMYNVLEK/9qVkpRcLvyuKLngIV3Hob01P56NjPHprVBYn+rx4xAJudbM9yrCrywPIEuA3Xyo8A==} + peerDependencies: + playwright: '*' + safaridriver: '*' + vitest: 2.1.8 + webdriverio: '*' + peerDependenciesMeta: + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + '@vitest/expect@1.6.0': resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} - '@vitest/expect@2.1.1': - resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==} - '@vitest/expect@2.1.2': resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==} - '@vitest/mocker@2.1.1': - resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==} + '@vitest/expect@2.1.8': + resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==} + + '@vitest/mocker@2.1.2': + resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==} peerDependencies: - '@vitest/spy': 2.1.1 + '@vitest/spy': 2.1.2 msw: ^2.3.5 vite: ^5.0.0 peerDependenciesMeta: @@ -1866,11 +1966,10 @@ packages: vite: optional: true - '@vitest/mocker@2.1.2': - resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==} + '@vitest/mocker@2.1.8': + resolution: {integrity: sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==} peerDependencies: - '@vitest/spy': 2.1.2 - msw: ^2.3.5 + msw: ^2.4.9 vite: ^5.0.0 peerDependenciesMeta: msw: @@ -1878,48 +1977,48 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.1': - resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} - '@vitest/pretty-format@2.1.2': resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==} + '@vitest/pretty-format@2.1.8': + resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==} + '@vitest/runner@1.6.0': resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} - '@vitest/runner@2.1.1': - resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==} - '@vitest/runner@2.1.2': resolution: {integrity: sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==} + '@vitest/runner@2.1.8': + resolution: {integrity: sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==} + '@vitest/snapshot@1.6.0': resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} - '@vitest/snapshot@2.1.1': - resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==} - '@vitest/snapshot@2.1.2': resolution: {integrity: sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==} + '@vitest/snapshot@2.1.8': + resolution: {integrity: sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==} + '@vitest/spy@1.6.0': resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} - '@vitest/spy@2.1.1': - resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==} - '@vitest/spy@2.1.2': resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==} + '@vitest/spy@2.1.8': + resolution: {integrity: sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==} + '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - '@vitest/utils@2.1.1': - resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} - '@vitest/utils@2.1.2': resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==} + '@vitest/utils@2.1.8': + resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} + '@vitest/web-worker@2.1.2': resolution: {integrity: sha512-vjELI67QKnMC1C7PloCVqhcmzKhTLNb0ACSKSVupvWaoaFRbV9hRt1FOFhUzOtOY2M55sKLAwmjVvQDqy5Ya0A==} peerDependencies: @@ -2078,6 +2177,10 @@ packages: algoliasearch@4.24.0: resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2117,6 +2220,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -2257,6 +2363,14 @@ packages: resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} engines: {node: '>=12'} + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -2291,6 +2405,14 @@ packages: class-validator@0.14.1: resolution: {integrity: sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==} + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -2350,6 +2472,10 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} @@ -2444,6 +2570,9 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dompurify@3.1.7: resolution: {integrity: sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==} @@ -2479,6 +2608,9 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + esbuild-runner@2.2.2: resolution: {integrity: sha512-fRFVXcmYVmSmtYm2mL8RlUASt2TDkGh3uRcvHFOKNr/T58VrfVeKD9uT9nlgxk96u0LS0ehS/GY7Da/bXWKkhw==} hasBin: true @@ -2578,6 +2710,10 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} + expect-type@1.1.0: + resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} + engines: {node: '>=12.0.0'} + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -2658,6 +2794,11 @@ packages: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -2674,6 +2815,10 @@ packages: resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} engines: {node: '>=14'} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} @@ -2719,6 +2864,10 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + gtoken@7.1.0: resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} engines: {node: '>=14.0.0'} @@ -2759,6 +2908,9 @@ packages: hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + headers-polyfill@4.0.3: + resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + hono@4.6.3: resolution: {integrity: sha512-0LeEuBNFeSHGqZ9sNVVgZjB1V5fmhkBSB0hZrpqStSMLOWgfLy0dHOvrjbJh0H2khsjet6rbHfWTHY0kpYThKQ==} engines: {node: '>=16.9.0'} @@ -2931,6 +3083,9 @@ packages: js-tiktoken@1.0.15: resolution: {integrity: sha512-65ruOWWXDEZHHbAo7EjOcNxOGasQKbL4Fq3jEr2xsCqSsoOo6VVSqzWQb6PRIqypFSDcma4jO90YP0w5X8qVXQ==} + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.0: resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} @@ -3041,6 +3196,9 @@ packages: loupe@3.1.1: resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -3056,6 +3214,10 @@ packages: lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} @@ -3315,10 +3477,24 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + msw@2.6.8: + resolution: {integrity: sha512-nxXxnH6WALZ9a7rsQp4HU2AaD4iGAiouMmE/MY4al7pXTibgA6OZOuKhmN2WBIM6w9qMKwRtX8p2iOb45B2M/Q==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: '>= 4.8.x' + peerDependenciesMeta: + typescript: + optional: true + mustache@4.2.0: resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} hasBin: true + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -3532,6 +3708,16 @@ packages: pkg-types@1.2.0: resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} + playwright-core@1.49.0: + resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.49.0: + resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} + engines: {node: '>=18'} + hasBin: true + pngjs@3.4.0: resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} engines: {node: '>=4.0.0'} @@ -3610,6 +3796,10 @@ packages: preact@10.24.2: resolution: {integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==} + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3630,6 +3820,9 @@ packages: property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} @@ -3638,9 +3831,15 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -3683,10 +3882,17 @@ packages: resolution: {integrity: sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==} engines: {node: '>=8'} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -3815,6 +4021,10 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} + sirv@3.0.0: + resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} + engines: {node: '>=18'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -3850,9 +4060,16 @@ packages: stacktracey@2.1.8: resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + stoppable@1.1.0: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} @@ -3927,6 +4144,10 @@ packages: resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} engines: {node: '>=14.0.0'} + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} @@ -4019,6 +4240,9 @@ packages: tinyexec@0.3.0: resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyglobby@0.2.9: resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} engines: {node: '>=12.0.0'} @@ -4069,6 +4293,10 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + tough-cookie@5.0.0: resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} engines: {node: '>=16'} @@ -4135,6 +4363,10 @@ packages: resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} engines: {node: '>=4'} + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -4224,6 +4456,10 @@ packages: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + update-browserslist-db@1.1.1: resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true @@ -4233,6 +4469,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + utif2@4.1.0: resolution: {integrity: sha512-+oknB9FHrJ7oW7A2WZYajOcv4FcDR4CfoGB0dPNfxbi4GO05RRnFmt5oa23+9w32EanrYcSJWspUiJkLMs+37w==} @@ -4280,13 +4519,13 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite-node@2.1.1: - resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==} + vite-node@2.1.2: + resolution: {integrity: sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite-node@2.1.2: - resolution: {integrity: sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==} + vite-node@2.1.8: + resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -4346,6 +4585,14 @@ packages: postcss: optional: true + vitest-browser-svelte@0.0.1: + resolution: {integrity: sha512-p6GaV6ossE27tg+/dRCE1+ZmWEksLlMWDmF0JgEpF9adyAPetWgqaAE7Po76tL/L1aaAgtUC4bG36K2L212i3g==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + '@vitest/browser': ^2.1.0-beta.4 + svelte: '>3.0.0' + vitest: ^2.1.0-beta.4 + vitest@1.6.0: resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -4371,15 +4618,15 @@ packages: jsdom: optional: true - vitest@2.1.1: - resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==} + vitest@2.1.2: + resolution: {integrity: sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.1 - '@vitest/ui': 2.1.1 + '@vitest/browser': 2.1.2 + '@vitest/ui': 2.1.2 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -4396,15 +4643,15 @@ packages: jsdom: optional: true - vitest@2.1.2: - resolution: {integrity: sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==} + vitest@2.1.8: + resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.2 - '@vitest/ui': 2.1.2 + '@vitest/browser': 2.1.8 + '@vitest/ui': 2.1.8 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -4515,6 +4762,10 @@ packages: '@cloudflare/workers-types': optional: true + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -4556,6 +4807,10 @@ packages: xxhash-wasm@1.0.2: resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -4564,10 +4819,22 @@ packages: engines: {node: '>= 14'} hasBin: true + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yocto-queue@1.1.1: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + youch@3.3.3: resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} @@ -4746,10 +5013,18 @@ snapshots: '@ark/util@0.10.0': optional: true + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.0 + '@babel/helper-string-parser@7.25.7': {} '@babel/helper-validator-identifier@7.25.7': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/parser@7.25.7': dependencies: '@babel/types': 7.25.7 @@ -4757,7 +5032,6 @@ snapshots: '@babel/runtime@7.25.7': dependencies: regenerator-runtime: 0.14.1 - optional: true '@babel/types@7.25.7': dependencies: @@ -4765,6 +5039,19 @@ snapshots: '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 + '@bundled-es-modules/cookie@2.0.1': + dependencies: + cookie: 0.7.2 + + '@bundled-es-modules/statuses@1.0.1': + dependencies: + statuses: 2.0.1 + + '@bundled-es-modules/tough-cookie@0.1.6': + dependencies: + '@types/tough-cookie': 4.0.5 + tough-cookie: 4.1.4 + '@cloudflare/kv-asset-handler@0.3.4': dependencies: mime: 3.0.0 @@ -5145,6 +5432,32 @@ snapshots: '@hapi/hoek': 9.3.0 optional: true + '@inquirer/confirm@5.0.2(@types/node@22.7.4)': + dependencies: + '@inquirer/core': 10.1.0(@types/node@22.7.4) + '@inquirer/type': 3.0.1(@types/node@22.7.4) + '@types/node': 22.7.4 + + '@inquirer/core@10.1.0(@types/node@22.7.4)': + dependencies: + '@inquirer/figures': 1.0.8 + '@inquirer/type': 3.0.1(@types/node@22.7.4) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/figures@1.0.8': {} + + '@inquirer/type@3.0.1(@types/node@22.7.4)': + dependencies: + '@types/node': 22.7.4 + '@internationalized/date@3.5.6': dependencies: '@swc/helpers': 0.5.13 @@ -5441,9 +5754,9 @@ snapshots: '@liuli-util/async@3.7.0': {} - '@liuli-util/test@3.8.0(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1)': + '@liuli-util/test@3.8.0(@types/node@22.7.4)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1)': optionalDependencies: - vitest: 1.6.0(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1) + vitest: 1.6.0(@types/node@22.7.4)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1) transitivePeerDependencies: - '@edge-runtime/vm' - '@types/node' @@ -5546,6 +5859,15 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 + '@mswjs/interceptors@0.37.3': + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5819,6 +6141,29 @@ snapshots: '@tanstack/query-core': 5.59.0 svelte: 5.1.14 + '@testing-library/dom@10.4.0': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/runtime': 7.25.7 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + + '@testing-library/svelte@5.2.6(svelte@5.1.14)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8)': + dependencies: + '@testing-library/dom': 10.4.0 + svelte: 5.1.14 + optionalDependencies: + vite: 5.4.8(@types/node@22.7.4) + vitest: 2.1.8(@types/node@22.7.4)(@vitest/browser@2.1.8)(happy-dom@15.7.4)(jsdom@25.0.1)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2)) + + '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': + dependencies: + '@testing-library/dom': 10.4.0 + '@tokenizer/token@0.3.0': {} '@tsconfig/svelte@5.0.4': {} @@ -5830,6 +6175,8 @@ snapshots: '@types/argparse@1.0.38': optional: true + '@types/aria-query@5.0.4': {} + '@types/chalk@2.2.0': dependencies: chalk: 5.3.0 @@ -5914,6 +6261,10 @@ snapshots: '@types/retry@0.12.0': {} + '@types/statuses@2.0.5': {} + + '@types/tough-cookie@4.0.5': {} + '@types/trusted-types@2.0.7': {} '@types/unist@2.0.11': {} @@ -5966,19 +6317,33 @@ snapshots: vite: 5.4.8(@types/node@22.7.4) vue: 3.5.11(typescript@5.6.2) + '@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8)': + dependencies: + '@testing-library/dom': 10.4.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/mocker': 2.1.8(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)) + '@vitest/utils': 2.1.8 + magic-string: 0.30.14 + msw: 2.6.8(@types/node@22.7.4)(typescript@5.6.2) + sirv: 3.0.0 + tinyrainbow: 1.2.0 + vitest: 2.1.8(@types/node@22.7.4)(@vitest/browser@2.1.8)(happy-dom@15.7.4)(jsdom@25.0.1)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2)) + ws: 8.18.0 + optionalDependencies: + playwright: 1.49.0 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - typescript + - utf-8-validate + - vite + '@vitest/expect@1.6.0': dependencies: '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 chai: 4.5.0 - '@vitest/expect@2.1.1': - dependencies: - '@vitest/spy': 2.1.1 - '@vitest/utils': 2.1.1 - chai: 5.1.1 - tinyrainbow: 1.2.0 - '@vitest/expect@2.1.2': dependencies: '@vitest/spy': 2.1.2 @@ -5986,27 +6351,36 @@ snapshots: chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.8(@types/node@22.7.4))': + '@vitest/expect@2.1.8': + dependencies: + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 + chai: 5.1.2 + tinyrainbow: 1.2.0 + + '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4))': dependencies: - '@vitest/spy': 2.1.1 + '@vitest/spy': 2.1.2 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: + msw: 2.6.8(@types/node@22.7.4)(typescript@5.6.2) vite: 5.4.8(@types/node@22.7.4) - '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@22.7.4))': + '@vitest/mocker@2.1.8(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4))': dependencies: - '@vitest/spy': 2.1.2 + '@vitest/spy': 2.1.8 estree-walker: 3.0.3 - magic-string: 0.30.11 + magic-string: 0.30.14 optionalDependencies: + msw: 2.6.8(@types/node@22.7.4)(typescript@5.6.2) vite: 5.4.8(@types/node@22.7.4) - '@vitest/pretty-format@2.1.1': + '@vitest/pretty-format@2.1.2': dependencies: tinyrainbow: 1.2.0 - '@vitest/pretty-format@2.1.2': + '@vitest/pretty-format@2.1.8': dependencies: tinyrainbow: 1.2.0 @@ -6016,14 +6390,14 @@ snapshots: p-limit: 5.0.0 pathe: 1.1.2 - '@vitest/runner@2.1.1': + '@vitest/runner@2.1.2': dependencies: - '@vitest/utils': 2.1.1 + '@vitest/utils': 2.1.2 pathe: 1.1.2 - '@vitest/runner@2.1.2': + '@vitest/runner@2.1.8': dependencies: - '@vitest/utils': 2.1.2 + '@vitest/utils': 2.1.8 pathe: 1.1.2 '@vitest/snapshot@1.6.0': @@ -6032,27 +6406,27 @@ snapshots: pathe: 1.1.2 pretty-format: 29.7.0 - '@vitest/snapshot@2.1.1': + '@vitest/snapshot@2.1.2': dependencies: - '@vitest/pretty-format': 2.1.1 + '@vitest/pretty-format': 2.1.2 magic-string: 0.30.11 pathe: 1.1.2 - '@vitest/snapshot@2.1.2': + '@vitest/snapshot@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.2 - magic-string: 0.30.11 + '@vitest/pretty-format': 2.1.8 + magic-string: 0.30.14 pathe: 1.1.2 '@vitest/spy@1.6.0': dependencies: tinyspy: 2.2.1 - '@vitest/spy@2.1.1': + '@vitest/spy@2.1.2': dependencies: tinyspy: 3.0.2 - '@vitest/spy@2.1.2': + '@vitest/spy@2.1.8': dependencies: tinyspy: 3.0.2 @@ -6063,22 +6437,22 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 - '@vitest/utils@2.1.1': + '@vitest/utils@2.1.2': dependencies: - '@vitest/pretty-format': 2.1.1 + '@vitest/pretty-format': 2.1.2 loupe: 3.1.1 tinyrainbow: 1.2.0 - '@vitest/utils@2.1.2': + '@vitest/utils@2.1.8': dependencies: - '@vitest/pretty-format': 2.1.2 - loupe: 3.1.1 + '@vitest/pretty-format': 2.1.8 + loupe: 3.1.2 tinyrainbow: 1.2.0 - '@vitest/web-worker@2.1.2(vitest@2.1.1(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1))': + '@vitest/web-worker@2.1.2(vitest@2.1.8)': dependencies: debug: 4.3.7 - vitest: 2.1.1(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1) + vitest: 2.1.8(@types/node@22.7.4)(@vitest/browser@2.1.8)(happy-dom@15.7.4)(jsdom@25.0.1)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2)) transitivePeerDependencies: - supports-color @@ -6274,6 +6648,10 @@ snapshots: '@algolia/requester-node-http': 4.24.0 '@algolia/transporter': 4.24.0 + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -6304,6 +6682,10 @@ snapshots: argparse@2.0.1: {} + aria-query@5.3.0: + dependencies: + dequal: 2.0.3 + aria-query@5.3.2: {} arktype@2.0.0-rc.8: @@ -6450,6 +6832,19 @@ snapshots: loupe: 3.1.1 pathval: 2.0.0 + chai@5.1.2: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@5.3.0: {} character-entities-html4@2.1.0: {} @@ -6489,6 +6884,14 @@ snapshots: validator: 13.12.0 optional: true + cli-width@4.1.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + clsx@2.1.1: {} cmdk-sv@0.0.18(svelte@5.1.14): @@ -6530,6 +6933,8 @@ snapshots: cookie@0.6.0: {} + cookie@0.7.2: {} + copy-anything@3.0.5: dependencies: is-what: 4.1.16 @@ -6599,6 +7004,8 @@ snapshots: dlv@1.1.3: {} + dom-accessibility-api@0.5.16: {} + dompurify@3.1.7: {} eastasianwidth@0.2.0: {} @@ -6627,6 +7034,8 @@ snapshots: entities@4.5.0: {} + es-module-lexer@1.5.4: {} + esbuild-runner@2.2.2(esbuild@0.24.0): dependencies: esbuild: 0.24.0 @@ -6809,6 +7218,8 @@ snapshots: exit-hook@2.2.1: {} + expect-type@1.1.0: {} + extend@3.0.2: {} fake-indexeddb@6.0.0: {} @@ -6902,6 +7313,9 @@ snapshots: universalify: 0.1.2 optional: true + fsevents@2.3.2: + optional: true + fsevents@2.3.3: optional: true @@ -6926,6 +7340,8 @@ snapshots: - encoding - supports-color + get-caller-file@2.0.5: {} + get-func-name@2.0.2: {} get-source@2.0.12: @@ -6980,6 +7396,8 @@ snapshots: graceful-fs@4.2.11: optional: true + graphql@16.9.0: {} + gtoken@7.1.0: dependencies: gaxios: 6.7.1 @@ -6994,8 +7412,7 @@ snapshots: webidl-conversions: 7.0.0 whatwg-mimetype: 3.0.0 - has-flag@4.0.0: - optional: true + has-flag@4.0.0: {} hasown@2.0.2: dependencies: @@ -7072,6 +7489,8 @@ snapshots: property-information: 6.5.0 space-separated-tokens: 2.0.2 + headers-polyfill@4.0.3: {} + hono@4.6.3: {} hookable@5.5.3: {} @@ -7258,6 +7677,8 @@ snapshots: dependencies: base64-js: 1.5.1 + js-tokens@4.0.0: {} + js-tokens@9.0.0: {} jsdom@25.0.1: @@ -7390,6 +7811,8 @@ snapshots: dependencies: get-func-name: 2.0.2 + loupe@3.1.2: {} + lru-cache@10.4.3: {} lru-cache@6.0.0: @@ -7403,6 +7826,8 @@ snapshots: lunr@2.3.9: {} + lz-string@1.5.0: {} + magic-string@0.25.9: dependencies: sourcemap-codec: 1.4.8 @@ -7899,8 +8324,35 @@ snapshots: ms@2.1.3: {} + msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.0.2(@types/node@22.7.4) + '@mswjs/interceptors': 0.37.3 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + chalk: 4.1.2 + graphql: 16.9.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + strict-event-emitter: 0.5.1 + type-fest: 4.26.1 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - '@types/node' + mustache@4.2.0: {} + mute-stream@2.0.0: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -8084,6 +8536,14 @@ snapshots: mlly: 1.7.1 pathe: 1.1.2 + playwright-core@1.49.0: {} + + playwright@1.49.0: + dependencies: + playwright-core: 1.49.0 + optionalDependencies: + fsevents: 2.3.2 + pngjs@3.4.0: {} pngjs@6.0.0: {} @@ -8142,6 +8602,12 @@ snapshots: preact@10.24.2: {} + pretty-format@27.5.1: + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 @@ -8159,12 +8625,20 @@ snapshots: property-information@6.5.0: {} + psl@1.15.0: + dependencies: + punycode: 2.3.1 + punycode.js@2.3.1: {} punycode@2.3.1: {} + querystringify@2.2.0: {} + queue-microtask@1.2.3: {} + react-is@17.0.2: {} + react-is@18.3.1: {} read-cache@1.0.0: @@ -8207,16 +8681,19 @@ snapshots: regenerator-runtime@0.13.11: {} - regenerator-runtime@0.14.1: - optional: true + regenerator-runtime@0.14.1: {} regex@4.3.3: {} regexparam@2.0.2: {} + require-directory@2.1.1: {} + require-from-string@2.0.2: optional: true + requires-port@1.0.0: {} + resolve-from@5.0.0: {} resolve.exports@2.0.2: {} @@ -8351,6 +8828,12 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + sirv@3.0.0: + dependencies: + '@polka/url': 1.0.0-next.28 + mrmime: 2.0.0 + totalist: 3.0.1 + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -8381,8 +8864,12 @@ snapshots: as-table: 1.0.55 get-source: 2.0.12 + statuses@2.0.1: {} + std-env@3.7.0: {} + std-env@3.8.0: {} + stoppable@1.1.0: {} strict-event-emitter@0.5.1: {} @@ -8462,6 +8949,10 @@ snapshots: superstruct@2.0.2: optional: true + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + supports-color@8.1.1: dependencies: has-flag: 4.0.0 @@ -8606,6 +9097,8 @@ snapshots: tinyexec@0.3.0: {} + tinyexec@0.3.1: {} + tinyglobby@0.2.9: dependencies: fdir: 6.4.0(picomatch@4.0.2) @@ -8643,6 +9136,13 @@ snapshots: totalist@3.0.1: {} + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + tough-cookie@5.0.0: dependencies: tldts: 6.1.49 @@ -8738,6 +9238,8 @@ snapshots: type-detect@4.1.0: {} + type-fest@0.21.3: {} + type-fest@2.19.0: {} type-fest@4.26.1: {} @@ -8837,6 +9339,8 @@ snapshots: universalify@0.1.2: optional: true + universalify@0.2.0: {} + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: browserslist: 4.24.0 @@ -8848,6 +9352,11 @@ snapshots: punycode: 2.3.1 optional: true + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + utif2@4.1.0: dependencies: pako: 1.0.11 @@ -8931,7 +9440,7 @@ snapshots: - terser optional: true - vite-node@2.1.1(@types/node@22.7.4): + vite-node@2.1.2(@types/node@22.7.4): dependencies: cac: 6.7.14 debug: 4.3.7 @@ -8948,10 +9457,11 @@ snapshots: - supports-color - terser - vite-node@2.1.2(@types/node@22.7.4): + vite-node@2.1.8(@types/node@22.7.4): dependencies: cac: 6.7.14 debug: 4.3.7 + es-module-lexer: 1.5.4 pathe: 1.1.2 vite: 5.4.8(@types/node@22.7.4) transitivePeerDependencies: @@ -9039,7 +9549,13 @@ snapshots: - typescript - universal-cookie - vitest@1.6.0(@types/node@22.10.1)(happy-dom@15.7.4)(jsdom@25.0.1): + vitest-browser-svelte@0.0.1(@vitest/browser@2.1.8)(svelte@5.1.14)(vitest@2.1.8): + dependencies: + '@vitest/browser': 2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8) + svelte: 5.1.14 + vitest: 2.1.8(@types/node@22.7.4)(@vitest/browser@2.1.8)(happy-dom@15.7.4)(jsdom@25.0.1)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2)) + + vitest@1.6.0(@types/node@22.10.1)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -9063,6 +9579,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.10.1 + '@vitest/browser': 2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8) happy-dom: 15.7.4 jsdom: 25.0.1 transitivePeerDependencies: @@ -9075,7 +9592,7 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1): + vitest@1.6.0(@types/node@22.7.4)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -9099,6 +9616,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.7.4 + '@vitest/browser': 2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8) happy-dom: 15.7.4 jsdom: 25.0.1 transitivePeerDependencies: @@ -9112,15 +9630,15 @@ snapshots: - terser optional: true - vitest@2.1.1(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1): + vitest@2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8))(happy-dom@15.7.4)(jsdom@25.0.1)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2)): dependencies: - '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.8(@types/node@22.7.4)) - '@vitest/pretty-format': 2.1.1 - '@vitest/runner': 2.1.1 - '@vitest/snapshot': 2.1.1 - '@vitest/spy': 2.1.1 - '@vitest/utils': 2.1.1 + '@vitest/expect': 2.1.2 + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)) + '@vitest/pretty-format': 2.1.2 + '@vitest/runner': 2.1.2 + '@vitest/snapshot': 2.1.2 + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 chai: 5.1.1 debug: 4.3.7 magic-string: 0.30.11 @@ -9131,10 +9649,11 @@ snapshots: tinypool: 1.0.1 tinyrainbow: 1.2.0 vite: 5.4.8(@types/node@22.7.4) - vite-node: 2.1.1(@types/node@22.7.4) + vite-node: 2.1.2(@types/node@22.7.4) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.7.4 + '@vitest/browser': 2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8) happy-dom: 15.7.4 jsdom: 25.0.1 transitivePeerDependencies: @@ -9148,29 +9667,31 @@ snapshots: - supports-color - terser - vitest@2.1.2(@types/node@22.7.4)(happy-dom@15.7.4)(jsdom@25.0.1): + vitest@2.1.8(@types/node@22.7.4)(@vitest/browser@2.1.8)(happy-dom@15.7.4)(jsdom@25.0.1)(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2)): dependencies: - '@vitest/expect': 2.1.2 - '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@22.7.4)) - '@vitest/pretty-format': 2.1.2 - '@vitest/runner': 2.1.2 - '@vitest/snapshot': 2.1.2 - '@vitest/spy': 2.1.2 - '@vitest/utils': 2.1.2 - chai: 5.1.1 + '@vitest/expect': 2.1.8 + '@vitest/mocker': 2.1.8(msw@2.6.8(@types/node@22.7.4)(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)) + '@vitest/pretty-format': 2.1.8 + '@vitest/runner': 2.1.8 + '@vitest/snapshot': 2.1.8 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 + chai: 5.1.2 debug: 4.3.7 - magic-string: 0.30.11 + expect-type: 1.1.0 + magic-string: 0.30.14 pathe: 1.1.2 - std-env: 3.7.0 + std-env: 3.8.0 tinybench: 2.9.0 - tinyexec: 0.3.0 + tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 vite: 5.4.8(@types/node@22.7.4) - vite-node: 2.1.2(@types/node@22.7.4) + vite-node: 2.1.8(@types/node@22.7.4) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.7.4 + '@vitest/browser': 2.1.8(@types/node@22.7.4)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4))(vitest@2.1.8) happy-dom: 15.7.4 jsdom: 25.0.1 transitivePeerDependencies: @@ -9285,6 +9806,12 @@ snapshots: - supports-color - utf-8-validate + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -9314,13 +9841,29 @@ snapshots: xxhash-wasm@1.0.2: {} + y18n@5.0.8: {} + yallist@4.0.0: optional: true yaml@2.5.1: {} + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yocto-queue@1.1.1: {} + yoctocolors-cjs@2.1.2: {} + youch@3.3.3: dependencies: cookie: 0.5.0 diff --git a/src/App.svelte b/src/App.svelte index 2f73d0b..fa21419 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -1,5 +1,5 @@