From 7b610cee12674ed5fe20d0e746df6fcbd770f18e Mon Sep 17 00:00:00 2001 From: kingmusung Date: Mon, 26 Aug 2024 16:15:53 +0900 Subject: [PATCH 01/10] =?UTF-8?q?=EC=86=8C=EC=9B=90=20=EB=82=98=EB=AC=B4?= =?UTF-8?q?=20=EB=A9=94=EC=9D=B8=ED=8E=98=EC=9D=B4=EC=A7=80=20=ED=8D=BC?= =?UTF-8?q?=EB=B8=94=EB=A6=AC=EC=8B=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/.eslintrc.cjs | 19 + frontend/.gitignore | 24 + frontend/.prettierrc | 21 + frontend/README.md | 50 + frontend/index.html | 13 + frontend/package-lock.json | 5656 +++++++++++++++++ frontend/package.json | 37 + frontend/postcss.config.js | 6 + frontend/public/vite.svg | 1 + frontend/src/.vscode/settings.json | 4 + frontend/src/App.css | 42 + frontend/src/App.tsx | 35 + frontend/src/assets/fruit.png | Bin 0 -> 9841 bytes frontend/src/assets/fruit2.png | Bin 0 -> 31108 bytes frontend/src/assets/tree.png | Bin 0 -> 58541 bytes frontend/src/component/BackLayout.tsx | 9 + frontend/src/component/NavBar.tsx | 14 + frontend/src/component/NavBtn.tsx | 11 + .../src/component/wishadd/WishAddForm.tsx | 3 + frontend/src/component/wishall/BackLayout.tsx | 16 + frontend/src/component/wishall/ShowFruits.tsx | 7 + frontend/src/index.css | 72 + frontend/src/main.tsx | 12 + frontend/src/page/WishAddPage.tsx | 16 + frontend/src/page/WishTreePage.tsx | 18 + frontend/src/vite-env.d.ts | 1 + frontend/tailwind.config.js | 35 + frontend/tsconfig.app.json | 24 + frontend/tsconfig.json | 28 + frontend/tsconfig.node.json | 22 + frontend/vite.config.ts | 7 + react.svg | 1 + 32 files changed, 6204 insertions(+) create mode 100644 frontend/.eslintrc.cjs create mode 100644 frontend/.gitignore create mode 100644 frontend/.prettierrc create mode 100644 frontend/README.md create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/postcss.config.js create mode 100644 frontend/public/vite.svg create mode 100644 frontend/src/.vscode/settings.json create mode 100644 frontend/src/App.css create mode 100644 frontend/src/App.tsx create mode 100644 frontend/src/assets/fruit.png create mode 100644 frontend/src/assets/fruit2.png create mode 100644 frontend/src/assets/tree.png create mode 100644 frontend/src/component/BackLayout.tsx create mode 100644 frontend/src/component/NavBar.tsx create mode 100644 frontend/src/component/NavBtn.tsx create mode 100644 frontend/src/component/wishadd/WishAddForm.tsx create mode 100644 frontend/src/component/wishall/BackLayout.tsx create mode 100644 frontend/src/component/wishall/ShowFruits.tsx create mode 100644 frontend/src/index.css create mode 100644 frontend/src/main.tsx create mode 100644 frontend/src/page/WishAddPage.tsx create mode 100644 frontend/src/page/WishTreePage.tsx create mode 100644 frontend/src/vite-env.d.ts create mode 100644 frontend/tailwind.config.js create mode 100644 frontend/tsconfig.app.json create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.node.json create mode 100644 frontend/vite.config.ts create mode 100644 react.svg diff --git a/frontend/.eslintrc.cjs b/frontend/.eslintrc.cjs new file mode 100644 index 0000000..5288edb --- /dev/null +++ b/frontend/.eslintrc.cjs @@ -0,0 +1,19 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parser: '@typescript-eslint/parser', + plugins: ['react-refresh', 'prettier'], + rules: { + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + 'prettier/prettier': 'error', + }, +}; diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/frontend/.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/frontend/.prettierrc b/frontend/.prettierrc new file mode 100644 index 0000000..d7679ed --- /dev/null +++ b/frontend/.prettierrc @@ -0,0 +1,21 @@ +{ + "arrowParens": "always", + "bracketSameLine": false, + "bracketSpacing": true, + "semi": true, + "experimentalTernaries": false, + "singleQuote": true, + "jsxSingleQuote": false, + "quoteProps": "as-needed", + "trailingComma": "all", + "singleAttributePerLine": false, + "htmlWhitespaceSensitivity": "css", + "vueIndentScriptAndStyle": false, + "proseWrap": "preserve", + "insertPragma": false, + "printWidth": 80, + "requirePragma": false, + "tabWidth": 2, + "useTabs": false, + "embeddedLanguageFormatting": "auto" +} diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..1e5a46b --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}); +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react'; + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}); +``` diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..e4b78ea --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..ea10fce --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,5656 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.9.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.20", + "eslint": "^9.9.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.11", + "globals": "^15.9.0", + "postcss": "^8.4.41", + "prettier": "^3.3.3", + "tailwindcss": "^3.4.10", + "typescript": "^5.5.3", + "typescript-eslint": "^8.0.1", + "vite": "^5.4.1" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.9.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.1.tgz", + "integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", + "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz", + "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz", + "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz", + "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz", + "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz", + "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz", + "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz", + "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz", + "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz", + "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz", + "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz", + "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz", + "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz", + "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz", + "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz", + "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/core": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.18.tgz", + "integrity": "sha512-qL9v5N5S38ijmqiQRvCFUUx2vmxWT/JJ2rswElnyaHkOHuVoAFhBB90Ywj4RKjh3R0zOjhEcemENTyF3q3G6WQ==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.12" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.7.18", + "@swc/core-darwin-x64": "1.7.18", + "@swc/core-linux-arm-gnueabihf": "1.7.18", + "@swc/core-linux-arm64-gnu": "1.7.18", + "@swc/core-linux-arm64-musl": "1.7.18", + "@swc/core-linux-x64-gnu": "1.7.18", + "@swc/core-linux-x64-musl": "1.7.18", + "@swc/core-win32-arm64-msvc": "1.7.18", + "@swc/core-win32-ia32-msvc": "1.7.18", + "@swc/core-win32-x64-msvc": "1.7.18" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.18.tgz", + "integrity": "sha512-MwLc5U+VGPMZm8MjlFBjEB2wyT1EK0NNJ3tn+ps9fmxdFP+PL8EpMiY1O1F2t1ydy2OzBtZz81sycjM9RieFBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.18.tgz", + "integrity": "sha512-IkukOQUw7/14VkHp446OkYGCZEHqZg9pTmTdBawlUyz2JwZMSn2VodCl7aFSdGCsU4Cwni8zKA8CCgkCCAELhw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.18.tgz", + "integrity": "sha512-ATnb6jJaBeXCqrTUawWdoOy7eP9SCI7UMcfXlYIMxX4otKKspLPAEuGA5RaNxlCcj9ObyO0J3YGbtZ6hhD2pjg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.18.tgz", + "integrity": "sha512-poHtH7zL7lEp9K2inY90lGHJABWxURAOgWNeZqrcR5+jwIe7q5KBisysH09Zf/JNF9+6iNns+U0xgWTNJzBuGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.18.tgz", + "integrity": "sha512-qnNI1WmcOV7Wz1ZDyK6WrOlzLvJ01rnni8ec950mMHWkLRMP53QvCvhF3S+7gFplWBwWJTOOPPUqJp/PlSxWyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.18.tgz", + "integrity": "sha512-x9SCqCLzwtlqtD5At3I1a7Gco+EuXnzrJGoucmkpeQohshHuwa+cskqsXO6u1Dz0jXJEuHbBZB9va1wYYfjgFg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.18.tgz", + "integrity": "sha512-qtj8iOpMMgKjzxTv+islmEY0JBsbd93nka0gzcTTmGZxKtL5jSUsYQvkxwNPZr5M9NU1fgaR3n1vE6lFmtY0IQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.18.tgz", + "integrity": "sha512-ltX/Ol9+Qu4SXmISCeuwVgAjSa8nzHTymknpozzVMgjXUoZMoz6lcynfKL1nCh5XLgqh0XNHUKLti5YFF8LrrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.18.tgz", + "integrity": "sha512-RgTcFP3wgyxnQbTCJrlgBJmgpeTXo8t807GU9GxApAXfpLZJ3swJ2GgFUmIJVdLWyffSHF5BEkF3FmF6mtH5AQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.18.tgz", + "integrity": "sha512-XbZ0wAgzR757+DhQcnv60Y/bK9yuWPhDNRQVFFQVRsowvK3+c6EblyfUSytIidpXgyYFzlprq/9A9ZlO/wvDWw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", + "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.4", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.4.tgz", + "integrity": "sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.2.0.tgz", + "integrity": "sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.2.0", + "@typescript-eslint/type-utils": "8.2.0", + "@typescript-eslint/utils": "8.2.0", + "@typescript-eslint/visitor-keys": "8.2.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.2.0.tgz", + "integrity": "sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.2.0", + "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/typescript-estree": "8.2.0", + "@typescript-eslint/visitor-keys": "8.2.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.2.0.tgz", + "integrity": "sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/visitor-keys": "8.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.2.0.tgz", + "integrity": "sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.2.0", + "@typescript-eslint/utils": "8.2.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.2.0.tgz", + "integrity": "sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.2.0.tgz", + "integrity": "sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/visitor-keys": "8.2.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.2.0.tgz", + "integrity": "sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.2.0", + "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/typescript-estree": "8.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.2.0.tgz", + "integrity": "sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.2.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@swc/core": "^1.5.7" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "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", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001653", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz", + "integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", + "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "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-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.9.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.1.tgz", + "integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.9.1", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0-rc-fb9a90fa48-20240614", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", + "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.11.tgz", + "integrity": "sha512-wrAKxMbVr8qhXTtIKfXqAn5SAtRZt0aXxe5P23Fh4pUAdC6XEsybGLB8P0PI4j1yYqOgUEUlzKAGDfo7rJOjcw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "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/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "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-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "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.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "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.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-import/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "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/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz", + "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.21.0", + "@rollup/rollup-android-arm64": "4.21.0", + "@rollup/rollup-darwin-arm64": "4.21.0", + "@rollup/rollup-darwin-x64": "4.21.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.0", + "@rollup/rollup-linux-arm-musleabihf": "4.21.0", + "@rollup/rollup-linux-arm64-gnu": "4.21.0", + "@rollup/rollup-linux-arm64-musl": "4.21.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0", + "@rollup/rollup-linux-riscv64-gnu": "4.21.0", + "@rollup/rollup-linux-s390x-gnu": "4.21.0", + "@rollup/rollup-linux-x64-gnu": "4.21.0", + "@rollup/rollup-linux-x64-musl": "4.21.0", + "@rollup/rollup-win32-arm64-msvc": "4.21.0", + "@rollup/rollup-win32-ia32-msvc": "4.21.0", + "@rollup/rollup-win32-x64-msvc": "4.21.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", + "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.2.0.tgz", + "integrity": "sha512-DmnqaPcML0xYwUzgNbM1XaKXpEb7BShYf2P1tkUmmcl8hyeG7Pj08Er7R9bNy6AufabywzJcOybQAtnD/c9DGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.2.0", + "@typescript-eslint/parser": "8.2.0", + "@typescript-eslint/utils": "8.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.2.tgz", + "integrity": "sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.41", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "license": "MIT", + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..a0a9abf --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,37 @@ +{ + "name": "frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "TSC_COMPILE_ON_ERROR=true react-scripts build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.9.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.20", + "eslint": "^9.9.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.11", + "globals": "^15.9.0", + "postcss": "^8.4.41", + "prettier": "^3.3.3", + "tailwindcss": "^3.4.10", + "typescript": "^5.5.3", + "typescript-eslint": "^8.0.1", + "vite": "^5.4.1" + } +} diff --git a/frontend/postcss.config.js b/frontend/postcss.config.js new file mode 100644 index 0000000..2aa7205 --- /dev/null +++ b/frontend/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/frontend/public/vite.svg b/frontend/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/frontend/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/.vscode/settings.json b/frontend/src/.vscode/settings.json new file mode 100644 index 0000000..d1b4edb --- /dev/null +++ b/frontend/src/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" +} \ No newline at end of file diff --git a/frontend/src/App.css b/frontend/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/frontend/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx new file mode 100644 index 0000000..7025ee4 --- /dev/null +++ b/frontend/src/App.tsx @@ -0,0 +1,35 @@ +import { useState } from 'react'; +import reactLogo from './assets/react.svg'; +import viteLogo from '/vite.svg'; +import './App.css'; + +function App() { + const [count, setCount] = useState(0); + + return ( + <> +
+ + Vite logo + + + React logo + +
+

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ); +} + +export default App; diff --git a/frontend/src/assets/fruit.png b/frontend/src/assets/fruit.png new file mode 100644 index 0000000000000000000000000000000000000000..327cf44b5a5fcb0a1d9df2d3c8f307a3b587b764 GIT binary patch literal 9841 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

hgeW9W)}VmPLY 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 literal 0 HcmV?d00001 diff --git a/frontend/src/assets/tree.png b/frontend/src/assets/tree.png new file mode 100644 index 0000000000000000000000000000000000000000..6de8a0dfcd2a806fbefa919954611fa10dc35c23 GIT binary patch literal 58541 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 literal 0 HcmV?d00001 diff --git a/frontend/src/component/BackLayout.tsx b/frontend/src/component/BackLayout.tsx new file mode 100644 index 0000000..668b7ca --- /dev/null +++ b/frontend/src/component/BackLayout.tsx @@ -0,0 +1,9 @@ +import React from 'react'; + +import bgImg from '../../assets/tree.png'; + +const BackLayout: React.FC = ({ children }) => { + return

; +}; + +export default BackLayout; diff --git a/frontend/src/component/NavBar.tsx b/frontend/src/component/NavBar.tsx new file mode 100644 index 0000000..8bf6b1f --- /dev/null +++ b/frontend/src/component/NavBar.tsx @@ -0,0 +1,14 @@ +import react from '@vitejs/plugin-react-swc'; + +const NavBar: React.FC = ({ children }) => { + return ( +
+

+ Techeer Tree +

+ {children} +
+ ); +}; + +export default NavBar; diff --git a/frontend/src/component/NavBtn.tsx b/frontend/src/component/NavBtn.tsx new file mode 100644 index 0000000..dea2bd7 --- /dev/null +++ b/frontend/src/component/NavBtn.tsx @@ -0,0 +1,11 @@ +import react from '@vitejs/plugin-react-swc'; + +const NavBtn: React.FC = ({ onClick, buttonText, addClassName }) => { + return ( + + ); +}; + +export default NavBtn; diff --git a/frontend/src/component/wishadd/WishAddForm.tsx b/frontend/src/component/wishadd/WishAddForm.tsx new file mode 100644 index 0000000..93e2c4f --- /dev/null +++ b/frontend/src/component/wishadd/WishAddForm.tsx @@ -0,0 +1,3 @@ +import react from '@vitejs/plugin-react-swc'; + +const WishAddForm: React.FC = () => {}; diff --git a/frontend/src/component/wishall/BackLayout.tsx b/frontend/src/component/wishall/BackLayout.tsx new file mode 100644 index 0000000..9fca81e --- /dev/null +++ b/frontend/src/component/wishall/BackLayout.tsx @@ -0,0 +1,16 @@ +import React from 'react'; + +import bgImg from '../../assets/tree.png'; + +const BackLayout: React.FC = ({ children }) => { + return ( +
+ {children} +
+ ); +}; + +export default BackLayout; diff --git a/frontend/src/component/wishall/ShowFruits.tsx b/frontend/src/component/wishall/ShowFruits.tsx new file mode 100644 index 0000000..33bc648 --- /dev/null +++ b/frontend/src/component/wishall/ShowFruits.tsx @@ -0,0 +1,7 @@ +import react from '@vitejs/plugin-react-swc'; + +const ShowFruit: React.FC = () => { + return
asd
; +}; + +export default ShowFruit; diff --git a/frontend/src/index.css b/frontend/src/index.css new file mode 100644 index 0000000..1347662 --- /dev/null +++ b/frontend/src/index.css @@ -0,0 +1,72 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: #213547; + background-color: #ffffff; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + width: 100vw; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #f9f9f9; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx new file mode 100644 index 0000000..a9e93d7 --- /dev/null +++ b/frontend/src/main.tsx @@ -0,0 +1,12 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; +import './index.css'; +import WishTreePage from './page/WishTreePage.tsx'; +import WishAddPage from './page/WishAddPage.tsx'; + +createRoot(document.getElementById('root')!).render( + + {/* */} + + , +); diff --git a/frontend/src/page/WishAddPage.tsx b/frontend/src/page/WishAddPage.tsx new file mode 100644 index 0000000..9b0cdc6 --- /dev/null +++ b/frontend/src/page/WishAddPage.tsx @@ -0,0 +1,16 @@ +import react from '@vitejs/plugin-react-swc'; +import NavBar from '../component/NavBar'; +import NavBtn from '../component/NavBtn'; +import BackLayout from '../component/BackLayout'; + +const WishAddPage: React.FC = () => { + return ( + + + + + + ); +}; + +export default WishAddPage; diff --git a/frontend/src/page/WishTreePage.tsx b/frontend/src/page/WishTreePage.tsx new file mode 100644 index 0000000..5af4e94 --- /dev/null +++ b/frontend/src/page/WishTreePage.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import BackLayout from '../component/wishall/BackLayout'; +import NavBar from '../component/NavBar'; +import NavBtn from '../component/NavBtn'; +import ShowFruit from '../component/wishall/ShowFruits'; + +const WishTreePage: React.FC = () => { + return ( + + + + + {/* */} + + ); +}; + +export default WishTreePage; diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/frontend/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js new file mode 100644 index 0000000..1c5f0fb --- /dev/null +++ b/frontend/tailwind.config.js @@ -0,0 +1,35 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'], + theme: { + extend: {}, + }, + plugins: [ + function ({ addUtilities }) { + addUtilities({ + '.scrollbar-hide': { + 'scrollbar-width': 'none', + '&::-webkit-scrollbar': { + display: 'none', + }, + }, + '.scrollbar-custom': { + '&::-webkit-scrollbar': { + width: '5px', + height: '5px', + }, + '&::-webkit-scrollbar-track': { + background: '#f1f1f1', + }, + '&::-webkit-scrollbar-thumb': { + background: '#888', + borderRadius: '6px', + }, + '&::-webkit-scrollbar-thumb:hover': { + background: '#555', + }, + }, + }); + }, + ], +}; diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json new file mode 100644 index 0000000..f0a2350 --- /dev/null +++ b/frontend/tsconfig.app.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000..e1b8223 --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "allowJs": false, + + /* Linting */ + "strict": false, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": false, + "strictNullChecks": false + }, + "include": ["src", "vite.config.ts", "node_modules/vite/client"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json new file mode 100644 index 0000000..0d3d714 --- /dev/null +++ b/frontend/tsconfig.node.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 0000000..e214f89 --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react-swc'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/react.svg b/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/react.svg @@ -0,0 +1 @@ + \ No newline at end of file From db6291353c13eb248e4c967e498da598b20ff4a9 Mon Sep 17 00:00:00 2001 From: kingmusung Date: Mon, 26 Aug 2024 16:44:27 +0900 Subject: [PATCH 02/10] =?UTF-8?q?=EC=86=8C=EC=9B=90=EC=97=B4=EB=A7=A4=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=ED=95=98=EA=B8=B0=20=ED=8D=BC=EB=B8=94?= =?UTF-8?q?=EB=A6=AC=EC=8B=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/component/wishadd/WishAddForm.tsx | 38 ++++++++++++++++++- frontend/src/page/WishAddPage.tsx | 4 +- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/frontend/src/component/wishadd/WishAddForm.tsx b/frontend/src/component/wishadd/WishAddForm.tsx index 93e2c4f..693a660 100644 --- a/frontend/src/component/wishadd/WishAddForm.tsx +++ b/frontend/src/component/wishadd/WishAddForm.tsx @@ -1,3 +1,39 @@ import react from '@vitejs/plugin-react-swc'; -const WishAddForm: React.FC = () => {}; +const WishAddForm: React.FC = () => { + return ( + <> +
+
+ 소원제목 + +
+
+ 소원제목 + +
+
+ 소원제목 + +
+
+ + + ); +}; + +export default WishAddForm; diff --git a/frontend/src/page/WishAddPage.tsx b/frontend/src/page/WishAddPage.tsx index 9b0cdc6..a062cf2 100644 --- a/frontend/src/page/WishAddPage.tsx +++ b/frontend/src/page/WishAddPage.tsx @@ -2,13 +2,15 @@ import react from '@vitejs/plugin-react-swc'; import NavBar from '../component/NavBar'; import NavBtn from '../component/NavBtn'; import BackLayout from '../component/BackLayout'; +import WishAddForm from '../component/wishadd/WishAddForm'; const WishAddPage: React.FC = () => { return ( - + + ); }; From 4e8c45afacda07a66664391860a698dfb42a8b21 Mon Sep 17 00:00:00 2001 From: kingmusung Date: Mon, 26 Aug 2024 17:11:00 +0900 Subject: [PATCH 03/10] =?UTF-8?q?=EC=86=8C=EC=9B=90=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=ED=8D=BC=EB=B8=94=EB=A6=AC=EC=8B=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/assets/fruit2.png | Bin 31108 -> 52150 bytes frontend/src/component/wishget/Backlayout.tsx | 16 ++++++++++++++ frontend/src/main.tsx | 4 +++- frontend/src/page/WishGetPage.tsx | 20 ++++++++++++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 frontend/src/component/wishget/Backlayout.tsx create mode 100644 frontend/src/page/WishGetPage.tsx diff --git a/frontend/src/assets/fruit2.png b/frontend/src/assets/fruit2.png index 94550f0bb8dd56593a96b34c327f6bf3c989029e..395fe63ac5d7f83537eaa16b0d7c0c90ea84749b 100644 GIT binary patch literal 52150 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

y4`2IGsVz>M10XKgCRb;&vMnf-8pjJ)I^ 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 literal 31108 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

hgeW9W)}VmPLY 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 diff --git a/frontend/src/component/wishget/Backlayout.tsx b/frontend/src/component/wishget/Backlayout.tsx new file mode 100644 index 0000000..ea9b208 --- /dev/null +++ b/frontend/src/component/wishget/Backlayout.tsx @@ -0,0 +1,16 @@ +import React from 'react'; + +import bgImg from '../../assets/fruit2.png'; + +const BackLayout: React.FC = ({ children }) => { + return ( +

+ {children} +
+ ); +}; + +export default BackLayout; diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index a9e93d7..4a0e7cf 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -3,10 +3,12 @@ import { createRoot } from 'react-dom/client'; import './index.css'; import WishTreePage from './page/WishTreePage.tsx'; import WishAddPage from './page/WishAddPage.tsx'; +import WishGetPage from './page/WishGetPage.tsx'; createRoot(document.getElementById('root')!).render( {/* */} - + {/* */} + , ); diff --git a/frontend/src/page/WishGetPage.tsx b/frontend/src/page/WishGetPage.tsx new file mode 100644 index 0000000..ed44026 --- /dev/null +++ b/frontend/src/page/WishGetPage.tsx @@ -0,0 +1,20 @@ +import react from '@vitejs/plugin-react-swc'; +import BackLayout from '../component/wishget/Backlayout'; +import NavBar from '../component/NavBar'; + +const WishGetPage: React.FC = () => { + return ( + + +
+

취업 잘 되게 해주세요

+

진로

+

+ ㅁㄴ엄ㄴ어ㅏ안머아ㅓㅁ너ㅏㅁㄴ어ㅏㅇㄴ마ㅓdd,ld +

+
+
+ ); +}; + +export default WishGetPage; From a7e9615c000396d701eb1cd87429ff73945e672e Mon Sep 17 00:00:00 2001 From: kingmusung Date: Mon, 26 Aug 2024 17:39:29 +0900 Subject: [PATCH 04/10] =?UTF-8?q?=EC=86=8C=EC=9B=90=EC=8A=B9=EC=9D=B8=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=ED=8D=BC=EB=B8=94=EB=A6=AC?= =?UTF-8?q?=EC=8B=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/wishconfirm/WishConfirmList.tsx | 13 +++++++++++ frontend/src/main.tsx | 4 +++- frontend/src/page/WishConfirmPage.tsx | 23 +++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 frontend/src/component/wishconfirm/WishConfirmList.tsx create mode 100644 frontend/src/page/WishConfirmPage.tsx diff --git a/frontend/src/component/wishconfirm/WishConfirmList.tsx b/frontend/src/component/wishconfirm/WishConfirmList.tsx new file mode 100644 index 0000000..01d7154 --- /dev/null +++ b/frontend/src/component/wishconfirm/WishConfirmList.tsx @@ -0,0 +1,13 @@ +import react from '@vitejs/plugin-react-swc'; + +const WishConfirmList: React.FC = () => { + return ( +
+
+ + +
+ ); +}; + +export default WishConfirmList; diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index 4a0e7cf..76b4508 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -4,11 +4,13 @@ import './index.css'; import WishTreePage from './page/WishTreePage.tsx'; import WishAddPage from './page/WishAddPage.tsx'; import WishGetPage from './page/WishGetPage.tsx'; +import WishConfirmPage from './page/WishConfirmPage.tsx'; createRoot(document.getElementById('root')!).render( {/* */} {/* */} - + {/* */} + , ); diff --git a/frontend/src/page/WishConfirmPage.tsx b/frontend/src/page/WishConfirmPage.tsx new file mode 100644 index 0000000..7b6c3ad --- /dev/null +++ b/frontend/src/page/WishConfirmPage.tsx @@ -0,0 +1,23 @@ +import react from '@vitejs/plugin-react-swc'; +import BackLayout from '../component/BackLayout'; +import NavBar from '../component/NavBar'; +import NavBtn from '../component/NavBtn'; +import WishConfirmList from '../component/wishconfirm/WishConfirmList'; + +const WishConfirmPage: React.FC = () => { + return ( + + + + +
+

소원열매 승인

+ + + + +
+
+ ); +}; +export default WishConfirmPage; From 512d703a976cd624fa31ca0c0a3a230a5a0fc921 Mon Sep 17 00:00:00 2001 From: kingmusung Date: Mon, 26 Aug 2024 17:47:46 +0900 Subject: [PATCH 05/10] =?UTF-8?q?=EB=9D=BC=EC=9A=B0=ED=84=B0=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/package-lock.json | 44 +++++++++++++++++++++++++++++++++++++- frontend/package.json | 3 ++- frontend/src/main.tsx | 21 +++++++++++------- 3 files changed, 58 insertions(+), 10 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index ea10fce..eb174d7 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,7 +9,8 @@ "version": "0.0.0", "dependencies": { "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-router-dom": "^6.26.1" }, "devDependencies": { "@eslint/js": "^9.9.0", @@ -725,6 +726,15 @@ "node": ">=14" } }, + "node_modules/@remix-run/router": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.1.tgz", + "integrity": "sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.21.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", @@ -4465,6 +4475,38 @@ "dev": true, "license": "MIT" }, + "node_modules/react-router": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.1.tgz", + "integrity": "sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.19.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.1.tgz", + "integrity": "sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.19.1", + "react-router": "6.26.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index a0a9abf..12ff578 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,7 +11,8 @@ }, "dependencies": { "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-router-dom": "^6.26.1" }, "devDependencies": { "@eslint/js": "^9.9.0", diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index 76b4508..c102311 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -1,16 +1,21 @@ import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; +import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import './index.css'; -import WishTreePage from './page/WishTreePage.tsx'; -import WishAddPage from './page/WishAddPage.tsx'; -import WishGetPage from './page/WishGetPage.tsx'; -import WishConfirmPage from './page/WishConfirmPage.tsx'; +import WishTreePage from './page/WishTreePage'; +import WishAddPage from './page/WishAddPage'; +import WishGetPage from './page/WishGetPage'; +import WishConfirmPage from './page/WishConfirmPage'; createRoot(document.getElementById('root')!).render( - {/* */} - {/* */} - {/* */} - + + + } /> {/* 기본 경로 */} + } /> + } /> + } /> + + , ); From 62302a2b798bc93529bbfea884982b594116727f Mon Sep 17 00:00:00 2001 From: kingmusung Date: Mon, 26 Aug 2024 19:56:52 +0900 Subject: [PATCH 06/10] =?UTF-8?q?=EC=86=8C=EC=9B=90=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=20api=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes frontend/package-lock.json | 100 ++++++++++++++++++ frontend/package.json | 1 + .../src/component/wishadd/WishAddForm.tsx | 52 ++++++++- frontend/src/interface/Wish.ts | 5 + frontend/src/page/WishGetPage.tsx | 1 + frontend/src/service/WishService.ts | 23 ++++ 7 files changed, 179 insertions(+), 3 deletions(-) create mode 100644 .DS_Store create mode 100644 frontend/src/interface/Wish.ts create mode 100644 frontend/src/service/WishService.ts diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0= 0.8" + } + }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -2144,6 +2174,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -2791,6 +2830,26 @@ "dev": true, "license": "ISC" }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -2818,6 +2877,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -3810,6 +3883,27 @@ "node": ">=8.6" } }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4412,6 +4506,12 @@ "react-is": "^16.13.1" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 12ff578..f6bf185 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,6 +10,7 @@ "preview": "vite preview" }, "dependencies": { + "axios": "^1.7.5", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.26.1" diff --git a/frontend/src/component/wishadd/WishAddForm.tsx b/frontend/src/component/wishadd/WishAddForm.tsx index 693a660..db77c46 100644 --- a/frontend/src/component/wishadd/WishAddForm.tsx +++ b/frontend/src/component/wishadd/WishAddForm.tsx @@ -1,12 +1,50 @@ import react from '@vitejs/plugin-react-swc'; +import axios from 'axios'; +import { useState } from 'react'; +import { CreatedWish } from '../../interface/Wish'; +import { createWish } from '../../service/WishService'; const WishAddForm: React.FC = () => { + const [category, setCategory] = useState(''); + const [title, setTitle] = useState(''); + const [content, setContent] = useState(''); + + const handleTitle = (event: React.ChangeEvent) => { + setTitle(event.target.value); + }; + + const HandleContent = (event: React.ChangeEvent) => { + setContent(event.target.value); + }; + const handleCategory = (event: React.ChangeEvent) => { + setCategory(event.target.value); + }; + const handleValueTest = () => { + console.log(title); + console.log(category); + console.log(content); + }; + + const handleSubmitWish = async () => { + const wish: CreatedWish = { + title: title, + category: category, + content: content, + }; + + const response = await createWish(wish); + console.log(response); + }; + return ( <>
소원제목 - +
소원제목 @@ -14,6 +52,7 @@ const WishAddForm: React.FC = () => { className="w-[30%] h-[50px] bg-white border-2 border-silver-200" id="category" name="category" + onChange={handleCategory} > @@ -26,10 +65,17 @@ const WishAddForm: React.FC = () => {
소원제목 - +
- diff --git a/frontend/src/interface/Wish.ts b/frontend/src/interface/Wish.ts new file mode 100644 index 0000000..da408a9 --- /dev/null +++ b/frontend/src/interface/Wish.ts @@ -0,0 +1,5 @@ +export interface CreatedWish { + title: String; + content: String; + category: String; +} diff --git a/frontend/src/page/WishGetPage.tsx b/frontend/src/page/WishGetPage.tsx index ed44026..03b74f2 100644 --- a/frontend/src/page/WishGetPage.tsx +++ b/frontend/src/page/WishGetPage.tsx @@ -1,6 +1,7 @@ import react from '@vitejs/plugin-react-swc'; import BackLayout from '../component/wishget/Backlayout'; import NavBar from '../component/NavBar'; +import { useState } from 'react'; const WishGetPage: React.FC = () => { return ( diff --git a/frontend/src/service/WishService.ts b/frontend/src/service/WishService.ts new file mode 100644 index 0000000..858e996 --- /dev/null +++ b/frontend/src/service/WishService.ts @@ -0,0 +1,23 @@ +import axios from 'axios'; +import { CreatedWish } from '../interface/Wish'; + +export const createWish = (wish: CreatedWish) => { + try { + const response = axios.post( + 'http://localhost:8080/api/v1/wish/create', + wish, + { + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + }, + ); + return response; + } catch (error) { + console.log( + '소원을 저장하는 도중 오류가 발생하였습니다 ERROR ::: => ', + error, + ); + } +}; From 1e10887360b800950c893278c68c1d9735e8d5a2 Mon Sep 17 00:00:00 2001 From: kingmusung Date: Mon, 26 Aug 2024 21:59:15 +0900 Subject: [PATCH 07/10] =?UTF-8?q?wishList=20=EC=A1=B0=ED=9A=8C=20api?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/package-lock.json | 46 +++++++++++++++++-- frontend/package.json | 3 +- frontend/src/component/wishall/ShowFruits.tsx | 26 +++++++++-- frontend/src/interface/Wish.ts | 9 ++++ frontend/src/page/WishTreePage.tsx | 38 ++++++++++++++- frontend/src/service/WishService.ts | 2 + frontend/src/store.ts | 20 ++++++++ 7 files changed, 134 insertions(+), 10 deletions(-) create mode 100644 frontend/src/store.ts diff --git a/frontend/package-lock.json b/frontend/package-lock.json index d11dec8..0b000dc 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -11,7 +11,8 @@ "axios": "^1.7.5", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^6.26.1" + "react-router-dom": "^6.26.1", + "zustand": "^4.5.5" }, "devDependencies": { "@eslint/js": "^9.9.0", @@ -1197,14 +1198,14 @@ "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@types/react": { "version": "18.3.4", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.4.tgz", "integrity": "sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -2056,7 +2057,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/data-view-buffer": { @@ -5491,6 +5492,15 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -5793,6 +5803,34 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zustand": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz", + "integrity": "sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "1.2.2" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } } } } diff --git a/frontend/package.json b/frontend/package.json index f6bf185..3cd6359 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,7 +13,8 @@ "axios": "^1.7.5", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^6.26.1" + "react-router-dom": "^6.26.1", + "zustand": "^4.5.5" }, "devDependencies": { "@eslint/js": "^9.9.0", diff --git a/frontend/src/component/wishall/ShowFruits.tsx b/frontend/src/component/wishall/ShowFruits.tsx index 33bc648..a46f186 100644 --- a/frontend/src/component/wishall/ShowFruits.tsx +++ b/frontend/src/component/wishall/ShowFruits.tsx @@ -1,7 +1,27 @@ -import react from '@vitejs/plugin-react-swc'; +import React from 'react'; +import fruitImg from '../../assets/fruit.png'; -const ShowFruit: React.FC = () => { - return
asd
; +// Props 타입 정의 +interface ShowFruitProps { + wishTitle: string; + onClick: (id: number) => void; + wishId: number; +} + +const ShowFruit: React.FC = ({ + wishTitle, + onClick, + wishId, +}) => { + return ( +
onClick(wishId)} // 수정된 부분 + className="w-[300px] h-[350px] flex flex-col justify-center items-center bg-blue-200" + > + Fruit +

{wishTitle}

+
+ ); }; export default ShowFruit; diff --git a/frontend/src/interface/Wish.ts b/frontend/src/interface/Wish.ts index da408a9..b4087f4 100644 --- a/frontend/src/interface/Wish.ts +++ b/frontend/src/interface/Wish.ts @@ -1,5 +1,14 @@ export interface CreatedWish { + //wish 생성시 필요한 인터페이스 title: String; content: String; category: String; } + +export interface GotWish { + wishId: number; + title: String; + content: String; + category: String; + is_confirmed: boolean; // 승인여부 확인 +} diff --git a/frontend/src/page/WishTreePage.tsx b/frontend/src/page/WishTreePage.tsx index 5af4e94..3e856a8 100644 --- a/frontend/src/page/WishTreePage.tsx +++ b/frontend/src/page/WishTreePage.tsx @@ -1,16 +1,50 @@ -import React from 'react'; +import React, { useEffect, useState } from 'react'; import BackLayout from '../component/wishall/BackLayout'; import NavBar from '../component/NavBar'; import NavBtn from '../component/NavBtn'; import ShowFruit from '../component/wishall/ShowFruits'; +import axios from 'axios'; +import useWishStore from '../store'; const WishTreePage: React.FC = () => { + const [title, setTitle] = useState(''); + const { wishList, findByWish, setWishList } = useWishStore(); + const [state, setState] = useState(1); + const handleShowWish = async () => { + const response = await axios.get('http://localhost:8080/api/v1/wish/list'); + setWishList(response.data); + console.log(response.data[0].wishId); + }; + const handleTest = () => { + console.log(findByWish(1)); + }; + const handleClickWish = (id: number) => { + setState(id); + console.log(id); + }; + useEffect(() => { + //랜더링 시 모든 리스트 요청 + handleShowWish(); + }, []); + useEffect(() => { + console.log(state); + }, [state]); return ( - {/* */} +
+ {wishList.map((wish, index) => ( + + ))} +
+
); }; diff --git a/frontend/src/service/WishService.ts b/frontend/src/service/WishService.ts index 858e996..976121a 100644 --- a/frontend/src/service/WishService.ts +++ b/frontend/src/service/WishService.ts @@ -21,3 +21,5 @@ export const createWish = (wish: CreatedWish) => { ); } }; + +export const getAllWish = () => {}; diff --git a/frontend/src/store.ts b/frontend/src/store.ts new file mode 100644 index 0000000..209cde7 --- /dev/null +++ b/frontend/src/store.ts @@ -0,0 +1,20 @@ +import { create } from 'zustand'; +import { GotWish } from './interface/Wish'; + +interface WishStore { + wishList: GotWish[]; + findByWish: (id: number) => GotWish | undefined; + setWishList: (wishes: GotWish[]) => void; +} + +const useWishStore = create((set, get) => ({ + wishList: [], + findByWish: (id) => { + return get().wishList.find((wish) => (wish.wishId = id)); + }, + setWishList: (wishes: GotWish[]) => { + set({ wishList: wishes }); + }, +})); + +export default useWishStore; From fd7ae4b9c3f2b9b867fae55cb9fbf520fe910842 Mon Sep 17 00:00:00 2001 From: kingmusung Date: Tue, 27 Aug 2024 00:55:45 +0900 Subject: [PATCH 08/10] =?UTF-8?q?=EC=86=8C=EC=9B=90=EC=97=B4=EB=A7=A4=20?= =?UTF-8?q?=EB=8B=A8=EC=9D=BC=EC=A1=B0=ED=9A=8C=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/component/wishall/ShowFruits.tsx | 2 +- frontend/src/page/WishGetPage.tsx | 25 +++++--- frontend/src/page/WishTreePage.tsx | 58 +++++++++++++------ frontend/src/store.ts | 15 ++++- 4 files changed, 72 insertions(+), 28 deletions(-) diff --git a/frontend/src/component/wishall/ShowFruits.tsx b/frontend/src/component/wishall/ShowFruits.tsx index a46f186..b97fcc1 100644 --- a/frontend/src/component/wishall/ShowFruits.tsx +++ b/frontend/src/component/wishall/ShowFruits.tsx @@ -16,7 +16,7 @@ const ShowFruit: React.FC = ({ return (
onClick(wishId)} // 수정된 부분 - className="w-[300px] h-[350px] flex flex-col justify-center items-center bg-blue-200" + className="w-[300px] h-[350px] flex flex-col justify-center items-center" > Fruit

{wishTitle}

diff --git a/frontend/src/page/WishGetPage.tsx b/frontend/src/page/WishGetPage.tsx index 03b74f2..54d7189 100644 --- a/frontend/src/page/WishGetPage.tsx +++ b/frontend/src/page/WishGetPage.tsx @@ -1,18 +1,29 @@ -import react from '@vitejs/plugin-react-swc'; +import React, { useEffect, useState } from 'react'; import BackLayout from '../component/wishget/Backlayout'; import NavBar from '../component/NavBar'; -import { useState } from 'react'; +import useWishStore from '../store'; +import { GotWish } from '../interface/Wish'; +import axios from 'axios'; const WishGetPage: React.FC = () => { + const [wish, setWish] = useState(); + const { wishId } = useWishStore(); + const getWish = async (id: number) => { + const response = await axios.get(`http://localhost:8080/api/v1/wish/${id}`); + console.log(response.data); + setWish(response.data); + }; + useEffect(() => { + getWish(wishId); + }, []); return (
-

취업 잘 되게 해주세요

-

진로

-

- ㅁㄴ엄ㄴ어ㅏ안머아ㅓㅁ너ㅏㅁㄴ어ㅏㅇㄴ마ㅓdd,ld -

+ {/* 조건부 렌더링으로 undefined 예외 처리 */} +

{wish?.title}

+

{wish?.category}

+

{wish?.content}

); diff --git a/frontend/src/page/WishTreePage.tsx b/frontend/src/page/WishTreePage.tsx index 3e856a8..781b29d 100644 --- a/frontend/src/page/WishTreePage.tsx +++ b/frontend/src/page/WishTreePage.tsx @@ -5,44 +5,64 @@ import NavBtn from '../component/NavBtn'; import ShowFruit from '../component/wishall/ShowFruits'; import axios from 'axios'; import useWishStore from '../store'; +import { useNavigate } from 'react-router-dom'; const WishTreePage: React.FC = () => { - const [title, setTitle] = useState(''); - const { wishList, findByWish, setWishList } = useWishStore(); - const [state, setState] = useState(1); + const navigate = useNavigate(); + const { wishList, findByWish, setWishList, wishId, setWishId, resetAll } = + useWishStore(); + const [state, setState] = useState(false); + const handleShowWish = async () => { const response = await axios.get('http://localhost:8080/api/v1/wish/list'); setWishList(response.data); - console.log(response.data[0].wishId); }; + const handleTest = () => { console.log(findByWish(1)); }; + const handleClickWish = (id: number) => { - setState(id); - console.log(id); + setWishId(id); + setState(true); }; + useEffect(() => { - //랜더링 시 모든 리스트 요청 + resetAll(); handleShowWish(); - }, []); + }, [resetAll]); + useEffect(() => { - console.log(state); - }, [state]); + if (state) { + navigate('/get'); + } + }, [state, navigate]); + return ( - +
+ + +
- {wishList.map((wish, index) => ( - - ))} + {wishList.map((wish) => + wish.is_confirmed ? ( + + ) : null, + )}
diff --git a/frontend/src/store.ts b/frontend/src/store.ts index 209cde7..030280e 100644 --- a/frontend/src/store.ts +++ b/frontend/src/store.ts @@ -2,12 +2,19 @@ import { create } from 'zustand'; import { GotWish } from './interface/Wish'; interface WishStore { + wishId: number; wishList: GotWish[]; findByWish: (id: number) => GotWish | undefined; setWishList: (wishes: GotWish[]) => void; + setWishId: (wishId: number) => void; + resetAll: () => void; } - +const initialState = { + wishId: 0, + wishList: [] as GotWish[], // TypeScript에서 타입 명시 +}; const useWishStore = create((set, get) => ({ + wishId: 0, wishList: [], findByWish: (id) => { return get().wishList.find((wish) => (wish.wishId = id)); @@ -15,6 +22,12 @@ const useWishStore = create((set, get) => ({ setWishList: (wishes: GotWish[]) => { set({ wishList: wishes }); }, + setWishId: (wishId: number) => { + set({ wishId }); + }, + resetAll: () => { + set(initialState); // 상태를 초기 상태로 재설정 + }, })); export default useWishStore; From e59d438ca7858a7b6da0dade2b30d27b9a1af902 Mon Sep 17 00:00:00 2001 From: kingmusung Date: Tue, 27 Aug 2024 01:48:49 +0900 Subject: [PATCH 09/10] =?UTF-8?q?=EC=86=8C=EC=9B=90=EC=97=B4=EB=A7=A4=20?= =?UTF-8?q?=EC=8A=B9=EC=9D=B8=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/authoritystore.ts | 16 +++++++ .../component/wishconfirm/WishConfirmList.tsx | 30 ++++++++++--- frontend/src/interface/Wish.ts | 2 +- frontend/src/page/WishConfirmPage.tsx | 45 ++++++++++++++++--- frontend/src/page/WishGetPage.tsx | 2 +- frontend/src/page/WishTreePage.tsx | 24 ++++++++-- frontend/src/{store.ts => wishstore.ts} | 0 7 files changed, 103 insertions(+), 16 deletions(-) create mode 100644 frontend/src/authoritystore.ts rename frontend/src/{store.ts => wishstore.ts} (100%) diff --git a/frontend/src/authoritystore.ts b/frontend/src/authoritystore.ts new file mode 100644 index 0000000..04b6176 --- /dev/null +++ b/frontend/src/authoritystore.ts @@ -0,0 +1,16 @@ +import { create } from 'zustand'; + +interface AuthorityStore { + authority: boolean; + setAuthority: () => void; +} + +const useAuthorityStore = create((set, get) => ({ + authority: false, + setAuthority: () => { + const state = get(); + set({ authority: !state.authority }); // 상태를 반전시킵니다. + }, +})); + +export default useAuthorityStore; diff --git a/frontend/src/component/wishconfirm/WishConfirmList.tsx b/frontend/src/component/wishconfirm/WishConfirmList.tsx index 01d7154..8207828 100644 --- a/frontend/src/component/wishconfirm/WishConfirmList.tsx +++ b/frontend/src/component/wishconfirm/WishConfirmList.tsx @@ -1,11 +1,31 @@ -import react from '@vitejs/plugin-react-swc'; +import React from 'react'; -const WishConfirmList: React.FC = () => { +interface WishConfirmListProps { + onDecision: (isConfirmed: boolean) => void; // 승인/거절 결정 핸들러 + title: string; +} + +const WishConfirmList: React.FC = ({ + onDecision, + title, +}) => { return (
-
- - +
+ {title} +
+ +
); }; diff --git a/frontend/src/interface/Wish.ts b/frontend/src/interface/Wish.ts index b4087f4..02031ea 100644 --- a/frontend/src/interface/Wish.ts +++ b/frontend/src/interface/Wish.ts @@ -10,5 +10,5 @@ export interface GotWish { title: String; content: String; category: String; - is_confirmed: boolean; // 승인여부 확인 + isConfirmed: boolean; // 승인여부 확인 } diff --git a/frontend/src/page/WishConfirmPage.tsx b/frontend/src/page/WishConfirmPage.tsx index 7b6c3ad..ff8def5 100644 --- a/frontend/src/page/WishConfirmPage.tsx +++ b/frontend/src/page/WishConfirmPage.tsx @@ -1,23 +1,56 @@ -import react from '@vitejs/plugin-react-swc'; +import React, { useEffect } from 'react'; import BackLayout from '../component/BackLayout'; import NavBar from '../component/NavBar'; import NavBtn from '../component/NavBtn'; import WishConfirmList from '../component/wishconfirm/WishConfirmList'; +import useWishStore from '../wishstore'; +import axios from 'axios'; const WishConfirmPage: React.FC = () => { + const { wishList } = useWishStore(); // wishList를 가져옵니다. + + // 소원을 승인하는 함수 + const handleConfirm = async (wishId: number, confirm: boolean) => { + try { + const response = await axios.patch( + `http://localhost:8080/api/v1/wish/approval/${wishId}`, // 슬래시 수정 + { confirm: confirm }, + { + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + }, + ); + console.log(`소원 ID ${wishId} ${confirm ? '승인됨' : '거절됨'}.`); + } catch (error) { + console.error('Error confirming wish:', error); + } + }; + useEffect(() => { + console.log(wishList); + }); return ( - +

소원열매 승인

- - - - + {wishList + .filter((wish) => wish.isConfirmed === null) // 필터링 조건을 적용합니다. + .map((wish) => ( + + handleConfirm(wish.wishId, isConfirmed) + } // 승인/거절 결정 핸들러 설정 + /> + ))}
); }; + export default WishConfirmPage; diff --git a/frontend/src/page/WishGetPage.tsx b/frontend/src/page/WishGetPage.tsx index 54d7189..5870d7e 100644 --- a/frontend/src/page/WishGetPage.tsx +++ b/frontend/src/page/WishGetPage.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from 'react'; import BackLayout from '../component/wishget/Backlayout'; import NavBar from '../component/NavBar'; -import useWishStore from '../store'; +import useWishStore from '../wishstore'; import { GotWish } from '../interface/Wish'; import axios from 'axios'; diff --git a/frontend/src/page/WishTreePage.tsx b/frontend/src/page/WishTreePage.tsx index 781b29d..dc547ce 100644 --- a/frontend/src/page/WishTreePage.tsx +++ b/frontend/src/page/WishTreePage.tsx @@ -4,13 +4,15 @@ import NavBar from '../component/NavBar'; import NavBtn from '../component/NavBtn'; import ShowFruit from '../component/wishall/ShowFruits'; import axios from 'axios'; -import useWishStore from '../store'; +import useWishStore from '../wishstore'; import { useNavigate } from 'react-router-dom'; +import useAuthorityStore from '../authoritystore'; const WishTreePage: React.FC = () => { const navigate = useNavigate(); const { wishList, findByWish, setWishList, wishId, setWishId, resetAll } = useWishStore(); + const { authority, setAuthority } = useAuthorityStore(); const [state, setState] = useState(false); const handleShowWish = async () => { @@ -27,10 +29,17 @@ const WishTreePage: React.FC = () => { setState(true); }; + const handleModeChange = () => { + setAuthority(); + }; + + const handleConfirm = () => { + navigate('/confirm'); + }; useEffect(() => { resetAll(); handleShowWish(); - }, [resetAll]); + }, []); useEffect(() => { if (state) { @@ -45,16 +54,25 @@ const WishTreePage: React.FC = () => { + {authority ? ( + + ) : null} + ;
{wishList.map((wish) => - wish.is_confirmed ? ( + wish.isConfirmed ? ( Date: Wed, 28 Aug 2024 16:06:17 +0900 Subject: [PATCH 10/10] =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/authoritystore.ts | 2 +- frontend/src/component/wishadd/WishAddForm.tsx | 3 +++ frontend/src/page/WishConfirmPage.tsx | 8 ++++++-- frontend/src/page/WishTreePage.tsx | 7 ++++--- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/frontend/src/authoritystore.ts b/frontend/src/authoritystore.ts index 04b6176..33fcbfc 100644 --- a/frontend/src/authoritystore.ts +++ b/frontend/src/authoritystore.ts @@ -9,7 +9,7 @@ const useAuthorityStore = create((set, get) => ({ authority: false, setAuthority: () => { const state = get(); - set({ authority: !state.authority }); // 상태를 반전시킵니다. + set({ authority: !state.authority }); }, })); diff --git a/frontend/src/component/wishadd/WishAddForm.tsx b/frontend/src/component/wishadd/WishAddForm.tsx index db77c46..df185ab 100644 --- a/frontend/src/component/wishadd/WishAddForm.tsx +++ b/frontend/src/component/wishadd/WishAddForm.tsx @@ -3,6 +3,7 @@ import axios from 'axios'; import { useState } from 'react'; import { CreatedWish } from '../../interface/Wish'; import { createWish } from '../../service/WishService'; +import { useNavigate } from 'react-router-dom'; const WishAddForm: React.FC = () => { const [category, setCategory] = useState(''); @@ -25,6 +26,7 @@ const WishAddForm: React.FC = () => { console.log(content); }; + const navigate = useNavigate(); const handleSubmitWish = async () => { const wish: CreatedWish = { title: title, @@ -34,6 +36,7 @@ const WishAddForm: React.FC = () => { const response = await createWish(wish); console.log(response); + navigate('/'); }; return ( diff --git a/frontend/src/page/WishConfirmPage.tsx b/frontend/src/page/WishConfirmPage.tsx index ff8def5..b6b7384 100644 --- a/frontend/src/page/WishConfirmPage.tsx +++ b/frontend/src/page/WishConfirmPage.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import React, { useEffect, useState } from 'react'; import BackLayout from '../component/BackLayout'; import NavBar from '../component/NavBar'; import NavBtn from '../component/NavBtn'; @@ -8,6 +8,7 @@ import axios from 'axios'; const WishConfirmPage: React.FC = () => { const { wishList } = useWishStore(); // wishList를 가져옵니다. + const [state, setState] = useState(0); // 소원을 승인하는 함수 const handleConfirm = async (wishId: number, confirm: boolean) => { @@ -23,13 +24,16 @@ const WishConfirmPage: React.FC = () => { }, ); console.log(`소원 ID ${wishId} ${confirm ? '승인됨' : '거절됨'}.`); + setState((pre) => pre + 1); } catch (error) { console.error('Error confirming wish:', error); } }; + useEffect(() => { console.log(wishList); - }); + }, [state]); + return ( diff --git a/frontend/src/page/WishTreePage.tsx b/frontend/src/page/WishTreePage.tsx index dc547ce..cdf1c70 100644 --- a/frontend/src/page/WishTreePage.tsx +++ b/frontend/src/page/WishTreePage.tsx @@ -33,8 +33,8 @@ const WishTreePage: React.FC = () => { setAuthority(); }; - const handleConfirm = () => { - navigate('/confirm'); + const handleRedirect = (url: string) => { + navigate(url); }; useEffect(() => { resetAll(); @@ -57,12 +57,13 @@ const WishTreePage: React.FC = () => { onClick={handleModeChange} > handleRedirect('/add')} buttonText="소원열매 달기" addClassName="text-[16px]" > {authority ? ( handleRedirect('/confirm')} buttonText="소원승인" addClassName="ml-[5px] text-[16px]" >