├── .env ├── .env.example ├── .eslintrc.json ├── .gitignore ├── README.md ├── components.json ├── middleware.ts ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.mjs ├── public ├── next.svg ├── screenshot.png └── vercel.svg ├── src ├── app │ ├── actions.tsx │ ├── favicon.ico │ ├── genui │ │ └── page.tsx │ ├── globals.css │ ├── layout.tsx │ └── page.tsx ├── components │ ├── cards │ │ ├── aboutcard.tsx │ │ ├── envcard.tsx │ │ └── genuicard.tsx │ ├── chat.tsx │ ├── header.tsx │ ├── ui │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── icons.tsx │ │ ├── input.tsx │ │ ├── label.tsx │ │ └── switch.tsx │ └── weather.tsx └── lib │ └── utils.ts ├── tailwind.config.ts └── tsconfig.json /.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattjared/nextjs-ai-lite/4d9c4450cae3cc26943548f2b0d4461e63b3dd55/.env -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | .env 31 | 32 | # vercel 33 | .vercel 34 | 35 | # typescript 36 | *.tsbuildinfo 37 | next-env.d.ts 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) and designed to be fun and easy to get your hands dirty with the AI SDK. 3 | 4 | ## Getting Started 5 | 6 | First, run the development server: 7 | 8 | ```bash 9 | npm run dev 10 | # or 11 | yarn dev 12 | # or 13 | pnpm dev 14 | # or 15 | bun dev 16 | ``` 17 | 18 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 19 | 20 | You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 21 | 22 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. 23 | 24 | ## Learn More 25 | 26 | To learn more about Next.js, take a look at the following resources: 27 | 28 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 29 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 30 | 31 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! 32 | 33 | ## Deploy on Vercel 34 | 35 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 36 | 37 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. 38 | -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "default", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.ts", 8 | "css": "src/app/globals.css", 9 | "baseColor": "slate", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils" 16 | } 17 | } -------------------------------------------------------------------------------- /middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattjared/nextjs-ai-lite/4d9c4450cae3cc26943548f2b0d4461e63b3dd55/middleware.ts -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nextjs-ai-lite", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@ai-sdk/openai": "^0.0.40", 13 | "@radix-ui/react-label": "^2.1.0", 14 | "@radix-ui/react-slot": "^1.1.0", 15 | "@radix-ui/react-switch": "^1.1.0", 16 | "ai": "^3.3.0", 17 | "class-variance-authority": "^0.7.0", 18 | "clsx": "^2.1.1", 19 | "lucide-react": "^0.424.0", 20 | "next": "14.2.5", 21 | "openai": "^4.54.0", 22 | "react": "^18", 23 | "react-dom": "^18", 24 | "tailwind-merge": "^2.4.0", 25 | "tailwindcss-animate": "^1.0.7", 26 | "zod": "^3.23.8" 27 | }, 28 | "devDependencies": { 29 | "@types/node": "^20", 30 | "@types/react": "^18", 31 | "@types/react-dom": "^18", 32 | "eslint": "^8", 33 | "eslint-config-next": "14.2.5", 34 | "postcss": "^8", 35 | "tailwindcss": "^3.4.1", 36 | "typescript": "^5" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@ai-sdk/openai': 9 | specifier: ^0.0.40 10 | version: 0.0.40(zod@3.23.8) 11 | '@radix-ui/react-label': 12 | specifier: ^2.1.0 13 | version: 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1)(react@18.3.1) 14 | '@radix-ui/react-slot': 15 | specifier: ^1.1.0 16 | version: 1.1.0(@types/react@18.3.5)(react@18.3.1) 17 | '@radix-ui/react-switch': 18 | specifier: ^1.1.0 19 | version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1)(react@18.3.1) 20 | ai: 21 | specifier: ^3.3.0 22 | version: 3.3.26(openai@4.57.1)(react@18.3.1)(svelte@4.2.19)(vue@3.5.0)(zod@3.23.8) 23 | class-variance-authority: 24 | specifier: ^0.7.0 25 | version: 0.7.0 26 | clsx: 27 | specifier: ^2.1.1 28 | version: 2.1.1 29 | lucide-react: 30 | specifier: ^0.424.0 31 | version: 0.424.0(react@18.3.1) 32 | next: 33 | specifier: 14.2.5 34 | version: 14.2.5(react-dom@18.3.1)(react@18.3.1) 35 | openai: 36 | specifier: ^4.54.0 37 | version: 4.57.1(zod@3.23.8) 38 | react: 39 | specifier: ^18 40 | version: 18.3.1 41 | react-dom: 42 | specifier: ^18 43 | version: 18.3.1(react@18.3.1) 44 | tailwind-merge: 45 | specifier: ^2.4.0 46 | version: 2.5.2 47 | tailwindcss-animate: 48 | specifier: ^1.0.7 49 | version: 1.0.7(tailwindcss@3.4.10) 50 | zod: 51 | specifier: ^3.23.8 52 | version: 3.23.8 53 | 54 | devDependencies: 55 | '@types/node': 56 | specifier: ^20 57 | version: 20.16.4 58 | '@types/react': 59 | specifier: ^18 60 | version: 18.3.5 61 | '@types/react-dom': 62 | specifier: ^18 63 | version: 18.3.0 64 | eslint: 65 | specifier: ^8 66 | version: 8.57.0 67 | eslint-config-next: 68 | specifier: 14.2.5 69 | version: 14.2.5(eslint@8.57.0)(typescript@5.5.4) 70 | postcss: 71 | specifier: ^8 72 | version: 8.4.44 73 | tailwindcss: 74 | specifier: ^3.4.1 75 | version: 3.4.10 76 | typescript: 77 | specifier: ^5 78 | version: 5.5.4 79 | 80 | packages: 81 | 82 | /@ai-sdk/openai@0.0.40(zod@3.23.8): 83 | resolution: {integrity: sha512-9Iq1UaBHA5ZzNv6j3govuKGXrbrjuWvZIgWNJv4xzXlDMHu9P9hnqlBr/Aiay54WwCuTVNhTzAUTfFgnTs2kbQ==} 84 | engines: {node: '>=18'} 85 | peerDependencies: 86 | zod: ^3.0.0 87 | dependencies: 88 | '@ai-sdk/provider': 0.0.14 89 | '@ai-sdk/provider-utils': 1.0.5(zod@3.23.8) 90 | zod: 3.23.8 91 | dev: false 92 | 93 | /@ai-sdk/provider-utils@1.0.17(zod@3.23.8): 94 | resolution: {integrity: sha512-2VyeTH5DQ6AxqvwdyytKIeiZyYTyJffpufWjE67zM2sXMIHgYl7fivo8m5wVl6Cbf1dFPSGKq//C9s+lz+NHrQ==} 95 | engines: {node: '>=18'} 96 | peerDependencies: 97 | zod: ^3.0.0 98 | peerDependenciesMeta: 99 | zod: 100 | optional: true 101 | dependencies: 102 | '@ai-sdk/provider': 0.0.22 103 | eventsource-parser: 1.1.2 104 | nanoid: 3.3.6 105 | secure-json-parse: 2.7.0 106 | zod: 3.23.8 107 | dev: false 108 | 109 | /@ai-sdk/provider-utils@1.0.5(zod@3.23.8): 110 | resolution: {integrity: sha512-XfOawxk95X3S43arn2iQIFyWGMi0DTxsf9ETc6t7bh91RPWOOPYN1tsmS5MTKD33OGJeaDQ/gnVRzXUCRBrckQ==} 111 | engines: {node: '>=18'} 112 | peerDependencies: 113 | zod: ^3.0.0 114 | peerDependenciesMeta: 115 | zod: 116 | optional: true 117 | dependencies: 118 | '@ai-sdk/provider': 0.0.14 119 | eventsource-parser: 1.1.2 120 | nanoid: 3.3.6 121 | secure-json-parse: 2.7.0 122 | zod: 3.23.8 123 | dev: false 124 | 125 | /@ai-sdk/provider@0.0.14: 126 | resolution: {integrity: sha512-gaQ5Y033nro9iX1YUjEDFDRhmMcEiCk56LJdIUbX5ozEiCNCfpiBpEqrjSp/Gp5RzBS2W0BVxfG7UGW6Ezcrzg==} 127 | engines: {node: '>=18'} 128 | dependencies: 129 | json-schema: 0.4.0 130 | dev: false 131 | 132 | /@ai-sdk/provider@0.0.22: 133 | resolution: {integrity: sha512-smZ1/2jL/JSKnbhC6ama/PxI2D/psj+YAe0c0qpd5ComQCNFltg72VFf0rpUSFMmFuj1pCCNoBOCrvyl8HTZHQ==} 134 | engines: {node: '>=18'} 135 | dependencies: 136 | json-schema: 0.4.0 137 | dev: false 138 | 139 | /@ai-sdk/react@0.0.54(react@18.3.1)(zod@3.23.8): 140 | resolution: {integrity: sha512-qpDTPbgP2B/RPS9E1IchSUuiOT2X8eY6q9/dT+YITa/9T4zxR1oTGyzR/bb29Eic301YbmfHVG/4x3Dv2nPELA==} 141 | engines: {node: '>=18'} 142 | peerDependencies: 143 | react: ^18 || ^19 144 | zod: ^3.0.0 145 | peerDependenciesMeta: 146 | react: 147 | optional: true 148 | zod: 149 | optional: true 150 | dependencies: 151 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) 152 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) 153 | react: 18.3.1 154 | swr: 2.2.5(react@18.3.1) 155 | zod: 3.23.8 156 | dev: false 157 | 158 | /@ai-sdk/solid@0.0.43(zod@3.23.8): 159 | resolution: {integrity: sha512-7PlPLaeMAu97oOY2gjywvKZMYHF+GDfUxYNcuJ4AZ3/MRBatzs/U2r4ClT1iH8uMOcMg02RX6UKzP5SgnUBjVw==} 160 | engines: {node: '>=18'} 161 | peerDependencies: 162 | solid-js: ^1.7.7 163 | peerDependenciesMeta: 164 | solid-js: 165 | optional: true 166 | dependencies: 167 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) 168 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) 169 | transitivePeerDependencies: 170 | - zod 171 | dev: false 172 | 173 | /@ai-sdk/svelte@0.0.45(svelte@4.2.19)(zod@3.23.8): 174 | resolution: {integrity: sha512-w5Sdl0ArFIM3Fp8BbH4TUvlrS84WP/jN/wC1+fghMOXd7ceVO3Yhs9r71wTqndhgkLC7LAEX9Ll7ZEPfW9WBDA==} 175 | engines: {node: '>=18'} 176 | peerDependencies: 177 | svelte: ^3.0.0 || ^4.0.0 178 | peerDependenciesMeta: 179 | svelte: 180 | optional: true 181 | dependencies: 182 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) 183 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) 184 | sswr: 2.1.0(svelte@4.2.19) 185 | svelte: 4.2.19 186 | transitivePeerDependencies: 187 | - zod 188 | dev: false 189 | 190 | /@ai-sdk/ui-utils@0.0.40(zod@3.23.8): 191 | resolution: {integrity: sha512-f0eonPUBO13pIO8jA9IGux7IKMeqpvWK22GBr3tOoSRnO5Wg5GEpXZU1V0Po+unpeZHyEPahrWbj5JfXcyWCqw==} 192 | engines: {node: '>=18'} 193 | peerDependencies: 194 | zod: ^3.0.0 195 | peerDependenciesMeta: 196 | zod: 197 | optional: true 198 | dependencies: 199 | '@ai-sdk/provider': 0.0.22 200 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) 201 | json-schema: 0.4.0 202 | secure-json-parse: 2.7.0 203 | zod: 3.23.8 204 | zod-to-json-schema: 3.23.2(zod@3.23.8) 205 | dev: false 206 | 207 | /@ai-sdk/vue@0.0.45(vue@3.5.0)(zod@3.23.8): 208 | resolution: {integrity: sha512-bqeoWZqk88TQmfoPgnFUKkrvhOIcOcSH5LMPgzZ8XwDqz5tHHrMHzpPfHCj7XyYn4ROTFK/2kKdC/ta6Ko0fMw==} 209 | engines: {node: '>=18'} 210 | peerDependencies: 211 | vue: ^3.3.4 212 | peerDependenciesMeta: 213 | vue: 214 | optional: true 215 | dependencies: 216 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) 217 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) 218 | swrv: 1.0.4(vue@3.5.0) 219 | vue: 3.5.0(typescript@5.5.4) 220 | transitivePeerDependencies: 221 | - zod 222 | dev: false 223 | 224 | /@alloc/quick-lru@5.2.0: 225 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 226 | engines: {node: '>=10'} 227 | 228 | /@ampproject/remapping@2.3.0: 229 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 230 | engines: {node: '>=6.0.0'} 231 | dependencies: 232 | '@jridgewell/gen-mapping': 0.3.5 233 | '@jridgewell/trace-mapping': 0.3.25 234 | dev: false 235 | 236 | /@babel/helper-string-parser@7.24.8: 237 | resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} 238 | engines: {node: '>=6.9.0'} 239 | dev: false 240 | 241 | /@babel/helper-validator-identifier@7.24.7: 242 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 243 | engines: {node: '>=6.9.0'} 244 | dev: false 245 | 246 | /@babel/parser@7.25.6: 247 | resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} 248 | engines: {node: '>=6.0.0'} 249 | hasBin: true 250 | dependencies: 251 | '@babel/types': 7.25.6 252 | dev: false 253 | 254 | /@babel/types@7.25.6: 255 | resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} 256 | engines: {node: '>=6.9.0'} 257 | dependencies: 258 | '@babel/helper-string-parser': 7.24.8 259 | '@babel/helper-validator-identifier': 7.24.7 260 | to-fast-properties: 2.0.0 261 | dev: false 262 | 263 | /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): 264 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 265 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 266 | peerDependencies: 267 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 268 | dependencies: 269 | eslint: 8.57.0 270 | eslint-visitor-keys: 3.4.3 271 | dev: true 272 | 273 | /@eslint-community/regexpp@4.11.0: 274 | resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} 275 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 276 | dev: true 277 | 278 | /@eslint/eslintrc@2.1.4: 279 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 280 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 281 | dependencies: 282 | ajv: 6.12.6 283 | debug: 4.3.6 284 | espree: 9.6.1 285 | globals: 13.24.0 286 | ignore: 5.3.2 287 | import-fresh: 3.3.0 288 | js-yaml: 4.1.0 289 | minimatch: 3.1.2 290 | strip-json-comments: 3.1.1 291 | transitivePeerDependencies: 292 | - supports-color 293 | dev: true 294 | 295 | /@eslint/js@8.57.0: 296 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 297 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 298 | dev: true 299 | 300 | /@humanwhocodes/config-array@0.11.14: 301 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 302 | engines: {node: '>=10.10.0'} 303 | deprecated: Use @eslint/config-array instead 304 | dependencies: 305 | '@humanwhocodes/object-schema': 2.0.3 306 | debug: 4.3.6 307 | minimatch: 3.1.2 308 | transitivePeerDependencies: 309 | - supports-color 310 | dev: true 311 | 312 | /@humanwhocodes/module-importer@1.0.1: 313 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 314 | engines: {node: '>=12.22'} 315 | dev: true 316 | 317 | /@humanwhocodes/object-schema@2.0.3: 318 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 319 | deprecated: Use @eslint/object-schema instead 320 | dev: true 321 | 322 | /@isaacs/cliui@8.0.2: 323 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 324 | engines: {node: '>=12'} 325 | dependencies: 326 | string-width: 5.1.2 327 | string-width-cjs: /string-width@4.2.3 328 | strip-ansi: 7.1.0 329 | strip-ansi-cjs: /strip-ansi@6.0.1 330 | wrap-ansi: 8.1.0 331 | wrap-ansi-cjs: /wrap-ansi@7.0.0 332 | 333 | /@jridgewell/gen-mapping@0.3.5: 334 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 335 | engines: {node: '>=6.0.0'} 336 | dependencies: 337 | '@jridgewell/set-array': 1.2.1 338 | '@jridgewell/sourcemap-codec': 1.5.0 339 | '@jridgewell/trace-mapping': 0.3.25 340 | 341 | /@jridgewell/resolve-uri@3.1.2: 342 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 343 | engines: {node: '>=6.0.0'} 344 | 345 | /@jridgewell/set-array@1.2.1: 346 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 347 | engines: {node: '>=6.0.0'} 348 | 349 | /@jridgewell/sourcemap-codec@1.5.0: 350 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 351 | 352 | /@jridgewell/trace-mapping@0.3.25: 353 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 354 | dependencies: 355 | '@jridgewell/resolve-uri': 3.1.2 356 | '@jridgewell/sourcemap-codec': 1.5.0 357 | 358 | /@next/env@14.2.5: 359 | resolution: {integrity: sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==} 360 | dev: false 361 | 362 | /@next/eslint-plugin-next@14.2.5: 363 | resolution: {integrity: sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==} 364 | dependencies: 365 | glob: 10.3.10 366 | dev: true 367 | 368 | /@next/swc-darwin-arm64@14.2.5: 369 | resolution: {integrity: sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==} 370 | engines: {node: '>= 10'} 371 | cpu: [arm64] 372 | os: [darwin] 373 | requiresBuild: true 374 | dev: false 375 | optional: true 376 | 377 | /@next/swc-darwin-x64@14.2.5: 378 | resolution: {integrity: sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==} 379 | engines: {node: '>= 10'} 380 | cpu: [x64] 381 | os: [darwin] 382 | requiresBuild: true 383 | dev: false 384 | optional: true 385 | 386 | /@next/swc-linux-arm64-gnu@14.2.5: 387 | resolution: {integrity: sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==} 388 | engines: {node: '>= 10'} 389 | cpu: [arm64] 390 | os: [linux] 391 | requiresBuild: true 392 | dev: false 393 | optional: true 394 | 395 | /@next/swc-linux-arm64-musl@14.2.5: 396 | resolution: {integrity: sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==} 397 | engines: {node: '>= 10'} 398 | cpu: [arm64] 399 | os: [linux] 400 | requiresBuild: true 401 | dev: false 402 | optional: true 403 | 404 | /@next/swc-linux-x64-gnu@14.2.5: 405 | resolution: {integrity: sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==} 406 | engines: {node: '>= 10'} 407 | cpu: [x64] 408 | os: [linux] 409 | requiresBuild: true 410 | dev: false 411 | optional: true 412 | 413 | /@next/swc-linux-x64-musl@14.2.5: 414 | resolution: {integrity: sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==} 415 | engines: {node: '>= 10'} 416 | cpu: [x64] 417 | os: [linux] 418 | requiresBuild: true 419 | dev: false 420 | optional: true 421 | 422 | /@next/swc-win32-arm64-msvc@14.2.5: 423 | resolution: {integrity: sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==} 424 | engines: {node: '>= 10'} 425 | cpu: [arm64] 426 | os: [win32] 427 | requiresBuild: true 428 | dev: false 429 | optional: true 430 | 431 | /@next/swc-win32-ia32-msvc@14.2.5: 432 | resolution: {integrity: sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==} 433 | engines: {node: '>= 10'} 434 | cpu: [ia32] 435 | os: [win32] 436 | requiresBuild: true 437 | dev: false 438 | optional: true 439 | 440 | /@next/swc-win32-x64-msvc@14.2.5: 441 | resolution: {integrity: sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==} 442 | engines: {node: '>= 10'} 443 | cpu: [x64] 444 | os: [win32] 445 | requiresBuild: true 446 | dev: false 447 | optional: true 448 | 449 | /@nodelib/fs.scandir@2.1.5: 450 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 451 | engines: {node: '>= 8'} 452 | dependencies: 453 | '@nodelib/fs.stat': 2.0.5 454 | run-parallel: 1.2.0 455 | 456 | /@nodelib/fs.stat@2.0.5: 457 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 458 | engines: {node: '>= 8'} 459 | 460 | /@nodelib/fs.walk@1.2.8: 461 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 462 | engines: {node: '>= 8'} 463 | dependencies: 464 | '@nodelib/fs.scandir': 2.1.5 465 | fastq: 1.17.1 466 | 467 | /@nolyfill/is-core-module@1.0.39: 468 | resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} 469 | engines: {node: '>=12.4.0'} 470 | dev: true 471 | 472 | /@opentelemetry/api@1.9.0: 473 | resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} 474 | engines: {node: '>=8.0.0'} 475 | dev: false 476 | 477 | /@pkgjs/parseargs@0.11.0: 478 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 479 | engines: {node: '>=14'} 480 | requiresBuild: true 481 | optional: true 482 | 483 | /@radix-ui/primitive@1.1.0: 484 | resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} 485 | dev: false 486 | 487 | /@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.5)(react@18.3.1): 488 | resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} 489 | peerDependencies: 490 | '@types/react': '*' 491 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 492 | peerDependenciesMeta: 493 | '@types/react': 494 | optional: true 495 | dependencies: 496 | '@types/react': 18.3.5 497 | react: 18.3.1 498 | dev: false 499 | 500 | /@radix-ui/react-context@1.1.0(@types/react@18.3.5)(react@18.3.1): 501 | resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} 502 | peerDependencies: 503 | '@types/react': '*' 504 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 505 | peerDependenciesMeta: 506 | '@types/react': 507 | optional: true 508 | dependencies: 509 | '@types/react': 18.3.5 510 | react: 18.3.1 511 | dev: false 512 | 513 | /@radix-ui/react-label@2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1)(react@18.3.1): 514 | resolution: {integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==} 515 | peerDependencies: 516 | '@types/react': '*' 517 | '@types/react-dom': '*' 518 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 519 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 520 | peerDependenciesMeta: 521 | '@types/react': 522 | optional: true 523 | '@types/react-dom': 524 | optional: true 525 | dependencies: 526 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1)(react@18.3.1) 527 | '@types/react': 18.3.5 528 | '@types/react-dom': 18.3.0 529 | react: 18.3.1 530 | react-dom: 18.3.1(react@18.3.1) 531 | dev: false 532 | 533 | /@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1)(react@18.3.1): 534 | resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} 535 | peerDependencies: 536 | '@types/react': '*' 537 | '@types/react-dom': '*' 538 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 539 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 540 | peerDependenciesMeta: 541 | '@types/react': 542 | optional: true 543 | '@types/react-dom': 544 | optional: true 545 | dependencies: 546 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.5)(react@18.3.1) 547 | '@types/react': 18.3.5 548 | '@types/react-dom': 18.3.0 549 | react: 18.3.1 550 | react-dom: 18.3.1(react@18.3.1) 551 | dev: false 552 | 553 | /@radix-ui/react-slot@1.1.0(@types/react@18.3.5)(react@18.3.1): 554 | resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} 555 | peerDependencies: 556 | '@types/react': '*' 557 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 558 | peerDependenciesMeta: 559 | '@types/react': 560 | optional: true 561 | dependencies: 562 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) 563 | '@types/react': 18.3.5 564 | react: 18.3.1 565 | dev: false 566 | 567 | /@radix-ui/react-switch@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1)(react@18.3.1): 568 | resolution: {integrity: sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw==} 569 | peerDependencies: 570 | '@types/react': '*' 571 | '@types/react-dom': '*' 572 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 573 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 574 | peerDependenciesMeta: 575 | '@types/react': 576 | optional: true 577 | '@types/react-dom': 578 | optional: true 579 | dependencies: 580 | '@radix-ui/primitive': 1.1.0 581 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) 582 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) 583 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1)(react@18.3.1) 584 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.5)(react@18.3.1) 585 | '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.5)(react@18.3.1) 586 | '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.5)(react@18.3.1) 587 | '@types/react': 18.3.5 588 | '@types/react-dom': 18.3.0 589 | react: 18.3.1 590 | react-dom: 18.3.1(react@18.3.1) 591 | dev: false 592 | 593 | /@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.5)(react@18.3.1): 594 | resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} 595 | peerDependencies: 596 | '@types/react': '*' 597 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 598 | peerDependenciesMeta: 599 | '@types/react': 600 | optional: true 601 | dependencies: 602 | '@types/react': 18.3.5 603 | react: 18.3.1 604 | dev: false 605 | 606 | /@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.5)(react@18.3.1): 607 | resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} 608 | peerDependencies: 609 | '@types/react': '*' 610 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 611 | peerDependenciesMeta: 612 | '@types/react': 613 | optional: true 614 | dependencies: 615 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) 616 | '@types/react': 18.3.5 617 | react: 18.3.1 618 | dev: false 619 | 620 | /@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.5)(react@18.3.1): 621 | resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} 622 | peerDependencies: 623 | '@types/react': '*' 624 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 625 | peerDependenciesMeta: 626 | '@types/react': 627 | optional: true 628 | dependencies: 629 | '@types/react': 18.3.5 630 | react: 18.3.1 631 | dev: false 632 | 633 | /@radix-ui/react-use-previous@1.1.0(@types/react@18.3.5)(react@18.3.1): 634 | resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} 635 | peerDependencies: 636 | '@types/react': '*' 637 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 638 | peerDependenciesMeta: 639 | '@types/react': 640 | optional: true 641 | dependencies: 642 | '@types/react': 18.3.5 643 | react: 18.3.1 644 | dev: false 645 | 646 | /@radix-ui/react-use-size@1.1.0(@types/react@18.3.5)(react@18.3.1): 647 | resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} 648 | peerDependencies: 649 | '@types/react': '*' 650 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 651 | peerDependenciesMeta: 652 | '@types/react': 653 | optional: true 654 | dependencies: 655 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) 656 | '@types/react': 18.3.5 657 | react: 18.3.1 658 | dev: false 659 | 660 | /@rtsao/scc@1.1.0: 661 | resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} 662 | dev: true 663 | 664 | /@rushstack/eslint-patch@1.10.4: 665 | resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} 666 | dev: true 667 | 668 | /@swc/counter@0.1.3: 669 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 670 | dev: false 671 | 672 | /@swc/helpers@0.5.5: 673 | resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} 674 | dependencies: 675 | '@swc/counter': 0.1.3 676 | tslib: 2.7.0 677 | dev: false 678 | 679 | /@types/diff-match-patch@1.0.36: 680 | resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} 681 | dev: false 682 | 683 | /@types/estree@1.0.5: 684 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 685 | dev: false 686 | 687 | /@types/json5@0.0.29: 688 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 689 | dev: true 690 | 691 | /@types/node-fetch@2.6.11: 692 | resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} 693 | dependencies: 694 | '@types/node': 20.16.4 695 | form-data: 4.0.0 696 | dev: false 697 | 698 | /@types/node@18.19.49: 699 | resolution: {integrity: sha512-ALCeIR6n0nQ7j0FUF1ycOhrp6+XutJWqEu/vtdEqXFUQwkBfgUA5cEg3ZNmjWGF/ZYA/FcF9QMkL55Ar0O6UrA==} 700 | dependencies: 701 | undici-types: 5.26.5 702 | dev: false 703 | 704 | /@types/node@20.16.4: 705 | resolution: {integrity: sha512-ioyQ1zK9aGEomJ45zz8S8IdzElyxhvP1RVWnPrXDf6wFaUb+kk1tEcVVJkF7RPGM0VWI7cp5U57oCPIn5iN1qg==} 706 | dependencies: 707 | undici-types: 6.19.8 708 | 709 | /@types/prop-types@15.7.12: 710 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 711 | 712 | /@types/qs@6.9.15: 713 | resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} 714 | dev: false 715 | 716 | /@types/react-dom@18.3.0: 717 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 718 | dependencies: 719 | '@types/react': 18.3.5 720 | 721 | /@types/react@18.3.5: 722 | resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} 723 | dependencies: 724 | '@types/prop-types': 15.7.12 725 | csstype: 3.1.3 726 | 727 | /@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4): 728 | resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} 729 | engines: {node: ^16.0.0 || >=18.0.0} 730 | peerDependencies: 731 | eslint: ^8.56.0 732 | typescript: '*' 733 | peerDependenciesMeta: 734 | typescript: 735 | optional: true 736 | dependencies: 737 | '@typescript-eslint/scope-manager': 7.2.0 738 | '@typescript-eslint/types': 7.2.0 739 | '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4) 740 | '@typescript-eslint/visitor-keys': 7.2.0 741 | debug: 4.3.6 742 | eslint: 8.57.0 743 | typescript: 5.5.4 744 | transitivePeerDependencies: 745 | - supports-color 746 | dev: true 747 | 748 | /@typescript-eslint/scope-manager@7.2.0: 749 | resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} 750 | engines: {node: ^16.0.0 || >=18.0.0} 751 | dependencies: 752 | '@typescript-eslint/types': 7.2.0 753 | '@typescript-eslint/visitor-keys': 7.2.0 754 | dev: true 755 | 756 | /@typescript-eslint/types@7.2.0: 757 | resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} 758 | engines: {node: ^16.0.0 || >=18.0.0} 759 | dev: true 760 | 761 | /@typescript-eslint/typescript-estree@7.2.0(typescript@5.5.4): 762 | resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} 763 | engines: {node: ^16.0.0 || >=18.0.0} 764 | peerDependencies: 765 | typescript: '*' 766 | peerDependenciesMeta: 767 | typescript: 768 | optional: true 769 | dependencies: 770 | '@typescript-eslint/types': 7.2.0 771 | '@typescript-eslint/visitor-keys': 7.2.0 772 | debug: 4.3.6 773 | globby: 11.1.0 774 | is-glob: 4.0.3 775 | minimatch: 9.0.3 776 | semver: 7.6.3 777 | ts-api-utils: 1.3.0(typescript@5.5.4) 778 | typescript: 5.5.4 779 | transitivePeerDependencies: 780 | - supports-color 781 | dev: true 782 | 783 | /@typescript-eslint/visitor-keys@7.2.0: 784 | resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} 785 | engines: {node: ^16.0.0 || >=18.0.0} 786 | dependencies: 787 | '@typescript-eslint/types': 7.2.0 788 | eslint-visitor-keys: 3.4.3 789 | dev: true 790 | 791 | /@ungap/structured-clone@1.2.0: 792 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 793 | dev: true 794 | 795 | /@vue/compiler-core@3.5.0: 796 | resolution: {integrity: sha512-ja7cpqAOfw4tyFAxgBz70Z42miNDeaqTxExTsnXDLomRpqfyCgyvZvFp482fmsElpfvsoMJUsvzULhvxUTW6Iw==} 797 | dependencies: 798 | '@babel/parser': 7.25.6 799 | '@vue/shared': 3.5.0 800 | entities: 4.5.0 801 | estree-walker: 2.0.2 802 | source-map-js: 1.2.0 803 | dev: false 804 | 805 | /@vue/compiler-dom@3.5.0: 806 | resolution: {integrity: sha512-xYjUybWZXl+1R/toDy815i4PbeehL2hThiSGkcpmIOCy2HoYyeeC/gAWK/Y/xsoK+GSw198/T5O31bYuQx5uvQ==} 807 | dependencies: 808 | '@vue/compiler-core': 3.5.0 809 | '@vue/shared': 3.5.0 810 | dev: false 811 | 812 | /@vue/compiler-sfc@3.5.0: 813 | resolution: {integrity: sha512-B9DgLtrqok2GLuaFjLlSL15ZG3ZDBiitUH1ecex9guh/ZcA5MCdwuVE6nsfQxktuZY/QY0awJ35/ripIviCQTQ==} 814 | dependencies: 815 | '@babel/parser': 7.25.6 816 | '@vue/compiler-core': 3.5.0 817 | '@vue/compiler-dom': 3.5.0 818 | '@vue/compiler-ssr': 3.5.0 819 | '@vue/shared': 3.5.0 820 | estree-walker: 2.0.2 821 | magic-string: 0.30.11 822 | postcss: 8.4.44 823 | source-map-js: 1.2.0 824 | dev: false 825 | 826 | /@vue/compiler-ssr@3.5.0: 827 | resolution: {integrity: sha512-E263QZmA1dqRd7c3u/sWTLRMpQOT0aZ8av/L9SoD/v/BVMZaWFHPUUBswS+bzrfvG2suJF8vSLKx6k6ba5SUdA==} 828 | dependencies: 829 | '@vue/compiler-dom': 3.5.0 830 | '@vue/shared': 3.5.0 831 | dev: false 832 | 833 | /@vue/reactivity@3.5.0: 834 | resolution: {integrity: sha512-Ew3F5riP3B3ZDGjD3ZKb9uZylTTPSqt8hAf4sGbvbjrjDjrFb3Jm15Tk1/w7WwTE5GbQ2Qhwxx1moc9hr8A/OQ==} 835 | dependencies: 836 | '@vue/shared': 3.5.0 837 | dev: false 838 | 839 | /@vue/runtime-core@3.5.0: 840 | resolution: {integrity: sha512-mQyW0F9FaNRdt8ghkAs+BMG3iQ7LGgWKOpkzUzR5AI5swPNydHGL5hvVTqFaeMzwecF1g0c86H4yFQsSxJhH1w==} 841 | dependencies: 842 | '@vue/reactivity': 3.5.0 843 | '@vue/shared': 3.5.0 844 | dev: false 845 | 846 | /@vue/runtime-dom@3.5.0: 847 | resolution: {integrity: sha512-NQQXjpdXgyYVJ2M56FJ+lSJgZiecgQ2HhxhnQBN95FymXegRNY/N2htI7vOTwpP75pfxhIeYOJ8mE8sW8KAW6A==} 848 | dependencies: 849 | '@vue/reactivity': 3.5.0 850 | '@vue/runtime-core': 3.5.0 851 | '@vue/shared': 3.5.0 852 | csstype: 3.1.3 853 | dev: false 854 | 855 | /@vue/server-renderer@3.5.0(vue@3.5.0): 856 | resolution: {integrity: sha512-HyDIFUg+l7L4PKrEnJlCYWHUOlm6NxZhmSxIefZ5MTYjkIPfDfkwhX7hqxAQHfgIAE1uLMLQZwuNR/ozI0NhZg==} 857 | peerDependencies: 858 | vue: 3.5.0 859 | dependencies: 860 | '@vue/compiler-ssr': 3.5.0 861 | '@vue/shared': 3.5.0 862 | vue: 3.5.0(typescript@5.5.4) 863 | dev: false 864 | 865 | /@vue/shared@3.5.0: 866 | resolution: {integrity: sha512-m9IgiteBpCkFaMNwCOBkFksA7z8QiKc30ooRuoXWUFRDu0mGyNPlFHmbncF0/Kra1RlX8QrmBbRaIxVvikaR0Q==} 867 | dev: false 868 | 869 | /abort-controller@3.0.0: 870 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 871 | engines: {node: '>=6.5'} 872 | dependencies: 873 | event-target-shim: 5.0.1 874 | dev: false 875 | 876 | /acorn-jsx@5.3.2(acorn@8.12.1): 877 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 878 | peerDependencies: 879 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 880 | dependencies: 881 | acorn: 8.12.1 882 | dev: true 883 | 884 | /acorn@8.12.1: 885 | resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} 886 | engines: {node: '>=0.4.0'} 887 | hasBin: true 888 | 889 | /agentkeepalive@4.5.0: 890 | resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} 891 | engines: {node: '>= 8.0.0'} 892 | dependencies: 893 | humanize-ms: 1.2.1 894 | dev: false 895 | 896 | /ai@3.3.26(openai@4.57.1)(react@18.3.1)(svelte@4.2.19)(vue@3.5.0)(zod@3.23.8): 897 | resolution: {integrity: sha512-UOklRlYM7E/mr2WVtz3iluU4Ja68XYlMLEHL2mxggMcrnhN45E1seu2NXpjZsq1anyIkgBbHN14Lo0R4A9jt/A==} 898 | engines: {node: '>=18'} 899 | peerDependencies: 900 | openai: ^4.42.0 901 | react: ^18 || ^19 902 | sswr: ^2.1.0 903 | svelte: ^3.0.0 || ^4.0.0 904 | zod: ^3.0.0 905 | peerDependenciesMeta: 906 | openai: 907 | optional: true 908 | react: 909 | optional: true 910 | sswr: 911 | optional: true 912 | svelte: 913 | optional: true 914 | zod: 915 | optional: true 916 | dependencies: 917 | '@ai-sdk/provider': 0.0.22 918 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) 919 | '@ai-sdk/react': 0.0.54(react@18.3.1)(zod@3.23.8) 920 | '@ai-sdk/solid': 0.0.43(zod@3.23.8) 921 | '@ai-sdk/svelte': 0.0.45(svelte@4.2.19)(zod@3.23.8) 922 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) 923 | '@ai-sdk/vue': 0.0.45(vue@3.5.0)(zod@3.23.8) 924 | '@opentelemetry/api': 1.9.0 925 | eventsource-parser: 1.1.2 926 | json-schema: 0.4.0 927 | jsondiffpatch: 0.6.0 928 | nanoid: 3.3.6 929 | openai: 4.57.1(zod@3.23.8) 930 | react: 18.3.1 931 | secure-json-parse: 2.7.0 932 | svelte: 4.2.19 933 | zod: 3.23.8 934 | zod-to-json-schema: 3.23.2(zod@3.23.8) 935 | transitivePeerDependencies: 936 | - solid-js 937 | - vue 938 | dev: false 939 | 940 | /ajv@6.12.6: 941 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 942 | dependencies: 943 | fast-deep-equal: 3.1.3 944 | fast-json-stable-stringify: 2.1.0 945 | json-schema-traverse: 0.4.1 946 | uri-js: 4.4.1 947 | dev: true 948 | 949 | /ansi-regex@5.0.1: 950 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 951 | engines: {node: '>=8'} 952 | 953 | /ansi-regex@6.0.1: 954 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 955 | engines: {node: '>=12'} 956 | 957 | /ansi-styles@4.3.0: 958 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 959 | engines: {node: '>=8'} 960 | dependencies: 961 | color-convert: 2.0.1 962 | 963 | /ansi-styles@6.2.1: 964 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 965 | engines: {node: '>=12'} 966 | 967 | /any-promise@1.3.0: 968 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 969 | 970 | /anymatch@3.1.3: 971 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 972 | engines: {node: '>= 8'} 973 | dependencies: 974 | normalize-path: 3.0.0 975 | picomatch: 2.3.1 976 | 977 | /arg@5.0.2: 978 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 979 | 980 | /argparse@2.0.1: 981 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 982 | dev: true 983 | 984 | /aria-query@5.1.3: 985 | resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} 986 | dependencies: 987 | deep-equal: 2.2.3 988 | dev: true 989 | 990 | /aria-query@5.3.0: 991 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 992 | dependencies: 993 | dequal: 2.0.3 994 | dev: false 995 | 996 | /array-buffer-byte-length@1.0.1: 997 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} 998 | engines: {node: '>= 0.4'} 999 | dependencies: 1000 | call-bind: 1.0.7 1001 | is-array-buffer: 3.0.4 1002 | dev: true 1003 | 1004 | /array-includes@3.1.8: 1005 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 1006 | engines: {node: '>= 0.4'} 1007 | dependencies: 1008 | call-bind: 1.0.7 1009 | define-properties: 1.2.1 1010 | es-abstract: 1.23.3 1011 | es-object-atoms: 1.0.0 1012 | get-intrinsic: 1.2.4 1013 | is-string: 1.0.7 1014 | dev: true 1015 | 1016 | /array-union@2.1.0: 1017 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1018 | engines: {node: '>=8'} 1019 | dev: true 1020 | 1021 | /array.prototype.findlast@1.2.5: 1022 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} 1023 | engines: {node: '>= 0.4'} 1024 | dependencies: 1025 | call-bind: 1.0.7 1026 | define-properties: 1.2.1 1027 | es-abstract: 1.23.3 1028 | es-errors: 1.3.0 1029 | es-object-atoms: 1.0.0 1030 | es-shim-unscopables: 1.0.2 1031 | dev: true 1032 | 1033 | /array.prototype.findlastindex@1.2.5: 1034 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} 1035 | engines: {node: '>= 0.4'} 1036 | dependencies: 1037 | call-bind: 1.0.7 1038 | define-properties: 1.2.1 1039 | es-abstract: 1.23.3 1040 | es-errors: 1.3.0 1041 | es-object-atoms: 1.0.0 1042 | es-shim-unscopables: 1.0.2 1043 | dev: true 1044 | 1045 | /array.prototype.flat@1.3.2: 1046 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 1047 | engines: {node: '>= 0.4'} 1048 | dependencies: 1049 | call-bind: 1.0.7 1050 | define-properties: 1.2.1 1051 | es-abstract: 1.23.3 1052 | es-shim-unscopables: 1.0.2 1053 | dev: true 1054 | 1055 | /array.prototype.flatmap@1.3.2: 1056 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 1057 | engines: {node: '>= 0.4'} 1058 | dependencies: 1059 | call-bind: 1.0.7 1060 | define-properties: 1.2.1 1061 | es-abstract: 1.23.3 1062 | es-shim-unscopables: 1.0.2 1063 | dev: true 1064 | 1065 | /array.prototype.tosorted@1.1.4: 1066 | resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} 1067 | engines: {node: '>= 0.4'} 1068 | dependencies: 1069 | call-bind: 1.0.7 1070 | define-properties: 1.2.1 1071 | es-abstract: 1.23.3 1072 | es-errors: 1.3.0 1073 | es-shim-unscopables: 1.0.2 1074 | dev: true 1075 | 1076 | /arraybuffer.prototype.slice@1.0.3: 1077 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} 1078 | engines: {node: '>= 0.4'} 1079 | dependencies: 1080 | array-buffer-byte-length: 1.0.1 1081 | call-bind: 1.0.7 1082 | define-properties: 1.2.1 1083 | es-abstract: 1.23.3 1084 | es-errors: 1.3.0 1085 | get-intrinsic: 1.2.4 1086 | is-array-buffer: 3.0.4 1087 | is-shared-array-buffer: 1.0.3 1088 | dev: true 1089 | 1090 | /ast-types-flow@0.0.8: 1091 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 1092 | dev: true 1093 | 1094 | /asynckit@0.4.0: 1095 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 1096 | dev: false 1097 | 1098 | /available-typed-arrays@1.0.7: 1099 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 1100 | engines: {node: '>= 0.4'} 1101 | dependencies: 1102 | possible-typed-array-names: 1.0.0 1103 | dev: true 1104 | 1105 | /axe-core@4.10.0: 1106 | resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} 1107 | engines: {node: '>=4'} 1108 | dev: true 1109 | 1110 | /axobject-query@3.1.1: 1111 | resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} 1112 | dependencies: 1113 | deep-equal: 2.2.3 1114 | dev: true 1115 | 1116 | /axobject-query@4.1.0: 1117 | resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 1118 | engines: {node: '>= 0.4'} 1119 | dev: false 1120 | 1121 | /balanced-match@1.0.2: 1122 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1123 | 1124 | /binary-extensions@2.3.0: 1125 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 1126 | engines: {node: '>=8'} 1127 | 1128 | /brace-expansion@1.1.11: 1129 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1130 | dependencies: 1131 | balanced-match: 1.0.2 1132 | concat-map: 0.0.1 1133 | dev: true 1134 | 1135 | /brace-expansion@2.0.1: 1136 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1137 | dependencies: 1138 | balanced-match: 1.0.2 1139 | 1140 | /braces@3.0.3: 1141 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 1142 | engines: {node: '>=8'} 1143 | dependencies: 1144 | fill-range: 7.1.1 1145 | 1146 | /busboy@1.6.0: 1147 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 1148 | engines: {node: '>=10.16.0'} 1149 | dependencies: 1150 | streamsearch: 1.1.0 1151 | dev: false 1152 | 1153 | /call-bind@1.0.7: 1154 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 1155 | engines: {node: '>= 0.4'} 1156 | dependencies: 1157 | es-define-property: 1.0.0 1158 | es-errors: 1.3.0 1159 | function-bind: 1.1.2 1160 | get-intrinsic: 1.2.4 1161 | set-function-length: 1.2.2 1162 | 1163 | /callsites@3.1.0: 1164 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1165 | engines: {node: '>=6'} 1166 | dev: true 1167 | 1168 | /camelcase-css@2.0.1: 1169 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 1170 | engines: {node: '>= 6'} 1171 | 1172 | /caniuse-lite@1.0.30001655: 1173 | resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==} 1174 | dev: false 1175 | 1176 | /chalk@4.1.2: 1177 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1178 | engines: {node: '>=10'} 1179 | dependencies: 1180 | ansi-styles: 4.3.0 1181 | supports-color: 7.2.0 1182 | dev: true 1183 | 1184 | /chalk@5.3.0: 1185 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 1186 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 1187 | dev: false 1188 | 1189 | /chokidar@3.6.0: 1190 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1191 | engines: {node: '>= 8.10.0'} 1192 | dependencies: 1193 | anymatch: 3.1.3 1194 | braces: 3.0.3 1195 | glob-parent: 5.1.2 1196 | is-binary-path: 2.1.0 1197 | is-glob: 4.0.3 1198 | normalize-path: 3.0.0 1199 | readdirp: 3.6.0 1200 | optionalDependencies: 1201 | fsevents: 2.3.3 1202 | 1203 | /class-variance-authority@0.7.0: 1204 | resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} 1205 | dependencies: 1206 | clsx: 2.0.0 1207 | dev: false 1208 | 1209 | /client-only@0.0.1: 1210 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 1211 | dev: false 1212 | 1213 | /clsx@2.0.0: 1214 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} 1215 | engines: {node: '>=6'} 1216 | dev: false 1217 | 1218 | /clsx@2.1.1: 1219 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 1220 | engines: {node: '>=6'} 1221 | dev: false 1222 | 1223 | /code-red@1.0.4: 1224 | resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} 1225 | dependencies: 1226 | '@jridgewell/sourcemap-codec': 1.5.0 1227 | '@types/estree': 1.0.5 1228 | acorn: 8.12.1 1229 | estree-walker: 3.0.3 1230 | periscopic: 3.1.0 1231 | dev: false 1232 | 1233 | /color-convert@2.0.1: 1234 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1235 | engines: {node: '>=7.0.0'} 1236 | dependencies: 1237 | color-name: 1.1.4 1238 | 1239 | /color-name@1.1.4: 1240 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1241 | 1242 | /combined-stream@1.0.8: 1243 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 1244 | engines: {node: '>= 0.8'} 1245 | dependencies: 1246 | delayed-stream: 1.0.0 1247 | dev: false 1248 | 1249 | /commander@4.1.1: 1250 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1251 | engines: {node: '>= 6'} 1252 | 1253 | /concat-map@0.0.1: 1254 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1255 | dev: true 1256 | 1257 | /cross-spawn@7.0.3: 1258 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1259 | engines: {node: '>= 8'} 1260 | dependencies: 1261 | path-key: 3.1.1 1262 | shebang-command: 2.0.0 1263 | which: 2.0.2 1264 | 1265 | /css-tree@2.3.1: 1266 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} 1267 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 1268 | dependencies: 1269 | mdn-data: 2.0.30 1270 | source-map-js: 1.2.0 1271 | dev: false 1272 | 1273 | /cssesc@3.0.0: 1274 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1275 | engines: {node: '>=4'} 1276 | hasBin: true 1277 | 1278 | /csstype@3.1.3: 1279 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1280 | 1281 | /damerau-levenshtein@1.0.8: 1282 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 1283 | dev: true 1284 | 1285 | /data-view-buffer@1.0.1: 1286 | resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} 1287 | engines: {node: '>= 0.4'} 1288 | dependencies: 1289 | call-bind: 1.0.7 1290 | es-errors: 1.3.0 1291 | is-data-view: 1.0.1 1292 | dev: true 1293 | 1294 | /data-view-byte-length@1.0.1: 1295 | resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} 1296 | engines: {node: '>= 0.4'} 1297 | dependencies: 1298 | call-bind: 1.0.7 1299 | es-errors: 1.3.0 1300 | is-data-view: 1.0.1 1301 | dev: true 1302 | 1303 | /data-view-byte-offset@1.0.0: 1304 | resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} 1305 | engines: {node: '>= 0.4'} 1306 | dependencies: 1307 | call-bind: 1.0.7 1308 | es-errors: 1.3.0 1309 | is-data-view: 1.0.1 1310 | dev: true 1311 | 1312 | /debug@3.2.7: 1313 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1314 | peerDependencies: 1315 | supports-color: '*' 1316 | peerDependenciesMeta: 1317 | supports-color: 1318 | optional: true 1319 | dependencies: 1320 | ms: 2.1.3 1321 | dev: true 1322 | 1323 | /debug@4.3.6: 1324 | resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} 1325 | engines: {node: '>=6.0'} 1326 | peerDependencies: 1327 | supports-color: '*' 1328 | peerDependenciesMeta: 1329 | supports-color: 1330 | optional: true 1331 | dependencies: 1332 | ms: 2.1.2 1333 | dev: true 1334 | 1335 | /deep-equal@2.2.3: 1336 | resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} 1337 | engines: {node: '>= 0.4'} 1338 | dependencies: 1339 | array-buffer-byte-length: 1.0.1 1340 | call-bind: 1.0.7 1341 | es-get-iterator: 1.1.3 1342 | get-intrinsic: 1.2.4 1343 | is-arguments: 1.1.1 1344 | is-array-buffer: 3.0.4 1345 | is-date-object: 1.0.5 1346 | is-regex: 1.1.4 1347 | is-shared-array-buffer: 1.0.3 1348 | isarray: 2.0.5 1349 | object-is: 1.1.6 1350 | object-keys: 1.1.1 1351 | object.assign: 4.1.5 1352 | regexp.prototype.flags: 1.5.2 1353 | side-channel: 1.0.6 1354 | which-boxed-primitive: 1.0.2 1355 | which-collection: 1.0.2 1356 | which-typed-array: 1.1.15 1357 | dev: true 1358 | 1359 | /deep-is@0.1.4: 1360 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1361 | dev: true 1362 | 1363 | /define-data-property@1.1.4: 1364 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 1365 | engines: {node: '>= 0.4'} 1366 | dependencies: 1367 | es-define-property: 1.0.0 1368 | es-errors: 1.3.0 1369 | gopd: 1.0.1 1370 | 1371 | /define-properties@1.2.1: 1372 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 1373 | engines: {node: '>= 0.4'} 1374 | dependencies: 1375 | define-data-property: 1.1.4 1376 | has-property-descriptors: 1.0.2 1377 | object-keys: 1.1.1 1378 | dev: true 1379 | 1380 | /delayed-stream@1.0.0: 1381 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1382 | engines: {node: '>=0.4.0'} 1383 | dev: false 1384 | 1385 | /dequal@2.0.3: 1386 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1387 | engines: {node: '>=6'} 1388 | dev: false 1389 | 1390 | /didyoumean@1.2.2: 1391 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1392 | 1393 | /diff-match-patch@1.0.5: 1394 | resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} 1395 | dev: false 1396 | 1397 | /dir-glob@3.0.1: 1398 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1399 | engines: {node: '>=8'} 1400 | dependencies: 1401 | path-type: 4.0.0 1402 | dev: true 1403 | 1404 | /dlv@1.1.3: 1405 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1406 | 1407 | /doctrine@2.1.0: 1408 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1409 | engines: {node: '>=0.10.0'} 1410 | dependencies: 1411 | esutils: 2.0.3 1412 | dev: true 1413 | 1414 | /doctrine@3.0.0: 1415 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1416 | engines: {node: '>=6.0.0'} 1417 | dependencies: 1418 | esutils: 2.0.3 1419 | dev: true 1420 | 1421 | /eastasianwidth@0.2.0: 1422 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1423 | 1424 | /emoji-regex@8.0.0: 1425 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1426 | 1427 | /emoji-regex@9.2.2: 1428 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1429 | 1430 | /enhanced-resolve@5.17.1: 1431 | resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} 1432 | engines: {node: '>=10.13.0'} 1433 | dependencies: 1434 | graceful-fs: 4.2.11 1435 | tapable: 2.2.1 1436 | dev: true 1437 | 1438 | /entities@4.5.0: 1439 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1440 | engines: {node: '>=0.12'} 1441 | dev: false 1442 | 1443 | /es-abstract@1.23.3: 1444 | resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} 1445 | engines: {node: '>= 0.4'} 1446 | dependencies: 1447 | array-buffer-byte-length: 1.0.1 1448 | arraybuffer.prototype.slice: 1.0.3 1449 | available-typed-arrays: 1.0.7 1450 | call-bind: 1.0.7 1451 | data-view-buffer: 1.0.1 1452 | data-view-byte-length: 1.0.1 1453 | data-view-byte-offset: 1.0.0 1454 | es-define-property: 1.0.0 1455 | es-errors: 1.3.0 1456 | es-object-atoms: 1.0.0 1457 | es-set-tostringtag: 2.0.3 1458 | es-to-primitive: 1.2.1 1459 | function.prototype.name: 1.1.6 1460 | get-intrinsic: 1.2.4 1461 | get-symbol-description: 1.0.2 1462 | globalthis: 1.0.4 1463 | gopd: 1.0.1 1464 | has-property-descriptors: 1.0.2 1465 | has-proto: 1.0.3 1466 | has-symbols: 1.0.3 1467 | hasown: 2.0.2 1468 | internal-slot: 1.0.7 1469 | is-array-buffer: 3.0.4 1470 | is-callable: 1.2.7 1471 | is-data-view: 1.0.1 1472 | is-negative-zero: 2.0.3 1473 | is-regex: 1.1.4 1474 | is-shared-array-buffer: 1.0.3 1475 | is-string: 1.0.7 1476 | is-typed-array: 1.1.13 1477 | is-weakref: 1.0.2 1478 | object-inspect: 1.13.2 1479 | object-keys: 1.1.1 1480 | object.assign: 4.1.5 1481 | regexp.prototype.flags: 1.5.2 1482 | safe-array-concat: 1.1.2 1483 | safe-regex-test: 1.0.3 1484 | string.prototype.trim: 1.2.9 1485 | string.prototype.trimend: 1.0.8 1486 | string.prototype.trimstart: 1.0.8 1487 | typed-array-buffer: 1.0.2 1488 | typed-array-byte-length: 1.0.1 1489 | typed-array-byte-offset: 1.0.2 1490 | typed-array-length: 1.0.6 1491 | unbox-primitive: 1.0.2 1492 | which-typed-array: 1.1.15 1493 | dev: true 1494 | 1495 | /es-define-property@1.0.0: 1496 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 1497 | engines: {node: '>= 0.4'} 1498 | dependencies: 1499 | get-intrinsic: 1.2.4 1500 | 1501 | /es-errors@1.3.0: 1502 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 1503 | engines: {node: '>= 0.4'} 1504 | 1505 | /es-get-iterator@1.1.3: 1506 | resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} 1507 | dependencies: 1508 | call-bind: 1.0.7 1509 | get-intrinsic: 1.2.4 1510 | has-symbols: 1.0.3 1511 | is-arguments: 1.1.1 1512 | is-map: 2.0.3 1513 | is-set: 2.0.3 1514 | is-string: 1.0.7 1515 | isarray: 2.0.5 1516 | stop-iteration-iterator: 1.0.0 1517 | dev: true 1518 | 1519 | /es-iterator-helpers@1.0.19: 1520 | resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} 1521 | engines: {node: '>= 0.4'} 1522 | dependencies: 1523 | call-bind: 1.0.7 1524 | define-properties: 1.2.1 1525 | es-abstract: 1.23.3 1526 | es-errors: 1.3.0 1527 | es-set-tostringtag: 2.0.3 1528 | function-bind: 1.1.2 1529 | get-intrinsic: 1.2.4 1530 | globalthis: 1.0.4 1531 | has-property-descriptors: 1.0.2 1532 | has-proto: 1.0.3 1533 | has-symbols: 1.0.3 1534 | internal-slot: 1.0.7 1535 | iterator.prototype: 1.1.2 1536 | safe-array-concat: 1.1.2 1537 | dev: true 1538 | 1539 | /es-object-atoms@1.0.0: 1540 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 1541 | engines: {node: '>= 0.4'} 1542 | dependencies: 1543 | es-errors: 1.3.0 1544 | dev: true 1545 | 1546 | /es-set-tostringtag@2.0.3: 1547 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} 1548 | engines: {node: '>= 0.4'} 1549 | dependencies: 1550 | get-intrinsic: 1.2.4 1551 | has-tostringtag: 1.0.2 1552 | hasown: 2.0.2 1553 | dev: true 1554 | 1555 | /es-shim-unscopables@1.0.2: 1556 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 1557 | dependencies: 1558 | hasown: 2.0.2 1559 | dev: true 1560 | 1561 | /es-to-primitive@1.2.1: 1562 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1563 | engines: {node: '>= 0.4'} 1564 | dependencies: 1565 | is-callable: 1.2.7 1566 | is-date-object: 1.0.5 1567 | is-symbol: 1.0.4 1568 | dev: true 1569 | 1570 | /escape-string-regexp@4.0.0: 1571 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1572 | engines: {node: '>=10'} 1573 | dev: true 1574 | 1575 | /eslint-config-next@14.2.5(eslint@8.57.0)(typescript@5.5.4): 1576 | resolution: {integrity: sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==} 1577 | peerDependencies: 1578 | eslint: ^7.23.0 || ^8.0.0 1579 | typescript: '>=3.3.1' 1580 | peerDependenciesMeta: 1581 | typescript: 1582 | optional: true 1583 | dependencies: 1584 | '@next/eslint-plugin-next': 14.2.5 1585 | '@rushstack/eslint-patch': 1.10.4 1586 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) 1587 | eslint: 8.57.0 1588 | eslint-import-resolver-node: 0.3.9 1589 | eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0) 1590 | eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) 1591 | eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) 1592 | eslint-plugin-react: 7.35.2(eslint@8.57.0) 1593 | eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) 1594 | typescript: 5.5.4 1595 | transitivePeerDependencies: 1596 | - eslint-import-resolver-webpack 1597 | - eslint-plugin-import-x 1598 | - supports-color 1599 | dev: true 1600 | 1601 | /eslint-import-resolver-node@0.3.9: 1602 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 1603 | dependencies: 1604 | debug: 3.2.7 1605 | is-core-module: 2.15.1 1606 | resolve: 1.22.8 1607 | transitivePeerDependencies: 1608 | - supports-color 1609 | dev: true 1610 | 1611 | /eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0): 1612 | resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} 1613 | engines: {node: ^14.18.0 || >=16.0.0} 1614 | peerDependencies: 1615 | eslint: '*' 1616 | eslint-plugin-import: '*' 1617 | eslint-plugin-import-x: '*' 1618 | peerDependenciesMeta: 1619 | eslint-plugin-import: 1620 | optional: true 1621 | eslint-plugin-import-x: 1622 | optional: true 1623 | dependencies: 1624 | '@nolyfill/is-core-module': 1.0.39 1625 | debug: 4.3.6 1626 | enhanced-resolve: 5.17.1 1627 | eslint: 8.57.0 1628 | eslint-module-utils: 2.9.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) 1629 | eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) 1630 | fast-glob: 3.3.2 1631 | get-tsconfig: 4.8.0 1632 | is-bun-module: 1.1.0 1633 | is-glob: 4.0.3 1634 | transitivePeerDependencies: 1635 | - '@typescript-eslint/parser' 1636 | - eslint-import-resolver-node 1637 | - eslint-import-resolver-webpack 1638 | - supports-color 1639 | dev: true 1640 | 1641 | /eslint-module-utils@2.9.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0): 1642 | resolution: {integrity: sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==} 1643 | engines: {node: '>=4'} 1644 | peerDependencies: 1645 | '@typescript-eslint/parser': '*' 1646 | eslint: '*' 1647 | eslint-import-resolver-node: '*' 1648 | eslint-import-resolver-typescript: '*' 1649 | eslint-import-resolver-webpack: '*' 1650 | peerDependenciesMeta: 1651 | '@typescript-eslint/parser': 1652 | optional: true 1653 | eslint: 1654 | optional: true 1655 | eslint-import-resolver-node: 1656 | optional: true 1657 | eslint-import-resolver-typescript: 1658 | optional: true 1659 | eslint-import-resolver-webpack: 1660 | optional: true 1661 | dependencies: 1662 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) 1663 | debug: 3.2.7 1664 | eslint: 8.57.0 1665 | eslint-import-resolver-node: 0.3.9 1666 | eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0) 1667 | transitivePeerDependencies: 1668 | - supports-color 1669 | dev: true 1670 | 1671 | /eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0): 1672 | resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} 1673 | engines: {node: '>=4'} 1674 | peerDependencies: 1675 | '@typescript-eslint/parser': '*' 1676 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1677 | peerDependenciesMeta: 1678 | '@typescript-eslint/parser': 1679 | optional: true 1680 | dependencies: 1681 | '@rtsao/scc': 1.1.0 1682 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) 1683 | array-includes: 3.1.8 1684 | array.prototype.findlastindex: 1.2.5 1685 | array.prototype.flat: 1.3.2 1686 | array.prototype.flatmap: 1.3.2 1687 | debug: 3.2.7 1688 | doctrine: 2.1.0 1689 | eslint: 8.57.0 1690 | eslint-import-resolver-node: 0.3.9 1691 | eslint-module-utils: 2.9.0(@typescript-eslint/parser@7.2.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) 1692 | hasown: 2.0.2 1693 | is-core-module: 2.15.1 1694 | is-glob: 4.0.3 1695 | minimatch: 3.1.2 1696 | object.fromentries: 2.0.8 1697 | object.groupby: 1.0.3 1698 | object.values: 1.2.0 1699 | semver: 6.3.1 1700 | tsconfig-paths: 3.15.0 1701 | transitivePeerDependencies: 1702 | - eslint-import-resolver-typescript 1703 | - eslint-import-resolver-webpack 1704 | - supports-color 1705 | dev: true 1706 | 1707 | /eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0): 1708 | resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} 1709 | engines: {node: '>=4.0'} 1710 | peerDependencies: 1711 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1712 | dependencies: 1713 | aria-query: 5.1.3 1714 | array-includes: 3.1.8 1715 | array.prototype.flatmap: 1.3.2 1716 | ast-types-flow: 0.0.8 1717 | axe-core: 4.10.0 1718 | axobject-query: 3.1.1 1719 | damerau-levenshtein: 1.0.8 1720 | emoji-regex: 9.2.2 1721 | es-iterator-helpers: 1.0.19 1722 | eslint: 8.57.0 1723 | hasown: 2.0.2 1724 | jsx-ast-utils: 3.3.5 1725 | language-tags: 1.0.9 1726 | minimatch: 3.1.2 1727 | object.fromentries: 2.0.8 1728 | safe-regex-test: 1.0.3 1729 | string.prototype.includes: 2.0.0 1730 | dev: true 1731 | 1732 | /eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): 1733 | resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} 1734 | engines: {node: '>=10'} 1735 | peerDependencies: 1736 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1737 | dependencies: 1738 | eslint: 8.57.0 1739 | dev: true 1740 | 1741 | /eslint-plugin-react@7.35.2(eslint@8.57.0): 1742 | resolution: {integrity: sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==} 1743 | engines: {node: '>=4'} 1744 | peerDependencies: 1745 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 1746 | dependencies: 1747 | array-includes: 3.1.8 1748 | array.prototype.findlast: 1.2.5 1749 | array.prototype.flatmap: 1.3.2 1750 | array.prototype.tosorted: 1.1.4 1751 | doctrine: 2.1.0 1752 | es-iterator-helpers: 1.0.19 1753 | eslint: 8.57.0 1754 | estraverse: 5.3.0 1755 | hasown: 2.0.2 1756 | jsx-ast-utils: 3.3.5 1757 | minimatch: 3.1.2 1758 | object.entries: 1.1.8 1759 | object.fromentries: 2.0.8 1760 | object.values: 1.2.0 1761 | prop-types: 15.8.1 1762 | resolve: 2.0.0-next.5 1763 | semver: 6.3.1 1764 | string.prototype.matchall: 4.0.11 1765 | string.prototype.repeat: 1.0.0 1766 | dev: true 1767 | 1768 | /eslint-scope@7.2.2: 1769 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1770 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1771 | dependencies: 1772 | esrecurse: 4.3.0 1773 | estraverse: 5.3.0 1774 | dev: true 1775 | 1776 | /eslint-visitor-keys@3.4.3: 1777 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1778 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1779 | dev: true 1780 | 1781 | /eslint@8.57.0: 1782 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 1783 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1784 | hasBin: true 1785 | dependencies: 1786 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 1787 | '@eslint-community/regexpp': 4.11.0 1788 | '@eslint/eslintrc': 2.1.4 1789 | '@eslint/js': 8.57.0 1790 | '@humanwhocodes/config-array': 0.11.14 1791 | '@humanwhocodes/module-importer': 1.0.1 1792 | '@nodelib/fs.walk': 1.2.8 1793 | '@ungap/structured-clone': 1.2.0 1794 | ajv: 6.12.6 1795 | chalk: 4.1.2 1796 | cross-spawn: 7.0.3 1797 | debug: 4.3.6 1798 | doctrine: 3.0.0 1799 | escape-string-regexp: 4.0.0 1800 | eslint-scope: 7.2.2 1801 | eslint-visitor-keys: 3.4.3 1802 | espree: 9.6.1 1803 | esquery: 1.6.0 1804 | esutils: 2.0.3 1805 | fast-deep-equal: 3.1.3 1806 | file-entry-cache: 6.0.1 1807 | find-up: 5.0.0 1808 | glob-parent: 6.0.2 1809 | globals: 13.24.0 1810 | graphemer: 1.4.0 1811 | ignore: 5.3.2 1812 | imurmurhash: 0.1.4 1813 | is-glob: 4.0.3 1814 | is-path-inside: 3.0.3 1815 | js-yaml: 4.1.0 1816 | json-stable-stringify-without-jsonify: 1.0.1 1817 | levn: 0.4.1 1818 | lodash.merge: 4.6.2 1819 | minimatch: 3.1.2 1820 | natural-compare: 1.4.0 1821 | optionator: 0.9.4 1822 | strip-ansi: 6.0.1 1823 | text-table: 0.2.0 1824 | transitivePeerDependencies: 1825 | - supports-color 1826 | dev: true 1827 | 1828 | /espree@9.6.1: 1829 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1830 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1831 | dependencies: 1832 | acorn: 8.12.1 1833 | acorn-jsx: 5.3.2(acorn@8.12.1) 1834 | eslint-visitor-keys: 3.4.3 1835 | dev: true 1836 | 1837 | /esquery@1.6.0: 1838 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 1839 | engines: {node: '>=0.10'} 1840 | dependencies: 1841 | estraverse: 5.3.0 1842 | dev: true 1843 | 1844 | /esrecurse@4.3.0: 1845 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1846 | engines: {node: '>=4.0'} 1847 | dependencies: 1848 | estraverse: 5.3.0 1849 | dev: true 1850 | 1851 | /estraverse@5.3.0: 1852 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1853 | engines: {node: '>=4.0'} 1854 | dev: true 1855 | 1856 | /estree-walker@2.0.2: 1857 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1858 | dev: false 1859 | 1860 | /estree-walker@3.0.3: 1861 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1862 | dependencies: 1863 | '@types/estree': 1.0.5 1864 | dev: false 1865 | 1866 | /esutils@2.0.3: 1867 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1868 | engines: {node: '>=0.10.0'} 1869 | dev: true 1870 | 1871 | /event-target-shim@5.0.1: 1872 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 1873 | engines: {node: '>=6'} 1874 | dev: false 1875 | 1876 | /eventsource-parser@1.1.2: 1877 | resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==} 1878 | engines: {node: '>=14.18'} 1879 | dev: false 1880 | 1881 | /fast-deep-equal@3.1.3: 1882 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1883 | dev: true 1884 | 1885 | /fast-glob@3.3.2: 1886 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1887 | engines: {node: '>=8.6.0'} 1888 | dependencies: 1889 | '@nodelib/fs.stat': 2.0.5 1890 | '@nodelib/fs.walk': 1.2.8 1891 | glob-parent: 5.1.2 1892 | merge2: 1.4.1 1893 | micromatch: 4.0.8 1894 | 1895 | /fast-json-stable-stringify@2.1.0: 1896 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1897 | dev: true 1898 | 1899 | /fast-levenshtein@2.0.6: 1900 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1901 | dev: true 1902 | 1903 | /fastq@1.17.1: 1904 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1905 | dependencies: 1906 | reusify: 1.0.4 1907 | 1908 | /file-entry-cache@6.0.1: 1909 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1910 | engines: {node: ^10.12.0 || >=12.0.0} 1911 | dependencies: 1912 | flat-cache: 3.2.0 1913 | dev: true 1914 | 1915 | /fill-range@7.1.1: 1916 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1917 | engines: {node: '>=8'} 1918 | dependencies: 1919 | to-regex-range: 5.0.1 1920 | 1921 | /find-up@5.0.0: 1922 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1923 | engines: {node: '>=10'} 1924 | dependencies: 1925 | locate-path: 6.0.0 1926 | path-exists: 4.0.0 1927 | dev: true 1928 | 1929 | /flat-cache@3.2.0: 1930 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1931 | engines: {node: ^10.12.0 || >=12.0.0} 1932 | dependencies: 1933 | flatted: 3.3.1 1934 | keyv: 4.5.4 1935 | rimraf: 3.0.2 1936 | dev: true 1937 | 1938 | /flatted@3.3.1: 1939 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1940 | dev: true 1941 | 1942 | /for-each@0.3.3: 1943 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1944 | dependencies: 1945 | is-callable: 1.2.7 1946 | dev: true 1947 | 1948 | /foreground-child@3.3.0: 1949 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 1950 | engines: {node: '>=14'} 1951 | dependencies: 1952 | cross-spawn: 7.0.3 1953 | signal-exit: 4.1.0 1954 | 1955 | /form-data-encoder@1.7.2: 1956 | resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} 1957 | dev: false 1958 | 1959 | /form-data@4.0.0: 1960 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1961 | engines: {node: '>= 6'} 1962 | dependencies: 1963 | asynckit: 0.4.0 1964 | combined-stream: 1.0.8 1965 | mime-types: 2.1.35 1966 | dev: false 1967 | 1968 | /formdata-node@4.4.1: 1969 | resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} 1970 | engines: {node: '>= 12.20'} 1971 | dependencies: 1972 | node-domexception: 1.0.0 1973 | web-streams-polyfill: 4.0.0-beta.3 1974 | dev: false 1975 | 1976 | /fs.realpath@1.0.0: 1977 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1978 | dev: true 1979 | 1980 | /fsevents@2.3.3: 1981 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1982 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1983 | os: [darwin] 1984 | requiresBuild: true 1985 | optional: true 1986 | 1987 | /function-bind@1.1.2: 1988 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1989 | 1990 | /function.prototype.name@1.1.6: 1991 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 1992 | engines: {node: '>= 0.4'} 1993 | dependencies: 1994 | call-bind: 1.0.7 1995 | define-properties: 1.2.1 1996 | es-abstract: 1.23.3 1997 | functions-have-names: 1.2.3 1998 | dev: true 1999 | 2000 | /functions-have-names@1.2.3: 2001 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 2002 | dev: true 2003 | 2004 | /get-intrinsic@1.2.4: 2005 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 2006 | engines: {node: '>= 0.4'} 2007 | dependencies: 2008 | es-errors: 1.3.0 2009 | function-bind: 1.1.2 2010 | has-proto: 1.0.3 2011 | has-symbols: 1.0.3 2012 | hasown: 2.0.2 2013 | 2014 | /get-symbol-description@1.0.2: 2015 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} 2016 | engines: {node: '>= 0.4'} 2017 | dependencies: 2018 | call-bind: 1.0.7 2019 | es-errors: 1.3.0 2020 | get-intrinsic: 1.2.4 2021 | dev: true 2022 | 2023 | /get-tsconfig@4.8.0: 2024 | resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} 2025 | dependencies: 2026 | resolve-pkg-maps: 1.0.0 2027 | dev: true 2028 | 2029 | /glob-parent@5.1.2: 2030 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2031 | engines: {node: '>= 6'} 2032 | dependencies: 2033 | is-glob: 4.0.3 2034 | 2035 | /glob-parent@6.0.2: 2036 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 2037 | engines: {node: '>=10.13.0'} 2038 | dependencies: 2039 | is-glob: 4.0.3 2040 | 2041 | /glob@10.3.10: 2042 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 2043 | engines: {node: '>=16 || 14 >=14.17'} 2044 | hasBin: true 2045 | dependencies: 2046 | foreground-child: 3.3.0 2047 | jackspeak: 2.3.6 2048 | minimatch: 9.0.5 2049 | minipass: 7.1.2 2050 | path-scurry: 1.11.1 2051 | dev: true 2052 | 2053 | /glob@10.4.5: 2054 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 2055 | hasBin: true 2056 | dependencies: 2057 | foreground-child: 3.3.0 2058 | jackspeak: 3.4.3 2059 | minimatch: 9.0.5 2060 | minipass: 7.1.2 2061 | package-json-from-dist: 1.0.0 2062 | path-scurry: 1.11.1 2063 | 2064 | /glob@7.2.3: 2065 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 2066 | deprecated: Glob versions prior to v9 are no longer supported 2067 | dependencies: 2068 | fs.realpath: 1.0.0 2069 | inflight: 1.0.6 2070 | inherits: 2.0.4 2071 | minimatch: 3.1.2 2072 | once: 1.4.0 2073 | path-is-absolute: 1.0.1 2074 | dev: true 2075 | 2076 | /globals@13.24.0: 2077 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 2078 | engines: {node: '>=8'} 2079 | dependencies: 2080 | type-fest: 0.20.2 2081 | dev: true 2082 | 2083 | /globalthis@1.0.4: 2084 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 2085 | engines: {node: '>= 0.4'} 2086 | dependencies: 2087 | define-properties: 1.2.1 2088 | gopd: 1.0.1 2089 | dev: true 2090 | 2091 | /globby@11.1.0: 2092 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 2093 | engines: {node: '>=10'} 2094 | dependencies: 2095 | array-union: 2.1.0 2096 | dir-glob: 3.0.1 2097 | fast-glob: 3.3.2 2098 | ignore: 5.3.2 2099 | merge2: 1.4.1 2100 | slash: 3.0.0 2101 | dev: true 2102 | 2103 | /gopd@1.0.1: 2104 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 2105 | dependencies: 2106 | get-intrinsic: 1.2.4 2107 | 2108 | /graceful-fs@4.2.11: 2109 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 2110 | 2111 | /graphemer@1.4.0: 2112 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 2113 | dev: true 2114 | 2115 | /has-bigints@1.0.2: 2116 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 2117 | dev: true 2118 | 2119 | /has-flag@4.0.0: 2120 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2121 | engines: {node: '>=8'} 2122 | dev: true 2123 | 2124 | /has-property-descriptors@1.0.2: 2125 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 2126 | dependencies: 2127 | es-define-property: 1.0.0 2128 | 2129 | /has-proto@1.0.3: 2130 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 2131 | engines: {node: '>= 0.4'} 2132 | 2133 | /has-symbols@1.0.3: 2134 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 2135 | engines: {node: '>= 0.4'} 2136 | 2137 | /has-tostringtag@1.0.2: 2138 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 2139 | engines: {node: '>= 0.4'} 2140 | dependencies: 2141 | has-symbols: 1.0.3 2142 | dev: true 2143 | 2144 | /hasown@2.0.2: 2145 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 2146 | engines: {node: '>= 0.4'} 2147 | dependencies: 2148 | function-bind: 1.1.2 2149 | 2150 | /humanize-ms@1.2.1: 2151 | resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} 2152 | dependencies: 2153 | ms: 2.1.3 2154 | dev: false 2155 | 2156 | /ignore@5.3.2: 2157 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 2158 | engines: {node: '>= 4'} 2159 | dev: true 2160 | 2161 | /import-fresh@3.3.0: 2162 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2163 | engines: {node: '>=6'} 2164 | dependencies: 2165 | parent-module: 1.0.1 2166 | resolve-from: 4.0.0 2167 | dev: true 2168 | 2169 | /imurmurhash@0.1.4: 2170 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2171 | engines: {node: '>=0.8.19'} 2172 | dev: true 2173 | 2174 | /inflight@1.0.6: 2175 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2176 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 2177 | dependencies: 2178 | once: 1.4.0 2179 | wrappy: 1.0.2 2180 | dev: true 2181 | 2182 | /inherits@2.0.4: 2183 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2184 | dev: true 2185 | 2186 | /internal-slot@1.0.7: 2187 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} 2188 | engines: {node: '>= 0.4'} 2189 | dependencies: 2190 | es-errors: 1.3.0 2191 | hasown: 2.0.2 2192 | side-channel: 1.0.6 2193 | dev: true 2194 | 2195 | /is-arguments@1.1.1: 2196 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} 2197 | engines: {node: '>= 0.4'} 2198 | dependencies: 2199 | call-bind: 1.0.7 2200 | has-tostringtag: 1.0.2 2201 | dev: true 2202 | 2203 | /is-array-buffer@3.0.4: 2204 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} 2205 | engines: {node: '>= 0.4'} 2206 | dependencies: 2207 | call-bind: 1.0.7 2208 | get-intrinsic: 1.2.4 2209 | dev: true 2210 | 2211 | /is-async-function@2.0.0: 2212 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} 2213 | engines: {node: '>= 0.4'} 2214 | dependencies: 2215 | has-tostringtag: 1.0.2 2216 | dev: true 2217 | 2218 | /is-bigint@1.0.4: 2219 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 2220 | dependencies: 2221 | has-bigints: 1.0.2 2222 | dev: true 2223 | 2224 | /is-binary-path@2.1.0: 2225 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2226 | engines: {node: '>=8'} 2227 | dependencies: 2228 | binary-extensions: 2.3.0 2229 | 2230 | /is-boolean-object@1.1.2: 2231 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 2232 | engines: {node: '>= 0.4'} 2233 | dependencies: 2234 | call-bind: 1.0.7 2235 | has-tostringtag: 1.0.2 2236 | dev: true 2237 | 2238 | /is-bun-module@1.1.0: 2239 | resolution: {integrity: sha512-4mTAVPlrXpaN3jtF0lsnPCMGnq4+qZjVIKq0HCpfcqf8OC1SM5oATCIAPM5V5FN05qp2NNnFndphmdZS9CV3hA==} 2240 | dependencies: 2241 | semver: 7.6.3 2242 | dev: true 2243 | 2244 | /is-callable@1.2.7: 2245 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 2246 | engines: {node: '>= 0.4'} 2247 | dev: true 2248 | 2249 | /is-core-module@2.15.1: 2250 | resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} 2251 | engines: {node: '>= 0.4'} 2252 | dependencies: 2253 | hasown: 2.0.2 2254 | 2255 | /is-data-view@1.0.1: 2256 | resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} 2257 | engines: {node: '>= 0.4'} 2258 | dependencies: 2259 | is-typed-array: 1.1.13 2260 | dev: true 2261 | 2262 | /is-date-object@1.0.5: 2263 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 2264 | engines: {node: '>= 0.4'} 2265 | dependencies: 2266 | has-tostringtag: 1.0.2 2267 | dev: true 2268 | 2269 | /is-extglob@2.1.1: 2270 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2271 | engines: {node: '>=0.10.0'} 2272 | 2273 | /is-finalizationregistry@1.0.2: 2274 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} 2275 | dependencies: 2276 | call-bind: 1.0.7 2277 | dev: true 2278 | 2279 | /is-fullwidth-code-point@3.0.0: 2280 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2281 | engines: {node: '>=8'} 2282 | 2283 | /is-generator-function@1.0.10: 2284 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 2285 | engines: {node: '>= 0.4'} 2286 | dependencies: 2287 | has-tostringtag: 1.0.2 2288 | dev: true 2289 | 2290 | /is-glob@4.0.3: 2291 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2292 | engines: {node: '>=0.10.0'} 2293 | dependencies: 2294 | is-extglob: 2.1.1 2295 | 2296 | /is-map@2.0.3: 2297 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 2298 | engines: {node: '>= 0.4'} 2299 | dev: true 2300 | 2301 | /is-negative-zero@2.0.3: 2302 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 2303 | engines: {node: '>= 0.4'} 2304 | dev: true 2305 | 2306 | /is-number-object@1.0.7: 2307 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 2308 | engines: {node: '>= 0.4'} 2309 | dependencies: 2310 | has-tostringtag: 1.0.2 2311 | dev: true 2312 | 2313 | /is-number@7.0.0: 2314 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2315 | engines: {node: '>=0.12.0'} 2316 | 2317 | /is-path-inside@3.0.3: 2318 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 2319 | engines: {node: '>=8'} 2320 | dev: true 2321 | 2322 | /is-reference@3.0.2: 2323 | resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} 2324 | dependencies: 2325 | '@types/estree': 1.0.5 2326 | dev: false 2327 | 2328 | /is-regex@1.1.4: 2329 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 2330 | engines: {node: '>= 0.4'} 2331 | dependencies: 2332 | call-bind: 1.0.7 2333 | has-tostringtag: 1.0.2 2334 | dev: true 2335 | 2336 | /is-set@2.0.3: 2337 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 2338 | engines: {node: '>= 0.4'} 2339 | dev: true 2340 | 2341 | /is-shared-array-buffer@1.0.3: 2342 | resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} 2343 | engines: {node: '>= 0.4'} 2344 | dependencies: 2345 | call-bind: 1.0.7 2346 | dev: true 2347 | 2348 | /is-string@1.0.7: 2349 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 2350 | engines: {node: '>= 0.4'} 2351 | dependencies: 2352 | has-tostringtag: 1.0.2 2353 | dev: true 2354 | 2355 | /is-symbol@1.0.4: 2356 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2357 | engines: {node: '>= 0.4'} 2358 | dependencies: 2359 | has-symbols: 1.0.3 2360 | dev: true 2361 | 2362 | /is-typed-array@1.1.13: 2363 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} 2364 | engines: {node: '>= 0.4'} 2365 | dependencies: 2366 | which-typed-array: 1.1.15 2367 | dev: true 2368 | 2369 | /is-weakmap@2.0.2: 2370 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 2371 | engines: {node: '>= 0.4'} 2372 | dev: true 2373 | 2374 | /is-weakref@1.0.2: 2375 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 2376 | dependencies: 2377 | call-bind: 1.0.7 2378 | dev: true 2379 | 2380 | /is-weakset@2.0.3: 2381 | resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} 2382 | engines: {node: '>= 0.4'} 2383 | dependencies: 2384 | call-bind: 1.0.7 2385 | get-intrinsic: 1.2.4 2386 | dev: true 2387 | 2388 | /isarray@2.0.5: 2389 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 2390 | dev: true 2391 | 2392 | /isexe@2.0.0: 2393 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2394 | 2395 | /iterator.prototype@1.1.2: 2396 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} 2397 | dependencies: 2398 | define-properties: 1.2.1 2399 | get-intrinsic: 1.2.4 2400 | has-symbols: 1.0.3 2401 | reflect.getprototypeof: 1.0.6 2402 | set-function-name: 2.0.2 2403 | dev: true 2404 | 2405 | /jackspeak@2.3.6: 2406 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 2407 | engines: {node: '>=14'} 2408 | dependencies: 2409 | '@isaacs/cliui': 8.0.2 2410 | optionalDependencies: 2411 | '@pkgjs/parseargs': 0.11.0 2412 | dev: true 2413 | 2414 | /jackspeak@3.4.3: 2415 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 2416 | dependencies: 2417 | '@isaacs/cliui': 8.0.2 2418 | optionalDependencies: 2419 | '@pkgjs/parseargs': 0.11.0 2420 | 2421 | /jiti@1.21.6: 2422 | resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 2423 | hasBin: true 2424 | 2425 | /js-tokens@4.0.0: 2426 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2427 | 2428 | /js-yaml@4.1.0: 2429 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2430 | hasBin: true 2431 | dependencies: 2432 | argparse: 2.0.1 2433 | dev: true 2434 | 2435 | /json-buffer@3.0.1: 2436 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 2437 | dev: true 2438 | 2439 | /json-schema-traverse@0.4.1: 2440 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2441 | dev: true 2442 | 2443 | /json-schema@0.4.0: 2444 | resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} 2445 | dev: false 2446 | 2447 | /json-stable-stringify-without-jsonify@1.0.1: 2448 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2449 | dev: true 2450 | 2451 | /json5@1.0.2: 2452 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 2453 | hasBin: true 2454 | dependencies: 2455 | minimist: 1.2.8 2456 | dev: true 2457 | 2458 | /jsondiffpatch@0.6.0: 2459 | resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} 2460 | engines: {node: ^18.0.0 || >=20.0.0} 2461 | hasBin: true 2462 | dependencies: 2463 | '@types/diff-match-patch': 1.0.36 2464 | chalk: 5.3.0 2465 | diff-match-patch: 1.0.5 2466 | dev: false 2467 | 2468 | /jsx-ast-utils@3.3.5: 2469 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 2470 | engines: {node: '>=4.0'} 2471 | dependencies: 2472 | array-includes: 3.1.8 2473 | array.prototype.flat: 1.3.2 2474 | object.assign: 4.1.5 2475 | object.values: 1.2.0 2476 | dev: true 2477 | 2478 | /keyv@4.5.4: 2479 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 2480 | dependencies: 2481 | json-buffer: 3.0.1 2482 | dev: true 2483 | 2484 | /language-subtag-registry@0.3.23: 2485 | resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} 2486 | dev: true 2487 | 2488 | /language-tags@1.0.9: 2489 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 2490 | engines: {node: '>=0.10'} 2491 | dependencies: 2492 | language-subtag-registry: 0.3.23 2493 | dev: true 2494 | 2495 | /levn@0.4.1: 2496 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2497 | engines: {node: '>= 0.8.0'} 2498 | dependencies: 2499 | prelude-ls: 1.2.1 2500 | type-check: 0.4.0 2501 | dev: true 2502 | 2503 | /lilconfig@2.1.0: 2504 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 2505 | engines: {node: '>=10'} 2506 | 2507 | /lilconfig@3.1.2: 2508 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} 2509 | engines: {node: '>=14'} 2510 | 2511 | /lines-and-columns@1.2.4: 2512 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2513 | 2514 | /locate-character@3.0.0: 2515 | resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} 2516 | dev: false 2517 | 2518 | /locate-path@6.0.0: 2519 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2520 | engines: {node: '>=10'} 2521 | dependencies: 2522 | p-locate: 5.0.0 2523 | dev: true 2524 | 2525 | /lodash.merge@4.6.2: 2526 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2527 | dev: true 2528 | 2529 | /loose-envify@1.4.0: 2530 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2531 | hasBin: true 2532 | dependencies: 2533 | js-tokens: 4.0.0 2534 | 2535 | /lru-cache@10.4.3: 2536 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 2537 | 2538 | /lucide-react@0.424.0(react@18.3.1): 2539 | resolution: {integrity: sha512-x2Nj2aytk1iOyHqt4hKenfVlySq0rYxNeEf8hE0o+Yh0iE36Rqz0rkngVdv2uQtjZ70LAE73eeplhhptYt9x4Q==} 2540 | peerDependencies: 2541 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc 2542 | dependencies: 2543 | react: 18.3.1 2544 | dev: false 2545 | 2546 | /magic-string@0.30.11: 2547 | resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} 2548 | dependencies: 2549 | '@jridgewell/sourcemap-codec': 1.5.0 2550 | dev: false 2551 | 2552 | /mdn-data@2.0.30: 2553 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} 2554 | dev: false 2555 | 2556 | /merge2@1.4.1: 2557 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2558 | engines: {node: '>= 8'} 2559 | 2560 | /micromatch@4.0.8: 2561 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 2562 | engines: {node: '>=8.6'} 2563 | dependencies: 2564 | braces: 3.0.3 2565 | picomatch: 2.3.1 2566 | 2567 | /mime-db@1.52.0: 2568 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 2569 | engines: {node: '>= 0.6'} 2570 | dev: false 2571 | 2572 | /mime-types@2.1.35: 2573 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 2574 | engines: {node: '>= 0.6'} 2575 | dependencies: 2576 | mime-db: 1.52.0 2577 | dev: false 2578 | 2579 | /minimatch@3.1.2: 2580 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2581 | dependencies: 2582 | brace-expansion: 1.1.11 2583 | dev: true 2584 | 2585 | /minimatch@9.0.3: 2586 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 2587 | engines: {node: '>=16 || 14 >=14.17'} 2588 | dependencies: 2589 | brace-expansion: 2.0.1 2590 | dev: true 2591 | 2592 | /minimatch@9.0.5: 2593 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 2594 | engines: {node: '>=16 || 14 >=14.17'} 2595 | dependencies: 2596 | brace-expansion: 2.0.1 2597 | 2598 | /minimist@1.2.8: 2599 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2600 | dev: true 2601 | 2602 | /minipass@7.1.2: 2603 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 2604 | engines: {node: '>=16 || 14 >=14.17'} 2605 | 2606 | /ms@2.1.2: 2607 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2608 | dev: true 2609 | 2610 | /ms@2.1.3: 2611 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2612 | 2613 | /mz@2.7.0: 2614 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2615 | dependencies: 2616 | any-promise: 1.3.0 2617 | object-assign: 4.1.1 2618 | thenify-all: 1.6.0 2619 | 2620 | /nanoid@3.3.6: 2621 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 2622 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2623 | hasBin: true 2624 | dev: false 2625 | 2626 | /nanoid@3.3.7: 2627 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 2628 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2629 | hasBin: true 2630 | 2631 | /natural-compare@1.4.0: 2632 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2633 | dev: true 2634 | 2635 | /next@14.2.5(react-dom@18.3.1)(react@18.3.1): 2636 | resolution: {integrity: sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==} 2637 | engines: {node: '>=18.17.0'} 2638 | hasBin: true 2639 | peerDependencies: 2640 | '@opentelemetry/api': ^1.1.0 2641 | '@playwright/test': ^1.41.2 2642 | react: ^18.2.0 2643 | react-dom: ^18.2.0 2644 | sass: ^1.3.0 2645 | peerDependenciesMeta: 2646 | '@opentelemetry/api': 2647 | optional: true 2648 | '@playwright/test': 2649 | optional: true 2650 | sass: 2651 | optional: true 2652 | dependencies: 2653 | '@next/env': 14.2.5 2654 | '@swc/helpers': 0.5.5 2655 | busboy: 1.6.0 2656 | caniuse-lite: 1.0.30001655 2657 | graceful-fs: 4.2.11 2658 | postcss: 8.4.31 2659 | react: 18.3.1 2660 | react-dom: 18.3.1(react@18.3.1) 2661 | styled-jsx: 5.1.1(react@18.3.1) 2662 | optionalDependencies: 2663 | '@next/swc-darwin-arm64': 14.2.5 2664 | '@next/swc-darwin-x64': 14.2.5 2665 | '@next/swc-linux-arm64-gnu': 14.2.5 2666 | '@next/swc-linux-arm64-musl': 14.2.5 2667 | '@next/swc-linux-x64-gnu': 14.2.5 2668 | '@next/swc-linux-x64-musl': 14.2.5 2669 | '@next/swc-win32-arm64-msvc': 14.2.5 2670 | '@next/swc-win32-ia32-msvc': 14.2.5 2671 | '@next/swc-win32-x64-msvc': 14.2.5 2672 | transitivePeerDependencies: 2673 | - '@babel/core' 2674 | - babel-plugin-macros 2675 | dev: false 2676 | 2677 | /node-domexception@1.0.0: 2678 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} 2679 | engines: {node: '>=10.5.0'} 2680 | dev: false 2681 | 2682 | /node-fetch@2.7.0: 2683 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 2684 | engines: {node: 4.x || >=6.0.0} 2685 | peerDependencies: 2686 | encoding: ^0.1.0 2687 | peerDependenciesMeta: 2688 | encoding: 2689 | optional: true 2690 | dependencies: 2691 | whatwg-url: 5.0.0 2692 | dev: false 2693 | 2694 | /normalize-path@3.0.0: 2695 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2696 | engines: {node: '>=0.10.0'} 2697 | 2698 | /object-assign@4.1.1: 2699 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2700 | engines: {node: '>=0.10.0'} 2701 | 2702 | /object-hash@3.0.0: 2703 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 2704 | engines: {node: '>= 6'} 2705 | 2706 | /object-inspect@1.13.2: 2707 | resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} 2708 | engines: {node: '>= 0.4'} 2709 | 2710 | /object-is@1.1.6: 2711 | resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} 2712 | engines: {node: '>= 0.4'} 2713 | dependencies: 2714 | call-bind: 1.0.7 2715 | define-properties: 1.2.1 2716 | dev: true 2717 | 2718 | /object-keys@1.1.1: 2719 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2720 | engines: {node: '>= 0.4'} 2721 | dev: true 2722 | 2723 | /object.assign@4.1.5: 2724 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} 2725 | engines: {node: '>= 0.4'} 2726 | dependencies: 2727 | call-bind: 1.0.7 2728 | define-properties: 1.2.1 2729 | has-symbols: 1.0.3 2730 | object-keys: 1.1.1 2731 | dev: true 2732 | 2733 | /object.entries@1.1.8: 2734 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} 2735 | engines: {node: '>= 0.4'} 2736 | dependencies: 2737 | call-bind: 1.0.7 2738 | define-properties: 1.2.1 2739 | es-object-atoms: 1.0.0 2740 | dev: true 2741 | 2742 | /object.fromentries@2.0.8: 2743 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 2744 | engines: {node: '>= 0.4'} 2745 | dependencies: 2746 | call-bind: 1.0.7 2747 | define-properties: 1.2.1 2748 | es-abstract: 1.23.3 2749 | es-object-atoms: 1.0.0 2750 | dev: true 2751 | 2752 | /object.groupby@1.0.3: 2753 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 2754 | engines: {node: '>= 0.4'} 2755 | dependencies: 2756 | call-bind: 1.0.7 2757 | define-properties: 1.2.1 2758 | es-abstract: 1.23.3 2759 | dev: true 2760 | 2761 | /object.values@1.2.0: 2762 | resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} 2763 | engines: {node: '>= 0.4'} 2764 | dependencies: 2765 | call-bind: 1.0.7 2766 | define-properties: 1.2.1 2767 | es-object-atoms: 1.0.0 2768 | dev: true 2769 | 2770 | /once@1.4.0: 2771 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2772 | dependencies: 2773 | wrappy: 1.0.2 2774 | dev: true 2775 | 2776 | /openai@4.57.1(zod@3.23.8): 2777 | resolution: {integrity: sha512-7q+4U9A/klaAT40bqL6sPFhIKb4jsUJ8udddCzaf8mdwICYeBG7grps/zDcrOUfkwCxCzR6fxfDDah3WqHoVUA==} 2778 | hasBin: true 2779 | peerDependencies: 2780 | zod: ^3.23.8 2781 | peerDependenciesMeta: 2782 | zod: 2783 | optional: true 2784 | dependencies: 2785 | '@types/node': 18.19.49 2786 | '@types/node-fetch': 2.6.11 2787 | '@types/qs': 6.9.15 2788 | abort-controller: 3.0.0 2789 | agentkeepalive: 4.5.0 2790 | form-data-encoder: 1.7.2 2791 | formdata-node: 4.4.1 2792 | node-fetch: 2.7.0 2793 | qs: 6.13.0 2794 | zod: 3.23.8 2795 | transitivePeerDependencies: 2796 | - encoding 2797 | dev: false 2798 | 2799 | /optionator@0.9.4: 2800 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 2801 | engines: {node: '>= 0.8.0'} 2802 | dependencies: 2803 | deep-is: 0.1.4 2804 | fast-levenshtein: 2.0.6 2805 | levn: 0.4.1 2806 | prelude-ls: 1.2.1 2807 | type-check: 0.4.0 2808 | word-wrap: 1.2.5 2809 | dev: true 2810 | 2811 | /p-limit@3.1.0: 2812 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2813 | engines: {node: '>=10'} 2814 | dependencies: 2815 | yocto-queue: 0.1.0 2816 | dev: true 2817 | 2818 | /p-locate@5.0.0: 2819 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2820 | engines: {node: '>=10'} 2821 | dependencies: 2822 | p-limit: 3.1.0 2823 | dev: true 2824 | 2825 | /package-json-from-dist@1.0.0: 2826 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} 2827 | 2828 | /parent-module@1.0.1: 2829 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2830 | engines: {node: '>=6'} 2831 | dependencies: 2832 | callsites: 3.1.0 2833 | dev: true 2834 | 2835 | /path-exists@4.0.0: 2836 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2837 | engines: {node: '>=8'} 2838 | dev: true 2839 | 2840 | /path-is-absolute@1.0.1: 2841 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2842 | engines: {node: '>=0.10.0'} 2843 | dev: true 2844 | 2845 | /path-key@3.1.1: 2846 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2847 | engines: {node: '>=8'} 2848 | 2849 | /path-parse@1.0.7: 2850 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2851 | 2852 | /path-scurry@1.11.1: 2853 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 2854 | engines: {node: '>=16 || 14 >=14.18'} 2855 | dependencies: 2856 | lru-cache: 10.4.3 2857 | minipass: 7.1.2 2858 | 2859 | /path-type@4.0.0: 2860 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2861 | engines: {node: '>=8'} 2862 | dev: true 2863 | 2864 | /periscopic@3.1.0: 2865 | resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} 2866 | dependencies: 2867 | '@types/estree': 1.0.5 2868 | estree-walker: 3.0.3 2869 | is-reference: 3.0.2 2870 | dev: false 2871 | 2872 | /picocolors@1.1.0: 2873 | resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} 2874 | 2875 | /picomatch@2.3.1: 2876 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2877 | engines: {node: '>=8.6'} 2878 | 2879 | /pify@2.3.0: 2880 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 2881 | engines: {node: '>=0.10.0'} 2882 | 2883 | /pirates@4.0.6: 2884 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 2885 | engines: {node: '>= 6'} 2886 | 2887 | /possible-typed-array-names@1.0.0: 2888 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 2889 | engines: {node: '>= 0.4'} 2890 | dev: true 2891 | 2892 | /postcss-import@15.1.0(postcss@8.4.44): 2893 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 2894 | engines: {node: '>=14.0.0'} 2895 | peerDependencies: 2896 | postcss: ^8.0.0 2897 | dependencies: 2898 | postcss: 8.4.44 2899 | postcss-value-parser: 4.2.0 2900 | read-cache: 1.0.0 2901 | resolve: 1.22.8 2902 | 2903 | /postcss-js@4.0.1(postcss@8.4.44): 2904 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 2905 | engines: {node: ^12 || ^14 || >= 16} 2906 | peerDependencies: 2907 | postcss: ^8.4.21 2908 | dependencies: 2909 | camelcase-css: 2.0.1 2910 | postcss: 8.4.44 2911 | 2912 | /postcss-load-config@4.0.2(postcss@8.4.44): 2913 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 2914 | engines: {node: '>= 14'} 2915 | peerDependencies: 2916 | postcss: '>=8.0.9' 2917 | ts-node: '>=9.0.0' 2918 | peerDependenciesMeta: 2919 | postcss: 2920 | optional: true 2921 | ts-node: 2922 | optional: true 2923 | dependencies: 2924 | lilconfig: 3.1.2 2925 | postcss: 8.4.44 2926 | yaml: 2.5.1 2927 | 2928 | /postcss-nested@6.2.0(postcss@8.4.44): 2929 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 2930 | engines: {node: '>=12.0'} 2931 | peerDependencies: 2932 | postcss: ^8.2.14 2933 | dependencies: 2934 | postcss: 8.4.44 2935 | postcss-selector-parser: 6.1.2 2936 | 2937 | /postcss-selector-parser@6.1.2: 2938 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 2939 | engines: {node: '>=4'} 2940 | dependencies: 2941 | cssesc: 3.0.0 2942 | util-deprecate: 1.0.2 2943 | 2944 | /postcss-value-parser@4.2.0: 2945 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 2946 | 2947 | /postcss@8.4.31: 2948 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 2949 | engines: {node: ^10 || ^12 || >=14} 2950 | dependencies: 2951 | nanoid: 3.3.7 2952 | picocolors: 1.1.0 2953 | source-map-js: 1.2.0 2954 | dev: false 2955 | 2956 | /postcss@8.4.44: 2957 | resolution: {integrity: sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==} 2958 | engines: {node: ^10 || ^12 || >=14} 2959 | dependencies: 2960 | nanoid: 3.3.7 2961 | picocolors: 1.1.0 2962 | source-map-js: 1.2.0 2963 | 2964 | /prelude-ls@1.2.1: 2965 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2966 | engines: {node: '>= 0.8.0'} 2967 | dev: true 2968 | 2969 | /prop-types@15.8.1: 2970 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2971 | dependencies: 2972 | loose-envify: 1.4.0 2973 | object-assign: 4.1.1 2974 | react-is: 16.13.1 2975 | dev: true 2976 | 2977 | /punycode@2.3.1: 2978 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2979 | engines: {node: '>=6'} 2980 | dev: true 2981 | 2982 | /qs@6.13.0: 2983 | resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} 2984 | engines: {node: '>=0.6'} 2985 | dependencies: 2986 | side-channel: 1.0.6 2987 | dev: false 2988 | 2989 | /queue-microtask@1.2.3: 2990 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2991 | 2992 | /react-dom@18.3.1(react@18.3.1): 2993 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 2994 | peerDependencies: 2995 | react: ^18.3.1 2996 | dependencies: 2997 | loose-envify: 1.4.0 2998 | react: 18.3.1 2999 | scheduler: 0.23.2 3000 | dev: false 3001 | 3002 | /react-is@16.13.1: 3003 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 3004 | dev: true 3005 | 3006 | /react@18.3.1: 3007 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 3008 | engines: {node: '>=0.10.0'} 3009 | dependencies: 3010 | loose-envify: 1.4.0 3011 | dev: false 3012 | 3013 | /read-cache@1.0.0: 3014 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 3015 | dependencies: 3016 | pify: 2.3.0 3017 | 3018 | /readdirp@3.6.0: 3019 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3020 | engines: {node: '>=8.10.0'} 3021 | dependencies: 3022 | picomatch: 2.3.1 3023 | 3024 | /reflect.getprototypeof@1.0.6: 3025 | resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} 3026 | engines: {node: '>= 0.4'} 3027 | dependencies: 3028 | call-bind: 1.0.7 3029 | define-properties: 1.2.1 3030 | es-abstract: 1.23.3 3031 | es-errors: 1.3.0 3032 | get-intrinsic: 1.2.4 3033 | globalthis: 1.0.4 3034 | which-builtin-type: 1.1.4 3035 | dev: true 3036 | 3037 | /regexp.prototype.flags@1.5.2: 3038 | resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} 3039 | engines: {node: '>= 0.4'} 3040 | dependencies: 3041 | call-bind: 1.0.7 3042 | define-properties: 1.2.1 3043 | es-errors: 1.3.0 3044 | set-function-name: 2.0.2 3045 | dev: true 3046 | 3047 | /resolve-from@4.0.0: 3048 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3049 | engines: {node: '>=4'} 3050 | dev: true 3051 | 3052 | /resolve-pkg-maps@1.0.0: 3053 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 3054 | dev: true 3055 | 3056 | /resolve@1.22.8: 3057 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 3058 | hasBin: true 3059 | dependencies: 3060 | is-core-module: 2.15.1 3061 | path-parse: 1.0.7 3062 | supports-preserve-symlinks-flag: 1.0.0 3063 | 3064 | /resolve@2.0.0-next.5: 3065 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 3066 | hasBin: true 3067 | dependencies: 3068 | is-core-module: 2.15.1 3069 | path-parse: 1.0.7 3070 | supports-preserve-symlinks-flag: 1.0.0 3071 | dev: true 3072 | 3073 | /reusify@1.0.4: 3074 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3075 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3076 | 3077 | /rimraf@3.0.2: 3078 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3079 | deprecated: Rimraf versions prior to v4 are no longer supported 3080 | hasBin: true 3081 | dependencies: 3082 | glob: 7.2.3 3083 | dev: true 3084 | 3085 | /run-parallel@1.2.0: 3086 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3087 | dependencies: 3088 | queue-microtask: 1.2.3 3089 | 3090 | /safe-array-concat@1.1.2: 3091 | resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} 3092 | engines: {node: '>=0.4'} 3093 | dependencies: 3094 | call-bind: 1.0.7 3095 | get-intrinsic: 1.2.4 3096 | has-symbols: 1.0.3 3097 | isarray: 2.0.5 3098 | dev: true 3099 | 3100 | /safe-regex-test@1.0.3: 3101 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} 3102 | engines: {node: '>= 0.4'} 3103 | dependencies: 3104 | call-bind: 1.0.7 3105 | es-errors: 1.3.0 3106 | is-regex: 1.1.4 3107 | dev: true 3108 | 3109 | /scheduler@0.23.2: 3110 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 3111 | dependencies: 3112 | loose-envify: 1.4.0 3113 | dev: false 3114 | 3115 | /secure-json-parse@2.7.0: 3116 | resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} 3117 | dev: false 3118 | 3119 | /semver@6.3.1: 3120 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 3121 | hasBin: true 3122 | dev: true 3123 | 3124 | /semver@7.6.3: 3125 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 3126 | engines: {node: '>=10'} 3127 | hasBin: true 3128 | dev: true 3129 | 3130 | /set-function-length@1.2.2: 3131 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 3132 | engines: {node: '>= 0.4'} 3133 | dependencies: 3134 | define-data-property: 1.1.4 3135 | es-errors: 1.3.0 3136 | function-bind: 1.1.2 3137 | get-intrinsic: 1.2.4 3138 | gopd: 1.0.1 3139 | has-property-descriptors: 1.0.2 3140 | 3141 | /set-function-name@2.0.2: 3142 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 3143 | engines: {node: '>= 0.4'} 3144 | dependencies: 3145 | define-data-property: 1.1.4 3146 | es-errors: 1.3.0 3147 | functions-have-names: 1.2.3 3148 | has-property-descriptors: 1.0.2 3149 | dev: true 3150 | 3151 | /shebang-command@2.0.0: 3152 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3153 | engines: {node: '>=8'} 3154 | dependencies: 3155 | shebang-regex: 3.0.0 3156 | 3157 | /shebang-regex@3.0.0: 3158 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3159 | engines: {node: '>=8'} 3160 | 3161 | /side-channel@1.0.6: 3162 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 3163 | engines: {node: '>= 0.4'} 3164 | dependencies: 3165 | call-bind: 1.0.7 3166 | es-errors: 1.3.0 3167 | get-intrinsic: 1.2.4 3168 | object-inspect: 1.13.2 3169 | 3170 | /signal-exit@4.1.0: 3171 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3172 | engines: {node: '>=14'} 3173 | 3174 | /slash@3.0.0: 3175 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3176 | engines: {node: '>=8'} 3177 | dev: true 3178 | 3179 | /source-map-js@1.2.0: 3180 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 3181 | engines: {node: '>=0.10.0'} 3182 | 3183 | /sswr@2.1.0(svelte@4.2.19): 3184 | resolution: {integrity: sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==} 3185 | peerDependencies: 3186 | svelte: ^4.0.0 || ^5.0.0-next.0 3187 | dependencies: 3188 | svelte: 4.2.19 3189 | swrev: 4.0.0 3190 | dev: false 3191 | 3192 | /stop-iteration-iterator@1.0.0: 3193 | resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} 3194 | engines: {node: '>= 0.4'} 3195 | dependencies: 3196 | internal-slot: 1.0.7 3197 | dev: true 3198 | 3199 | /streamsearch@1.1.0: 3200 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 3201 | engines: {node: '>=10.0.0'} 3202 | dev: false 3203 | 3204 | /string-width@4.2.3: 3205 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3206 | engines: {node: '>=8'} 3207 | dependencies: 3208 | emoji-regex: 8.0.0 3209 | is-fullwidth-code-point: 3.0.0 3210 | strip-ansi: 6.0.1 3211 | 3212 | /string-width@5.1.2: 3213 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3214 | engines: {node: '>=12'} 3215 | dependencies: 3216 | eastasianwidth: 0.2.0 3217 | emoji-regex: 9.2.2 3218 | strip-ansi: 7.1.0 3219 | 3220 | /string.prototype.includes@2.0.0: 3221 | resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} 3222 | dependencies: 3223 | define-properties: 1.2.1 3224 | es-abstract: 1.23.3 3225 | dev: true 3226 | 3227 | /string.prototype.matchall@4.0.11: 3228 | resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} 3229 | engines: {node: '>= 0.4'} 3230 | dependencies: 3231 | call-bind: 1.0.7 3232 | define-properties: 1.2.1 3233 | es-abstract: 1.23.3 3234 | es-errors: 1.3.0 3235 | es-object-atoms: 1.0.0 3236 | get-intrinsic: 1.2.4 3237 | gopd: 1.0.1 3238 | has-symbols: 1.0.3 3239 | internal-slot: 1.0.7 3240 | regexp.prototype.flags: 1.5.2 3241 | set-function-name: 2.0.2 3242 | side-channel: 1.0.6 3243 | dev: true 3244 | 3245 | /string.prototype.repeat@1.0.0: 3246 | resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} 3247 | dependencies: 3248 | define-properties: 1.2.1 3249 | es-abstract: 1.23.3 3250 | dev: true 3251 | 3252 | /string.prototype.trim@1.2.9: 3253 | resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} 3254 | engines: {node: '>= 0.4'} 3255 | dependencies: 3256 | call-bind: 1.0.7 3257 | define-properties: 1.2.1 3258 | es-abstract: 1.23.3 3259 | es-object-atoms: 1.0.0 3260 | dev: true 3261 | 3262 | /string.prototype.trimend@1.0.8: 3263 | resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} 3264 | dependencies: 3265 | call-bind: 1.0.7 3266 | define-properties: 1.2.1 3267 | es-object-atoms: 1.0.0 3268 | dev: true 3269 | 3270 | /string.prototype.trimstart@1.0.8: 3271 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 3272 | engines: {node: '>= 0.4'} 3273 | dependencies: 3274 | call-bind: 1.0.7 3275 | define-properties: 1.2.1 3276 | es-object-atoms: 1.0.0 3277 | dev: true 3278 | 3279 | /strip-ansi@6.0.1: 3280 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3281 | engines: {node: '>=8'} 3282 | dependencies: 3283 | ansi-regex: 5.0.1 3284 | 3285 | /strip-ansi@7.1.0: 3286 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 3287 | engines: {node: '>=12'} 3288 | dependencies: 3289 | ansi-regex: 6.0.1 3290 | 3291 | /strip-bom@3.0.0: 3292 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 3293 | engines: {node: '>=4'} 3294 | dev: true 3295 | 3296 | /strip-json-comments@3.1.1: 3297 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3298 | engines: {node: '>=8'} 3299 | dev: true 3300 | 3301 | /styled-jsx@5.1.1(react@18.3.1): 3302 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 3303 | engines: {node: '>= 12.0.0'} 3304 | peerDependencies: 3305 | '@babel/core': '*' 3306 | babel-plugin-macros: '*' 3307 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 3308 | peerDependenciesMeta: 3309 | '@babel/core': 3310 | optional: true 3311 | babel-plugin-macros: 3312 | optional: true 3313 | dependencies: 3314 | client-only: 0.0.1 3315 | react: 18.3.1 3316 | dev: false 3317 | 3318 | /sucrase@3.35.0: 3319 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 3320 | engines: {node: '>=16 || 14 >=14.17'} 3321 | hasBin: true 3322 | dependencies: 3323 | '@jridgewell/gen-mapping': 0.3.5 3324 | commander: 4.1.1 3325 | glob: 10.4.5 3326 | lines-and-columns: 1.2.4 3327 | mz: 2.7.0 3328 | pirates: 4.0.6 3329 | ts-interface-checker: 0.1.13 3330 | 3331 | /supports-color@7.2.0: 3332 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3333 | engines: {node: '>=8'} 3334 | dependencies: 3335 | has-flag: 4.0.0 3336 | dev: true 3337 | 3338 | /supports-preserve-symlinks-flag@1.0.0: 3339 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3340 | engines: {node: '>= 0.4'} 3341 | 3342 | /svelte@4.2.19: 3343 | resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} 3344 | engines: {node: '>=16'} 3345 | dependencies: 3346 | '@ampproject/remapping': 2.3.0 3347 | '@jridgewell/sourcemap-codec': 1.5.0 3348 | '@jridgewell/trace-mapping': 0.3.25 3349 | '@types/estree': 1.0.5 3350 | acorn: 8.12.1 3351 | aria-query: 5.3.0 3352 | axobject-query: 4.1.0 3353 | code-red: 1.0.4 3354 | css-tree: 2.3.1 3355 | estree-walker: 3.0.3 3356 | is-reference: 3.0.2 3357 | locate-character: 3.0.0 3358 | magic-string: 0.30.11 3359 | periscopic: 3.1.0 3360 | dev: false 3361 | 3362 | /swr@2.2.5(react@18.3.1): 3363 | resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==} 3364 | peerDependencies: 3365 | react: ^16.11.0 || ^17.0.0 || ^18.0.0 3366 | dependencies: 3367 | client-only: 0.0.1 3368 | react: 18.3.1 3369 | use-sync-external-store: 1.2.2(react@18.3.1) 3370 | dev: false 3371 | 3372 | /swrev@4.0.0: 3373 | resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} 3374 | dev: false 3375 | 3376 | /swrv@1.0.4(vue@3.5.0): 3377 | resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==} 3378 | peerDependencies: 3379 | vue: '>=3.2.26 < 4' 3380 | dependencies: 3381 | vue: 3.5.0(typescript@5.5.4) 3382 | dev: false 3383 | 3384 | /tailwind-merge@2.5.2: 3385 | resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==} 3386 | dev: false 3387 | 3388 | /tailwindcss-animate@1.0.7(tailwindcss@3.4.10): 3389 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} 3390 | peerDependencies: 3391 | tailwindcss: '>=3.0.0 || insiders' 3392 | dependencies: 3393 | tailwindcss: 3.4.10 3394 | dev: false 3395 | 3396 | /tailwindcss@3.4.10: 3397 | resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==} 3398 | engines: {node: '>=14.0.0'} 3399 | hasBin: true 3400 | dependencies: 3401 | '@alloc/quick-lru': 5.2.0 3402 | arg: 5.0.2 3403 | chokidar: 3.6.0 3404 | didyoumean: 1.2.2 3405 | dlv: 1.1.3 3406 | fast-glob: 3.3.2 3407 | glob-parent: 6.0.2 3408 | is-glob: 4.0.3 3409 | jiti: 1.21.6 3410 | lilconfig: 2.1.0 3411 | micromatch: 4.0.8 3412 | normalize-path: 3.0.0 3413 | object-hash: 3.0.0 3414 | picocolors: 1.1.0 3415 | postcss: 8.4.44 3416 | postcss-import: 15.1.0(postcss@8.4.44) 3417 | postcss-js: 4.0.1(postcss@8.4.44) 3418 | postcss-load-config: 4.0.2(postcss@8.4.44) 3419 | postcss-nested: 6.2.0(postcss@8.4.44) 3420 | postcss-selector-parser: 6.1.2 3421 | resolve: 1.22.8 3422 | sucrase: 3.35.0 3423 | transitivePeerDependencies: 3424 | - ts-node 3425 | 3426 | /tapable@2.2.1: 3427 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 3428 | engines: {node: '>=6'} 3429 | dev: true 3430 | 3431 | /text-table@0.2.0: 3432 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3433 | dev: true 3434 | 3435 | /thenify-all@1.6.0: 3436 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 3437 | engines: {node: '>=0.8'} 3438 | dependencies: 3439 | thenify: 3.3.1 3440 | 3441 | /thenify@3.3.1: 3442 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3443 | dependencies: 3444 | any-promise: 1.3.0 3445 | 3446 | /to-fast-properties@2.0.0: 3447 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 3448 | engines: {node: '>=4'} 3449 | dev: false 3450 | 3451 | /to-regex-range@5.0.1: 3452 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3453 | engines: {node: '>=8.0'} 3454 | dependencies: 3455 | is-number: 7.0.0 3456 | 3457 | /tr46@0.0.3: 3458 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 3459 | dev: false 3460 | 3461 | /ts-api-utils@1.3.0(typescript@5.5.4): 3462 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 3463 | engines: {node: '>=16'} 3464 | peerDependencies: 3465 | typescript: '>=4.2.0' 3466 | dependencies: 3467 | typescript: 5.5.4 3468 | dev: true 3469 | 3470 | /ts-interface-checker@0.1.13: 3471 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3472 | 3473 | /tsconfig-paths@3.15.0: 3474 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 3475 | dependencies: 3476 | '@types/json5': 0.0.29 3477 | json5: 1.0.2 3478 | minimist: 1.2.8 3479 | strip-bom: 3.0.0 3480 | dev: true 3481 | 3482 | /tslib@2.7.0: 3483 | resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} 3484 | dev: false 3485 | 3486 | /type-check@0.4.0: 3487 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3488 | engines: {node: '>= 0.8.0'} 3489 | dependencies: 3490 | prelude-ls: 1.2.1 3491 | dev: true 3492 | 3493 | /type-fest@0.20.2: 3494 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3495 | engines: {node: '>=10'} 3496 | dev: true 3497 | 3498 | /typed-array-buffer@1.0.2: 3499 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} 3500 | engines: {node: '>= 0.4'} 3501 | dependencies: 3502 | call-bind: 1.0.7 3503 | es-errors: 1.3.0 3504 | is-typed-array: 1.1.13 3505 | dev: true 3506 | 3507 | /typed-array-byte-length@1.0.1: 3508 | resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} 3509 | engines: {node: '>= 0.4'} 3510 | dependencies: 3511 | call-bind: 1.0.7 3512 | for-each: 0.3.3 3513 | gopd: 1.0.1 3514 | has-proto: 1.0.3 3515 | is-typed-array: 1.1.13 3516 | dev: true 3517 | 3518 | /typed-array-byte-offset@1.0.2: 3519 | resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} 3520 | engines: {node: '>= 0.4'} 3521 | dependencies: 3522 | available-typed-arrays: 1.0.7 3523 | call-bind: 1.0.7 3524 | for-each: 0.3.3 3525 | gopd: 1.0.1 3526 | has-proto: 1.0.3 3527 | is-typed-array: 1.1.13 3528 | dev: true 3529 | 3530 | /typed-array-length@1.0.6: 3531 | resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} 3532 | engines: {node: '>= 0.4'} 3533 | dependencies: 3534 | call-bind: 1.0.7 3535 | for-each: 0.3.3 3536 | gopd: 1.0.1 3537 | has-proto: 1.0.3 3538 | is-typed-array: 1.1.13 3539 | possible-typed-array-names: 1.0.0 3540 | dev: true 3541 | 3542 | /typescript@5.5.4: 3543 | resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} 3544 | engines: {node: '>=14.17'} 3545 | hasBin: true 3546 | 3547 | /unbox-primitive@1.0.2: 3548 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 3549 | dependencies: 3550 | call-bind: 1.0.7 3551 | has-bigints: 1.0.2 3552 | has-symbols: 1.0.3 3553 | which-boxed-primitive: 1.0.2 3554 | dev: true 3555 | 3556 | /undici-types@5.26.5: 3557 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 3558 | dev: false 3559 | 3560 | /undici-types@6.19.8: 3561 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 3562 | 3563 | /uri-js@4.4.1: 3564 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3565 | dependencies: 3566 | punycode: 2.3.1 3567 | dev: true 3568 | 3569 | /use-sync-external-store@1.2.2(react@18.3.1): 3570 | resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} 3571 | peerDependencies: 3572 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 3573 | dependencies: 3574 | react: 18.3.1 3575 | dev: false 3576 | 3577 | /util-deprecate@1.0.2: 3578 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3579 | 3580 | /vue@3.5.0(typescript@5.5.4): 3581 | resolution: {integrity: sha512-1t70favYoFijwfWJ7g81aTd32obGaAnKYE9FNyMgnEzn3F4YncRi/kqAHHKloG0VXTD8vBYMhbgLKCA+Sk6QDw==} 3582 | peerDependencies: 3583 | typescript: '*' 3584 | peerDependenciesMeta: 3585 | typescript: 3586 | optional: true 3587 | dependencies: 3588 | '@vue/compiler-dom': 3.5.0 3589 | '@vue/compiler-sfc': 3.5.0 3590 | '@vue/runtime-dom': 3.5.0 3591 | '@vue/server-renderer': 3.5.0(vue@3.5.0) 3592 | '@vue/shared': 3.5.0 3593 | typescript: 5.5.4 3594 | dev: false 3595 | 3596 | /web-streams-polyfill@4.0.0-beta.3: 3597 | resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} 3598 | engines: {node: '>= 14'} 3599 | dev: false 3600 | 3601 | /webidl-conversions@3.0.1: 3602 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 3603 | dev: false 3604 | 3605 | /whatwg-url@5.0.0: 3606 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 3607 | dependencies: 3608 | tr46: 0.0.3 3609 | webidl-conversions: 3.0.1 3610 | dev: false 3611 | 3612 | /which-boxed-primitive@1.0.2: 3613 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 3614 | dependencies: 3615 | is-bigint: 1.0.4 3616 | is-boolean-object: 1.1.2 3617 | is-number-object: 1.0.7 3618 | is-string: 1.0.7 3619 | is-symbol: 1.0.4 3620 | dev: true 3621 | 3622 | /which-builtin-type@1.1.4: 3623 | resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} 3624 | engines: {node: '>= 0.4'} 3625 | dependencies: 3626 | function.prototype.name: 1.1.6 3627 | has-tostringtag: 1.0.2 3628 | is-async-function: 2.0.0 3629 | is-date-object: 1.0.5 3630 | is-finalizationregistry: 1.0.2 3631 | is-generator-function: 1.0.10 3632 | is-regex: 1.1.4 3633 | is-weakref: 1.0.2 3634 | isarray: 2.0.5 3635 | which-boxed-primitive: 1.0.2 3636 | which-collection: 1.0.2 3637 | which-typed-array: 1.1.15 3638 | dev: true 3639 | 3640 | /which-collection@1.0.2: 3641 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 3642 | engines: {node: '>= 0.4'} 3643 | dependencies: 3644 | is-map: 2.0.3 3645 | is-set: 2.0.3 3646 | is-weakmap: 2.0.2 3647 | is-weakset: 2.0.3 3648 | dev: true 3649 | 3650 | /which-typed-array@1.1.15: 3651 | resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} 3652 | engines: {node: '>= 0.4'} 3653 | dependencies: 3654 | available-typed-arrays: 1.0.7 3655 | call-bind: 1.0.7 3656 | for-each: 0.3.3 3657 | gopd: 1.0.1 3658 | has-tostringtag: 1.0.2 3659 | dev: true 3660 | 3661 | /which@2.0.2: 3662 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3663 | engines: {node: '>= 8'} 3664 | hasBin: true 3665 | dependencies: 3666 | isexe: 2.0.0 3667 | 3668 | /word-wrap@1.2.5: 3669 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 3670 | engines: {node: '>=0.10.0'} 3671 | dev: true 3672 | 3673 | /wrap-ansi@7.0.0: 3674 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3675 | engines: {node: '>=10'} 3676 | dependencies: 3677 | ansi-styles: 4.3.0 3678 | string-width: 4.2.3 3679 | strip-ansi: 6.0.1 3680 | 3681 | /wrap-ansi@8.1.0: 3682 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 3683 | engines: {node: '>=12'} 3684 | dependencies: 3685 | ansi-styles: 6.2.1 3686 | string-width: 5.1.2 3687 | strip-ansi: 7.1.0 3688 | 3689 | /wrappy@1.0.2: 3690 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3691 | dev: true 3692 | 3693 | /yaml@2.5.1: 3694 | resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} 3695 | engines: {node: '>= 14'} 3696 | hasBin: true 3697 | 3698 | /yocto-queue@0.1.0: 3699 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3700 | engines: {node: '>=10'} 3701 | dev: true 3702 | 3703 | /zod-to-json-schema@3.23.2(zod@3.23.8): 3704 | resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} 3705 | peerDependencies: 3706 | zod: ^3.23.3 3707 | dependencies: 3708 | zod: 3.23.8 3709 | dev: false 3710 | 3711 | /zod@3.23.8: 3712 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 3713 | dev: false 3714 | -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /public/next.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattjared/nextjs-ai-lite/4d9c4450cae3cc26943548f2b0d4461e63b3dd55/public/screenshot.png -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/actions.tsx: -------------------------------------------------------------------------------- 1 | 'use server'; 2 | 3 | import { createStreamableValue } from 'ai/rsc'; 4 | import { CoreMessage, streamText } from 'ai'; 5 | import { openai } from '@ai-sdk/openai'; 6 | import { Weather } from '@/components/weather'; 7 | import { generateText } from 'ai'; 8 | import { createStreamableUI } from 'ai/rsc'; 9 | import { ReactNode } from 'react'; 10 | import { z } from 'zod'; 11 | 12 | export interface Message { 13 | role: 'user' | 'assistant'; 14 | content: string; 15 | display?: ReactNode; 16 | } 17 | 18 | 19 | // Streaming Chat 20 | export async function continueTextConversation(messages: CoreMessage[]) { 21 | const result = await streamText({ 22 | model: openai('gpt-4-turbo'), 23 | messages, 24 | }); 25 | 26 | const stream = createStreamableValue(result.textStream); 27 | return stream.value; 28 | } 29 | 30 | // Gen UIs 31 | export async function continueConversation(history: Message[]) { 32 | const stream = createStreamableUI(); 33 | 34 | const { text, toolResults } = await generateText({ 35 | model: openai('gpt-3.5-turbo'), 36 | system: 'You are a friendly weather assistant!', 37 | messages: history, 38 | tools: { 39 | showWeather: { 40 | description: 'Show the weather for a given location.', 41 | parameters: z.object({ 42 | city: z.string().describe('The city to show the weather for.'), 43 | unit: z 44 | .enum(['F']) 45 | .describe('The unit to display the temperature in'), 46 | }), 47 | execute: async ({ city, unit }) => { 48 | stream.done(); 49 | return `Here's the weather for ${city}!`; 50 | }, 51 | }, 52 | }, 53 | }); 54 | 55 | return { 56 | messages: [ 57 | ...history, 58 | { 59 | role: 'assistant' as const, 60 | content: 61 | text || toolResults.map(toolResult => toolResult.result).join(), 62 | display: stream.value, 63 | }, 64 | ], 65 | }; 66 | } 67 | 68 | // Utils 69 | export async function checkAIAvailability() { 70 | const envVarExists = !!process.env.OPENAI_API_KEY; 71 | return envVarExists; 72 | } -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattjared/nextjs-ai-lite/4d9c4450cae3cc26943548f2b0d4461e63b3dd55/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/genui/page.tsx: -------------------------------------------------------------------------------- 1 | // import Chat from "@/components/chat"; 2 | 'use client'; 3 | 4 | import { useState } from 'react'; 5 | import { continueConversation, Message } from '@/app/actions'; 6 | import { Card } from '@/components/ui/card'; 7 | import { Input } from '@/components/ui/input'; 8 | import { Button } from '@/components/ui/button'; 9 | import { IconArrowUp } from '@/components/ui/icons'; 10 | import GenUICard from '@/components/cards/genuicard'; 11 | export const maxDuration = 30; 12 | 13 | export default function GenUI() { 14 | const [conversation, setConversation] = useState([]); 15 | const [input, setInput] = useState(''); 16 | const handleSubmit = async () => { 17 | const { messages } = await continueConversation([ 18 | // exclude React components from being sent back to the server: 19 | ...conversation.map(({ role, content }) => ({ role, content })), 20 | { role: 'user', content: input }, 21 | ]); 22 | setInput("") 23 | setConversation(messages); 24 | } 25 | const handleKeyDown = (e: { key: string; }) => { 26 | if (e.key === 'Enter') { 27 | handleSubmit(); 28 | } 29 | } 30 | return ( 31 |
32 |
33 |
34 | {conversation.length <=0 && ( 35 | 36 | )} 37 | {conversation.map((message, index) => ( 38 |
39 |
40 |
41 | {message.content as string} 42 |
43 |
44 | {message.display} 45 |
46 |
47 |
48 | ))} 49 |
50 |
51 |
52 | 53 |
54 | { 59 | setInput(event.target.value); 60 | }} 61 | className="w-[95%] mr-2 border-0 ring-offset-0 focus-visible:ring-0 focus-visible:outline-none focus:outline-none focus:ring-0 ring-0 focus-visible:border-none border-transparent focus:border-transparent focus-visible:ring-none" 62 | placeholder='Ask me anything...' 63 | /> 64 | 70 |
71 |
72 |
73 | 74 |
75 |
76 |
77 | ); 78 | } 79 | -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | :root { 7 | --background: 0 0% 100%; 8 | --foreground: 222.2 84% 4.9%; 9 | --card: 0 0% 100%; 10 | --card-foreground: 222.2 84% 4.9%; 11 | --popover: 0 0% 100%; 12 | --popover-foreground: 222.2 84% 4.9%; 13 | --primary: 222.2 47.4% 11.2%; 14 | --primary-foreground: 210 40% 98%; 15 | --secondary: 210 40% 96.1%; 16 | --secondary-foreground: 222.2 47.4% 11.2%; 17 | --muted: 210 40% 96.1%; 18 | --muted-foreground: 215.4 16.3% 46.9%; 19 | --accent: 210 40% 96.1%; 20 | --accent-foreground: 222.2 47.4% 11.2%; 21 | --destructive: 0 84.2% 60.2%; 22 | --destructive-foreground: 210 40% 98%; 23 | --border: 214.3 31.8% 91.4%; 24 | --input: 214.3 31.8% 91.4%; 25 | --ring: 222.2 84% 4.9%; 26 | --radius: 0.5rem; 27 | --chart-1: 12 76% 61%; 28 | --chart-2: 173 58% 39%; 29 | --chart-3: 197 37% 24%; 30 | --chart-4: 43 74% 66%; 31 | --chart-5: 27 87% 67%; 32 | } 33 | 34 | .dark { 35 | --background: 222.2 84% 4.9%; 36 | --foreground: 210 40% 98%; 37 | --card: 222.2 84% 4.9%; 38 | --card-foreground: 210 40% 98%; 39 | --popover: 222.2 84% 4.9%; 40 | --popover-foreground: 210 40% 98%; 41 | --primary: 210 40% 98%; 42 | --primary-foreground: 222.2 47.4% 11.2%; 43 | --secondary: 217.2 32.6% 17.5%; 44 | --secondary-foreground: 210 40% 98%; 45 | --muted: 217.2 32.6% 17.5%; 46 | --muted-foreground: 215 20.2% 65.1%; 47 | --accent: 217.2 32.6% 17.5%; 48 | --accent-foreground: 210 40% 98%; 49 | --destructive: 0 62.8% 30.6%; 50 | --destructive-foreground: 210 40% 98%; 51 | --border: 217.2 32.6% 17.5%; 52 | --input: 217.2 32.6% 17.5%; 53 | --ring: 212.7 26.8% 83.9%; 54 | --chart-1: 220 70% 50%; 55 | --chart-2: 160 60% 45%; 56 | --chart-3: 30 80% 55%; 57 | --chart-4: 280 65% 60%; 58 | --chart-5: 340 75% 55%; 59 | } 60 | } 61 | 62 | @layer base { 63 | * { 64 | @apply border-border; 65 | } 66 | body { 67 | @apply bg-background text-foreground; 68 | } 69 | } -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next"; 2 | import { Inter } from "next/font/google"; 3 | import "./globals.css"; 4 | import { Header } from "@/components/header"; 5 | 6 | const inter = Inter({ subsets: ["latin"] }); 7 | 8 | export const metadata: Metadata = { 9 | title: "Next.js AI Lite App", 10 | description: "AI with Next and AI SDK", 11 | }; 12 | 13 | export default function RootLayout({ 14 | children, 15 | }: Readonly<{ 16 | children: React.ReactNode; 17 | }>) { 18 | return ( 19 | 20 | 21 |
22 |
23 | {children} 24 |
25 | 26 | 27 | ); 28 | } -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | import Chat from "@/components/chat"; 2 | 3 | export default function Home() { 4 | return ( 5 |
6 | 7 |
8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /src/components/cards/aboutcard.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | Card, 3 | CardContent, 4 | CardDescription, 5 | CardHeader, 6 | CardTitle, 7 | } from "@/components/ui/card"; 8 | import Link from "next/link"; 9 | 10 | export default function AboutCard() { 11 | return ( 12 |
13 | 14 | 15 | Next AI SDK Lite 16 | A no bells or whistles AI starter kit 17 | 18 | 19 |

A simplified Next.js AI starter kit designed with simplicity and speed in mind.

20 |

Built with Next.js, AI SDK, Tailwind, Typescript and shadcn you can build a bare minimum AI Chatbot with only an environment variable. Based off the popular Next AI Chatbot the aim for this project is to remove any dependency outside of basic functionality and examples with an emphasis on making changes and experimenting with the AI SDK.

21 |

Big Opinions:

22 |
    23 |
  • → Speed to learning and experimenting AI SDK
  • 24 |
  • → App Router, Server Actions, React Server Components
  • 25 |
  • → No auth, storage or sharing
  • 26 |
  • 27 |
28 |

Fork the repo and get hacking

29 |
30 |
31 |
32 | ) 33 | } 34 | -------------------------------------------------------------------------------- /src/components/cards/envcard.tsx: -------------------------------------------------------------------------------- 1 | import { checkAIAvailability } from "@/app/actions"; 2 | 3 | export default async function EnvCard() { 4 | const result = await checkAIAvailability(); 5 | return !result && ( 6 |
7 |
8 |

Heads up!

9 |

10 | You need to add an OPENAI_API_KEY as an environment variable. 11 | See the .env.example file for an example. 12 |

13 |
14 |
15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /src/components/cards/genuicard.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | Card, 3 | CardContent, 4 | CardDescription, 5 | CardHeader, 6 | CardTitle, 7 | } from "@/components/ui/card"; 8 | import Link from "next/link"; 9 | 10 | export default function GenUICard() { 11 | return ( 12 |
13 | 14 | 15 | Next AI SDK Lite 16 | Start streaming UI Components! 17 | 18 | 19 |

A simple prompt based way to enter into streaming components./

20 |

Try asking for the weather in any American city and see what returns.

21 |

Notice when the component returns you can interact with it!

22 |

Fork the repo and get hacking

23 |
24 |
25 |
26 | ) 27 | } 28 | -------------------------------------------------------------------------------- /src/components/chat.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { Card } from "@/components/ui/card" 4 | import { type CoreMessage } from 'ai'; 5 | import { useState } from 'react'; 6 | import { continueTextConversation } from '@/app/actions'; 7 | import { readStreamableValue } from 'ai/rsc'; 8 | import { Input } from '@/components/ui/input'; 9 | import { Button } from '@/components/ui/button'; 10 | import { IconArrowUp } from '@/components/ui/icons'; 11 | import Link from "next/link"; 12 | import AboutCard from "@/components/cards/aboutcard"; 13 | export const maxDuration = 30; 14 | 15 | export default function Chat() { 16 | const [messages, setMessages] = useState([]); 17 | const [input, setInput] = useState(''); 18 | 19 | const handleSubmit = async (e: React.FormEvent) => { 20 | e.preventDefault() 21 | const newMessages: CoreMessage[] = [ 22 | ...messages, 23 | { content: input, role: 'user' }, 24 | ]; 25 | setMessages(newMessages); 26 | setInput(''); 27 | const result = await continueTextConversation(newMessages); 28 | for await (const content of readStreamableValue(result)) { 29 | setMessages([ 30 | ...newMessages, 31 | { 32 | role: 'assistant', 33 | content: content as string, 34 | }, 35 | ]); 36 | } 37 | } 38 | 39 | return ( 40 |
41 | {messages.length <= 0 ? ( 42 | 43 | ) 44 | : ( 45 |
46 | {messages.map((message, index) => ( 47 |
48 |
49 | {message.content as string} 50 |
51 |
52 | ))} 53 |
54 | )} 55 |
56 |
57 | 58 |
59 |
60 | { 64 | setInput(event.target.value); 65 | }} 66 | className="w-[95%] mr-2 border-0 ring-offset-0 focus-visible:ring-0 focus-visible:outline-none focus:outline-none focus:ring-0 ring-0 focus-visible:border-none border-transparent focus:border-transparent focus-visible:ring-none" 67 | placeholder='Ask me anything...' 68 | /> 69 | 72 |
73 | {messages.length > 1 && ( 74 |
75 | Try GenUI and streaming components → 76 |
77 | )} 78 |
79 |
80 |
81 |
82 |
83 | ); 84 | } 85 | -------------------------------------------------------------------------------- /src/components/header.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import Link from 'next/link' 3 | import { cn } from '@/lib/utils' 4 | import { buttonVariants } from '@/components/ui/button' 5 | import { IconSeparator, IconVercel } from '@/components/ui/icons' 6 | import EnvCard from './cards/envcard' 7 | 8 | export async function Header() { 9 | return ( 10 |
11 | 12 | 13 | Next.js AI Lite 14 | 15 | 16 | 20 | GenUI 21 | 22 | 27 | 28 | Deploy to Vercel 29 | Deploy 30 | 31 |
32 | ) 33 | } 34 | -------------------------------------------------------------------------------- /src/components/ui/button.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Slot } from "@radix-ui/react-slot" 3 | import { cva, type VariantProps } from "class-variance-authority" 4 | 5 | import { cn } from "@/lib/utils" 6 | 7 | const buttonVariants = cva( 8 | "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", 9 | { 10 | variants: { 11 | variant: { 12 | default: "bg-primary text-primary-foreground hover:bg-primary/90", 13 | destructive: 14 | "bg-destructive text-destructive-foreground hover:bg-destructive/90", 15 | outline: 16 | "border border-input bg-background hover:bg-accent hover:text-accent-foreground", 17 | secondary: 18 | "bg-secondary text-secondary-foreground hover:bg-secondary/80", 19 | ghost: "hover:bg-accent hover:text-accent-foreground", 20 | link: "text-primary underline-offset-4 hover:underline", 21 | opaque: "bg-slate-200 text-slate-400 " 22 | }, 23 | size: { 24 | default: "h-10 px-4 py-2", 25 | sm: "h-9 rounded-md px-3", 26 | lg: "h-11 rounded-md px-8", 27 | icon: "h-10 w-10", 28 | xs: "h-7 rounded px-3 text-sm" 29 | }, 30 | }, 31 | defaultVariants: { 32 | variant: "default", 33 | size: "default", 34 | }, 35 | } 36 | ) 37 | 38 | export interface ButtonProps 39 | extends React.ButtonHTMLAttributes, 40 | VariantProps { 41 | asChild?: boolean 42 | } 43 | 44 | const Button = React.forwardRef( 45 | ({ className, variant, size, asChild = false, ...props }, ref) => { 46 | const Comp = asChild ? Slot : "button" 47 | return ( 48 | 53 | ) 54 | } 55 | ) 56 | Button.displayName = "Button" 57 | 58 | export { Button, buttonVariants } 59 | -------------------------------------------------------------------------------- /src/components/ui/card.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | import { cn } from "@/lib/utils" 4 | 5 | const Card = React.forwardRef< 6 | HTMLDivElement, 7 | React.HTMLAttributes 8 | >(({ className, ...props }, ref) => ( 9 |
17 | )) 18 | Card.displayName = "Card" 19 | 20 | const CardHeader = React.forwardRef< 21 | HTMLDivElement, 22 | React.HTMLAttributes 23 | >(({ className, ...props }, ref) => ( 24 |
29 | )) 30 | CardHeader.displayName = "CardHeader" 31 | 32 | const CardTitle = React.forwardRef< 33 | HTMLParagraphElement, 34 | React.HTMLAttributes 35 | >(({ className, ...props }, ref) => ( 36 |

44 | )) 45 | CardTitle.displayName = "CardTitle" 46 | 47 | const CardDescription = React.forwardRef< 48 | HTMLParagraphElement, 49 | React.HTMLAttributes 50 | >(({ className, ...props }, ref) => ( 51 |

56 | )) 57 | CardDescription.displayName = "CardDescription" 58 | 59 | const CardContent = React.forwardRef< 60 | HTMLDivElement, 61 | React.HTMLAttributes 62 | >(({ className, ...props }, ref) => ( 63 |

64 | )) 65 | CardContent.displayName = "CardContent" 66 | 67 | const CardFooter = React.forwardRef< 68 | HTMLDivElement, 69 | React.HTMLAttributes 70 | >(({ className, ...props }, ref) => ( 71 |
76 | )) 77 | CardFooter.displayName = "CardFooter" 78 | 79 | export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } 80 | -------------------------------------------------------------------------------- /src/components/ui/icons.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | import * as React from 'react' 4 | import { cn } from '@/lib/utils' 5 | 6 | function IconSeparator({ className, ...props }: React.ComponentProps<'svg'>) { 7 | return ( 8 | 22 | ) 23 | } 24 | 25 | 26 | function IconNextChat({ 27 | className, 28 | inverted, 29 | ...props 30 | }: React.ComponentProps<'svg'> & { inverted?: boolean }) { 31 | const id = React.useId() 32 | 33 | return ( 34 | 41 | 42 | 50 | 51 | 56 | 57 | 65 | 66 | 71 | 72 | 73 | 81 | 90 | 91 | 92 | 93 | 94 | 98 | 105 | 106 | 107 | ) 108 | } 109 | 110 | function IconVercel({ className, ...props }: React.ComponentProps<'svg'>) { 111 | return ( 112 | 119 | 123 | 124 | ) 125 | } 126 | 127 | function IconArrowUp({ className, ...props }: React.ComponentProps<'svg'>) { 128 | return ( 129 | 138 | 139 | 140 | ) 141 | } 142 | 143 | 144 | export { 145 | IconSeparator, 146 | IconNextChat, 147 | IconVercel, 148 | IconArrowUp 149 | } 150 | -------------------------------------------------------------------------------- /src/components/ui/input.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | import { cn } from "@/lib/utils" 4 | 5 | export interface InputProps 6 | extends React.InputHTMLAttributes {} 7 | 8 | const Input = React.forwardRef( 9 | ({ className, type, ...props }, ref) => { 10 | return ( 11 | 20 | ) 21 | } 22 | ) 23 | Input.displayName = "Input" 24 | 25 | export { Input } 26 | -------------------------------------------------------------------------------- /src/components/ui/label.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | import * as LabelPrimitive from "@radix-ui/react-label" 5 | import { cva, type VariantProps } from "class-variance-authority" 6 | 7 | import { cn } from "@/lib/utils" 8 | 9 | const labelVariants = cva( 10 | "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" 11 | ) 12 | 13 | const Label = React.forwardRef< 14 | React.ElementRef, 15 | React.ComponentPropsWithoutRef & 16 | VariantProps 17 | >(({ className, ...props }, ref) => ( 18 | 23 | )) 24 | Label.displayName = LabelPrimitive.Root.displayName 25 | 26 | export { Label } 27 | -------------------------------------------------------------------------------- /src/components/ui/switch.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | import * as SwitchPrimitives from "@radix-ui/react-switch" 5 | 6 | import { cn } from "@/lib/utils" 7 | 8 | const Switch = React.forwardRef< 9 | React.ElementRef, 10 | React.ComponentPropsWithoutRef 11 | >(({ className, ...props }, ref) => ( 12 | 20 | 25 | 26 | )) 27 | Switch.displayName = SwitchPrimitives.Root.displayName 28 | 29 | export { Switch } 30 | -------------------------------------------------------------------------------- /src/components/weather.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { useState } from 'react' 4 | import { Cloud, Sun, Droplets, Wind, ChevronDown, ChevronUp } from 'lucide-react' 5 | import { Label } from "@/components/ui/label" 6 | import { Switch } from "@/components/ui/switch" 7 | 8 | interface WeatherProps { 9 | city: string; 10 | unit: 'celsius' | 'fahrenheit'; 11 | } 12 | 13 | interface WeatherPoint { 14 | properties: { 15 | forecast: string; 16 | relativeLocation: { 17 | properties: { 18 | city: string; 19 | state: string; 20 | }; 21 | }; 22 | }; 23 | } 24 | 25 | interface ForecastPeriod { 26 | probabilityOfPrecipitation: any; 27 | name: string; 28 | temperature: number; 29 | temperatureUnit: string; 30 | shortForecast: string; 31 | startTime: string; 32 | windSpeed: string; 33 | } 34 | 35 | interface Forecast { 36 | properties: { 37 | periods: ForecastPeriod[]; 38 | }; 39 | } 40 | 41 | export async function Weather({ city, unit }: WeatherProps) { 42 | const [useCelsius, setUseCelsius] = useState(false); 43 | const [showFullForecast, setShowForecast] = useState(false); 44 | const [forecastDays, setForecastDays] = useState(2); 45 | const getLatLong = await fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(city)}`) 46 | const getLatLongData = await getLatLong.json() 47 | const lat = getLatLongData[0].lat; 48 | const long = getLatLongData[0].lon; 49 | // If you get rate limited try hardcoding in Austin // const lat = 30.2672; // const long = -97.7431; 50 | const pointResponse = await fetch(`https://api.weather.gov/points/${lat},${long}`) 51 | if (!pointResponse.ok) throw new Error('Failed to fetch weather point') 52 | const pointData: WeatherPoint = await pointResponse.json() 53 | const forecastResponse = await fetch(pointData.properties.forecast) 54 | if (!forecastResponse.ok) throw new Error('Failed to fetch forecast') 55 | const forecastData: Forecast = await forecastResponse.json() 56 | const formatDate = (dateString: string) => { 57 | return new Date(dateString).toLocaleDateString([], { weekday: 'long', month: 'long', day: 'numeric' }) 58 | } 59 | const handleClick = () => { 60 | setShowForecast(true); 61 | setForecastDays(8); 62 | } 63 | 64 | const handleConvert = () => { 65 | setUseCelsius(!useCelsius); 66 | } 67 | const convertToCelsius = (current: number) => { 68 | return Math.round((current - 32) * 5 / 9); 69 | }; 70 | 71 | return ( 72 |
73 |

{city}

74 |
75 | 76 | 81 | 82 |
83 | {forecastData.properties.periods.map((day, index) => ( 84 | index % 2 === 0 && (index < forecastDays) && ( 85 |
86 |
87 |
88 |

{formatDate(day.startTime)}

89 |

{day.shortForecast}

90 |
91 |
{useCelsius ? convertToCelsius(day.temperature) : day.temperature}°{useCelsius ? "C" : "F"}
92 |
93 |
94 |
95 | 96 | Precipitation: {day.probabilityOfPrecipitation.value === null ? 0 : day.probabilityOfPrecipitation.value}% 97 |
98 |
99 | 100 | Wind: {day.windSpeed} 101 |
102 |
103 | {!showFullForecast && ( 104 |
105 | 106 | 107 |
108 | )} 109 |
110 | ) 111 | ))} 112 |
113 | ); 114 | } -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss" 2 | 3 | const config = { 4 | darkMode: ["class"], 5 | content: [ 6 | './pages/**/*.{ts,tsx}', 7 | './components/**/*.{ts,tsx}', 8 | './app/**/*.{ts,tsx}', 9 | './src/**/*.{ts,tsx}', 10 | ], 11 | prefix: "", 12 | theme: { 13 | container: { 14 | center: true, 15 | padding: "2rem", 16 | screens: { 17 | "2xl": "1400px", 18 | }, 19 | }, 20 | extend: { 21 | colors: { 22 | border: "hsl(var(--border))", 23 | input: "hsl(var(--input))", 24 | ring: "hsl(var(--ring))", 25 | background: "hsl(var(--background))", 26 | foreground: "hsl(var(--foreground))", 27 | primary: { 28 | DEFAULT: "hsl(var(--primary))", 29 | foreground: "hsl(var(--primary-foreground))", 30 | }, 31 | secondary: { 32 | DEFAULT: "hsl(var(--secondary))", 33 | foreground: "hsl(var(--secondary-foreground))", 34 | }, 35 | destructive: { 36 | DEFAULT: "hsl(var(--destructive))", 37 | foreground: "hsl(var(--destructive-foreground))", 38 | }, 39 | muted: { 40 | DEFAULT: "hsl(var(--muted))", 41 | foreground: "hsl(var(--muted-foreground))", 42 | }, 43 | accent: { 44 | DEFAULT: "hsl(var(--accent))", 45 | foreground: "hsl(var(--accent-foreground))", 46 | }, 47 | popover: { 48 | DEFAULT: "hsl(var(--popover))", 49 | foreground: "hsl(var(--popover-foreground))", 50 | }, 51 | card: { 52 | DEFAULT: "hsl(var(--card))", 53 | foreground: "hsl(var(--card-foreground))", 54 | }, 55 | }, 56 | borderRadius: { 57 | lg: "var(--radius)", 58 | md: "calc(var(--radius) - 2px)", 59 | sm: "calc(var(--radius) - 4px)", 60 | }, 61 | keyframes: { 62 | "accordion-down": { 63 | from: { height: "0" }, 64 | to: { height: "var(--radix-accordion-content-height)" }, 65 | }, 66 | "accordion-up": { 67 | from: { height: "var(--radix-accordion-content-height)" }, 68 | to: { height: "0" }, 69 | }, 70 | }, 71 | animation: { 72 | "accordion-down": "accordion-down 0.2s ease-out", 73 | "accordion-up": "accordion-up 0.2s ease-out", 74 | }, 75 | }, 76 | }, 77 | plugins: [require("tailwindcss-animate")], 78 | } satisfies Config 79 | 80 | export default config -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./src/*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 25 | "exclude": ["node_modules"] 26 | } 27 | --------------------------------------------------------------------------------