From 1f644069b8169f5d1663c0c2c94815a72b160fcc Mon Sep 17 00:00:00 2001 From: Philippe Torrel Date: Fri, 14 Aug 2026 08:50:21 +0200 Subject: [PATCH] --- 05_react/agenda.md | 1 - .../tag44/01_react-api-with-hooks/src/App.jsx | 6 +- .../jokes/ChuckNorrisJokesAdvanced.jsx | 58 + .../src/components/lists/ListTodo.jsx | 56 +- .../src/components/lists/ListUser.jsx | 33 +- .../tag44/02_react-app-with-tests/.gitignore | 24 + .../02_react-app-with-tests/.oxlintrc.json | 8 + .../tag44/02_react-app-with-tests/README.md | 16 + .../tag44/02_react-app-with-tests/index.html | 13 + .../02_react-app-with-tests/package-lock.json | 3769 +++++++++++++++++ .../02_react-app-with-tests/package.json | 34 + .../public/favicon.svg | 1 + .../02_react-app-with-tests/public/icons.svg | 24 + .../tag44/02_react-app-with-tests/src/App.jsx | 17 + .../src/assets/hero.png | Bin 0 -> 13057 bytes .../src/assets/react.svg | 1 + .../src/assets/vite.svg | 1 + .../src/components/buttons/Button.jsx | 15 + .../components/examples/ExampleComponent.jsx | 10 + .../__test__/ExampleComponent.test.jsx | 18 + .../02_react-app-with-tests/src/main.jsx | 13 + .../src/test/Button.test.jsx | 7 + .../src/test/ExampleComponent.test.jsx | 18 + .../02_react-app-with-tests/src/test/setup.js | 14 + .../02_react-app-with-tests/vite.config.js | 14 + .../img/DevOps-Marketplace-Infinity-Loop.png | Bin 0 -> 125770 bytes .../assets/img/DevOps-Tools.svg | 122 + .../tag44/03_devops-ci-cd/index.html | 18 + 28 files changed, 4292 insertions(+), 19 deletions(-) create mode 100644 05_react/unterricht/tag44/01_react-api-with-hooks/src/components/jokes/ChuckNorrisJokesAdvanced.jsx create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/.gitignore create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/.oxlintrc.json create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/README.md create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/index.html create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/package-lock.json create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/package.json create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/public/favicon.svg create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/public/icons.svg create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/App.jsx create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/assets/hero.png create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/assets/react.svg create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/assets/vite.svg create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/components/buttons/Button.jsx create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/components/examples/ExampleComponent.jsx create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/components/examples/__test__/ExampleComponent.test.jsx create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/main.jsx create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/test/Button.test.jsx create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/test/ExampleComponent.test.jsx create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/src/test/setup.js create mode 100644 05_react/unterricht/tag44/02_react-app-with-tests/vite.config.js create mode 100644 05_react/unterricht/tag44/03_devops-ci-cd/assets/img/DevOps-Marketplace-Infinity-Loop.png create mode 100644 05_react/unterricht/tag44/03_devops-ci-cd/assets/img/DevOps-Tools.svg create mode 100644 05_react/unterricht/tag44/03_devops-ci-cd/index.html diff --git a/05_react/agenda.md b/05_react/agenda.md index ecaa71e..81184ef 100644 --- a/05_react/agenda.md +++ b/05_react/agenda.md @@ -614,7 +614,6 @@ offene Übungen. --- - ### Tag 41 **Inhalt:** diff --git a/05_react/unterricht/tag44/01_react-api-with-hooks/src/App.jsx b/05_react/unterricht/tag44/01_react-api-with-hooks/src/App.jsx index 0fde633..1077d57 100644 --- a/05_react/unterricht/tag44/01_react-api-with-hooks/src/App.jsx +++ b/05_react/unterricht/tag44/01_react-api-with-hooks/src/App.jsx @@ -1,4 +1,4 @@ -import ChuckNorrisJokes from './components/jokes/ChuckNorrisJokes'; +import ChuckNorrisJokes from './components/jokes/ChuckNorrisJokesAdvanced'; import ListTodo from './components/lists/ListTodo'; import ListUser from './components/lists/ListUser'; @@ -8,9 +8,9 @@ function App(props) { return ( <>
- {/*
+
-
*/} +

API auslesen in React


diff --git a/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/jokes/ChuckNorrisJokesAdvanced.jsx b/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/jokes/ChuckNorrisJokesAdvanced.jsx new file mode 100644 index 0000000..f670f61 --- /dev/null +++ b/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/jokes/ChuckNorrisJokesAdvanced.jsx @@ -0,0 +1,58 @@ +import { useEffect, useState } from 'react'; + +const ChuckNorrisJokes = (props) => { + // const { } = props; + + const [joke, setJoke] = useState(''); + + const getJoke = async (signal) => { + await fetch('https://api.chucknorris.io/jokes/random', { + signal, + }) + .then((res) => { + if (!res.ok) { + throw new Error('HTTP-Response error'); + } + return res.json(); + }) + .then((data) => { + setJoke(data.value); + console.log('1'); + }) + .catch((err) => { + if (err.name === 'AbortError') { + console.warn('Fetch wurde abgebrochen'); + } else if (err instanceof Error) { + console.error('Error', err.message); + } + }); + }; + + useEffect(() => { + const controller = new AbortController(); + + getJoke(controller.signal); + + return () => { + controller.abort(); + }; + }, []); + + // Event-Handler =========== + + // hier wird signal nicht abgebrochen, da kein Abbruch erwünscht + const onClickJoke = () => { + getJoke(); + }; + + return ( +
+
{joke}
+ +
+ ); +}; + +export default ChuckNorrisJokes; diff --git a/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/lists/ListTodo.jsx b/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/lists/ListTodo.jsx index ff72067..07b526c 100644 --- a/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/lists/ListTodo.jsx +++ b/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/lists/ListTodo.jsx @@ -4,29 +4,63 @@ const ListTodo = (props) => { // const { } = props; const [todos, setTodos] = useState([]); + const [isLoading, setIsLoading] = useState(false); + const [error, setError] = useState(null); useEffect(() => { - fetch('https://dummyjson.com/todos/random/6') - .then((res) => res.json()) + // AbortController instanziieren (seit 2019) + const controller = new AbortController(); + + setIsLoading(true); + setError(null); + + fetch('https://dummyjson.com/todos/random/6', { + signal: controller.signal, // signal mitsenden + }) + .then((res) => { + if (!res.ok) { + throw new Error('Http-Request went wrong'); + } + return res.json(); + }) .then((data) => { setTodos(data); }) .catch((err) => { console.error(err); + if (err.name === 'AbortError') { + console.error('Fetch wurde abgebrochen'); + } else if (err instanceof Error) { + console.error(err.message); + setError(err); + } + }) + .finally(() => { + if (!controller.signal.aborted) { + setIsLoading(false); + } }); - return () => {}; + return () => { + // unmount + controller.abort(); // The abort() method of the AbortController interface aborts an asynchronous operation before it has completed. + }; }, []); return ( -
    - {todos.length > 0 && - todos.map(({ id, todo, completed, userId }, idx) => ( -
  • - {todo} -
  • - ))} -
+ <> + {!isLoading && ( +
    + {todos.length > 0 && + todos.map(({ id, todo, completed, userId }, idx) => ( +
  • + {todo} +
  • + ))} +
+ )} + {error &&
{error?.message}
} + ); }; export default ListTodo; diff --git a/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/lists/ListUser.jsx b/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/lists/ListUser.jsx index 289377a..216dfe2 100644 --- a/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/lists/ListUser.jsx +++ b/05_react/unterricht/tag44/01_react-api-with-hooks/src/components/lists/ListUser.jsx @@ -3,23 +3,48 @@ import { useEffect, useState } from 'react'; const ListUser = (props) => { // const { } = props; - const [users, setUsers] = useState([]); + const [isLoading, setIsLoading] = useState(false); + // const [error, setError] = useState(null); useEffect(() => { + const controller = new AbortController(); // 2019 + + setIsLoading(true); + axios - .get('https://dummyjson.com/users?limit=6') + .get('https://dummyjson.com/users?limit=100', { + signal: controller.signal, + }) .then(({ data }) => { console.log(data); setUsers(data?.users); }) .catch((err) => { - console.error(err); + if (axios.isCancel(err)) { + console.error('Request abgebrochen:', err.message); + } else { + console.error('Error:', err); + } + }) + .finally(() => { + // Nur wenn die Komponente nicht abgebrochen/unmounted wurde, + // den Lade-Zustand auf false setzen + if (!controller.signal.aborted) { + setIsLoading(false); + } }); - return () => {}; + return () => { + // umount + controller.abort(); + }; }, []); + if (isLoading) { + return

is loading users...

; + } + return (
    {users.length > 0 && diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/.gitignore b/05_react/unterricht/tag44/02_react-app-with-tests/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/.oxlintrc.json b/05_react/unterricht/tag44/02_react-app-with-tests/.oxlintrc.json new file mode 100644 index 0000000..1255078 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/.oxlintrc.json @@ -0,0 +1,8 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["react", "oxc"], + "rules": { + "react/rules-of-hooks": "error", + "react/only-export-components": ["warn", { "allowConstantExport": true }] + } +} diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/README.md b/05_react/unterricht/tag44/02_react-app-with-tests/README.md new file mode 100644 index 0000000..d937833 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/README.md @@ -0,0 +1,16 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some Oxlint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs) +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) + +## React Compiler + +The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). + +## Expanding the Oxlint configuration + +If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and Oxlint's TypeScript related rules in your project. diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/index.html b/05_react/unterricht/tag44/02_react-app-with-tests/index.html new file mode 100644 index 0000000..5d3eda1 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/index.html @@ -0,0 +1,13 @@ + + + + + + + 02_react-app-with-tests + + +
    + + + diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/package-lock.json b/05_react/unterricht/tag44/02_react-app-with-tests/package-lock.json new file mode 100644 index 0000000..dee9053 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/package-lock.json @@ -0,0 +1,3769 @@ +{ + "name": "02_react-app-with-tests", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "02_react-app-with-tests", + "version": "0.0.0", + "dependencies": { + "bootstrap": "^5.3.8", + "react": "^19.2.8", + "react-dom": "^19.2.8", + "react-icons": "^5.7.0" + }, + "devDependencies": { + "@testing-library/jest-dom": "^7.0.1", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^14.6.4", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", + "@vitejs/plugin-react": "^6.0.5", + "axios": "^1.19.0", + "jsdom": "^30.0.1", + "oxlint": "^1.78.0", + "sass-embedded": "^1.102.0", + "vite": "^8.2.1", + "vitest": "^4.1.10" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", + "integrity": "sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@asamuzakjp/css-color": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", + "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^3.3.0", + "@csstools/css-color-parser": "^4.1.10", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0", + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", + "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "bidi-js": "^1.0.3", + "css-tree": "^3.2.1", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.5.2" + }, + "engines": { + "node": "^22.13.0 || >=24.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, + "node_modules/@bufbuild/protobuf": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.13.0.tgz", + "integrity": "sha512-acq7c49vxfm1ggJ95P70TX7ABDM0vxr1SYD3BB0o0jnBLB4OAqeHyKuN+cD3w80gXEDQ2zxHpR6CUeA+O/aU9g==", + "dev": true, + "license": "(Apache-2.0 AND BSD-3-Clause)" + }, + "node_modules/@csstools/color-helpers": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", + "integrity": "sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@csstools/css-calc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.10.tgz", + "integrity": "sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^6.1.0", + "@csstools/css-calc": "^3.3.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@exodus/bytes": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.1.tgz", + "integrity": "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@noble/hashes": "^1.8.0 || ^2.0.0" + }, + "peerDependenciesMeta": { + "@noble/hashes": { + "optional": true + } + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@oxc-project/types": { + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxlint/binding-android-arm-eabi": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.78.0.tgz", + "integrity": "sha512-Bu819lmAfZMUHErrpe0cEWj3iaefuUODHSU8+UbXy67V/r7/7f4K3FL0NmbD85E+wiFLDYuhP8Zlv0XnVeXshw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-android-arm64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.78.0.tgz", + "integrity": "sha512-CDfxZgB61B7buRdY2FJoAYYPPXCZ1EoC1LKscnC5dg3kjobdxiconvAvvN1BmHyW4PyFT3jRLDag/BY/roSNBQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-arm64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.78.0.tgz", + "integrity": "sha512-2Y2U9Ahrz+OO0Ej88f9SJYq51/jUBp1Mc7iZu0ukrbeeZ3gpRGfzIFnoqfHDY96xr0GEfNrPUBFEy0nN5aD7HA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-x64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.78.0.tgz", + "integrity": "sha512-rpych6eJq6m9jDRypTEaPD1xysaEW5h9+xuxhGK/QhOg+/xaqPZrCrTNoIl/f3nEjuJeCEmstNDlrE9rJi/3/g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-freebsd-x64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.78.0.tgz", + "integrity": "sha512-IcMGrQT3QizkOESUJd5et+rOhVqSkNDfNik1cvrKDqIbzqx9KMtRswpFgkCuNTSwylCFLKhGUu8KmqY1ZnC0Dg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-gnueabihf": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.78.0.tgz", + "integrity": "sha512-/uLdoJ0IXE6vo/0f0LKjinQAp+re+VMaCWaNT8ENIv2EOCkSsc8SGaflXAuW0Jua2dq5+GLVWm1NQK7P3UFSNQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-musleabihf": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.78.0.tgz", + "integrity": "sha512-7xi4Wb/O8NRJhLoUXmDJMUVpNYvB5kefdhFU1Jb8rtae4QoXlTiLwI14X4YvAXVZLNZChP8m5qO9SQAlWQTbkQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.78.0.tgz", + "integrity": "sha512-4hFW0+fVXa3OIh1Y4A5SPkmvI4wuuBSrCVKzOyE7PTjhc7yEqZ1pmvEEeS5Lj/MaqvegFxXyF33N+6jkehxdyg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-musl": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.78.0.tgz", + "integrity": "sha512-oC0mvsgBJjlMijSDEhx9KuvR9zYeHXceA9MjbuXB1F8NSR78Yj2unOBrstEvTVaq+pko+kuue6DajC00eqvTdg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-ppc64-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.78.0.tgz", + "integrity": "sha512-XAllT5SUZS+ohjuZ3/5S0cwe0r7eboiuigeStCZ5DXRYx/2KVM2UvQXvAfyzXEimtQjAB7cDQ2YxDe2Zl2WNQQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.78.0.tgz", + "integrity": "sha512-trucMER/0QtecoXvc1y/UVqE3kwJipDwrx4oHfj+nNm3dq2zjP44WT0CfHNDPM3G1DXIkx/gY6lAD21NSCZVhA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-musl": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.78.0.tgz", + "integrity": "sha512-cm3O4F/HQbdzOUX5mKHqG5KDL6E5w0pnlZ+fbBy2rmLryPOowkuLagFHTopQsEIpjcaZoPOrL+BmmAytAG9HFg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-s390x-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.78.0.tgz", + "integrity": "sha512-33wRf6HqGNsybJ3qX4cGaQN2ODPxNmc1rMa0mrTmx3eFq1VzOnvQooi9bIGVYakW8a/wmqVx1mgsUm8R2xfTiw==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.78.0.tgz", + "integrity": "sha512-rRdISSYegj6VganMZ9tjRjijowfHJ09IZU01i0toBAqr6n5LEtwHq2IeS4FjW2RoskOHlb6efB26H5izYb3GEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-musl": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.78.0.tgz", + "integrity": "sha512-GmsP4rW0xTL6u5CVdcDsaN5Fbc7hBc382Wmar1kttbnwSEviM+rSINKOMQ+UQ6iH+AGwC+8gaAiwu134Tgh6Lg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-openharmony-arm64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.78.0.tgz", + "integrity": "sha512-sy9yeYuADc8a+n4TLBayzMCZiHPW78DcIFVpOXTmdKHWQeM9xe5uzkqIIZmi326D5hY9XVwacipEB1p7tQjPAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-arm64-msvc": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.78.0.tgz", + "integrity": "sha512-rjc2hF1KfMi8fZj1X/m3AmnHbdsF3rL0v6KQg0Uc880Yb2khjz+3U14sfdZ7jWTpRnN1m1NQa/TT7uU9lJWPrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-ia32-msvc": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.78.0.tgz", + "integrity": "sha512-zcuXFVrEFHIafRfkCQT8w/Xe41o07ozl/vwHq7p94vB29xVzsB0sZGYORU1jhcYKv3Lr0J3HbJ2T4fHH5rWmvA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-x64-msvc": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.78.0.tgz", + "integrity": "sha512-Sb5ocmLSuYeOuXd+CFOToGKp/gjXUEWDnvIGwhnh8aq8wY4TMmEnKnvbogSW7RdMZv77JSARduS7/gv+khYEjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-7.0.1.tgz", + "integrity": "sha512-oMDTC3oA+6CXSO2JZnvOI7CA6oVub6kij5ggk9ohwye5slmkwxYDXcPOVxgMw/RQlticjtO0C1RZkR97HgrWMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=22", + "npm": ">=6", + "yarn": ">=1" + }, + "peerDependencies": { + "@testing-library/dom": ">=10 <11", + "vitest": ">= 0.32" + }, + "peerDependenciesMeta": { + "vitest": { + "optional": true + } + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.4", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.4.tgz", + "integrity": "sha512-QCGwP6QrjypBLwyj5cuyfVamkaIEy/XGY+1VDehbtbQqOggYmTFpFOdWR5mPz14vX8vXLMVjDHlRNBcClyO9ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.5.tgz", + "integrity": "sha512-BOVzne/NL162sMdResB25mUv+vWMF5NoAjNf09TeGlE7ZpszZWSD3winycicLJw72yeVsoCn/2kOhEuCvEShMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", + "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", + "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.1.10", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", + "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", + "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.1.10", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", + "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.10", + "@vitest/utils": "4.1.10", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", + "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", + "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.10", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.19.0.tgz", + "integrity": "sha512-ht/iuYZXEjFxLH/Hkezgd7m6JKlHHXEUSneaDz8uZe1Gj5QZtCnpyDsckvAiEnT89OEbCLmnte4R4sn7P0EKFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.6", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "require-from-string": "^2.0.2" + } + }, + "node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/colorjs.io": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.7.1.tgz", + "integrity": "sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/color" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/data-urls": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz", + "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", + "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.6.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/immutable": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jsdom": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", + "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^6.0.5", + "@asamuzakjp/dom-selector": "^8.3.0", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@exodus/bytes": "^1.15.1", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^6.0.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.5.2", + "parse5": "^8.0.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^6.0.2", + "undici": "^8.9.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^17.1.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" + }, + "peerDependencies": { + "canvas": "^3.2.3" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/obug": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/oxlint": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.78.0.tgz", + "integrity": "sha512-QgQePuxIqKOzo1KSjG2EnITEeWvWnKAm77eq8nrMtf6AGoA+zyGc4PFYtDNJSD25g/ibOwfQ851hZ4/SPkMVoA==", + "dev": true, + "license": "MIT", + "bin": { + "oxlint": "bin/oxlint" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxlint/binding-android-arm-eabi": "1.78.0", + "@oxlint/binding-android-arm64": "1.78.0", + "@oxlint/binding-darwin-arm64": "1.78.0", + "@oxlint/binding-darwin-x64": "1.78.0", + "@oxlint/binding-freebsd-x64": "1.78.0", + "@oxlint/binding-linux-arm-gnueabihf": "1.78.0", + "@oxlint/binding-linux-arm-musleabihf": "1.78.0", + "@oxlint/binding-linux-arm64-gnu": "1.78.0", + "@oxlint/binding-linux-arm64-musl": "1.78.0", + "@oxlint/binding-linux-ppc64-gnu": "1.78.0", + "@oxlint/binding-linux-riscv64-gnu": "1.78.0", + "@oxlint/binding-linux-riscv64-musl": "1.78.0", + "@oxlint/binding-linux-s390x-gnu": "1.78.0", + "@oxlint/binding-linux-x64-gnu": "1.78.0", + "@oxlint/binding-linux-x64-musl": "1.78.0", + "@oxlint/binding-openharmony-arm64": "1.78.0", + "@oxlint/binding-win32-arm64-msvc": "1.78.0", + "@oxlint/binding-win32-ia32-msvc": "1.78.0", + "@oxlint/binding-win32-x64-msvc": "1.78.0" + }, + "peerDependencies": { + "oxlint-tsgolint": ">=7.0.2001", + "vite-plus": "*" + }, + "peerDependenciesMeta": { + "oxlint-tsgolint": { + "optional": true + }, + "vite-plus": { + "optional": true + } + } + }, + "node_modules/parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^8.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.8" + } + }, + "node_modules/react-icons": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.7.0.tgz", + "integrity": "sha512-LBLy340Rzqy6+/yVhZKT3B/QpP1BZaesGqasf09HPOBzRarcDIFH0WwXlXQfE7q7ipxK4MSiC5DIBWURCny6fw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rolldown": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.144.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/sass": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.102.0.tgz", + "integrity": "sha512-NSOyTnaQF7rTAEOtI2fwb386vL+akyiQLBZu8Na7hXCb+umJy0GAqlcMIaqACZ6Z1VgTBS4K9PG6B3IdjHGJsw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chokidar": "^5.0.0", + "immutable": "^5.1.5", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=20.19.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass-embedded": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.102.0.tgz", + "integrity": "sha512-7xZ7jbsGTpA+oRIJ3HKeiYy+RIrwHltIjKMdnRTAZiPpqvKzwy80zZqR532yk5bpHn1lTqWdZ6Fh4KI+GWSsKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bufbuild/protobuf": "^2.5.0", + "colorjs.io": "^0.7.0", + "immutable": "^5.1.5", + "rxjs": "^7.4.0", + "supports-color": "^8.1.1", + "sync-child-process": "^1.0.2", + "varint": "^6.0.0" + }, + "bin": { + "sass": "dist/bin/sass.js" + }, + "engines": { + "node": ">=20.19.0" + }, + "optionalDependencies": { + "sass-embedded-all-unknown": "1.102.0", + "sass-embedded-android-arm": "1.102.0", + "sass-embedded-android-arm64": "1.102.0", + "sass-embedded-android-riscv64": "1.102.0", + "sass-embedded-android-x64": "1.102.0", + "sass-embedded-darwin-arm64": "1.102.0", + "sass-embedded-darwin-x64": "1.102.0", + "sass-embedded-linux-arm": "1.102.0", + "sass-embedded-linux-arm64": "1.102.0", + "sass-embedded-linux-musl-arm": "1.102.0", + "sass-embedded-linux-musl-arm64": "1.102.0", + "sass-embedded-linux-musl-riscv64": "1.102.0", + "sass-embedded-linux-musl-x64": "1.102.0", + "sass-embedded-linux-riscv64": "1.102.0", + "sass-embedded-linux-x64": "1.102.0", + "sass-embedded-unknown-all": "1.102.0", + "sass-embedded-win32-arm64": "1.102.0", + "sass-embedded-win32-x64": "1.102.0" + } + }, + "node_modules/sass-embedded-all-unknown": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.102.0.tgz", + "integrity": "sha512-BpaRCODYILywdCOI8++Q63+/ptsnWdwYuKyD5gMH0cJblXj85EePdeTTOM7Hl2PP6d4dIojg8GS9fIZhD2x8qA==", + "cpu": [ + "!arm", + "!arm64", + "!riscv64", + "!x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "sass": "1.102.0" + } + }, + "node_modules/sass-embedded-android-arm": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.102.0.tgz", + "integrity": "sha512-QM6sPMUtUvFopVR15qXWdobSTYW/sPrXJLxa7eaIbqr/0EtNBZirEXdiOFdDNcsFIEFX3NeZjDq8ZkBAQrxR1w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-arm64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.102.0.tgz", + "integrity": "sha512-p34iJl04ksTA/6/NZNKv4Bda710hvpoUNUK6vgHKe53tTGhL5XOfYyTjX95lpKPSvGm4BlPEVSSo6CBhyNSDpw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-riscv64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.102.0.tgz", + "integrity": "sha512-wcT5N3B6fIwCKCicDcUP6Jol+e1R3WxHMGU7Swp9Ds9VV8di7HYOKIFcasT25dKJv4l17SA7x5Oum0FlRnMPkg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-x64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.102.0.tgz", + "integrity": "sha512-IF4eJmoM4uzOborahHp8D4PlCIvumr6IGEbe1XkedwE57qRdk/GENiYZjGwYUQP0uy+pfb+WfvTNhMxkD2VhJg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-arm64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.102.0.tgz", + "integrity": "sha512-txaURnQp3L/5mGgSkg6zFrI/H1BgwPxH+7fv/HMuFT1fTXGi7i5++OJNCFVPL7gFB50WFmpf02bCvgec3/gxMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-x64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.102.0.tgz", + "integrity": "sha512-KXs/y/bCVTxRy6NbgC2kK2JwmYnu4+EcDu+DVpHHIfiRgClTca++jYEqcxkthqK9ufkCgwMmrhb3tllyw5l1dw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.102.0.tgz", + "integrity": "sha512-1nqC2lrn91fjEsf6gSr/KigU15FrhUSDGWdSWowLXvNG8KbYUNRKjfypn+8u4P0SrL+R/v4VSVZguZiVVTI94A==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": "glibc", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.102.0.tgz", + "integrity": "sha512-Yg3Ga1deV+igVqjyK5gHMKbC6fdtKkVYBnzkPVbn/W2/DeActR2JFBfMwVtZJdLpNneMye3dRzOVO2QFegsTbQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": "glibc", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.102.0.tgz", + "integrity": "sha512-WULwlrLbhHsJzGBcfztoXK47VyJugcWDmLXF893+yrMj6dF4/zJP6JqootT3EmAx9JAUdAppXI6ma7aGlnV8jw==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": "musl", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.102.0.tgz", + "integrity": "sha512-UFvRNJcYFOqo0X525vXG3Buue+waoqiG58xx7J6tMHSj5K/38t+9YbbgppKGLRoKoAwZTIdW8pxPA8qBSzQC6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": "musl", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-riscv64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.102.0.tgz", + "integrity": "sha512-7EmAMt5cX0SEN/qTNHD4VBHyjJXmFMAGuNR9R4YJR/SWGj/OZJw9VWryMfzEnMgNbG6HykiIttGfr9CyNKmZbA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": "musl", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-x64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.102.0.tgz", + "integrity": "sha512-HHzU5/g/MT1edbHfDzZleKcX19l6LMGk0KhZFLy66cxQl1iRLUaL22jfGstmHOdRUmVzWF3VevjSflSGvAjr4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": "musl", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-riscv64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.102.0.tgz", + "integrity": "sha512-AUc4wHQ7IUo9/0mcZQn7Xkl1t1+NZlTF+v5i3GX93HNoQUGIFic7q6qjSERLkdwQ0dLnWrMqe8KhV98V8v0ZoA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": "glibc", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-x64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.102.0.tgz", + "integrity": "sha512-CxfhMwwbQFBCTjGysByvOw4PIOCYZ/jtz9uBU0UR5sfHtQvqqnsNyb1fVCIUsZ7piimxQAwcLV5H3Skj96QiVg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": "glibc", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-unknown-all": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.102.0.tgz", + "integrity": "sha512-qhqfvFD/7X0c6e5rwvzABkGlaYJju1G+hDPCiB0HdK+S7JF+YDDb9XpRYJ9+tGIopWzEHhoNnJDPtPs9IX1lOQ==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "!android", + "!darwin", + "!linux", + "!win32" + ], + "dependencies": { + "sass": "1.102.0" + } + }, + "node_modules/sass-embedded-win32-arm64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.102.0.tgz", + "integrity": "sha512-EQOTKStMf7ervyhe3AX10Pa6F7CQMN3IgmpBkfgjy9HQG4Iyt34zCl/4vNJLVBWLW03b7/KJacy2I9SRz26X9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-x64": { + "version": "1.102.0", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.102.0.tgz", + "integrity": "sha512-e+26mgR+O4g/m7r+WGuvygsjgZEsfgWntIOgaNhkSa9b7vVas70l2RB/SipUM4zGXQk1jX06aOEz0w0Pq1pprQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", + "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", + "dev": true, + "license": "MIT" + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/sync-child-process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", + "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sync-message-port": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/sync-message-port": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.2.0.tgz", + "integrity": "sha512-gAQ9qrUN/UCypHtGFbbe7Rc/f9bzO88IwrG8TDo/aMKAApKyD6E3W4Cm0EfhfBb6Z6SKt59tTCTfD+n1xmAvMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", + "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyrainbow": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz", + "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.10.tgz", + "integrity": "sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^7.4.10" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.10.tgz", + "integrity": "sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz", + "integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", + "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.10", + "@vitest/mocker": "4.1.10", + "@vitest/pretty-format": "4.1.10", + "@vitest/runner": "4.1.10", + "@vitest/snapshot": "4.1.10", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.10", + "@vitest/browser-preview": "4.1.10", + "@vitest/browser-webdriverio": "4.1.10", + "@vitest/coverage-istanbul": "4.1.10", + "@vitest/coverage-v8": "4.1.10", + "@vitest/ui": "4.1.10", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "vite": { + "optional": false + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", + "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20" + } + }, + "node_modules/whatwg-mimetype": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/whatwg-url": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", + "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.15.1", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, + "engines": { + "node": "^22.14.0 || >=24.0.0" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/package.json b/05_react/unterricht/tag44/02_react-app-with-tests/package.json new file mode 100644 index 0000000..44210b3 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/package.json @@ -0,0 +1,34 @@ +{ + "name": "02_react-app-with-tests", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "oxlint", + "preview": "vite preview", + "test": "vitest", + "test:watch": "vitest --watch" + }, + "dependencies": { + "bootstrap": "^5.3.8", + "react": "^19.2.8", + "react-dom": "^19.2.8", + "react-icons": "^5.7.0" + }, + "devDependencies": { + "@testing-library/jest-dom": "^7.0.1", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^14.6.4", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", + "@vitejs/plugin-react": "^6.0.5", + "axios": "^1.19.0", + "jsdom": "^30.0.1", + "oxlint": "^1.78.0", + "sass-embedded": "^1.102.0", + "vite": "^8.2.1", + "vitest": "^4.1.10" + } +} diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/public/favicon.svg b/05_react/unterricht/tag44/02_react-app-with-tests/public/favicon.svg new file mode 100644 index 0000000..6893eb1 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/public/icons.svg b/05_react/unterricht/tag44/02_react-app-with-tests/public/icons.svg new file mode 100644 index 0000000..e952219 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/App.jsx b/05_react/unterricht/tag44/02_react-app-with-tests/src/App.jsx new file mode 100644 index 0000000..e3bbd2d --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/App.jsx @@ -0,0 +1,17 @@ +import Button from './components/buttons/Button'; +import ExampleComponent from './components/examples/ExampleComponent'; + +function App(props) { + // const { } = props; + + return ( + <> +
    + +
    +
    + + ); +} +export default App; diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/assets/hero.png b/05_react/unterricht/tag44/02_react-app-with-tests/src/assets/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..02251f4b956c55af2d76fd0788124d7eee2b45eb GIT binary patch literal 13057 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 P00000NkvXXu0mjft=yBf literal 0 HcmV?d00001 diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/assets/react.svg b/05_react/unterricht/tag44/02_react-app-with-tests/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/assets/vite.svg b/05_react/unterricht/tag44/02_react-app-with-tests/src/assets/vite.svg new file mode 100644 index 0000000..5101b67 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/assets/vite.svg @@ -0,0 +1 @@ +Vite diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/components/buttons/Button.jsx b/05_react/unterricht/tag44/02_react-app-with-tests/src/components/buttons/Button.jsx new file mode 100644 index 0000000..b3a7606 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/components/buttons/Button.jsx @@ -0,0 +1,15 @@ +const Button = (props) => { + // const { } = props; + + const handleClick = (e) => { + const btn = e.currentTarget; + btn.textContent = 'Clicked'; + }; + + return ( + + ); +}; +export default Button; diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/components/examples/ExampleComponent.jsx b/05_react/unterricht/tag44/02_react-app-with-tests/src/components/examples/ExampleComponent.jsx new file mode 100644 index 0000000..0b326c7 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/components/examples/ExampleComponent.jsx @@ -0,0 +1,10 @@ +const ExampleComponent = (props) => { + // const { } = props; + + return ( + <> +

    Hello World!

    + + ); +}; +export default ExampleComponent; diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/components/examples/__test__/ExampleComponent.test.jsx b/05_react/unterricht/tag44/02_react-app-with-tests/src/components/examples/__test__/ExampleComponent.test.jsx new file mode 100644 index 0000000..735b83a --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/components/examples/__test__/ExampleComponent.test.jsx @@ -0,0 +1,18 @@ +import { render, screen } from '@testing-library/react'; +import ExampleComponent from '../ExampleComponent'; + +// import nicht notwendig ( Findet automatisch durch globale Setting statt) +import { test, expect } from 'vitest'; + +// Test Case +test('Components renders correctly and contains text "Hello World"', () => { + // AAA + // Arrange, Acting, Assert + render(); + + const element = screen.getByText(/Hello World/i); + + expect(element).toBeInTheDocument(); +}); + +// console.log(document.querySelector('p').textContent.includes('Hello World')); // => true diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/main.jsx b/05_react/unterricht/tag44/02_react-app-with-tests/src/main.jsx new file mode 100644 index 0000000..4233564 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/main.jsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import 'bootstrap'; // import von JS +import 'bootstrap/dist/css/bootstrap.min.css'; // CSS import + +import App from './App.jsx'; + +createRoot(document.getElementById('root')).render( + + + , +); diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/test/Button.test.jsx b/05_react/unterricht/tag44/02_react-app-with-tests/src/test/Button.test.jsx new file mode 100644 index 0000000..7746450 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/test/Button.test.jsx @@ -0,0 +1,7 @@ +import { test, expect } from 'vitest'; +import { render, screen, fireEvent } from '@testing-library/react'; +import Button from '../components/buttons/Button'; + +import userEvent from '@testing-library/user-event'; + +test('Button is clickable and changes text on click to "clicked"'); diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/test/ExampleComponent.test.jsx b/05_react/unterricht/tag44/02_react-app-with-tests/src/test/ExampleComponent.test.jsx new file mode 100644 index 0000000..c9315d8 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/test/ExampleComponent.test.jsx @@ -0,0 +1,18 @@ +import { render, screen } from '@testing-library/react'; +import ExampleComponent from '../components/examples/ExampleComponent'; + +// import nicht notwendig ( Findet automatisch durch globale Setting statt) +import { test, expect } from 'vitest'; + +// Test Case +test('Components renders correctly and contains text "Hello World"', () => { + // AAA + // Arrange, Acting, Assert + render(); + + const element = screen.getByText(/Hello World/i); + + expect(element).toBeInTheDocument(); +}); + +// console.log(document.querySelector('p').textContent.includes('Hello World')); // => true diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/src/test/setup.js b/05_react/unterricht/tag44/02_react-app-with-tests/src/test/setup.js new file mode 100644 index 0000000..67c151f --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/src/test/setup.js @@ -0,0 +1,14 @@ +// src/test/setup.js +import { expect, afterEach } from 'vitest'; +import { cleanup } from '@testing-library/react'; +import * as matchers from '@testing-library/jest-dom/matchers'; + +// add jest-dom matchers to expect +expect.extend(matchers); + +// Add cleanup function to run after each test +afterEach(() => { + cleanup(); +}); + +// More setup code here, if needed diff --git a/05_react/unterricht/tag44/02_react-app-with-tests/vite.config.js b/05_react/unterricht/tag44/02_react-app-with-tests/vite.config.js new file mode 100644 index 0000000..b62c959 --- /dev/null +++ b/05_react/unterricht/tag44/02_react-app-with-tests/vite.config.js @@ -0,0 +1,14 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], + test: { + // Vitest configuration + globals: true, // make the global objects available in the test environment + environment: 'jsdom', // use jsdom as the test environment + setupFiles: './src/test/setup.js', // if you have a setup file + // more options here + }, +}); diff --git a/05_react/unterricht/tag44/03_devops-ci-cd/assets/img/DevOps-Marketplace-Infinity-Loop.png b/05_react/unterricht/tag44/03_devops-ci-cd/assets/img/DevOps-Marketplace-Infinity-Loop.png new file mode 100644 index 0000000000000000000000000000000000000000..dac7254fefd58ad1496816de882119df9794ac26 GIT binary patch literal 125770 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/05_react/unterricht/tag44/03_devops-ci-cd/index.html b/05_react/unterricht/tag44/03_devops-ci-cd/index.html new file mode 100644 index 0000000..b9178ab --- /dev/null +++ b/05_react/unterricht/tag44/03_devops-ci-cd/index.html @@ -0,0 +1,18 @@ + + + + + + continuous integration (CI) oder continuous delivery (CD) + + + +
    +
    +

    continuous integration (CI) oder continuous delivery (CD)

    + + +
    +
    + +