プレイグラウンド、サンドボックス、使い捨てスクリプト置き場
0

Configure Feed

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

create use-swr demo

Kohei Watanabe (Jan 13, 2026, 2:14 PM +0900) 06c3e798 3df730bf

+2759
+24
use-swr/.gitignore
··· 1 + # Logs 2 + logs 3 + *.log 4 + npm-debug.log* 5 + yarn-debug.log* 6 + yarn-error.log* 7 + pnpm-debug.log* 8 + lerna-debug.log* 9 + 10 + node_modules 11 + dist 12 + dist-ssr 13 + *.local 14 + 15 + # Editor directories and files 16 + .vscode/* 17 + !.vscode/extensions.json 18 + .idea 19 + .DS_Store 20 + *.suo 21 + *.ntvs* 22 + *.njsproj 23 + *.sln 24 + *.sw?
+73
use-swr/README.md
··· 1 + # React + TypeScript + Vite 2 + 3 + This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. 4 + 5 + Currently, two official plugins are available: 6 + 7 + - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh 8 + - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh 9 + 10 + ## React Compiler 11 + 12 + The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). 13 + 14 + ## Expanding the ESLint configuration 15 + 16 + If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: 17 + 18 + ```js 19 + export default defineConfig([ 20 + globalIgnores(['dist']), 21 + { 22 + files: ['**/*.{ts,tsx}'], 23 + extends: [ 24 + // Other configs... 25 + 26 + // Remove tseslint.configs.recommended and replace with this 27 + tseslint.configs.recommendedTypeChecked, 28 + // Alternatively, use this for stricter rules 29 + tseslint.configs.strictTypeChecked, 30 + // Optionally, add this for stylistic rules 31 + tseslint.configs.stylisticTypeChecked, 32 + 33 + // Other configs... 34 + ], 35 + languageOptions: { 36 + parserOptions: { 37 + project: ['./tsconfig.node.json', './tsconfig.app.json'], 38 + tsconfigRootDir: import.meta.dirname, 39 + }, 40 + // other options... 41 + }, 42 + }, 43 + ]) 44 + ``` 45 + 46 + You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: 47 + 48 + ```js 49 + // eslint.config.js 50 + import reactX from 'eslint-plugin-react-x' 51 + import reactDom from 'eslint-plugin-react-dom' 52 + 53 + export default defineConfig([ 54 + globalIgnores(['dist']), 55 + { 56 + files: ['**/*.{ts,tsx}'], 57 + extends: [ 58 + // Other configs... 59 + // Enable lint rules for React 60 + reactX.configs['recommended-typescript'], 61 + // Enable lint rules for React DOM 62 + reactDom.configs.recommended, 63 + ], 64 + languageOptions: { 65 + parserOptions: { 66 + project: ['./tsconfig.node.json', './tsconfig.app.json'], 67 + tsconfigRootDir: import.meta.dirname, 68 + }, 69 + // other options... 70 + }, 71 + }, 72 + ]) 73 + ```
+23
use-swr/eslint.config.js
··· 1 + import js from '@eslint/js' 2 + import globals from 'globals' 3 + import reactHooks from 'eslint-plugin-react-hooks' 4 + import reactRefresh from 'eslint-plugin-react-refresh' 5 + import tseslint from 'typescript-eslint' 6 + import { defineConfig, globalIgnores } from 'eslint/config' 7 + 8 + export default defineConfig([ 9 + globalIgnores(['dist']), 10 + { 11 + files: ['**/*.{ts,tsx}'], 12 + extends: [ 13 + js.configs.recommended, 14 + tseslint.configs.recommended, 15 + reactHooks.configs.flat.recommended, 16 + reactRefresh.configs.vite, 17 + ], 18 + languageOptions: { 19 + ecmaVersion: 2020, 20 + globals: globals.browser, 21 + }, 22 + }, 23 + ])
+13
use-swr/index.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>use-swr</title> 8 + </head> 9 + <body> 10 + <div id="root"></div> 11 + <script type="module" src="/src/main.tsx"></script> 12 + </body> 13 + </html>
+31
use-swr/package.json
··· 1 + { 2 + "name": "use-swr", 3 + "private": true, 4 + "version": "0.0.0", 5 + "type": "module", 6 + "scripts": { 7 + "dev": "vite", 8 + "build": "tsc -b && vite build", 9 + "lint": "eslint .", 10 + "preview": "vite preview" 11 + }, 12 + "dependencies": { 13 + "react": "^19.2.0", 14 + "react-dom": "^19.2.0", 15 + "swr": "^2.3.8" 16 + }, 17 + "devDependencies": { 18 + "@eslint/js": "^9.39.1", 19 + "@types/node": "^24.10.1", 20 + "@types/react": "^19.2.5", 21 + "@types/react-dom": "^19.2.3", 22 + "@vitejs/plugin-react": "^5.1.1", 23 + "eslint": "^9.39.1", 24 + "eslint-plugin-react-hooks": "^7.0.1", 25 + "eslint-plugin-react-refresh": "^0.4.24", 26 + "globals": "^16.5.0", 27 + "typescript": "~5.9.3", 28 + "typescript-eslint": "^8.46.4", 29 + "vite": "^7.2.4" 30 + } 31 + }
+2078
use-swr/pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + dependencies: 11 + react: 12 + specifier: ^19.2.0 13 + version: 19.2.3 14 + react-dom: 15 + specifier: ^19.2.0 16 + version: 19.2.3(react@19.2.3) 17 + swr: 18 + specifier: ^2.3.8 19 + version: 2.3.8(react@19.2.3) 20 + devDependencies: 21 + '@eslint/js': 22 + specifier: ^9.39.1 23 + version: 9.39.2 24 + '@types/node': 25 + specifier: ^24.10.1 26 + version: 24.10.7 27 + '@types/react': 28 + specifier: ^19.2.5 29 + version: 19.2.8 30 + '@types/react-dom': 31 + specifier: ^19.2.3 32 + version: 19.2.3(@types/react@19.2.8) 33 + '@vitejs/plugin-react': 34 + specifier: ^5.1.1 35 + version: 5.1.2(vite@7.3.1(@types/node@24.10.7)) 36 + eslint: 37 + specifier: ^9.39.1 38 + version: 9.39.2 39 + eslint-plugin-react-hooks: 40 + specifier: ^7.0.1 41 + version: 7.0.1(eslint@9.39.2) 42 + eslint-plugin-react-refresh: 43 + specifier: ^0.4.24 44 + version: 0.4.26(eslint@9.39.2) 45 + globals: 46 + specifier: ^16.5.0 47 + version: 16.5.0 48 + typescript: 49 + specifier: ~5.9.3 50 + version: 5.9.3 51 + typescript-eslint: 52 + specifier: ^8.46.4 53 + version: 8.53.0(eslint@9.39.2)(typescript@5.9.3) 54 + vite: 55 + specifier: ^7.2.4 56 + version: 7.3.1(@types/node@24.10.7) 57 + 58 + packages: 59 + 60 + '@babel/code-frame@7.28.6': 61 + resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==} 62 + engines: {node: '>=6.9.0'} 63 + 64 + '@babel/compat-data@7.28.6': 65 + resolution: {integrity: sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==} 66 + engines: {node: '>=6.9.0'} 67 + 68 + '@babel/core@7.28.6': 69 + resolution: {integrity: sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==} 70 + engines: {node: '>=6.9.0'} 71 + 72 + '@babel/generator@7.28.6': 73 + resolution: {integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==} 74 + engines: {node: '>=6.9.0'} 75 + 76 + '@babel/helper-compilation-targets@7.28.6': 77 + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} 78 + engines: {node: '>=6.9.0'} 79 + 80 + '@babel/helper-globals@7.28.0': 81 + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} 82 + engines: {node: '>=6.9.0'} 83 + 84 + '@babel/helper-module-imports@7.28.6': 85 + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} 86 + engines: {node: '>=6.9.0'} 87 + 88 + '@babel/helper-module-transforms@7.28.6': 89 + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} 90 + engines: {node: '>=6.9.0'} 91 + peerDependencies: 92 + '@babel/core': ^7.0.0 93 + 94 + '@babel/helper-plugin-utils@7.28.6': 95 + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} 96 + engines: {node: '>=6.9.0'} 97 + 98 + '@babel/helper-string-parser@7.27.1': 99 + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 100 + engines: {node: '>=6.9.0'} 101 + 102 + '@babel/helper-validator-identifier@7.28.5': 103 + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} 104 + engines: {node: '>=6.9.0'} 105 + 106 + '@babel/helper-validator-option@7.27.1': 107 + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 108 + engines: {node: '>=6.9.0'} 109 + 110 + '@babel/helpers@7.28.6': 111 + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} 112 + engines: {node: '>=6.9.0'} 113 + 114 + '@babel/parser@7.28.6': 115 + resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} 116 + engines: {node: '>=6.0.0'} 117 + hasBin: true 118 + 119 + '@babel/plugin-transform-react-jsx-self@7.27.1': 120 + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} 121 + engines: {node: '>=6.9.0'} 122 + peerDependencies: 123 + '@babel/core': ^7.0.0-0 124 + 125 + '@babel/plugin-transform-react-jsx-source@7.27.1': 126 + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} 127 + engines: {node: '>=6.9.0'} 128 + peerDependencies: 129 + '@babel/core': ^7.0.0-0 130 + 131 + '@babel/template@7.28.6': 132 + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} 133 + engines: {node: '>=6.9.0'} 134 + 135 + '@babel/traverse@7.28.6': 136 + resolution: {integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==} 137 + engines: {node: '>=6.9.0'} 138 + 139 + '@babel/types@7.28.6': 140 + resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} 141 + engines: {node: '>=6.9.0'} 142 + 143 + '@esbuild/aix-ppc64@0.27.2': 144 + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} 145 + engines: {node: '>=18'} 146 + cpu: [ppc64] 147 + os: [aix] 148 + 149 + '@esbuild/android-arm64@0.27.2': 150 + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} 151 + engines: {node: '>=18'} 152 + cpu: [arm64] 153 + os: [android] 154 + 155 + '@esbuild/android-arm@0.27.2': 156 + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} 157 + engines: {node: '>=18'} 158 + cpu: [arm] 159 + os: [android] 160 + 161 + '@esbuild/android-x64@0.27.2': 162 + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} 163 + engines: {node: '>=18'} 164 + cpu: [x64] 165 + os: [android] 166 + 167 + '@esbuild/darwin-arm64@0.27.2': 168 + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} 169 + engines: {node: '>=18'} 170 + cpu: [arm64] 171 + os: [darwin] 172 + 173 + '@esbuild/darwin-x64@0.27.2': 174 + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} 175 + engines: {node: '>=18'} 176 + cpu: [x64] 177 + os: [darwin] 178 + 179 + '@esbuild/freebsd-arm64@0.27.2': 180 + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} 181 + engines: {node: '>=18'} 182 + cpu: [arm64] 183 + os: [freebsd] 184 + 185 + '@esbuild/freebsd-x64@0.27.2': 186 + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} 187 + engines: {node: '>=18'} 188 + cpu: [x64] 189 + os: [freebsd] 190 + 191 + '@esbuild/linux-arm64@0.27.2': 192 + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} 193 + engines: {node: '>=18'} 194 + cpu: [arm64] 195 + os: [linux] 196 + 197 + '@esbuild/linux-arm@0.27.2': 198 + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} 199 + engines: {node: '>=18'} 200 + cpu: [arm] 201 + os: [linux] 202 + 203 + '@esbuild/linux-ia32@0.27.2': 204 + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} 205 + engines: {node: '>=18'} 206 + cpu: [ia32] 207 + os: [linux] 208 + 209 + '@esbuild/linux-loong64@0.27.2': 210 + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} 211 + engines: {node: '>=18'} 212 + cpu: [loong64] 213 + os: [linux] 214 + 215 + '@esbuild/linux-mips64el@0.27.2': 216 + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} 217 + engines: {node: '>=18'} 218 + cpu: [mips64el] 219 + os: [linux] 220 + 221 + '@esbuild/linux-ppc64@0.27.2': 222 + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} 223 + engines: {node: '>=18'} 224 + cpu: [ppc64] 225 + os: [linux] 226 + 227 + '@esbuild/linux-riscv64@0.27.2': 228 + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} 229 + engines: {node: '>=18'} 230 + cpu: [riscv64] 231 + os: [linux] 232 + 233 + '@esbuild/linux-s390x@0.27.2': 234 + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} 235 + engines: {node: '>=18'} 236 + cpu: [s390x] 237 + os: [linux] 238 + 239 + '@esbuild/linux-x64@0.27.2': 240 + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} 241 + engines: {node: '>=18'} 242 + cpu: [x64] 243 + os: [linux] 244 + 245 + '@esbuild/netbsd-arm64@0.27.2': 246 + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} 247 + engines: {node: '>=18'} 248 + cpu: [arm64] 249 + os: [netbsd] 250 + 251 + '@esbuild/netbsd-x64@0.27.2': 252 + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} 253 + engines: {node: '>=18'} 254 + cpu: [x64] 255 + os: [netbsd] 256 + 257 + '@esbuild/openbsd-arm64@0.27.2': 258 + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} 259 + engines: {node: '>=18'} 260 + cpu: [arm64] 261 + os: [openbsd] 262 + 263 + '@esbuild/openbsd-x64@0.27.2': 264 + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} 265 + engines: {node: '>=18'} 266 + cpu: [x64] 267 + os: [openbsd] 268 + 269 + '@esbuild/openharmony-arm64@0.27.2': 270 + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} 271 + engines: {node: '>=18'} 272 + cpu: [arm64] 273 + os: [openharmony] 274 + 275 + '@esbuild/sunos-x64@0.27.2': 276 + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} 277 + engines: {node: '>=18'} 278 + cpu: [x64] 279 + os: [sunos] 280 + 281 + '@esbuild/win32-arm64@0.27.2': 282 + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} 283 + engines: {node: '>=18'} 284 + cpu: [arm64] 285 + os: [win32] 286 + 287 + '@esbuild/win32-ia32@0.27.2': 288 + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} 289 + engines: {node: '>=18'} 290 + cpu: [ia32] 291 + os: [win32] 292 + 293 + '@esbuild/win32-x64@0.27.2': 294 + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} 295 + engines: {node: '>=18'} 296 + cpu: [x64] 297 + os: [win32] 298 + 299 + '@eslint-community/eslint-utils@4.9.1': 300 + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} 301 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 302 + peerDependencies: 303 + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 304 + 305 + '@eslint-community/regexpp@4.12.2': 306 + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} 307 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 308 + 309 + '@eslint/config-array@0.21.1': 310 + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} 311 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 312 + 313 + '@eslint/config-helpers@0.4.2': 314 + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} 315 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 316 + 317 + '@eslint/core@0.17.0': 318 + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} 319 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 320 + 321 + '@eslint/eslintrc@3.3.3': 322 + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} 323 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 324 + 325 + '@eslint/js@9.39.2': 326 + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} 327 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 328 + 329 + '@eslint/object-schema@2.1.7': 330 + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} 331 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 332 + 333 + '@eslint/plugin-kit@0.4.1': 334 + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} 335 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 336 + 337 + '@humanfs/core@0.19.1': 338 + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 339 + engines: {node: '>=18.18.0'} 340 + 341 + '@humanfs/node@0.16.7': 342 + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} 343 + engines: {node: '>=18.18.0'} 344 + 345 + '@humanwhocodes/module-importer@1.0.1': 346 + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 347 + engines: {node: '>=12.22'} 348 + 349 + '@humanwhocodes/retry@0.4.3': 350 + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 351 + engines: {node: '>=18.18'} 352 + 353 + '@jridgewell/gen-mapping@0.3.13': 354 + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 355 + 356 + '@jridgewell/remapping@2.3.5': 357 + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} 358 + 359 + '@jridgewell/resolve-uri@3.1.2': 360 + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 361 + engines: {node: '>=6.0.0'} 362 + 363 + '@jridgewell/sourcemap-codec@1.5.5': 364 + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 365 + 366 + '@jridgewell/trace-mapping@0.3.31': 367 + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 368 + 369 + '@rolldown/pluginutils@1.0.0-beta.53': 370 + resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} 371 + 372 + '@rollup/rollup-android-arm-eabi@4.55.1': 373 + resolution: {integrity: sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==} 374 + cpu: [arm] 375 + os: [android] 376 + 377 + '@rollup/rollup-android-arm64@4.55.1': 378 + resolution: {integrity: sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==} 379 + cpu: [arm64] 380 + os: [android] 381 + 382 + '@rollup/rollup-darwin-arm64@4.55.1': 383 + resolution: {integrity: sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==} 384 + cpu: [arm64] 385 + os: [darwin] 386 + 387 + '@rollup/rollup-darwin-x64@4.55.1': 388 + resolution: {integrity: sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==} 389 + cpu: [x64] 390 + os: [darwin] 391 + 392 + '@rollup/rollup-freebsd-arm64@4.55.1': 393 + resolution: {integrity: sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==} 394 + cpu: [arm64] 395 + os: [freebsd] 396 + 397 + '@rollup/rollup-freebsd-x64@4.55.1': 398 + resolution: {integrity: sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==} 399 + cpu: [x64] 400 + os: [freebsd] 401 + 402 + '@rollup/rollup-linux-arm-gnueabihf@4.55.1': 403 + resolution: {integrity: sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==} 404 + cpu: [arm] 405 + os: [linux] 406 + 407 + '@rollup/rollup-linux-arm-musleabihf@4.55.1': 408 + resolution: {integrity: sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==} 409 + cpu: [arm] 410 + os: [linux] 411 + 412 + '@rollup/rollup-linux-arm64-gnu@4.55.1': 413 + resolution: {integrity: sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==} 414 + cpu: [arm64] 415 + os: [linux] 416 + 417 + '@rollup/rollup-linux-arm64-musl@4.55.1': 418 + resolution: {integrity: sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==} 419 + cpu: [arm64] 420 + os: [linux] 421 + 422 + '@rollup/rollup-linux-loong64-gnu@4.55.1': 423 + resolution: {integrity: sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==} 424 + cpu: [loong64] 425 + os: [linux] 426 + 427 + '@rollup/rollup-linux-loong64-musl@4.55.1': 428 + resolution: {integrity: sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==} 429 + cpu: [loong64] 430 + os: [linux] 431 + 432 + '@rollup/rollup-linux-ppc64-gnu@4.55.1': 433 + resolution: {integrity: sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==} 434 + cpu: [ppc64] 435 + os: [linux] 436 + 437 + '@rollup/rollup-linux-ppc64-musl@4.55.1': 438 + resolution: {integrity: sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==} 439 + cpu: [ppc64] 440 + os: [linux] 441 + 442 + '@rollup/rollup-linux-riscv64-gnu@4.55.1': 443 + resolution: {integrity: sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==} 444 + cpu: [riscv64] 445 + os: [linux] 446 + 447 + '@rollup/rollup-linux-riscv64-musl@4.55.1': 448 + resolution: {integrity: sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==} 449 + cpu: [riscv64] 450 + os: [linux] 451 + 452 + '@rollup/rollup-linux-s390x-gnu@4.55.1': 453 + resolution: {integrity: sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==} 454 + cpu: [s390x] 455 + os: [linux] 456 + 457 + '@rollup/rollup-linux-x64-gnu@4.55.1': 458 + resolution: {integrity: sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==} 459 + cpu: [x64] 460 + os: [linux] 461 + 462 + '@rollup/rollup-linux-x64-musl@4.55.1': 463 + resolution: {integrity: sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==} 464 + cpu: [x64] 465 + os: [linux] 466 + 467 + '@rollup/rollup-openbsd-x64@4.55.1': 468 + resolution: {integrity: sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==} 469 + cpu: [x64] 470 + os: [openbsd] 471 + 472 + '@rollup/rollup-openharmony-arm64@4.55.1': 473 + resolution: {integrity: sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==} 474 + cpu: [arm64] 475 + os: [openharmony] 476 + 477 + '@rollup/rollup-win32-arm64-msvc@4.55.1': 478 + resolution: {integrity: sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==} 479 + cpu: [arm64] 480 + os: [win32] 481 + 482 + '@rollup/rollup-win32-ia32-msvc@4.55.1': 483 + resolution: {integrity: sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==} 484 + cpu: [ia32] 485 + os: [win32] 486 + 487 + '@rollup/rollup-win32-x64-gnu@4.55.1': 488 + resolution: {integrity: sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==} 489 + cpu: [x64] 490 + os: [win32] 491 + 492 + '@rollup/rollup-win32-x64-msvc@4.55.1': 493 + resolution: {integrity: sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==} 494 + cpu: [x64] 495 + os: [win32] 496 + 497 + '@types/babel__core@7.20.5': 498 + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 499 + 500 + '@types/babel__generator@7.27.0': 501 + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} 502 + 503 + '@types/babel__template@7.4.4': 504 + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 505 + 506 + '@types/babel__traverse@7.28.0': 507 + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} 508 + 509 + '@types/estree@1.0.8': 510 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 511 + 512 + '@types/json-schema@7.0.15': 513 + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 514 + 515 + '@types/node@24.10.7': 516 + resolution: {integrity: sha512-+054pVMzVTmRQV8BhpGv3UyfZ2Llgl8rdpDTon+cUH9+na0ncBVXj3wTUKh14+Kiz18ziM3b4ikpP5/Pc0rQEQ==} 517 + 518 + '@types/react-dom@19.2.3': 519 + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} 520 + peerDependencies: 521 + '@types/react': ^19.2.0 522 + 523 + '@types/react@19.2.8': 524 + resolution: {integrity: sha512-3MbSL37jEchWZz2p2mjntRZtPt837ij10ApxKfgmXCTuHWagYg7iA5bqPw6C8BMPfwidlvfPI/fxOc42HLhcyg==} 525 + 526 + '@typescript-eslint/eslint-plugin@8.53.0': 527 + resolution: {integrity: sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==} 528 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 529 + peerDependencies: 530 + '@typescript-eslint/parser': ^8.53.0 531 + eslint: ^8.57.0 || ^9.0.0 532 + typescript: '>=4.8.4 <6.0.0' 533 + 534 + '@typescript-eslint/parser@8.53.0': 535 + resolution: {integrity: sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==} 536 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 537 + peerDependencies: 538 + eslint: ^8.57.0 || ^9.0.0 539 + typescript: '>=4.8.4 <6.0.0' 540 + 541 + '@typescript-eslint/project-service@8.53.0': 542 + resolution: {integrity: sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==} 543 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 544 + peerDependencies: 545 + typescript: '>=4.8.4 <6.0.0' 546 + 547 + '@typescript-eslint/scope-manager@8.53.0': 548 + resolution: {integrity: sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==} 549 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 550 + 551 + '@typescript-eslint/tsconfig-utils@8.53.0': 552 + resolution: {integrity: sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==} 553 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 554 + peerDependencies: 555 + typescript: '>=4.8.4 <6.0.0' 556 + 557 + '@typescript-eslint/type-utils@8.53.0': 558 + resolution: {integrity: sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==} 559 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 560 + peerDependencies: 561 + eslint: ^8.57.0 || ^9.0.0 562 + typescript: '>=4.8.4 <6.0.0' 563 + 564 + '@typescript-eslint/types@8.53.0': 565 + resolution: {integrity: sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==} 566 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 567 + 568 + '@typescript-eslint/typescript-estree@8.53.0': 569 + resolution: {integrity: sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==} 570 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 571 + peerDependencies: 572 + typescript: '>=4.8.4 <6.0.0' 573 + 574 + '@typescript-eslint/utils@8.53.0': 575 + resolution: {integrity: sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==} 576 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 577 + peerDependencies: 578 + eslint: ^8.57.0 || ^9.0.0 579 + typescript: '>=4.8.4 <6.0.0' 580 + 581 + '@typescript-eslint/visitor-keys@8.53.0': 582 + resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} 583 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 584 + 585 + '@vitejs/plugin-react@5.1.2': 586 + resolution: {integrity: sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==} 587 + engines: {node: ^20.19.0 || >=22.12.0} 588 + peerDependencies: 589 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 590 + 591 + acorn-jsx@5.3.2: 592 + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 593 + peerDependencies: 594 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 595 + 596 + acorn@8.15.0: 597 + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 598 + engines: {node: '>=0.4.0'} 599 + hasBin: true 600 + 601 + ajv@6.12.6: 602 + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 603 + 604 + ansi-styles@4.3.0: 605 + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 606 + engines: {node: '>=8'} 607 + 608 + argparse@2.0.1: 609 + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 610 + 611 + balanced-match@1.0.2: 612 + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 613 + 614 + baseline-browser-mapping@2.9.14: 615 + resolution: {integrity: sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==} 616 + hasBin: true 617 + 618 + brace-expansion@1.1.12: 619 + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} 620 + 621 + brace-expansion@2.0.2: 622 + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 623 + 624 + browserslist@4.28.1: 625 + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} 626 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 627 + hasBin: true 628 + 629 + callsites@3.1.0: 630 + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 631 + engines: {node: '>=6'} 632 + 633 + caniuse-lite@1.0.30001764: 634 + resolution: {integrity: sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==} 635 + 636 + chalk@4.1.2: 637 + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 638 + engines: {node: '>=10'} 639 + 640 + color-convert@2.0.1: 641 + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 642 + engines: {node: '>=7.0.0'} 643 + 644 + color-name@1.1.4: 645 + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 646 + 647 + concat-map@0.0.1: 648 + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 649 + 650 + convert-source-map@2.0.0: 651 + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 652 + 653 + cross-spawn@7.0.6: 654 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 655 + engines: {node: '>= 8'} 656 + 657 + csstype@3.2.3: 658 + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} 659 + 660 + debug@4.4.3: 661 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 662 + engines: {node: '>=6.0'} 663 + peerDependencies: 664 + supports-color: '*' 665 + peerDependenciesMeta: 666 + supports-color: 667 + optional: true 668 + 669 + deep-is@0.1.4: 670 + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 671 + 672 + dequal@2.0.3: 673 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 674 + engines: {node: '>=6'} 675 + 676 + electron-to-chromium@1.5.267: 677 + resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} 678 + 679 + esbuild@0.27.2: 680 + resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} 681 + engines: {node: '>=18'} 682 + hasBin: true 683 + 684 + escalade@3.2.0: 685 + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 686 + engines: {node: '>=6'} 687 + 688 + escape-string-regexp@4.0.0: 689 + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 690 + engines: {node: '>=10'} 691 + 692 + eslint-plugin-react-hooks@7.0.1: 693 + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} 694 + engines: {node: '>=18'} 695 + peerDependencies: 696 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 697 + 698 + eslint-plugin-react-refresh@0.4.26: 699 + resolution: {integrity: sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==} 700 + peerDependencies: 701 + eslint: '>=8.40' 702 + 703 + eslint-scope@8.4.0: 704 + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} 705 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 706 + 707 + eslint-visitor-keys@3.4.3: 708 + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 709 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 710 + 711 + eslint-visitor-keys@4.2.1: 712 + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} 713 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 714 + 715 + eslint@9.39.2: 716 + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} 717 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 718 + hasBin: true 719 + peerDependencies: 720 + jiti: '*' 721 + peerDependenciesMeta: 722 + jiti: 723 + optional: true 724 + 725 + espree@10.4.0: 726 + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 727 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 728 + 729 + esquery@1.7.0: 730 + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} 731 + engines: {node: '>=0.10'} 732 + 733 + esrecurse@4.3.0: 734 + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 735 + engines: {node: '>=4.0'} 736 + 737 + estraverse@5.3.0: 738 + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 739 + engines: {node: '>=4.0'} 740 + 741 + esutils@2.0.3: 742 + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 743 + engines: {node: '>=0.10.0'} 744 + 745 + fast-deep-equal@3.1.3: 746 + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 747 + 748 + fast-json-stable-stringify@2.1.0: 749 + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 750 + 751 + fast-levenshtein@2.0.6: 752 + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 753 + 754 + fdir@6.5.0: 755 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 756 + engines: {node: '>=12.0.0'} 757 + peerDependencies: 758 + picomatch: ^3 || ^4 759 + peerDependenciesMeta: 760 + picomatch: 761 + optional: true 762 + 763 + file-entry-cache@8.0.0: 764 + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 765 + engines: {node: '>=16.0.0'} 766 + 767 + find-up@5.0.0: 768 + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 769 + engines: {node: '>=10'} 770 + 771 + flat-cache@4.0.1: 772 + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 773 + engines: {node: '>=16'} 774 + 775 + flatted@3.3.3: 776 + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 777 + 778 + fsevents@2.3.3: 779 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 780 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 781 + os: [darwin] 782 + 783 + gensync@1.0.0-beta.2: 784 + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 785 + engines: {node: '>=6.9.0'} 786 + 787 + glob-parent@6.0.2: 788 + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 789 + engines: {node: '>=10.13.0'} 790 + 791 + globals@14.0.0: 792 + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 793 + engines: {node: '>=18'} 794 + 795 + globals@16.5.0: 796 + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} 797 + engines: {node: '>=18'} 798 + 799 + has-flag@4.0.0: 800 + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 801 + engines: {node: '>=8'} 802 + 803 + hermes-estree@0.25.1: 804 + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} 805 + 806 + hermes-parser@0.25.1: 807 + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} 808 + 809 + ignore@5.3.2: 810 + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 811 + engines: {node: '>= 4'} 812 + 813 + ignore@7.0.5: 814 + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} 815 + engines: {node: '>= 4'} 816 + 817 + import-fresh@3.3.1: 818 + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 819 + engines: {node: '>=6'} 820 + 821 + imurmurhash@0.1.4: 822 + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 823 + engines: {node: '>=0.8.19'} 824 + 825 + is-extglob@2.1.1: 826 + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 827 + engines: {node: '>=0.10.0'} 828 + 829 + is-glob@4.0.3: 830 + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 831 + engines: {node: '>=0.10.0'} 832 + 833 + isexe@2.0.0: 834 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 835 + 836 + js-tokens@4.0.0: 837 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 838 + 839 + js-yaml@4.1.1: 840 + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} 841 + hasBin: true 842 + 843 + jsesc@3.1.0: 844 + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 845 + engines: {node: '>=6'} 846 + hasBin: true 847 + 848 + json-buffer@3.0.1: 849 + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 850 + 851 + json-schema-traverse@0.4.1: 852 + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 853 + 854 + json-stable-stringify-without-jsonify@1.0.1: 855 + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 856 + 857 + json5@2.2.3: 858 + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 859 + engines: {node: '>=6'} 860 + hasBin: true 861 + 862 + keyv@4.5.4: 863 + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 864 + 865 + levn@0.4.1: 866 + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 867 + engines: {node: '>= 0.8.0'} 868 + 869 + locate-path@6.0.0: 870 + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 871 + engines: {node: '>=10'} 872 + 873 + lodash.merge@4.6.2: 874 + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 875 + 876 + lru-cache@5.1.1: 877 + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 878 + 879 + minimatch@3.1.2: 880 + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 881 + 882 + minimatch@9.0.5: 883 + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 884 + engines: {node: '>=16 || 14 >=14.17'} 885 + 886 + ms@2.1.3: 887 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 888 + 889 + nanoid@3.3.11: 890 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 891 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 892 + hasBin: true 893 + 894 + natural-compare@1.4.0: 895 + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 896 + 897 + node-releases@2.0.27: 898 + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} 899 + 900 + optionator@0.9.4: 901 + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 902 + engines: {node: '>= 0.8.0'} 903 + 904 + p-limit@3.1.0: 905 + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 906 + engines: {node: '>=10'} 907 + 908 + p-locate@5.0.0: 909 + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 910 + engines: {node: '>=10'} 911 + 912 + parent-module@1.0.1: 913 + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 914 + engines: {node: '>=6'} 915 + 916 + path-exists@4.0.0: 917 + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 918 + engines: {node: '>=8'} 919 + 920 + path-key@3.1.1: 921 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 922 + engines: {node: '>=8'} 923 + 924 + picocolors@1.1.1: 925 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 926 + 927 + picomatch@4.0.3: 928 + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 929 + engines: {node: '>=12'} 930 + 931 + postcss@8.5.6: 932 + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 933 + engines: {node: ^10 || ^12 || >=14} 934 + 935 + prelude-ls@1.2.1: 936 + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 937 + engines: {node: '>= 0.8.0'} 938 + 939 + punycode@2.3.1: 940 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 941 + engines: {node: '>=6'} 942 + 943 + react-dom@19.2.3: 944 + resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} 945 + peerDependencies: 946 + react: ^19.2.3 947 + 948 + react-refresh@0.18.0: 949 + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} 950 + engines: {node: '>=0.10.0'} 951 + 952 + react@19.2.3: 953 + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} 954 + engines: {node: '>=0.10.0'} 955 + 956 + resolve-from@4.0.0: 957 + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 958 + engines: {node: '>=4'} 959 + 960 + rollup@4.55.1: 961 + resolution: {integrity: sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==} 962 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 963 + hasBin: true 964 + 965 + scheduler@0.27.0: 966 + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} 967 + 968 + semver@6.3.1: 969 + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 970 + hasBin: true 971 + 972 + semver@7.7.3: 973 + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 974 + engines: {node: '>=10'} 975 + hasBin: true 976 + 977 + shebang-command@2.0.0: 978 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 979 + engines: {node: '>=8'} 980 + 981 + shebang-regex@3.0.0: 982 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 983 + engines: {node: '>=8'} 984 + 985 + source-map-js@1.2.1: 986 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 987 + engines: {node: '>=0.10.0'} 988 + 989 + strip-json-comments@3.1.1: 990 + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 991 + engines: {node: '>=8'} 992 + 993 + supports-color@7.2.0: 994 + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 995 + engines: {node: '>=8'} 996 + 997 + swr@2.3.8: 998 + resolution: {integrity: sha512-gaCPRVoMq8WGDcWj9p4YWzCMPHzE0WNl6W8ADIx9c3JBEIdMkJGMzW+uzXvxHMltwcYACr9jP+32H8/hgwMR7w==} 999 + peerDependencies: 1000 + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 1001 + 1002 + tinyglobby@0.2.15: 1003 + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 1004 + engines: {node: '>=12.0.0'} 1005 + 1006 + ts-api-utils@2.4.0: 1007 + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} 1008 + engines: {node: '>=18.12'} 1009 + peerDependencies: 1010 + typescript: '>=4.8.4' 1011 + 1012 + type-check@0.4.0: 1013 + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1014 + engines: {node: '>= 0.8.0'} 1015 + 1016 + typescript-eslint@8.53.0: 1017 + resolution: {integrity: sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==} 1018 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1019 + peerDependencies: 1020 + eslint: ^8.57.0 || ^9.0.0 1021 + typescript: '>=4.8.4 <6.0.0' 1022 + 1023 + typescript@5.9.3: 1024 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 1025 + engines: {node: '>=14.17'} 1026 + hasBin: true 1027 + 1028 + undici-types@7.16.0: 1029 + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} 1030 + 1031 + update-browserslist-db@1.2.3: 1032 + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} 1033 + hasBin: true 1034 + peerDependencies: 1035 + browserslist: '>= 4.21.0' 1036 + 1037 + uri-js@4.4.1: 1038 + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1039 + 1040 + use-sync-external-store@1.6.0: 1041 + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} 1042 + peerDependencies: 1043 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 1044 + 1045 + vite@7.3.1: 1046 + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} 1047 + engines: {node: ^20.19.0 || >=22.12.0} 1048 + hasBin: true 1049 + peerDependencies: 1050 + '@types/node': ^20.19.0 || >=22.12.0 1051 + jiti: '>=1.21.0' 1052 + less: ^4.0.0 1053 + lightningcss: ^1.21.0 1054 + sass: ^1.70.0 1055 + sass-embedded: ^1.70.0 1056 + stylus: '>=0.54.8' 1057 + sugarss: ^5.0.0 1058 + terser: ^5.16.0 1059 + tsx: ^4.8.1 1060 + yaml: ^2.4.2 1061 + peerDependenciesMeta: 1062 + '@types/node': 1063 + optional: true 1064 + jiti: 1065 + optional: true 1066 + less: 1067 + optional: true 1068 + lightningcss: 1069 + optional: true 1070 + sass: 1071 + optional: true 1072 + sass-embedded: 1073 + optional: true 1074 + stylus: 1075 + optional: true 1076 + sugarss: 1077 + optional: true 1078 + terser: 1079 + optional: true 1080 + tsx: 1081 + optional: true 1082 + yaml: 1083 + optional: true 1084 + 1085 + which@2.0.2: 1086 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1087 + engines: {node: '>= 8'} 1088 + hasBin: true 1089 + 1090 + word-wrap@1.2.5: 1091 + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1092 + engines: {node: '>=0.10.0'} 1093 + 1094 + yallist@3.1.1: 1095 + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1096 + 1097 + yocto-queue@0.1.0: 1098 + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1099 + engines: {node: '>=10'} 1100 + 1101 + zod-validation-error@4.0.2: 1102 + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} 1103 + engines: {node: '>=18.0.0'} 1104 + peerDependencies: 1105 + zod: ^3.25.0 || ^4.0.0 1106 + 1107 + zod@4.3.5: 1108 + resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==} 1109 + 1110 + snapshots: 1111 + 1112 + '@babel/code-frame@7.28.6': 1113 + dependencies: 1114 + '@babel/helper-validator-identifier': 7.28.5 1115 + js-tokens: 4.0.0 1116 + picocolors: 1.1.1 1117 + 1118 + '@babel/compat-data@7.28.6': {} 1119 + 1120 + '@babel/core@7.28.6': 1121 + dependencies: 1122 + '@babel/code-frame': 7.28.6 1123 + '@babel/generator': 7.28.6 1124 + '@babel/helper-compilation-targets': 7.28.6 1125 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.6) 1126 + '@babel/helpers': 7.28.6 1127 + '@babel/parser': 7.28.6 1128 + '@babel/template': 7.28.6 1129 + '@babel/traverse': 7.28.6 1130 + '@babel/types': 7.28.6 1131 + '@jridgewell/remapping': 2.3.5 1132 + convert-source-map: 2.0.0 1133 + debug: 4.4.3 1134 + gensync: 1.0.0-beta.2 1135 + json5: 2.2.3 1136 + semver: 6.3.1 1137 + transitivePeerDependencies: 1138 + - supports-color 1139 + 1140 + '@babel/generator@7.28.6': 1141 + dependencies: 1142 + '@babel/parser': 7.28.6 1143 + '@babel/types': 7.28.6 1144 + '@jridgewell/gen-mapping': 0.3.13 1145 + '@jridgewell/trace-mapping': 0.3.31 1146 + jsesc: 3.1.0 1147 + 1148 + '@babel/helper-compilation-targets@7.28.6': 1149 + dependencies: 1150 + '@babel/compat-data': 7.28.6 1151 + '@babel/helper-validator-option': 7.27.1 1152 + browserslist: 4.28.1 1153 + lru-cache: 5.1.1 1154 + semver: 6.3.1 1155 + 1156 + '@babel/helper-globals@7.28.0': {} 1157 + 1158 + '@babel/helper-module-imports@7.28.6': 1159 + dependencies: 1160 + '@babel/traverse': 7.28.6 1161 + '@babel/types': 7.28.6 1162 + transitivePeerDependencies: 1163 + - supports-color 1164 + 1165 + '@babel/helper-module-transforms@7.28.6(@babel/core@7.28.6)': 1166 + dependencies: 1167 + '@babel/core': 7.28.6 1168 + '@babel/helper-module-imports': 7.28.6 1169 + '@babel/helper-validator-identifier': 7.28.5 1170 + '@babel/traverse': 7.28.6 1171 + transitivePeerDependencies: 1172 + - supports-color 1173 + 1174 + '@babel/helper-plugin-utils@7.28.6': {} 1175 + 1176 + '@babel/helper-string-parser@7.27.1': {} 1177 + 1178 + '@babel/helper-validator-identifier@7.28.5': {} 1179 + 1180 + '@babel/helper-validator-option@7.27.1': {} 1181 + 1182 + '@babel/helpers@7.28.6': 1183 + dependencies: 1184 + '@babel/template': 7.28.6 1185 + '@babel/types': 7.28.6 1186 + 1187 + '@babel/parser@7.28.6': 1188 + dependencies: 1189 + '@babel/types': 7.28.6 1190 + 1191 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.6)': 1192 + dependencies: 1193 + '@babel/core': 7.28.6 1194 + '@babel/helper-plugin-utils': 7.28.6 1195 + 1196 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.6)': 1197 + dependencies: 1198 + '@babel/core': 7.28.6 1199 + '@babel/helper-plugin-utils': 7.28.6 1200 + 1201 + '@babel/template@7.28.6': 1202 + dependencies: 1203 + '@babel/code-frame': 7.28.6 1204 + '@babel/parser': 7.28.6 1205 + '@babel/types': 7.28.6 1206 + 1207 + '@babel/traverse@7.28.6': 1208 + dependencies: 1209 + '@babel/code-frame': 7.28.6 1210 + '@babel/generator': 7.28.6 1211 + '@babel/helper-globals': 7.28.0 1212 + '@babel/parser': 7.28.6 1213 + '@babel/template': 7.28.6 1214 + '@babel/types': 7.28.6 1215 + debug: 4.4.3 1216 + transitivePeerDependencies: 1217 + - supports-color 1218 + 1219 + '@babel/types@7.28.6': 1220 + dependencies: 1221 + '@babel/helper-string-parser': 7.27.1 1222 + '@babel/helper-validator-identifier': 7.28.5 1223 + 1224 + '@esbuild/aix-ppc64@0.27.2': 1225 + optional: true 1226 + 1227 + '@esbuild/android-arm64@0.27.2': 1228 + optional: true 1229 + 1230 + '@esbuild/android-arm@0.27.2': 1231 + optional: true 1232 + 1233 + '@esbuild/android-x64@0.27.2': 1234 + optional: true 1235 + 1236 + '@esbuild/darwin-arm64@0.27.2': 1237 + optional: true 1238 + 1239 + '@esbuild/darwin-x64@0.27.2': 1240 + optional: true 1241 + 1242 + '@esbuild/freebsd-arm64@0.27.2': 1243 + optional: true 1244 + 1245 + '@esbuild/freebsd-x64@0.27.2': 1246 + optional: true 1247 + 1248 + '@esbuild/linux-arm64@0.27.2': 1249 + optional: true 1250 + 1251 + '@esbuild/linux-arm@0.27.2': 1252 + optional: true 1253 + 1254 + '@esbuild/linux-ia32@0.27.2': 1255 + optional: true 1256 + 1257 + '@esbuild/linux-loong64@0.27.2': 1258 + optional: true 1259 + 1260 + '@esbuild/linux-mips64el@0.27.2': 1261 + optional: true 1262 + 1263 + '@esbuild/linux-ppc64@0.27.2': 1264 + optional: true 1265 + 1266 + '@esbuild/linux-riscv64@0.27.2': 1267 + optional: true 1268 + 1269 + '@esbuild/linux-s390x@0.27.2': 1270 + optional: true 1271 + 1272 + '@esbuild/linux-x64@0.27.2': 1273 + optional: true 1274 + 1275 + '@esbuild/netbsd-arm64@0.27.2': 1276 + optional: true 1277 + 1278 + '@esbuild/netbsd-x64@0.27.2': 1279 + optional: true 1280 + 1281 + '@esbuild/openbsd-arm64@0.27.2': 1282 + optional: true 1283 + 1284 + '@esbuild/openbsd-x64@0.27.2': 1285 + optional: true 1286 + 1287 + '@esbuild/openharmony-arm64@0.27.2': 1288 + optional: true 1289 + 1290 + '@esbuild/sunos-x64@0.27.2': 1291 + optional: true 1292 + 1293 + '@esbuild/win32-arm64@0.27.2': 1294 + optional: true 1295 + 1296 + '@esbuild/win32-ia32@0.27.2': 1297 + optional: true 1298 + 1299 + '@esbuild/win32-x64@0.27.2': 1300 + optional: true 1301 + 1302 + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2)': 1303 + dependencies: 1304 + eslint: 9.39.2 1305 + eslint-visitor-keys: 3.4.3 1306 + 1307 + '@eslint-community/regexpp@4.12.2': {} 1308 + 1309 + '@eslint/config-array@0.21.1': 1310 + dependencies: 1311 + '@eslint/object-schema': 2.1.7 1312 + debug: 4.4.3 1313 + minimatch: 3.1.2 1314 + transitivePeerDependencies: 1315 + - supports-color 1316 + 1317 + '@eslint/config-helpers@0.4.2': 1318 + dependencies: 1319 + '@eslint/core': 0.17.0 1320 + 1321 + '@eslint/core@0.17.0': 1322 + dependencies: 1323 + '@types/json-schema': 7.0.15 1324 + 1325 + '@eslint/eslintrc@3.3.3': 1326 + dependencies: 1327 + ajv: 6.12.6 1328 + debug: 4.4.3 1329 + espree: 10.4.0 1330 + globals: 14.0.0 1331 + ignore: 5.3.2 1332 + import-fresh: 3.3.1 1333 + js-yaml: 4.1.1 1334 + minimatch: 3.1.2 1335 + strip-json-comments: 3.1.1 1336 + transitivePeerDependencies: 1337 + - supports-color 1338 + 1339 + '@eslint/js@9.39.2': {} 1340 + 1341 + '@eslint/object-schema@2.1.7': {} 1342 + 1343 + '@eslint/plugin-kit@0.4.1': 1344 + dependencies: 1345 + '@eslint/core': 0.17.0 1346 + levn: 0.4.1 1347 + 1348 + '@humanfs/core@0.19.1': {} 1349 + 1350 + '@humanfs/node@0.16.7': 1351 + dependencies: 1352 + '@humanfs/core': 0.19.1 1353 + '@humanwhocodes/retry': 0.4.3 1354 + 1355 + '@humanwhocodes/module-importer@1.0.1': {} 1356 + 1357 + '@humanwhocodes/retry@0.4.3': {} 1358 + 1359 + '@jridgewell/gen-mapping@0.3.13': 1360 + dependencies: 1361 + '@jridgewell/sourcemap-codec': 1.5.5 1362 + '@jridgewell/trace-mapping': 0.3.31 1363 + 1364 + '@jridgewell/remapping@2.3.5': 1365 + dependencies: 1366 + '@jridgewell/gen-mapping': 0.3.13 1367 + '@jridgewell/trace-mapping': 0.3.31 1368 + 1369 + '@jridgewell/resolve-uri@3.1.2': {} 1370 + 1371 + '@jridgewell/sourcemap-codec@1.5.5': {} 1372 + 1373 + '@jridgewell/trace-mapping@0.3.31': 1374 + dependencies: 1375 + '@jridgewell/resolve-uri': 3.1.2 1376 + '@jridgewell/sourcemap-codec': 1.5.5 1377 + 1378 + '@rolldown/pluginutils@1.0.0-beta.53': {} 1379 + 1380 + '@rollup/rollup-android-arm-eabi@4.55.1': 1381 + optional: true 1382 + 1383 + '@rollup/rollup-android-arm64@4.55.1': 1384 + optional: true 1385 + 1386 + '@rollup/rollup-darwin-arm64@4.55.1': 1387 + optional: true 1388 + 1389 + '@rollup/rollup-darwin-x64@4.55.1': 1390 + optional: true 1391 + 1392 + '@rollup/rollup-freebsd-arm64@4.55.1': 1393 + optional: true 1394 + 1395 + '@rollup/rollup-freebsd-x64@4.55.1': 1396 + optional: true 1397 + 1398 + '@rollup/rollup-linux-arm-gnueabihf@4.55.1': 1399 + optional: true 1400 + 1401 + '@rollup/rollup-linux-arm-musleabihf@4.55.1': 1402 + optional: true 1403 + 1404 + '@rollup/rollup-linux-arm64-gnu@4.55.1': 1405 + optional: true 1406 + 1407 + '@rollup/rollup-linux-arm64-musl@4.55.1': 1408 + optional: true 1409 + 1410 + '@rollup/rollup-linux-loong64-gnu@4.55.1': 1411 + optional: true 1412 + 1413 + '@rollup/rollup-linux-loong64-musl@4.55.1': 1414 + optional: true 1415 + 1416 + '@rollup/rollup-linux-ppc64-gnu@4.55.1': 1417 + optional: true 1418 + 1419 + '@rollup/rollup-linux-ppc64-musl@4.55.1': 1420 + optional: true 1421 + 1422 + '@rollup/rollup-linux-riscv64-gnu@4.55.1': 1423 + optional: true 1424 + 1425 + '@rollup/rollup-linux-riscv64-musl@4.55.1': 1426 + optional: true 1427 + 1428 + '@rollup/rollup-linux-s390x-gnu@4.55.1': 1429 + optional: true 1430 + 1431 + '@rollup/rollup-linux-x64-gnu@4.55.1': 1432 + optional: true 1433 + 1434 + '@rollup/rollup-linux-x64-musl@4.55.1': 1435 + optional: true 1436 + 1437 + '@rollup/rollup-openbsd-x64@4.55.1': 1438 + optional: true 1439 + 1440 + '@rollup/rollup-openharmony-arm64@4.55.1': 1441 + optional: true 1442 + 1443 + '@rollup/rollup-win32-arm64-msvc@4.55.1': 1444 + optional: true 1445 + 1446 + '@rollup/rollup-win32-ia32-msvc@4.55.1': 1447 + optional: true 1448 + 1449 + '@rollup/rollup-win32-x64-gnu@4.55.1': 1450 + optional: true 1451 + 1452 + '@rollup/rollup-win32-x64-msvc@4.55.1': 1453 + optional: true 1454 + 1455 + '@types/babel__core@7.20.5': 1456 + dependencies: 1457 + '@babel/parser': 7.28.6 1458 + '@babel/types': 7.28.6 1459 + '@types/babel__generator': 7.27.0 1460 + '@types/babel__template': 7.4.4 1461 + '@types/babel__traverse': 7.28.0 1462 + 1463 + '@types/babel__generator@7.27.0': 1464 + dependencies: 1465 + '@babel/types': 7.28.6 1466 + 1467 + '@types/babel__template@7.4.4': 1468 + dependencies: 1469 + '@babel/parser': 7.28.6 1470 + '@babel/types': 7.28.6 1471 + 1472 + '@types/babel__traverse@7.28.0': 1473 + dependencies: 1474 + '@babel/types': 7.28.6 1475 + 1476 + '@types/estree@1.0.8': {} 1477 + 1478 + '@types/json-schema@7.0.15': {} 1479 + 1480 + '@types/node@24.10.7': 1481 + dependencies: 1482 + undici-types: 7.16.0 1483 + 1484 + '@types/react-dom@19.2.3(@types/react@19.2.8)': 1485 + dependencies: 1486 + '@types/react': 19.2.8 1487 + 1488 + '@types/react@19.2.8': 1489 + dependencies: 1490 + csstype: 3.2.3 1491 + 1492 + '@typescript-eslint/eslint-plugin@8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)': 1493 + dependencies: 1494 + '@eslint-community/regexpp': 4.12.2 1495 + '@typescript-eslint/parser': 8.53.0(eslint@9.39.2)(typescript@5.9.3) 1496 + '@typescript-eslint/scope-manager': 8.53.0 1497 + '@typescript-eslint/type-utils': 8.53.0(eslint@9.39.2)(typescript@5.9.3) 1498 + '@typescript-eslint/utils': 8.53.0(eslint@9.39.2)(typescript@5.9.3) 1499 + '@typescript-eslint/visitor-keys': 8.53.0 1500 + eslint: 9.39.2 1501 + ignore: 7.0.5 1502 + natural-compare: 1.4.0 1503 + ts-api-utils: 2.4.0(typescript@5.9.3) 1504 + typescript: 5.9.3 1505 + transitivePeerDependencies: 1506 + - supports-color 1507 + 1508 + '@typescript-eslint/parser@8.53.0(eslint@9.39.2)(typescript@5.9.3)': 1509 + dependencies: 1510 + '@typescript-eslint/scope-manager': 8.53.0 1511 + '@typescript-eslint/types': 8.53.0 1512 + '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) 1513 + '@typescript-eslint/visitor-keys': 8.53.0 1514 + debug: 4.4.3 1515 + eslint: 9.39.2 1516 + typescript: 5.9.3 1517 + transitivePeerDependencies: 1518 + - supports-color 1519 + 1520 + '@typescript-eslint/project-service@8.53.0(typescript@5.9.3)': 1521 + dependencies: 1522 + '@typescript-eslint/tsconfig-utils': 8.53.0(typescript@5.9.3) 1523 + '@typescript-eslint/types': 8.53.0 1524 + debug: 4.4.3 1525 + typescript: 5.9.3 1526 + transitivePeerDependencies: 1527 + - supports-color 1528 + 1529 + '@typescript-eslint/scope-manager@8.53.0': 1530 + dependencies: 1531 + '@typescript-eslint/types': 8.53.0 1532 + '@typescript-eslint/visitor-keys': 8.53.0 1533 + 1534 + '@typescript-eslint/tsconfig-utils@8.53.0(typescript@5.9.3)': 1535 + dependencies: 1536 + typescript: 5.9.3 1537 + 1538 + '@typescript-eslint/type-utils@8.53.0(eslint@9.39.2)(typescript@5.9.3)': 1539 + dependencies: 1540 + '@typescript-eslint/types': 8.53.0 1541 + '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) 1542 + '@typescript-eslint/utils': 8.53.0(eslint@9.39.2)(typescript@5.9.3) 1543 + debug: 4.4.3 1544 + eslint: 9.39.2 1545 + ts-api-utils: 2.4.0(typescript@5.9.3) 1546 + typescript: 5.9.3 1547 + transitivePeerDependencies: 1548 + - supports-color 1549 + 1550 + '@typescript-eslint/types@8.53.0': {} 1551 + 1552 + '@typescript-eslint/typescript-estree@8.53.0(typescript@5.9.3)': 1553 + dependencies: 1554 + '@typescript-eslint/project-service': 8.53.0(typescript@5.9.3) 1555 + '@typescript-eslint/tsconfig-utils': 8.53.0(typescript@5.9.3) 1556 + '@typescript-eslint/types': 8.53.0 1557 + '@typescript-eslint/visitor-keys': 8.53.0 1558 + debug: 4.4.3 1559 + minimatch: 9.0.5 1560 + semver: 7.7.3 1561 + tinyglobby: 0.2.15 1562 + ts-api-utils: 2.4.0(typescript@5.9.3) 1563 + typescript: 5.9.3 1564 + transitivePeerDependencies: 1565 + - supports-color 1566 + 1567 + '@typescript-eslint/utils@8.53.0(eslint@9.39.2)(typescript@5.9.3)': 1568 + dependencies: 1569 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) 1570 + '@typescript-eslint/scope-manager': 8.53.0 1571 + '@typescript-eslint/types': 8.53.0 1572 + '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) 1573 + eslint: 9.39.2 1574 + typescript: 5.9.3 1575 + transitivePeerDependencies: 1576 + - supports-color 1577 + 1578 + '@typescript-eslint/visitor-keys@8.53.0': 1579 + dependencies: 1580 + '@typescript-eslint/types': 8.53.0 1581 + eslint-visitor-keys: 4.2.1 1582 + 1583 + '@vitejs/plugin-react@5.1.2(vite@7.3.1(@types/node@24.10.7))': 1584 + dependencies: 1585 + '@babel/core': 7.28.6 1586 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.6) 1587 + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.6) 1588 + '@rolldown/pluginutils': 1.0.0-beta.53 1589 + '@types/babel__core': 7.20.5 1590 + react-refresh: 0.18.0 1591 + vite: 7.3.1(@types/node@24.10.7) 1592 + transitivePeerDependencies: 1593 + - supports-color 1594 + 1595 + acorn-jsx@5.3.2(acorn@8.15.0): 1596 + dependencies: 1597 + acorn: 8.15.0 1598 + 1599 + acorn@8.15.0: {} 1600 + 1601 + ajv@6.12.6: 1602 + dependencies: 1603 + fast-deep-equal: 3.1.3 1604 + fast-json-stable-stringify: 2.1.0 1605 + json-schema-traverse: 0.4.1 1606 + uri-js: 4.4.1 1607 + 1608 + ansi-styles@4.3.0: 1609 + dependencies: 1610 + color-convert: 2.0.1 1611 + 1612 + argparse@2.0.1: {} 1613 + 1614 + balanced-match@1.0.2: {} 1615 + 1616 + baseline-browser-mapping@2.9.14: {} 1617 + 1618 + brace-expansion@1.1.12: 1619 + dependencies: 1620 + balanced-match: 1.0.2 1621 + concat-map: 0.0.1 1622 + 1623 + brace-expansion@2.0.2: 1624 + dependencies: 1625 + balanced-match: 1.0.2 1626 + 1627 + browserslist@4.28.1: 1628 + dependencies: 1629 + baseline-browser-mapping: 2.9.14 1630 + caniuse-lite: 1.0.30001764 1631 + electron-to-chromium: 1.5.267 1632 + node-releases: 2.0.27 1633 + update-browserslist-db: 1.2.3(browserslist@4.28.1) 1634 + 1635 + callsites@3.1.0: {} 1636 + 1637 + caniuse-lite@1.0.30001764: {} 1638 + 1639 + chalk@4.1.2: 1640 + dependencies: 1641 + ansi-styles: 4.3.0 1642 + supports-color: 7.2.0 1643 + 1644 + color-convert@2.0.1: 1645 + dependencies: 1646 + color-name: 1.1.4 1647 + 1648 + color-name@1.1.4: {} 1649 + 1650 + concat-map@0.0.1: {} 1651 + 1652 + convert-source-map@2.0.0: {} 1653 + 1654 + cross-spawn@7.0.6: 1655 + dependencies: 1656 + path-key: 3.1.1 1657 + shebang-command: 2.0.0 1658 + which: 2.0.2 1659 + 1660 + csstype@3.2.3: {} 1661 + 1662 + debug@4.4.3: 1663 + dependencies: 1664 + ms: 2.1.3 1665 + 1666 + deep-is@0.1.4: {} 1667 + 1668 + dequal@2.0.3: {} 1669 + 1670 + electron-to-chromium@1.5.267: {} 1671 + 1672 + esbuild@0.27.2: 1673 + optionalDependencies: 1674 + '@esbuild/aix-ppc64': 0.27.2 1675 + '@esbuild/android-arm': 0.27.2 1676 + '@esbuild/android-arm64': 0.27.2 1677 + '@esbuild/android-x64': 0.27.2 1678 + '@esbuild/darwin-arm64': 0.27.2 1679 + '@esbuild/darwin-x64': 0.27.2 1680 + '@esbuild/freebsd-arm64': 0.27.2 1681 + '@esbuild/freebsd-x64': 0.27.2 1682 + '@esbuild/linux-arm': 0.27.2 1683 + '@esbuild/linux-arm64': 0.27.2 1684 + '@esbuild/linux-ia32': 0.27.2 1685 + '@esbuild/linux-loong64': 0.27.2 1686 + '@esbuild/linux-mips64el': 0.27.2 1687 + '@esbuild/linux-ppc64': 0.27.2 1688 + '@esbuild/linux-riscv64': 0.27.2 1689 + '@esbuild/linux-s390x': 0.27.2 1690 + '@esbuild/linux-x64': 0.27.2 1691 + '@esbuild/netbsd-arm64': 0.27.2 1692 + '@esbuild/netbsd-x64': 0.27.2 1693 + '@esbuild/openbsd-arm64': 0.27.2 1694 + '@esbuild/openbsd-x64': 0.27.2 1695 + '@esbuild/openharmony-arm64': 0.27.2 1696 + '@esbuild/sunos-x64': 0.27.2 1697 + '@esbuild/win32-arm64': 0.27.2 1698 + '@esbuild/win32-ia32': 0.27.2 1699 + '@esbuild/win32-x64': 0.27.2 1700 + 1701 + escalade@3.2.0: {} 1702 + 1703 + escape-string-regexp@4.0.0: {} 1704 + 1705 + eslint-plugin-react-hooks@7.0.1(eslint@9.39.2): 1706 + dependencies: 1707 + '@babel/core': 7.28.6 1708 + '@babel/parser': 7.28.6 1709 + eslint: 9.39.2 1710 + hermes-parser: 0.25.1 1711 + zod: 4.3.5 1712 + zod-validation-error: 4.0.2(zod@4.3.5) 1713 + transitivePeerDependencies: 1714 + - supports-color 1715 + 1716 + eslint-plugin-react-refresh@0.4.26(eslint@9.39.2): 1717 + dependencies: 1718 + eslint: 9.39.2 1719 + 1720 + eslint-scope@8.4.0: 1721 + dependencies: 1722 + esrecurse: 4.3.0 1723 + estraverse: 5.3.0 1724 + 1725 + eslint-visitor-keys@3.4.3: {} 1726 + 1727 + eslint-visitor-keys@4.2.1: {} 1728 + 1729 + eslint@9.39.2: 1730 + dependencies: 1731 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) 1732 + '@eslint-community/regexpp': 4.12.2 1733 + '@eslint/config-array': 0.21.1 1734 + '@eslint/config-helpers': 0.4.2 1735 + '@eslint/core': 0.17.0 1736 + '@eslint/eslintrc': 3.3.3 1737 + '@eslint/js': 9.39.2 1738 + '@eslint/plugin-kit': 0.4.1 1739 + '@humanfs/node': 0.16.7 1740 + '@humanwhocodes/module-importer': 1.0.1 1741 + '@humanwhocodes/retry': 0.4.3 1742 + '@types/estree': 1.0.8 1743 + ajv: 6.12.6 1744 + chalk: 4.1.2 1745 + cross-spawn: 7.0.6 1746 + debug: 4.4.3 1747 + escape-string-regexp: 4.0.0 1748 + eslint-scope: 8.4.0 1749 + eslint-visitor-keys: 4.2.1 1750 + espree: 10.4.0 1751 + esquery: 1.7.0 1752 + esutils: 2.0.3 1753 + fast-deep-equal: 3.1.3 1754 + file-entry-cache: 8.0.0 1755 + find-up: 5.0.0 1756 + glob-parent: 6.0.2 1757 + ignore: 5.3.2 1758 + imurmurhash: 0.1.4 1759 + is-glob: 4.0.3 1760 + json-stable-stringify-without-jsonify: 1.0.1 1761 + lodash.merge: 4.6.2 1762 + minimatch: 3.1.2 1763 + natural-compare: 1.4.0 1764 + optionator: 0.9.4 1765 + transitivePeerDependencies: 1766 + - supports-color 1767 + 1768 + espree@10.4.0: 1769 + dependencies: 1770 + acorn: 8.15.0 1771 + acorn-jsx: 5.3.2(acorn@8.15.0) 1772 + eslint-visitor-keys: 4.2.1 1773 + 1774 + esquery@1.7.0: 1775 + dependencies: 1776 + estraverse: 5.3.0 1777 + 1778 + esrecurse@4.3.0: 1779 + dependencies: 1780 + estraverse: 5.3.0 1781 + 1782 + estraverse@5.3.0: {} 1783 + 1784 + esutils@2.0.3: {} 1785 + 1786 + fast-deep-equal@3.1.3: {} 1787 + 1788 + fast-json-stable-stringify@2.1.0: {} 1789 + 1790 + fast-levenshtein@2.0.6: {} 1791 + 1792 + fdir@6.5.0(picomatch@4.0.3): 1793 + optionalDependencies: 1794 + picomatch: 4.0.3 1795 + 1796 + file-entry-cache@8.0.0: 1797 + dependencies: 1798 + flat-cache: 4.0.1 1799 + 1800 + find-up@5.0.0: 1801 + dependencies: 1802 + locate-path: 6.0.0 1803 + path-exists: 4.0.0 1804 + 1805 + flat-cache@4.0.1: 1806 + dependencies: 1807 + flatted: 3.3.3 1808 + keyv: 4.5.4 1809 + 1810 + flatted@3.3.3: {} 1811 + 1812 + fsevents@2.3.3: 1813 + optional: true 1814 + 1815 + gensync@1.0.0-beta.2: {} 1816 + 1817 + glob-parent@6.0.2: 1818 + dependencies: 1819 + is-glob: 4.0.3 1820 + 1821 + globals@14.0.0: {} 1822 + 1823 + globals@16.5.0: {} 1824 + 1825 + has-flag@4.0.0: {} 1826 + 1827 + hermes-estree@0.25.1: {} 1828 + 1829 + hermes-parser@0.25.1: 1830 + dependencies: 1831 + hermes-estree: 0.25.1 1832 + 1833 + ignore@5.3.2: {} 1834 + 1835 + ignore@7.0.5: {} 1836 + 1837 + import-fresh@3.3.1: 1838 + dependencies: 1839 + parent-module: 1.0.1 1840 + resolve-from: 4.0.0 1841 + 1842 + imurmurhash@0.1.4: {} 1843 + 1844 + is-extglob@2.1.1: {} 1845 + 1846 + is-glob@4.0.3: 1847 + dependencies: 1848 + is-extglob: 2.1.1 1849 + 1850 + isexe@2.0.0: {} 1851 + 1852 + js-tokens@4.0.0: {} 1853 + 1854 + js-yaml@4.1.1: 1855 + dependencies: 1856 + argparse: 2.0.1 1857 + 1858 + jsesc@3.1.0: {} 1859 + 1860 + json-buffer@3.0.1: {} 1861 + 1862 + json-schema-traverse@0.4.1: {} 1863 + 1864 + json-stable-stringify-without-jsonify@1.0.1: {} 1865 + 1866 + json5@2.2.3: {} 1867 + 1868 + keyv@4.5.4: 1869 + dependencies: 1870 + json-buffer: 3.0.1 1871 + 1872 + levn@0.4.1: 1873 + dependencies: 1874 + prelude-ls: 1.2.1 1875 + type-check: 0.4.0 1876 + 1877 + locate-path@6.0.0: 1878 + dependencies: 1879 + p-locate: 5.0.0 1880 + 1881 + lodash.merge@4.6.2: {} 1882 + 1883 + lru-cache@5.1.1: 1884 + dependencies: 1885 + yallist: 3.1.1 1886 + 1887 + minimatch@3.1.2: 1888 + dependencies: 1889 + brace-expansion: 1.1.12 1890 + 1891 + minimatch@9.0.5: 1892 + dependencies: 1893 + brace-expansion: 2.0.2 1894 + 1895 + ms@2.1.3: {} 1896 + 1897 + nanoid@3.3.11: {} 1898 + 1899 + natural-compare@1.4.0: {} 1900 + 1901 + node-releases@2.0.27: {} 1902 + 1903 + optionator@0.9.4: 1904 + dependencies: 1905 + deep-is: 0.1.4 1906 + fast-levenshtein: 2.0.6 1907 + levn: 0.4.1 1908 + prelude-ls: 1.2.1 1909 + type-check: 0.4.0 1910 + word-wrap: 1.2.5 1911 + 1912 + p-limit@3.1.0: 1913 + dependencies: 1914 + yocto-queue: 0.1.0 1915 + 1916 + p-locate@5.0.0: 1917 + dependencies: 1918 + p-limit: 3.1.0 1919 + 1920 + parent-module@1.0.1: 1921 + dependencies: 1922 + callsites: 3.1.0 1923 + 1924 + path-exists@4.0.0: {} 1925 + 1926 + path-key@3.1.1: {} 1927 + 1928 + picocolors@1.1.1: {} 1929 + 1930 + picomatch@4.0.3: {} 1931 + 1932 + postcss@8.5.6: 1933 + dependencies: 1934 + nanoid: 3.3.11 1935 + picocolors: 1.1.1 1936 + source-map-js: 1.2.1 1937 + 1938 + prelude-ls@1.2.1: {} 1939 + 1940 + punycode@2.3.1: {} 1941 + 1942 + react-dom@19.2.3(react@19.2.3): 1943 + dependencies: 1944 + react: 19.2.3 1945 + scheduler: 0.27.0 1946 + 1947 + react-refresh@0.18.0: {} 1948 + 1949 + react@19.2.3: {} 1950 + 1951 + resolve-from@4.0.0: {} 1952 + 1953 + rollup@4.55.1: 1954 + dependencies: 1955 + '@types/estree': 1.0.8 1956 + optionalDependencies: 1957 + '@rollup/rollup-android-arm-eabi': 4.55.1 1958 + '@rollup/rollup-android-arm64': 4.55.1 1959 + '@rollup/rollup-darwin-arm64': 4.55.1 1960 + '@rollup/rollup-darwin-x64': 4.55.1 1961 + '@rollup/rollup-freebsd-arm64': 4.55.1 1962 + '@rollup/rollup-freebsd-x64': 4.55.1 1963 + '@rollup/rollup-linux-arm-gnueabihf': 4.55.1 1964 + '@rollup/rollup-linux-arm-musleabihf': 4.55.1 1965 + '@rollup/rollup-linux-arm64-gnu': 4.55.1 1966 + '@rollup/rollup-linux-arm64-musl': 4.55.1 1967 + '@rollup/rollup-linux-loong64-gnu': 4.55.1 1968 + '@rollup/rollup-linux-loong64-musl': 4.55.1 1969 + '@rollup/rollup-linux-ppc64-gnu': 4.55.1 1970 + '@rollup/rollup-linux-ppc64-musl': 4.55.1 1971 + '@rollup/rollup-linux-riscv64-gnu': 4.55.1 1972 + '@rollup/rollup-linux-riscv64-musl': 4.55.1 1973 + '@rollup/rollup-linux-s390x-gnu': 4.55.1 1974 + '@rollup/rollup-linux-x64-gnu': 4.55.1 1975 + '@rollup/rollup-linux-x64-musl': 4.55.1 1976 + '@rollup/rollup-openbsd-x64': 4.55.1 1977 + '@rollup/rollup-openharmony-arm64': 4.55.1 1978 + '@rollup/rollup-win32-arm64-msvc': 4.55.1 1979 + '@rollup/rollup-win32-ia32-msvc': 4.55.1 1980 + '@rollup/rollup-win32-x64-gnu': 4.55.1 1981 + '@rollup/rollup-win32-x64-msvc': 4.55.1 1982 + fsevents: 2.3.3 1983 + 1984 + scheduler@0.27.0: {} 1985 + 1986 + semver@6.3.1: {} 1987 + 1988 + semver@7.7.3: {} 1989 + 1990 + shebang-command@2.0.0: 1991 + dependencies: 1992 + shebang-regex: 3.0.0 1993 + 1994 + shebang-regex@3.0.0: {} 1995 + 1996 + source-map-js@1.2.1: {} 1997 + 1998 + strip-json-comments@3.1.1: {} 1999 + 2000 + supports-color@7.2.0: 2001 + dependencies: 2002 + has-flag: 4.0.0 2003 + 2004 + swr@2.3.8(react@19.2.3): 2005 + dependencies: 2006 + dequal: 2.0.3 2007 + react: 19.2.3 2008 + use-sync-external-store: 1.6.0(react@19.2.3) 2009 + 2010 + tinyglobby@0.2.15: 2011 + dependencies: 2012 + fdir: 6.5.0(picomatch@4.0.3) 2013 + picomatch: 4.0.3 2014 + 2015 + ts-api-utils@2.4.0(typescript@5.9.3): 2016 + dependencies: 2017 + typescript: 5.9.3 2018 + 2019 + type-check@0.4.0: 2020 + dependencies: 2021 + prelude-ls: 1.2.1 2022 + 2023 + typescript-eslint@8.53.0(eslint@9.39.2)(typescript@5.9.3): 2024 + dependencies: 2025 + '@typescript-eslint/eslint-plugin': 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3) 2026 + '@typescript-eslint/parser': 8.53.0(eslint@9.39.2)(typescript@5.9.3) 2027 + '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) 2028 + '@typescript-eslint/utils': 8.53.0(eslint@9.39.2)(typescript@5.9.3) 2029 + eslint: 9.39.2 2030 + typescript: 5.9.3 2031 + transitivePeerDependencies: 2032 + - supports-color 2033 + 2034 + typescript@5.9.3: {} 2035 + 2036 + undici-types@7.16.0: {} 2037 + 2038 + update-browserslist-db@1.2.3(browserslist@4.28.1): 2039 + dependencies: 2040 + browserslist: 4.28.1 2041 + escalade: 3.2.0 2042 + picocolors: 1.1.1 2043 + 2044 + uri-js@4.4.1: 2045 + dependencies: 2046 + punycode: 2.3.1 2047 + 2048 + use-sync-external-store@1.6.0(react@19.2.3): 2049 + dependencies: 2050 + react: 19.2.3 2051 + 2052 + vite@7.3.1(@types/node@24.10.7): 2053 + dependencies: 2054 + esbuild: 0.27.2 2055 + fdir: 6.5.0(picomatch@4.0.3) 2056 + picomatch: 4.0.3 2057 + postcss: 8.5.6 2058 + rollup: 4.55.1 2059 + tinyglobby: 0.2.15 2060 + optionalDependencies: 2061 + '@types/node': 24.10.7 2062 + fsevents: 2.3.3 2063 + 2064 + which@2.0.2: 2065 + dependencies: 2066 + isexe: 2.0.0 2067 + 2068 + word-wrap@1.2.5: {} 2069 + 2070 + yallist@3.1.1: {} 2071 + 2072 + yocto-queue@0.1.0: {} 2073 + 2074 + zod-validation-error@4.0.2(zod@4.3.5): 2075 + dependencies: 2076 + zod: 4.3.5 2077 + 2078 + zod@4.3.5: {}
+1
use-swr/public/vite.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
+42
use-swr/src/App.css
··· 1 + #root { 2 + max-width: 1280px; 3 + margin: 0 auto; 4 + padding: 2rem; 5 + text-align: center; 6 + } 7 + 8 + .logo { 9 + height: 6em; 10 + padding: 1.5em; 11 + will-change: filter; 12 + transition: filter 300ms; 13 + } 14 + .logo:hover { 15 + filter: drop-shadow(0 0 2em #646cffaa); 16 + } 17 + .logo.react:hover { 18 + filter: drop-shadow(0 0 2em #61dafbaa); 19 + } 20 + 21 + @keyframes logo-spin { 22 + from { 23 + transform: rotate(0deg); 24 + } 25 + to { 26 + transform: rotate(360deg); 27 + } 28 + } 29 + 30 + @media (prefers-reduced-motion: no-preference) { 31 + a:nth-of-type(2) .logo { 32 + animation: logo-spin infinite 20s linear; 33 + } 34 + } 35 + 36 + .card { 37 + padding: 2em; 38 + } 39 + 40 + .read-the-docs { 41 + color: #888; 42 + }
+327
use-swr/src/App.tsx
··· 1 + import { type ReactNode, useState } from "react"; 2 + import useSWR, { SWRConfig } from "swr"; 3 + import "./App.css"; 4 + 5 + const API_BASE = "https://jsonplaceholder.typicode.com"; 6 + 7 + const fetcher = (url: string) => fetch(url).then((r) => r.json()); 8 + 9 + // ======================================== 10 + // Providers: SWRのグローバル設定 11 + // ======================================== 12 + function Providers({ children }: { children: ReactNode }) { 13 + return ( 14 + <SWRConfig value={{ fetcher, dedupingInterval: 2000 }}> 15 + {children} 16 + </SWRConfig> 17 + ); 18 + } 19 + 20 + // ======================================== 21 + // UserDetail: ユーザー詳細表示 22 + // - 同じuserIdで複数回使用 → キャッシュ共有を確認 23 + // - refreshInterval で定期更新を確認 24 + // ======================================== 25 + function UserDetail({ 26 + userId, 27 + enableRefresh = false, 28 + }: { 29 + userId: number; 30 + enableRefresh?: boolean; 31 + }) { 32 + const { data, error, isLoading } = useSWR<{ 33 + id: number; 34 + name: string; 35 + email: string; 36 + }>(`${API_BASE}/users/${userId}`, { 37 + refreshInterval: enableRefresh ? 5_000 : 0, 38 + }); 39 + 40 + return ( 41 + <div 42 + style={{ 43 + border: "1px solid #ccc", 44 + padding: "1rem", 45 + margin: "0.5rem", 46 + minWidth: "200px", 47 + }} 48 + > 49 + {isLoading && <p>読み込み中...</p>} 50 + {error && <p>エラーが発生しました</p>} 51 + {data && ( 52 + <> 53 + <h4>{data.name}</h4> 54 + <p style={{ fontSize: "0.8rem", color: "#666" }}>{data.email}</p> 55 + <small>ID: {data.id}</small> 56 + </> 57 + )} 58 + </div> 59 + ); 60 + } 61 + 62 + // ======================================== 63 + // User: キャッシュ共有と定期更新の確認 64 + // - 2つのUserDetailを並べて、2回目がキャッシュ命中で即表示されることを確認 65 + // - URLを変更して結果の差を確認 66 + // ======================================== 67 + function User() { 68 + const [userId, setUserId] = useState(1); 69 + const [enableRefresh, setEnableRefresh] = useState(false); 70 + 71 + return ( 72 + <section style={{ marginBottom: "2rem" }}> 73 + <h2>1. キャッシュ共有 + 定期更新</h2> 74 + <p style={{ fontSize: "0.9rem", color: "#666" }}> 75 + 同じURLを参照する2つのコンポーネントがキャッシュを共有。 76 + <br /> 77 + 2回目は即座に表示される(DevTools Networkで1回のみリクエスト確認)。 78 + </p> 79 + 80 + <div 81 + style={{ 82 + display: "flex", 83 + gap: "1rem", 84 + alignItems: "center", 85 + marginBottom: "1rem", 86 + }} 87 + > 88 + <label> 89 + ユーザーID: 90 + <select 91 + value={userId} 92 + onChange={(e) => setUserId(Number(e.target.value))} 93 + style={{ marginLeft: "0.5rem" }} 94 + > 95 + {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((id) => ( 96 + <option key={id} value={id}> 97 + {id} 98 + </option> 99 + ))} 100 + </select> 101 + </label> 102 + 103 + <label> 104 + <input 105 + type="checkbox" 106 + checked={enableRefresh} 107 + onChange={(e) => setEnableRefresh(e.target.checked)} 108 + /> 109 + 自動更新 (5秒間隔) 110 + </label> 111 + </div> 112 + 113 + <div style={{ display: "flex", flexWrap: "wrap" }}> 114 + <UserDetail userId={userId} enableRefresh={enableRefresh} /> 115 + <UserDetail userId={userId} enableRefresh={enableRefresh} /> 116 + <UserDetail userId={userId} enableRefresh={enableRefresh} /> 117 + <UserDetail userId={userId} enableRefresh={enableRefresh} /> 118 + </div> 119 + 120 + {enableRefresh && ( 121 + <p style={{ fontSize: "0.8rem", color: "#888" }}> 122 + 最終更新: {new Date().toLocaleTimeString()}(5秒ごとに再フェッチ) 123 + </p> 124 + )} 125 + </section> 126 + ); 127 + } 128 + 129 + // ======================================== 130 + // UserSwitcher: IDが先行して変わるデモ 131 + // - IDを切り替えると即座にIDの表示が変わる 132 + // - データは遅延して到着(ローディング表示) 133 + // - キーが変わる = 新しいリクエストが発生する様子を可視化 134 + // ======================================== 135 + function UserSwitcher() { 136 + const [userId, setUserId] = useState(1); 137 + 138 + // わざと遅いfetcherで遅延を可視化 139 + const { data, isLoading } = useSWR<{ 140 + id: number; 141 + name: string; 142 + email: string; 143 + }>( 144 + `${API_BASE}/users/${userId}`, 145 + async (url: string) => { 146 + // 人工的に1.5秒遅延させる 147 + await new Promise((r) => setTimeout(r, 1500)); 148 + const res = await fetch(url); 149 + return res.json(); 150 + }, 151 + { keepPreviousData: false }, 152 + ); 153 + 154 + return ( 155 + <section style={{ marginBottom: "2rem" }}> 156 + <h2>2. キーの先行切り替え</h2> 157 + <p style={{ fontSize: "0.9rem", color: "#666" }}> 158 + IDを変更すると、IDは即座に切り替わるがデータは後から到着。 159 + <br /> 160 + SWRのキー変更でリクエストが発生する様子を確認できる。 161 + </p> 162 + 163 + <div style={{ display: "flex", gap: "0.5rem", marginBottom: "1rem" }}> 164 + {[1, 2, 3, 4, 5].map((id) => ( 165 + <button 166 + key={id} 167 + onClick={() => setUserId(id)} 168 + style={{ 169 + padding: "0.5rem 1rem", 170 + background: userId === id ? "#007bff" : "#eee", 171 + color: userId === id ? "#fff" : "#333", 172 + border: "none", 173 + borderRadius: "4px", 174 + cursor: "pointer", 175 + }} 176 + > 177 + User {id} 178 + </button> 179 + ))} 180 + </div> 181 + 182 + <div 183 + style={{ 184 + border: "1px solid #ccc", 185 + padding: "1rem", 186 + minHeight: "100px", 187 + }} 188 + > 189 + <div 190 + style={{ 191 + display: "flex", 192 + alignItems: "center", 193 + gap: "1rem", 194 + marginBottom: "0.5rem", 195 + }} 196 + > 197 + <span 198 + style={{ 199 + background: "#007bff", 200 + color: "#fff", 201 + padding: "0.25rem 0.5rem", 202 + borderRadius: "4px", 203 + fontWeight: "bold", 204 + }} 205 + > 206 + ID: {userId} 207 + </span> 208 + <span style={{ fontSize: "0.8rem", color: "#888" }}> 209 + ← 即座に変わる 210 + </span> 211 + </div> 212 + 213 + {isLoading ? ( 214 + <div style={{ color: "#888" }}> 215 + <span 216 + style={{ 217 + display: "inline-block", 218 + animation: "pulse 1s infinite", 219 + }} 220 + > 221 + データを取得中... 222 + </span> 223 + </div> 224 + ) : ( 225 + <div> 226 + <p style={{ margin: 0 }}> 227 + <strong>{data?.name}</strong> 228 + </p> 229 + <p style={{ margin: 0, fontSize: "0.9rem", color: "#666" }}> 230 + {data?.email} 231 + </p> 232 + </div> 233 + )} 234 + </div> 235 + </section> 236 + ); 237 + } 238 + 239 + // ======================================== 240 + // Profile: 条件付きフェッチ 241 + // - フォーム入力が完了するまでフェッチしない 242 + // - 空文字の場合はkeyがnullになりリクエストが発生しない 243 + // ======================================== 244 + function Profile() { 245 + const [inputId, setInputId] = useState(""); 246 + const [submittedId, setSubmittedId] = useState<string | null>(null); 247 + 248 + const { data, error, isLoading } = useSWR<{ 249 + id: number; 250 + name: string; 251 + email: string; 252 + phone: string; 253 + }>(submittedId ? `${API_BASE}/users/${submittedId}` : null); 254 + 255 + const handleSubmit = (e: React.FormEvent) => { 256 + e.preventDefault(); 257 + if (inputId.trim()) { 258 + setSubmittedId(inputId.trim()); 259 + } 260 + }; 261 + 262 + return ( 263 + <section style={{ marginBottom: "2rem" }}> 264 + <h2>3. 条件付きフェッチ</h2> 265 + <p style={{ fontSize: "0.9rem", color: "#666" }}> 266 + IDを入力して「検索」を押すまでリクエストは発生しない。 267 + <br /> 268 + (DevTools Networkで確認) 269 + </p> 270 + 271 + <form onSubmit={handleSubmit} style={{ marginBottom: "1rem" }}> 272 + <input 273 + type="text" 274 + value={inputId} 275 + onChange={(e) => setInputId(e.target.value)} 276 + placeholder="ユーザーID (1-10)" 277 + style={{ padding: "0.5rem", marginRight: "0.5rem" }} 278 + /> 279 + <button type="submit" style={{ padding: "0.5rem 1rem" }}> 280 + 検索 281 + </button> 282 + </form> 283 + 284 + {submittedId === null && ( 285 + <p style={{ color: "#888" }}>IDを入力して検索してください</p> 286 + )} 287 + 288 + {isLoading && <p>読み込み中...</p>} 289 + {error && ( 290 + <p style={{ color: "red" }}>エラー: ユーザーが見つかりません</p> 291 + )} 292 + {data && ( 293 + <div style={{ border: "1px solid #ccc", padding: "1rem" }}> 294 + <p> 295 + <strong>{data.name}</strong> 296 + </p> 297 + <p>{data.email}</p> 298 + <p>{data.phone}</p> 299 + </div> 300 + )} 301 + </section> 302 + ); 303 + } 304 + 305 + // ======================================== 306 + // App: メインコンポーネント 307 + // ======================================== 308 + function App() { 309 + return ( 310 + <Providers> 311 + <div style={{ maxWidth: "800px", margin: "0 auto", padding: "2rem" }}> 312 + <h1>SWR 学習サンプル</h1> 313 + <p style={{ marginBottom: "2rem", color: "#666" }}> 314 + 各セクションでSWRの機能を体験できます。 315 + <br /> 316 + Chrome DevTools &gt; Network で挙動を確認してください。 317 + </p> 318 + 319 + <User /> 320 + <UserSwitcher /> 321 + <Profile /> 322 + </div> 323 + </Providers> 324 + ); 325 + } 326 + 327 + export default App;
+1
use-swr/src/assets/react.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
+68
use-swr/src/index.css
··· 1 + :root { 2 + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; 3 + line-height: 1.5; 4 + font-weight: 400; 5 + 6 + color-scheme: light dark; 7 + color: rgba(255, 255, 255, 0.87); 8 + background-color: #242424; 9 + 10 + font-synthesis: none; 11 + text-rendering: optimizeLegibility; 12 + -webkit-font-smoothing: antialiased; 13 + -moz-osx-font-smoothing: grayscale; 14 + } 15 + 16 + a { 17 + font-weight: 500; 18 + color: #646cff; 19 + text-decoration: inherit; 20 + } 21 + a:hover { 22 + color: #535bf2; 23 + } 24 + 25 + body { 26 + margin: 0; 27 + display: flex; 28 + place-items: center; 29 + min-width: 320px; 30 + min-height: 100vh; 31 + } 32 + 33 + h1 { 34 + font-size: 3.2em; 35 + line-height: 1.1; 36 + } 37 + 38 + button { 39 + border-radius: 8px; 40 + border: 1px solid transparent; 41 + padding: 0.6em 1.2em; 42 + font-size: 1em; 43 + font-weight: 500; 44 + font-family: inherit; 45 + background-color: #1a1a1a; 46 + cursor: pointer; 47 + transition: border-color 0.25s; 48 + } 49 + button:hover { 50 + border-color: #646cff; 51 + } 52 + button:focus, 53 + button:focus-visible { 54 + outline: 4px auto -webkit-focus-ring-color; 55 + } 56 + 57 + @media (prefers-color-scheme: light) { 58 + :root { 59 + color: #213547; 60 + background-color: #ffffff; 61 + } 62 + a:hover { 63 + color: #747bff; 64 + } 65 + button { 66 + background-color: #f9f9f9; 67 + } 68 + }
+10
use-swr/src/main.tsx
··· 1 + import { StrictMode } from 'react' 2 + import { createRoot } from 'react-dom/client' 3 + import './index.css' 4 + import App from './App.tsx' 5 + 6 + createRoot(document.getElementById('root')!).render( 7 + <StrictMode> 8 + <App /> 9 + </StrictMode>, 10 + )
+28
use-swr/tsconfig.app.json
··· 1 + { 2 + "compilerOptions": { 3 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", 4 + "target": "ES2022", 5 + "useDefineForClassFields": true, 6 + "lib": ["ES2022", "DOM", "DOM.Iterable"], 7 + "module": "ESNext", 8 + "types": ["vite/client"], 9 + "skipLibCheck": true, 10 + 11 + /* Bundler mode */ 12 + "moduleResolution": "bundler", 13 + "allowImportingTsExtensions": true, 14 + "verbatimModuleSyntax": true, 15 + "moduleDetection": "force", 16 + "noEmit": true, 17 + "jsx": "react-jsx", 18 + 19 + /* Linting */ 20 + "strict": true, 21 + "noUnusedLocals": true, 22 + "noUnusedParameters": true, 23 + "erasableSyntaxOnly": true, 24 + "noFallthroughCasesInSwitch": true, 25 + "noUncheckedSideEffectImports": true 26 + }, 27 + "include": ["src"] 28 + }
+7
use-swr/tsconfig.json
··· 1 + { 2 + "files": [], 3 + "references": [ 4 + { "path": "./tsconfig.app.json" }, 5 + { "path": "./tsconfig.node.json" } 6 + ] 7 + }
+26
use-swr/tsconfig.node.json
··· 1 + { 2 + "compilerOptions": { 3 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", 4 + "target": "ES2023", 5 + "lib": ["ES2023"], 6 + "module": "ESNext", 7 + "types": ["node"], 8 + "skipLibCheck": true, 9 + 10 + /* Bundler mode */ 11 + "moduleResolution": "bundler", 12 + "allowImportingTsExtensions": true, 13 + "verbatimModuleSyntax": true, 14 + "moduleDetection": "force", 15 + "noEmit": true, 16 + 17 + /* Linting */ 18 + "strict": true, 19 + "noUnusedLocals": true, 20 + "noUnusedParameters": true, 21 + "erasableSyntaxOnly": true, 22 + "noFallthroughCasesInSwitch": true, 23 + "noUncheckedSideEffectImports": true 24 + }, 25 + "include": ["vite.config.ts"] 26 + }
+7
use-swr/vite.config.ts
··· 1 + import { defineConfig } from 'vite' 2 + import react from '@vitejs/plugin-react' 3 + 4 + // https://vite.dev/config/ 5 + export default defineConfig({ 6 + plugins: [react()], 7 + })