├── .env.example ├── .eslintrc.json ├── .gitignore ├── COPY-PASTE-LIST.md ├── README.md ├── components.json ├── drizzle.config.ts ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public ├── dark_down_jacket_1.png ├── dark_down_jacket_2.png ├── dark_fleece_jacket_1.png ├── dark_leather_jacket_1.png ├── dark_parka_jacket_1.png ├── dark_parka_jacket_2.png ├── dark_parka_jacket_3.png ├── dark_trench_coat_1.png ├── light_down_jacket_1.png ├── light_down_jacket_2.png ├── light_down_jacket_3.png ├── light_fleece_jacket_1.png ├── light_jeans_jacket_1.png ├── light_jeans_jacket_2.png ├── light_parka_jacket_1.png ├── light_trench_coat_1.png ├── light_trench_coat_2.png ├── light_wind_jacket_1.png ├── light_wind_jacket_2.png ├── light_wind_jacket_3.png └── light_wind_jacket_4.png ├── src ├── app │ ├── favicon.ico │ ├── globals.css │ ├── layout.tsx │ ├── page.tsx │ ├── products │ │ └── [productId] │ │ │ └── page.tsx │ └── search │ │ ├── loading.tsx │ │ └── page.tsx ├── components │ ├── BackButton.tsx │ ├── Icons.tsx │ ├── SearchBar.tsx │ └── ui │ │ ├── button.tsx │ │ └── input.tsx ├── db │ ├── index.ts │ ├── schema.ts │ └── seed.ts └── lib │ ├── openai.ts │ ├── utils.ts │ └── vectorize.ts ├── tailwind.config.ts └── tsconfig.json /.env.example: -------------------------------------------------------------------------------- 1 | DATABASE_URL= 2 | OPENAI_API_KEY= 3 | UPSTASH_VECTOR_REST_URL= 4 | UPSTASH_VECTOR_REST_TOKEN= -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /COPY-PASTE-LIST.md: -------------------------------------------------------------------------------- 1 | ## Homepage SVG 2 | ``` 3 | 24 | ``` 25 | 26 | ## Sparkes Icon 27 | ``` 28 | 29 | 37 | 45 | 54 | 55 | 63 | 68 | 76 | 77 | 78 | 87 | 88 | 96 | 111 | 115 | 119 | 123 | 127 | 131 | 135 | 139 | 143 | 147 | 151 | 155 | 159 | 172 | 185 | 186 | ``` -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | A hybrid search engine using Postgres full-text search and semantic querying for fast & pretty accurate search results -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /drizzle.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from 'drizzle-kit' 2 | 3 | export default { 4 | driver: 'pg', 5 | schema: './src/db/schema.ts', 6 | dbCredentials: { 7 | connectionString: process.env.DATABASE_URL!, 8 | }, 9 | out: './drizzle', 10 | } satisfies Config 11 | -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "searcg", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "drizzle:seed": "yarn tsx ./src/db/seed.ts", 10 | "lint": "next lint" 11 | }, 12 | "dependencies": { 13 | "@faker-js/faker": "^8.4.1", 14 | "@neondatabase/serverless": "^0.9.0", 15 | "@radix-ui/react-slot": "^1.0.2", 16 | "@upstash/vector": "^1.0.4", 17 | "class-variance-authority": "^0.7.0", 18 | "clsx": "^2.1.0", 19 | "dotenv": "^16.4.5", 20 | "drizzle-orm": "^0.30.1", 21 | "lucide-react": "^0.357.0", 22 | "next": "14.1.3", 23 | "openai": "^4.29.0", 24 | "pg": "^8.11.3", 25 | "react": "^18", 26 | "react-dom": "^18", 27 | "tailwind-merge": "^2.2.1", 28 | "tailwindcss-animate": "^1.0.7", 29 | "tsx": "^4.7.1" 30 | }, 31 | "devDependencies": { 32 | "@types/node": "^20", 33 | "@types/react": "^18", 34 | "@types/react-dom": "^18", 35 | "autoprefixer": "^10.0.1", 36 | "drizzle-kit": "^0.20.14", 37 | "eslint": "^8", 38 | "eslint-config-next": "14.1.3", 39 | "postcss": "^8", 40 | "tailwindcss": "^3.3.0", 41 | "typescript": "^5" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | dependencies: 4 | '@faker-js/faker': 5 | specifier: ^8.4.1 6 | version: 8.4.1 7 | '@neondatabase/serverless': 8 | specifier: ^0.9.0 9 | version: 0.9.0 10 | '@radix-ui/react-slot': 11 | specifier: ^1.0.2 12 | version: 1.0.2(@types/react@18.0.0)(react@18.0.0) 13 | '@upstash/vector': 14 | specifier: ^1.0.4 15 | version: 1.0.4 16 | class-variance-authority: 17 | specifier: ^0.7.0 18 | version: 0.7.0 19 | clsx: 20 | specifier: ^2.1.0 21 | version: 2.1.0 22 | dotenv: 23 | specifier: ^16.4.5 24 | version: 16.4.5 25 | drizzle-orm: 26 | specifier: ^0.30.1 27 | version: 0.30.1(@neondatabase/serverless@0.9.0)(@types/react@18.0.0)(pg@8.11.3)(react@18.0.0) 28 | lucide-react: 29 | specifier: ^0.357.0 30 | version: 0.357.0(react@18.0.0) 31 | next: 32 | specifier: 14.1.3 33 | version: 14.1.3(react-dom@18.0.0)(react@18.0.0) 34 | openai: 35 | specifier: ^4.29.0 36 | version: 4.29.0 37 | pg: 38 | specifier: ^8.11.3 39 | version: 8.11.3 40 | react: 41 | specifier: ^18 42 | version: 18.0.0 43 | react-dom: 44 | specifier: ^18 45 | version: 18.0.0(react@18.0.0) 46 | tailwind-merge: 47 | specifier: ^2.2.1 48 | version: 2.2.1 49 | tailwindcss-animate: 50 | specifier: ^1.0.7 51 | version: 1.0.7(tailwindcss@3.3.0) 52 | tsx: 53 | specifier: ^4.7.1 54 | version: 4.7.1 55 | 56 | devDependencies: 57 | '@types/node': 58 | specifier: ^20 59 | version: 20.0.0 60 | '@types/react': 61 | specifier: ^18 62 | version: 18.0.0 63 | '@types/react-dom': 64 | specifier: ^18 65 | version: 18.0.0 66 | autoprefixer: 67 | specifier: ^10.0.1 68 | version: 10.0.1(postcss@8.0.0) 69 | drizzle-kit: 70 | specifier: ^0.20.14 71 | version: 0.20.14 72 | eslint: 73 | specifier: ^8 74 | version: 8.0.0 75 | eslint-config-next: 76 | specifier: 14.1.3 77 | version: 14.1.3(eslint@8.0.0)(typescript@5.0.2) 78 | postcss: 79 | specifier: ^8 80 | version: 8.0.0 81 | tailwindcss: 82 | specifier: ^3.3.0 83 | version: 3.3.0(postcss@8.0.0) 84 | typescript: 85 | specifier: ^5 86 | version: 5.0.2 87 | 88 | packages: 89 | 90 | /@aashutoshrathi/word-wrap@1.2.6: 91 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 92 | engines: {node: '>=0.10.0'} 93 | dev: true 94 | 95 | /@babel/runtime@7.24.0: 96 | resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} 97 | engines: {node: '>=6.9.0'} 98 | dependencies: 99 | regenerator-runtime: 0.14.1 100 | 101 | /@drizzle-team/studio@0.0.39: 102 | resolution: {integrity: sha512-c5Hkm7MmQC2n5qAsKShjQrHoqlfGslB8+qWzsGGZ+2dHMRTNG60UuzalF0h0rvBax5uzPXuGkYLGaQ+TUX3yMw==} 103 | dependencies: 104 | superjson: 2.2.1 105 | dev: true 106 | 107 | /@esbuild-kit/core-utils@3.3.2: 108 | resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} 109 | dependencies: 110 | esbuild: 0.18.20 111 | source-map-support: 0.5.21 112 | dev: true 113 | 114 | /@esbuild-kit/esm-loader@2.6.5: 115 | resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} 116 | dependencies: 117 | '@esbuild-kit/core-utils': 3.3.2 118 | get-tsconfig: 4.7.3 119 | dev: true 120 | 121 | /@esbuild/aix-ppc64@0.19.12: 122 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 123 | engines: {node: '>=12'} 124 | cpu: [ppc64] 125 | os: [aix] 126 | requiresBuild: true 127 | optional: true 128 | 129 | /@esbuild/android-arm64@0.18.20: 130 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 131 | engines: {node: '>=12'} 132 | cpu: [arm64] 133 | os: [android] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/android-arm64@0.19.12: 139 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 140 | engines: {node: '>=12'} 141 | cpu: [arm64] 142 | os: [android] 143 | requiresBuild: true 144 | optional: true 145 | 146 | /@esbuild/android-arm@0.18.20: 147 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 148 | engines: {node: '>=12'} 149 | cpu: [arm] 150 | os: [android] 151 | requiresBuild: true 152 | dev: true 153 | optional: true 154 | 155 | /@esbuild/android-arm@0.19.12: 156 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 157 | engines: {node: '>=12'} 158 | cpu: [arm] 159 | os: [android] 160 | requiresBuild: true 161 | optional: true 162 | 163 | /@esbuild/android-x64@0.18.20: 164 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 165 | engines: {node: '>=12'} 166 | cpu: [x64] 167 | os: [android] 168 | requiresBuild: true 169 | dev: true 170 | optional: true 171 | 172 | /@esbuild/android-x64@0.19.12: 173 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 174 | engines: {node: '>=12'} 175 | cpu: [x64] 176 | os: [android] 177 | requiresBuild: true 178 | optional: true 179 | 180 | /@esbuild/darwin-arm64@0.18.20: 181 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 182 | engines: {node: '>=12'} 183 | cpu: [arm64] 184 | os: [darwin] 185 | requiresBuild: true 186 | dev: true 187 | optional: true 188 | 189 | /@esbuild/darwin-arm64@0.19.12: 190 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 191 | engines: {node: '>=12'} 192 | cpu: [arm64] 193 | os: [darwin] 194 | requiresBuild: true 195 | optional: true 196 | 197 | /@esbuild/darwin-x64@0.18.20: 198 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 199 | engines: {node: '>=12'} 200 | cpu: [x64] 201 | os: [darwin] 202 | requiresBuild: true 203 | dev: true 204 | optional: true 205 | 206 | /@esbuild/darwin-x64@0.19.12: 207 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 208 | engines: {node: '>=12'} 209 | cpu: [x64] 210 | os: [darwin] 211 | requiresBuild: true 212 | optional: true 213 | 214 | /@esbuild/freebsd-arm64@0.18.20: 215 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 216 | engines: {node: '>=12'} 217 | cpu: [arm64] 218 | os: [freebsd] 219 | requiresBuild: true 220 | dev: true 221 | optional: true 222 | 223 | /@esbuild/freebsd-arm64@0.19.12: 224 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 225 | engines: {node: '>=12'} 226 | cpu: [arm64] 227 | os: [freebsd] 228 | requiresBuild: true 229 | optional: true 230 | 231 | /@esbuild/freebsd-x64@0.18.20: 232 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 233 | engines: {node: '>=12'} 234 | cpu: [x64] 235 | os: [freebsd] 236 | requiresBuild: true 237 | dev: true 238 | optional: true 239 | 240 | /@esbuild/freebsd-x64@0.19.12: 241 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 242 | engines: {node: '>=12'} 243 | cpu: [x64] 244 | os: [freebsd] 245 | requiresBuild: true 246 | optional: true 247 | 248 | /@esbuild/linux-arm64@0.18.20: 249 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 250 | engines: {node: '>=12'} 251 | cpu: [arm64] 252 | os: [linux] 253 | requiresBuild: true 254 | dev: true 255 | optional: true 256 | 257 | /@esbuild/linux-arm64@0.19.12: 258 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 259 | engines: {node: '>=12'} 260 | cpu: [arm64] 261 | os: [linux] 262 | requiresBuild: true 263 | optional: true 264 | 265 | /@esbuild/linux-arm@0.18.20: 266 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 267 | engines: {node: '>=12'} 268 | cpu: [arm] 269 | os: [linux] 270 | requiresBuild: true 271 | dev: true 272 | optional: true 273 | 274 | /@esbuild/linux-arm@0.19.12: 275 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 276 | engines: {node: '>=12'} 277 | cpu: [arm] 278 | os: [linux] 279 | requiresBuild: true 280 | optional: true 281 | 282 | /@esbuild/linux-ia32@0.18.20: 283 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 284 | engines: {node: '>=12'} 285 | cpu: [ia32] 286 | os: [linux] 287 | requiresBuild: true 288 | dev: true 289 | optional: true 290 | 291 | /@esbuild/linux-ia32@0.19.12: 292 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 293 | engines: {node: '>=12'} 294 | cpu: [ia32] 295 | os: [linux] 296 | requiresBuild: true 297 | optional: true 298 | 299 | /@esbuild/linux-loong64@0.18.20: 300 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 301 | engines: {node: '>=12'} 302 | cpu: [loong64] 303 | os: [linux] 304 | requiresBuild: true 305 | dev: true 306 | optional: true 307 | 308 | /@esbuild/linux-loong64@0.19.12: 309 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 310 | engines: {node: '>=12'} 311 | cpu: [loong64] 312 | os: [linux] 313 | requiresBuild: true 314 | optional: true 315 | 316 | /@esbuild/linux-mips64el@0.18.20: 317 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 318 | engines: {node: '>=12'} 319 | cpu: [mips64el] 320 | os: [linux] 321 | requiresBuild: true 322 | dev: true 323 | optional: true 324 | 325 | /@esbuild/linux-mips64el@0.19.12: 326 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 327 | engines: {node: '>=12'} 328 | cpu: [mips64el] 329 | os: [linux] 330 | requiresBuild: true 331 | optional: true 332 | 333 | /@esbuild/linux-ppc64@0.18.20: 334 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 335 | engines: {node: '>=12'} 336 | cpu: [ppc64] 337 | os: [linux] 338 | requiresBuild: true 339 | dev: true 340 | optional: true 341 | 342 | /@esbuild/linux-ppc64@0.19.12: 343 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 344 | engines: {node: '>=12'} 345 | cpu: [ppc64] 346 | os: [linux] 347 | requiresBuild: true 348 | optional: true 349 | 350 | /@esbuild/linux-riscv64@0.18.20: 351 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 352 | engines: {node: '>=12'} 353 | cpu: [riscv64] 354 | os: [linux] 355 | requiresBuild: true 356 | dev: true 357 | optional: true 358 | 359 | /@esbuild/linux-riscv64@0.19.12: 360 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 361 | engines: {node: '>=12'} 362 | cpu: [riscv64] 363 | os: [linux] 364 | requiresBuild: true 365 | optional: true 366 | 367 | /@esbuild/linux-s390x@0.18.20: 368 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 369 | engines: {node: '>=12'} 370 | cpu: [s390x] 371 | os: [linux] 372 | requiresBuild: true 373 | dev: true 374 | optional: true 375 | 376 | /@esbuild/linux-s390x@0.19.12: 377 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 378 | engines: {node: '>=12'} 379 | cpu: [s390x] 380 | os: [linux] 381 | requiresBuild: true 382 | optional: true 383 | 384 | /@esbuild/linux-x64@0.18.20: 385 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 386 | engines: {node: '>=12'} 387 | cpu: [x64] 388 | os: [linux] 389 | requiresBuild: true 390 | dev: true 391 | optional: true 392 | 393 | /@esbuild/linux-x64@0.19.12: 394 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 395 | engines: {node: '>=12'} 396 | cpu: [x64] 397 | os: [linux] 398 | requiresBuild: true 399 | optional: true 400 | 401 | /@esbuild/netbsd-x64@0.18.20: 402 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 403 | engines: {node: '>=12'} 404 | cpu: [x64] 405 | os: [netbsd] 406 | requiresBuild: true 407 | dev: true 408 | optional: true 409 | 410 | /@esbuild/netbsd-x64@0.19.12: 411 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 412 | engines: {node: '>=12'} 413 | cpu: [x64] 414 | os: [netbsd] 415 | requiresBuild: true 416 | optional: true 417 | 418 | /@esbuild/openbsd-x64@0.18.20: 419 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 420 | engines: {node: '>=12'} 421 | cpu: [x64] 422 | os: [openbsd] 423 | requiresBuild: true 424 | dev: true 425 | optional: true 426 | 427 | /@esbuild/openbsd-x64@0.19.12: 428 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 429 | engines: {node: '>=12'} 430 | cpu: [x64] 431 | os: [openbsd] 432 | requiresBuild: true 433 | optional: true 434 | 435 | /@esbuild/sunos-x64@0.18.20: 436 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 437 | engines: {node: '>=12'} 438 | cpu: [x64] 439 | os: [sunos] 440 | requiresBuild: true 441 | dev: true 442 | optional: true 443 | 444 | /@esbuild/sunos-x64@0.19.12: 445 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 446 | engines: {node: '>=12'} 447 | cpu: [x64] 448 | os: [sunos] 449 | requiresBuild: true 450 | optional: true 451 | 452 | /@esbuild/win32-arm64@0.18.20: 453 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 454 | engines: {node: '>=12'} 455 | cpu: [arm64] 456 | os: [win32] 457 | requiresBuild: true 458 | dev: true 459 | optional: true 460 | 461 | /@esbuild/win32-arm64@0.19.12: 462 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 463 | engines: {node: '>=12'} 464 | cpu: [arm64] 465 | os: [win32] 466 | requiresBuild: true 467 | optional: true 468 | 469 | /@esbuild/win32-ia32@0.18.20: 470 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 471 | engines: {node: '>=12'} 472 | cpu: [ia32] 473 | os: [win32] 474 | requiresBuild: true 475 | dev: true 476 | optional: true 477 | 478 | /@esbuild/win32-ia32@0.19.12: 479 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 480 | engines: {node: '>=12'} 481 | cpu: [ia32] 482 | os: [win32] 483 | requiresBuild: true 484 | optional: true 485 | 486 | /@esbuild/win32-x64@0.18.20: 487 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 488 | engines: {node: '>=12'} 489 | cpu: [x64] 490 | os: [win32] 491 | requiresBuild: true 492 | dev: true 493 | optional: true 494 | 495 | /@esbuild/win32-x64@0.19.12: 496 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 497 | engines: {node: '>=12'} 498 | cpu: [x64] 499 | os: [win32] 500 | requiresBuild: true 501 | optional: true 502 | 503 | /@eslint/eslintrc@1.4.1: 504 | resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} 505 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 506 | dependencies: 507 | ajv: 6.12.6 508 | debug: 4.3.4 509 | espree: 9.6.1 510 | globals: 13.24.0 511 | ignore: 5.3.1 512 | import-fresh: 3.3.0 513 | js-yaml: 4.1.0 514 | minimatch: 3.1.2 515 | strip-json-comments: 3.1.1 516 | transitivePeerDependencies: 517 | - supports-color 518 | dev: true 519 | 520 | /@faker-js/faker@8.4.1: 521 | resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} 522 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} 523 | dev: false 524 | 525 | /@humanwhocodes/config-array@0.6.0: 526 | resolution: {integrity: sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==} 527 | engines: {node: '>=10.10.0'} 528 | dependencies: 529 | '@humanwhocodes/object-schema': 1.2.1 530 | debug: 4.3.4 531 | minimatch: 3.1.2 532 | transitivePeerDependencies: 533 | - supports-color 534 | dev: true 535 | 536 | /@humanwhocodes/object-schema@1.2.1: 537 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 538 | dev: true 539 | 540 | /@isaacs/cliui@8.0.2: 541 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 542 | engines: {node: '>=12'} 543 | dependencies: 544 | string-width: 5.1.2 545 | string-width-cjs: /string-width@4.2.3 546 | strip-ansi: 7.1.0 547 | strip-ansi-cjs: /strip-ansi@6.0.1 548 | wrap-ansi: 8.1.0 549 | wrap-ansi-cjs: /wrap-ansi@7.0.0 550 | 551 | /@jridgewell/gen-mapping@0.3.5: 552 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 553 | engines: {node: '>=6.0.0'} 554 | dependencies: 555 | '@jridgewell/set-array': 1.2.1 556 | '@jridgewell/sourcemap-codec': 1.4.15 557 | '@jridgewell/trace-mapping': 0.3.25 558 | 559 | /@jridgewell/resolve-uri@3.1.2: 560 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 561 | engines: {node: '>=6.0.0'} 562 | 563 | /@jridgewell/set-array@1.2.1: 564 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 565 | engines: {node: '>=6.0.0'} 566 | 567 | /@jridgewell/sourcemap-codec@1.4.15: 568 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 569 | 570 | /@jridgewell/trace-mapping@0.3.25: 571 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 572 | dependencies: 573 | '@jridgewell/resolve-uri': 3.1.2 574 | '@jridgewell/sourcemap-codec': 1.4.15 575 | 576 | /@neondatabase/serverless@0.9.0: 577 | resolution: {integrity: sha512-mmJnUAzlzvxNSZuuhI6kgJjH+JgFdBMYUWxihtq/nj0Tjt+Y5UU3W+SvRFoucnd5NObYkuLYQzk+zV5DGFKGJg==} 578 | dependencies: 579 | '@types/pg': 8.6.6 580 | dev: false 581 | 582 | /@next/env@14.1.3: 583 | resolution: {integrity: sha512-VhgXTvrgeBRxNPjyfBsDIMvgsKDxjlpw4IAUsHCX8Gjl1vtHUYRT3+xfQ/wwvLPDd/6kqfLqk9Pt4+7gysuCKQ==} 584 | dev: false 585 | 586 | /@next/eslint-plugin-next@14.1.3: 587 | resolution: {integrity: sha512-VCnZI2cy77Yaj3L7Uhs3+44ikMM1VD/fBMwvTBb3hIaTIuqa+DmG4dhUDq+MASu3yx97KhgsVJbsas0XuiKyww==} 588 | dependencies: 589 | glob: 10.3.10 590 | dev: true 591 | 592 | /@next/swc-darwin-arm64@14.1.3: 593 | resolution: {integrity: sha512-LALu0yIBPRiG9ANrD5ncB3pjpO0Gli9ZLhxdOu6ZUNf3x1r3ea1rd9Q+4xxUkGrUXLqKVK9/lDkpYIJaCJ6AHQ==} 594 | engines: {node: '>= 10'} 595 | cpu: [arm64] 596 | os: [darwin] 597 | requiresBuild: true 598 | dev: false 599 | optional: true 600 | 601 | /@next/swc-darwin-x64@14.1.3: 602 | resolution: {integrity: sha512-E/9WQeXxkqw2dfcn5UcjApFgUq73jqNKaE5bysDm58hEUdUGedVrnRhblhJM7HbCZNhtVl0j+6TXsK0PuzXTCg==} 603 | engines: {node: '>= 10'} 604 | cpu: [x64] 605 | os: [darwin] 606 | requiresBuild: true 607 | dev: false 608 | optional: true 609 | 610 | /@next/swc-linux-arm64-gnu@14.1.3: 611 | resolution: {integrity: sha512-USArX9B+3rZSXYLFvgy0NVWQgqh6LHWDmMt38O4lmiJNQcwazeI6xRvSsliDLKt+78KChVacNiwvOMbl6g6BBw==} 612 | engines: {node: '>= 10'} 613 | cpu: [arm64] 614 | os: [linux] 615 | requiresBuild: true 616 | dev: false 617 | optional: true 618 | 619 | /@next/swc-linux-arm64-musl@14.1.3: 620 | resolution: {integrity: sha512-esk1RkRBLSIEp1qaQXv1+s6ZdYzuVCnDAZySpa62iFTMGTisCyNQmqyCTL9P+cLJ4N9FKCI3ojtSfsyPHJDQNw==} 621 | engines: {node: '>= 10'} 622 | cpu: [arm64] 623 | os: [linux] 624 | requiresBuild: true 625 | dev: false 626 | optional: true 627 | 628 | /@next/swc-linux-x64-gnu@14.1.3: 629 | resolution: {integrity: sha512-8uOgRlYEYiKo0L8YGeS+3TudHVDWDjPVDUcST+z+dUzgBbTEwSSIaSgF/vkcC1T/iwl4QX9iuUyUdQEl0Kxalg==} 630 | engines: {node: '>= 10'} 631 | cpu: [x64] 632 | os: [linux] 633 | requiresBuild: true 634 | dev: false 635 | optional: true 636 | 637 | /@next/swc-linux-x64-musl@14.1.3: 638 | resolution: {integrity: sha512-DX2zqz05ziElLoxskgHasaJBREC5Y9TJcbR2LYqu4r7naff25B4iXkfXWfcp69uD75/0URmmoSgT8JclJtrBoQ==} 639 | engines: {node: '>= 10'} 640 | cpu: [x64] 641 | os: [linux] 642 | requiresBuild: true 643 | dev: false 644 | optional: true 645 | 646 | /@next/swc-win32-arm64-msvc@14.1.3: 647 | resolution: {integrity: sha512-HjssFsCdsD4GHstXSQxsi2l70F/5FsRTRQp8xNgmQs15SxUfUJRvSI9qKny/jLkY3gLgiCR3+6A7wzzK0DBlfA==} 648 | engines: {node: '>= 10'} 649 | cpu: [arm64] 650 | os: [win32] 651 | requiresBuild: true 652 | dev: false 653 | optional: true 654 | 655 | /@next/swc-win32-ia32-msvc@14.1.3: 656 | resolution: {integrity: sha512-DRuxD5axfDM1/Ue4VahwSxl1O5rn61hX8/sF0HY8y0iCbpqdxw3rB3QasdHn/LJ6Wb2y5DoWzXcz3L1Cr+Thrw==} 657 | engines: {node: '>= 10'} 658 | cpu: [ia32] 659 | os: [win32] 660 | requiresBuild: true 661 | dev: false 662 | optional: true 663 | 664 | /@next/swc-win32-x64-msvc@14.1.3: 665 | resolution: {integrity: sha512-uC2DaDoWH7h1P/aJ4Fok3Xiw6P0Lo4ez7NbowW2VGNXw/Xv6tOuLUcxhBYZxsSUJtpeknCi8/fvnSpyCFp4Rcg==} 666 | engines: {node: '>= 10'} 667 | cpu: [x64] 668 | os: [win32] 669 | requiresBuild: true 670 | dev: false 671 | optional: true 672 | 673 | /@nodelib/fs.scandir@2.1.5: 674 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 675 | engines: {node: '>= 8'} 676 | dependencies: 677 | '@nodelib/fs.stat': 2.0.5 678 | run-parallel: 1.2.0 679 | 680 | /@nodelib/fs.stat@2.0.5: 681 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 682 | engines: {node: '>= 8'} 683 | 684 | /@nodelib/fs.walk@1.2.8: 685 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 686 | engines: {node: '>= 8'} 687 | dependencies: 688 | '@nodelib/fs.scandir': 2.1.5 689 | fastq: 1.17.1 690 | 691 | /@pkgjs/parseargs@0.11.0: 692 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 693 | engines: {node: '>=14'} 694 | requiresBuild: true 695 | optional: true 696 | 697 | /@radix-ui/react-compose-refs@1.0.1(@types/react@18.0.0)(react@18.0.0): 698 | resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} 699 | peerDependencies: 700 | '@types/react': '*' 701 | react: ^16.8 || ^17.0 || ^18.0 702 | peerDependenciesMeta: 703 | '@types/react': 704 | optional: true 705 | dependencies: 706 | '@babel/runtime': 7.24.0 707 | '@types/react': 18.0.0 708 | react: 18.0.0 709 | dev: false 710 | 711 | /@radix-ui/react-slot@1.0.2(@types/react@18.0.0)(react@18.0.0): 712 | resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} 713 | peerDependencies: 714 | '@types/react': '*' 715 | react: ^16.8 || ^17.0 || ^18.0 716 | peerDependenciesMeta: 717 | '@types/react': 718 | optional: true 719 | dependencies: 720 | '@babel/runtime': 7.24.0 721 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.0)(react@18.0.0) 722 | '@types/react': 18.0.0 723 | react: 18.0.0 724 | dev: false 725 | 726 | /@rushstack/eslint-patch@1.7.2: 727 | resolution: {integrity: sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==} 728 | dev: true 729 | 730 | /@swc/helpers@0.5.2: 731 | resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} 732 | dependencies: 733 | tslib: 2.6.2 734 | dev: false 735 | 736 | /@types/json5@0.0.29: 737 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 738 | dev: true 739 | 740 | /@types/node-fetch@2.6.11: 741 | resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} 742 | dependencies: 743 | '@types/node': 20.0.0 744 | form-data: 4.0.0 745 | dev: false 746 | 747 | /@types/node@18.19.24: 748 | resolution: {integrity: sha512-eghAz3gnbQbvnHqB+mgB2ZR3aH6RhdEmHGS48BnV75KceQPHqabkxKI0BbUSsqhqy2Ddhc2xD/VAR9ySZd57Lw==} 749 | dependencies: 750 | undici-types: 5.26.5 751 | dev: false 752 | 753 | /@types/node@20.0.0: 754 | resolution: {integrity: sha512-cD2uPTDnQQCVpmRefonO98/PPijuOnnEy5oytWJFPY1N9aJCz2wJ5kSGWO+zJoed2cY2JxQh6yBuUq4vIn61hw==} 755 | 756 | /@types/pg@8.6.6: 757 | resolution: {integrity: sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==} 758 | dependencies: 759 | '@types/node': 20.0.0 760 | pg-protocol: 1.6.0 761 | pg-types: 2.2.0 762 | dev: false 763 | 764 | /@types/prop-types@15.7.11: 765 | resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} 766 | 767 | /@types/react-dom@18.0.0: 768 | resolution: {integrity: sha512-49897Y0UiCGmxZqpC8Blrf6meL8QUla6eb+BBhn69dTXlmuOlzkfr7HHY/O8J25e1lTUMs+YYxSlVDAaGHCOLg==} 769 | dependencies: 770 | '@types/react': 18.0.0 771 | dev: true 772 | 773 | /@types/react@18.0.0: 774 | resolution: {integrity: sha512-7+K7zEQYu7NzOwQGLR91KwWXXDzmTFODRVizJyIALf6RfLv2GDpqpknX64pvRVILXCpXi7O/pua8NGk44dLvJw==} 775 | dependencies: 776 | '@types/prop-types': 15.7.11 777 | '@types/scheduler': 0.16.8 778 | csstype: 3.1.3 779 | 780 | /@types/scheduler@0.16.8: 781 | resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} 782 | 783 | /@typescript-eslint/parser@6.21.0(eslint@8.0.0)(typescript@5.0.2): 784 | resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} 785 | engines: {node: ^16.0.0 || >=18.0.0} 786 | peerDependencies: 787 | eslint: ^7.0.0 || ^8.0.0 788 | typescript: '*' 789 | peerDependenciesMeta: 790 | typescript: 791 | optional: true 792 | dependencies: 793 | '@typescript-eslint/scope-manager': 6.21.0 794 | '@typescript-eslint/types': 6.21.0 795 | '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.0.2) 796 | '@typescript-eslint/visitor-keys': 6.21.0 797 | debug: 4.3.4 798 | eslint: 8.0.0 799 | typescript: 5.0.2 800 | transitivePeerDependencies: 801 | - supports-color 802 | dev: true 803 | 804 | /@typescript-eslint/scope-manager@6.21.0: 805 | resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} 806 | engines: {node: ^16.0.0 || >=18.0.0} 807 | dependencies: 808 | '@typescript-eslint/types': 6.21.0 809 | '@typescript-eslint/visitor-keys': 6.21.0 810 | dev: true 811 | 812 | /@typescript-eslint/types@6.21.0: 813 | resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} 814 | engines: {node: ^16.0.0 || >=18.0.0} 815 | dev: true 816 | 817 | /@typescript-eslint/typescript-estree@6.21.0(typescript@5.0.2): 818 | resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} 819 | engines: {node: ^16.0.0 || >=18.0.0} 820 | peerDependencies: 821 | typescript: '*' 822 | peerDependenciesMeta: 823 | typescript: 824 | optional: true 825 | dependencies: 826 | '@typescript-eslint/types': 6.21.0 827 | '@typescript-eslint/visitor-keys': 6.21.0 828 | debug: 4.3.4 829 | globby: 11.1.0 830 | is-glob: 4.0.3 831 | minimatch: 9.0.3 832 | semver: 7.6.0 833 | ts-api-utils: 1.3.0(typescript@5.0.2) 834 | typescript: 5.0.2 835 | transitivePeerDependencies: 836 | - supports-color 837 | dev: true 838 | 839 | /@typescript-eslint/visitor-keys@6.21.0: 840 | resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} 841 | engines: {node: ^16.0.0 || >=18.0.0} 842 | dependencies: 843 | '@typescript-eslint/types': 6.21.0 844 | eslint-visitor-keys: 3.4.3 845 | dev: true 846 | 847 | /@upstash/vector@1.0.4: 848 | resolution: {integrity: sha512-Pq4KDq/IguAKK/BOTMQeA1HvzwO3WU+4CWJeUf97f+xEgJ/RrUJJClCmdv96O+NUi1ssoFDNAuES72v9ZJkSfA==} 849 | dev: false 850 | 851 | /abort-controller@3.0.0: 852 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 853 | engines: {node: '>=6.5'} 854 | dependencies: 855 | event-target-shim: 5.0.1 856 | dev: false 857 | 858 | /acorn-jsx@5.3.2(acorn@8.11.3): 859 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 860 | peerDependencies: 861 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 862 | dependencies: 863 | acorn: 8.11.3 864 | dev: true 865 | 866 | /acorn@8.11.3: 867 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 868 | engines: {node: '>=0.4.0'} 869 | hasBin: true 870 | dev: true 871 | 872 | /agentkeepalive@4.5.0: 873 | resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} 874 | engines: {node: '>= 8.0.0'} 875 | dependencies: 876 | humanize-ms: 1.2.1 877 | dev: false 878 | 879 | /ajv@6.12.6: 880 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 881 | dependencies: 882 | fast-deep-equal: 3.1.3 883 | fast-json-stable-stringify: 2.1.0 884 | json-schema-traverse: 0.4.1 885 | uri-js: 4.4.1 886 | dev: true 887 | 888 | /ansi-colors@4.1.3: 889 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 890 | engines: {node: '>=6'} 891 | dev: true 892 | 893 | /ansi-regex@5.0.1: 894 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 895 | engines: {node: '>=8'} 896 | 897 | /ansi-regex@6.0.1: 898 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 899 | engines: {node: '>=12'} 900 | 901 | /ansi-styles@4.3.0: 902 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 903 | engines: {node: '>=8'} 904 | dependencies: 905 | color-convert: 2.0.1 906 | 907 | /ansi-styles@6.2.1: 908 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 909 | engines: {node: '>=12'} 910 | 911 | /any-promise@1.3.0: 912 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 913 | 914 | /anymatch@3.1.3: 915 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 916 | engines: {node: '>= 8'} 917 | dependencies: 918 | normalize-path: 3.0.0 919 | picomatch: 2.3.1 920 | 921 | /arg@5.0.2: 922 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 923 | 924 | /argparse@2.0.1: 925 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 926 | dev: true 927 | 928 | /aria-query@5.3.0: 929 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 930 | dependencies: 931 | dequal: 2.0.3 932 | dev: true 933 | 934 | /array-buffer-byte-length@1.0.1: 935 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} 936 | engines: {node: '>= 0.4'} 937 | dependencies: 938 | call-bind: 1.0.7 939 | is-array-buffer: 3.0.4 940 | dev: true 941 | 942 | /array-includes@3.1.7: 943 | resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} 944 | engines: {node: '>= 0.4'} 945 | dependencies: 946 | call-bind: 1.0.7 947 | define-properties: 1.2.1 948 | es-abstract: 1.22.5 949 | get-intrinsic: 1.2.4 950 | is-string: 1.0.7 951 | dev: true 952 | 953 | /array-union@2.1.0: 954 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 955 | engines: {node: '>=8'} 956 | dev: true 957 | 958 | /array.prototype.filter@1.0.3: 959 | resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==} 960 | engines: {node: '>= 0.4'} 961 | dependencies: 962 | call-bind: 1.0.7 963 | define-properties: 1.2.1 964 | es-abstract: 1.22.5 965 | es-array-method-boxes-properly: 1.0.0 966 | is-string: 1.0.7 967 | dev: true 968 | 969 | /array.prototype.findlast@1.2.4: 970 | resolution: {integrity: sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==} 971 | engines: {node: '>= 0.4'} 972 | dependencies: 973 | call-bind: 1.0.7 974 | define-properties: 1.2.1 975 | es-abstract: 1.22.5 976 | es-errors: 1.3.0 977 | es-shim-unscopables: 1.0.2 978 | dev: true 979 | 980 | /array.prototype.findlastindex@1.2.4: 981 | resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==} 982 | engines: {node: '>= 0.4'} 983 | dependencies: 984 | call-bind: 1.0.7 985 | define-properties: 1.2.1 986 | es-abstract: 1.22.5 987 | es-errors: 1.3.0 988 | es-shim-unscopables: 1.0.2 989 | dev: true 990 | 991 | /array.prototype.flat@1.3.2: 992 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 993 | engines: {node: '>= 0.4'} 994 | dependencies: 995 | call-bind: 1.0.7 996 | define-properties: 1.2.1 997 | es-abstract: 1.22.5 998 | es-shim-unscopables: 1.0.2 999 | dev: true 1000 | 1001 | /array.prototype.flatmap@1.3.2: 1002 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 1003 | engines: {node: '>= 0.4'} 1004 | dependencies: 1005 | call-bind: 1.0.7 1006 | define-properties: 1.2.1 1007 | es-abstract: 1.22.5 1008 | es-shim-unscopables: 1.0.2 1009 | dev: true 1010 | 1011 | /array.prototype.toreversed@1.1.2: 1012 | resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} 1013 | dependencies: 1014 | call-bind: 1.0.7 1015 | define-properties: 1.2.1 1016 | es-abstract: 1.22.5 1017 | es-shim-unscopables: 1.0.2 1018 | dev: true 1019 | 1020 | /array.prototype.tosorted@1.1.3: 1021 | resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} 1022 | dependencies: 1023 | call-bind: 1.0.7 1024 | define-properties: 1.2.1 1025 | es-abstract: 1.22.5 1026 | es-errors: 1.3.0 1027 | es-shim-unscopables: 1.0.2 1028 | dev: true 1029 | 1030 | /arraybuffer.prototype.slice@1.0.3: 1031 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} 1032 | engines: {node: '>= 0.4'} 1033 | dependencies: 1034 | array-buffer-byte-length: 1.0.1 1035 | call-bind: 1.0.7 1036 | define-properties: 1.2.1 1037 | es-abstract: 1.22.5 1038 | es-errors: 1.3.0 1039 | get-intrinsic: 1.2.4 1040 | is-array-buffer: 3.0.4 1041 | is-shared-array-buffer: 1.0.3 1042 | dev: true 1043 | 1044 | /ast-types-flow@0.0.8: 1045 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 1046 | dev: true 1047 | 1048 | /asynciterator.prototype@1.0.0: 1049 | resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} 1050 | dependencies: 1051 | has-symbols: 1.0.3 1052 | dev: true 1053 | 1054 | /asynckit@0.4.0: 1055 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 1056 | dev: false 1057 | 1058 | /autoprefixer@10.0.1(postcss@8.0.0): 1059 | resolution: {integrity: sha512-aQo2BDIsoOdemXUAOBpFv4ZQa2DrOtEufarYhtFsK1088Ca0TUwu/aQWf0M3mrILXZ3mTIVn1lR3hPW8acacsw==} 1060 | engines: {node: ^10 || ^12 || >=14} 1061 | hasBin: true 1062 | peerDependencies: 1063 | postcss: ^8.1.0 1064 | dependencies: 1065 | browserslist: 4.23.0 1066 | caniuse-lite: 1.0.30001597 1067 | colorette: 1.4.0 1068 | normalize-range: 0.1.2 1069 | num2fraction: 1.2.2 1070 | postcss: 8.0.0 1071 | postcss-value-parser: 4.2.0 1072 | dev: true 1073 | 1074 | /available-typed-arrays@1.0.7: 1075 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 1076 | engines: {node: '>= 0.4'} 1077 | dependencies: 1078 | possible-typed-array-names: 1.0.0 1079 | dev: true 1080 | 1081 | /axe-core@4.7.0: 1082 | resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} 1083 | engines: {node: '>=4'} 1084 | dev: true 1085 | 1086 | /axobject-query@3.2.1: 1087 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} 1088 | dependencies: 1089 | dequal: 2.0.3 1090 | dev: true 1091 | 1092 | /balanced-match@1.0.2: 1093 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1094 | 1095 | /base-64@0.1.0: 1096 | resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==} 1097 | dev: false 1098 | 1099 | /binary-extensions@2.2.0: 1100 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 1101 | engines: {node: '>=8'} 1102 | 1103 | /brace-expansion@1.1.11: 1104 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1105 | dependencies: 1106 | balanced-match: 1.0.2 1107 | concat-map: 0.0.1 1108 | dev: true 1109 | 1110 | /brace-expansion@2.0.1: 1111 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1112 | dependencies: 1113 | balanced-match: 1.0.2 1114 | 1115 | /braces@3.0.2: 1116 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1117 | engines: {node: '>=8'} 1118 | dependencies: 1119 | fill-range: 7.0.1 1120 | 1121 | /browserslist@4.23.0: 1122 | resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} 1123 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1124 | hasBin: true 1125 | dependencies: 1126 | caniuse-lite: 1.0.30001597 1127 | electron-to-chromium: 1.4.704 1128 | node-releases: 2.0.14 1129 | update-browserslist-db: 1.0.13(browserslist@4.23.0) 1130 | dev: true 1131 | 1132 | /buffer-from@1.1.2: 1133 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1134 | dev: true 1135 | 1136 | /buffer-writer@2.0.0: 1137 | resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} 1138 | engines: {node: '>=4'} 1139 | dev: false 1140 | 1141 | /busboy@1.6.0: 1142 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 1143 | engines: {node: '>=10.16.0'} 1144 | dependencies: 1145 | streamsearch: 1.1.0 1146 | dev: false 1147 | 1148 | /call-bind@1.0.7: 1149 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 1150 | engines: {node: '>= 0.4'} 1151 | dependencies: 1152 | es-define-property: 1.0.0 1153 | es-errors: 1.3.0 1154 | function-bind: 1.1.2 1155 | get-intrinsic: 1.2.4 1156 | set-function-length: 1.2.2 1157 | dev: true 1158 | 1159 | /callsites@3.1.0: 1160 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1161 | engines: {node: '>=6'} 1162 | dev: true 1163 | 1164 | /camelcase-css@2.0.1: 1165 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 1166 | engines: {node: '>= 6'} 1167 | 1168 | /camelcase@7.0.1: 1169 | resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} 1170 | engines: {node: '>=14.16'} 1171 | dev: true 1172 | 1173 | /caniuse-lite@1.0.30001597: 1174 | resolution: {integrity: sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==} 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: true 1188 | 1189 | /charenc@0.0.2: 1190 | resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} 1191 | dev: false 1192 | 1193 | /chokidar@3.6.0: 1194 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1195 | engines: {node: '>= 8.10.0'} 1196 | dependencies: 1197 | anymatch: 3.1.3 1198 | braces: 3.0.2 1199 | glob-parent: 5.1.2 1200 | is-binary-path: 2.1.0 1201 | is-glob: 4.0.3 1202 | normalize-path: 3.0.0 1203 | readdirp: 3.6.0 1204 | optionalDependencies: 1205 | fsevents: 2.3.3 1206 | 1207 | /class-variance-authority@0.7.0: 1208 | resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} 1209 | dependencies: 1210 | clsx: 2.0.0 1211 | dev: false 1212 | 1213 | /cli-color@2.0.4: 1214 | resolution: {integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==} 1215 | engines: {node: '>=0.10'} 1216 | dependencies: 1217 | d: 1.0.2 1218 | es5-ext: 0.10.64 1219 | es6-iterator: 2.0.3 1220 | memoizee: 0.4.15 1221 | timers-ext: 0.1.7 1222 | dev: true 1223 | 1224 | /client-only@0.0.1: 1225 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 1226 | dev: false 1227 | 1228 | /clsx@2.0.0: 1229 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} 1230 | engines: {node: '>=6'} 1231 | dev: false 1232 | 1233 | /clsx@2.1.0: 1234 | resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} 1235 | engines: {node: '>=6'} 1236 | dev: false 1237 | 1238 | /color-convert@2.0.1: 1239 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1240 | engines: {node: '>=7.0.0'} 1241 | dependencies: 1242 | color-name: 1.1.4 1243 | 1244 | /color-name@1.1.4: 1245 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1246 | 1247 | /colorette@1.4.0: 1248 | resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} 1249 | 1250 | /combined-stream@1.0.8: 1251 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 1252 | engines: {node: '>= 0.8'} 1253 | dependencies: 1254 | delayed-stream: 1.0.0 1255 | dev: false 1256 | 1257 | /commander@4.1.1: 1258 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1259 | engines: {node: '>= 6'} 1260 | 1261 | /commander@9.5.0: 1262 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} 1263 | engines: {node: ^12.20.0 || >=14} 1264 | dev: true 1265 | 1266 | /concat-map@0.0.1: 1267 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1268 | dev: true 1269 | 1270 | /copy-anything@3.0.5: 1271 | resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} 1272 | engines: {node: '>=12.13'} 1273 | dependencies: 1274 | is-what: 4.1.16 1275 | dev: true 1276 | 1277 | /cross-spawn@7.0.3: 1278 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1279 | engines: {node: '>= 8'} 1280 | dependencies: 1281 | path-key: 3.1.1 1282 | shebang-command: 2.0.0 1283 | which: 2.0.2 1284 | 1285 | /crypt@0.0.2: 1286 | resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} 1287 | dev: false 1288 | 1289 | /cssesc@3.0.0: 1290 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1291 | engines: {node: '>=4'} 1292 | hasBin: true 1293 | 1294 | /csstype@3.1.3: 1295 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1296 | 1297 | /d@1.0.2: 1298 | resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} 1299 | engines: {node: '>=0.12'} 1300 | dependencies: 1301 | es5-ext: 0.10.64 1302 | type: 2.7.2 1303 | dev: true 1304 | 1305 | /damerau-levenshtein@1.0.8: 1306 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 1307 | dev: true 1308 | 1309 | /debug@3.2.7: 1310 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1311 | peerDependencies: 1312 | supports-color: '*' 1313 | peerDependenciesMeta: 1314 | supports-color: 1315 | optional: true 1316 | dependencies: 1317 | ms: 2.1.3 1318 | dev: true 1319 | 1320 | /debug@4.3.4: 1321 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1322 | engines: {node: '>=6.0'} 1323 | peerDependencies: 1324 | supports-color: '*' 1325 | peerDependenciesMeta: 1326 | supports-color: 1327 | optional: true 1328 | dependencies: 1329 | ms: 2.1.2 1330 | dev: true 1331 | 1332 | /deep-is@0.1.4: 1333 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1334 | dev: true 1335 | 1336 | /define-data-property@1.1.4: 1337 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 1338 | engines: {node: '>= 0.4'} 1339 | dependencies: 1340 | es-define-property: 1.0.0 1341 | es-errors: 1.3.0 1342 | gopd: 1.0.1 1343 | dev: true 1344 | 1345 | /define-properties@1.2.1: 1346 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 1347 | engines: {node: '>= 0.4'} 1348 | dependencies: 1349 | define-data-property: 1.1.4 1350 | has-property-descriptors: 1.0.2 1351 | object-keys: 1.1.1 1352 | dev: true 1353 | 1354 | /delayed-stream@1.0.0: 1355 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1356 | engines: {node: '>=0.4.0'} 1357 | dev: false 1358 | 1359 | /dequal@2.0.3: 1360 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1361 | engines: {node: '>=6'} 1362 | dev: true 1363 | 1364 | /didyoumean@1.2.2: 1365 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1366 | 1367 | /difflib@0.2.4: 1368 | resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} 1369 | dependencies: 1370 | heap: 0.2.7 1371 | dev: true 1372 | 1373 | /digest-fetch@1.3.0: 1374 | resolution: {integrity: sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==} 1375 | dependencies: 1376 | base-64: 0.1.0 1377 | md5: 2.3.0 1378 | dev: false 1379 | 1380 | /dir-glob@3.0.1: 1381 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1382 | engines: {node: '>=8'} 1383 | dependencies: 1384 | path-type: 4.0.0 1385 | dev: true 1386 | 1387 | /dlv@1.1.3: 1388 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1389 | 1390 | /doctrine@2.1.0: 1391 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1392 | engines: {node: '>=0.10.0'} 1393 | dependencies: 1394 | esutils: 2.0.3 1395 | dev: true 1396 | 1397 | /doctrine@3.0.0: 1398 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1399 | engines: {node: '>=6.0.0'} 1400 | dependencies: 1401 | esutils: 2.0.3 1402 | dev: true 1403 | 1404 | /dotenv@16.4.5: 1405 | resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} 1406 | engines: {node: '>=12'} 1407 | dev: false 1408 | 1409 | /dreamopt@0.8.0: 1410 | resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} 1411 | engines: {node: '>=0.4.0'} 1412 | dependencies: 1413 | wordwrap: 1.0.0 1414 | dev: true 1415 | 1416 | /drizzle-kit@0.20.14: 1417 | resolution: {integrity: sha512-0fHv3YIEaUcSVPSGyaaBfOi9bmpajjhbJNdPsRMIUvYdLVxBu9eGjH8mRc3Qk7HVmEidFc/lhG1YyJhoXrn5yA==} 1418 | hasBin: true 1419 | dependencies: 1420 | '@drizzle-team/studio': 0.0.39 1421 | '@esbuild-kit/esm-loader': 2.6.5 1422 | camelcase: 7.0.1 1423 | chalk: 5.3.0 1424 | commander: 9.5.0 1425 | env-paths: 3.0.0 1426 | esbuild: 0.19.12 1427 | esbuild-register: 3.5.0(esbuild@0.19.12) 1428 | glob: 8.1.0 1429 | hanji: 0.0.5 1430 | json-diff: 0.9.0 1431 | minimatch: 7.4.6 1432 | semver: 7.6.0 1433 | zod: 3.22.4 1434 | transitivePeerDependencies: 1435 | - supports-color 1436 | dev: true 1437 | 1438 | /drizzle-orm@0.30.1(@neondatabase/serverless@0.9.0)(@types/react@18.0.0)(pg@8.11.3)(react@18.0.0): 1439 | resolution: {integrity: sha512-5P6CXl4XyWtDDiYOX/jYOJp1HTUmBlXRAwaq+muUOgaSykMEy5sJesCxceMT0oCGvxeWkKfSXo5owLnfKwCIdw==} 1440 | peerDependencies: 1441 | '@aws-sdk/client-rds-data': '>=3' 1442 | '@cloudflare/workers-types': '>=3' 1443 | '@libsql/client': '*' 1444 | '@neondatabase/serverless': '>=0.1' 1445 | '@op-engineering/op-sqlite': '>=2' 1446 | '@opentelemetry/api': ^1.4.1 1447 | '@planetscale/database': '>=1' 1448 | '@types/better-sqlite3': '*' 1449 | '@types/pg': '*' 1450 | '@types/react': '>=18' 1451 | '@types/sql.js': '*' 1452 | '@vercel/postgres': '*' 1453 | better-sqlite3: '>=7' 1454 | bun-types: '*' 1455 | expo-sqlite: '>=13.2.0' 1456 | knex: '*' 1457 | kysely: '*' 1458 | mysql2: '>=2' 1459 | pg: '>=8' 1460 | postgres: '>=3' 1461 | react: '>=18' 1462 | sql.js: '>=1' 1463 | sqlite3: '>=5' 1464 | peerDependenciesMeta: 1465 | '@aws-sdk/client-rds-data': 1466 | optional: true 1467 | '@cloudflare/workers-types': 1468 | optional: true 1469 | '@libsql/client': 1470 | optional: true 1471 | '@neondatabase/serverless': 1472 | optional: true 1473 | '@op-engineering/op-sqlite': 1474 | optional: true 1475 | '@opentelemetry/api': 1476 | optional: true 1477 | '@planetscale/database': 1478 | optional: true 1479 | '@types/better-sqlite3': 1480 | optional: true 1481 | '@types/pg': 1482 | optional: true 1483 | '@types/react': 1484 | optional: true 1485 | '@types/sql.js': 1486 | optional: true 1487 | '@vercel/postgres': 1488 | optional: true 1489 | better-sqlite3: 1490 | optional: true 1491 | bun-types: 1492 | optional: true 1493 | expo-sqlite: 1494 | optional: true 1495 | knex: 1496 | optional: true 1497 | kysely: 1498 | optional: true 1499 | mysql2: 1500 | optional: true 1501 | pg: 1502 | optional: true 1503 | postgres: 1504 | optional: true 1505 | react: 1506 | optional: true 1507 | sql.js: 1508 | optional: true 1509 | sqlite3: 1510 | optional: true 1511 | dependencies: 1512 | '@neondatabase/serverless': 0.9.0 1513 | '@types/react': 18.0.0 1514 | pg: 8.11.3 1515 | react: 18.0.0 1516 | dev: false 1517 | 1518 | /eastasianwidth@0.2.0: 1519 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1520 | 1521 | /electron-to-chromium@1.4.704: 1522 | resolution: {integrity: sha512-OK01+86Qvby1V6cTiowVbhp25aX4DLZnwar+NocAOXdzKAByd+jq5156bmo4kHwevWMknznW18Y/Svfk2dU91A==} 1523 | dev: true 1524 | 1525 | /emoji-regex@8.0.0: 1526 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1527 | 1528 | /emoji-regex@9.2.2: 1529 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1530 | 1531 | /enhanced-resolve@5.16.0: 1532 | resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} 1533 | engines: {node: '>=10.13.0'} 1534 | dependencies: 1535 | graceful-fs: 4.2.11 1536 | tapable: 2.2.1 1537 | dev: true 1538 | 1539 | /enquirer@2.4.1: 1540 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} 1541 | engines: {node: '>=8.6'} 1542 | dependencies: 1543 | ansi-colors: 4.1.3 1544 | strip-ansi: 6.0.1 1545 | dev: true 1546 | 1547 | /env-paths@3.0.0: 1548 | resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} 1549 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1550 | dev: true 1551 | 1552 | /es-abstract@1.22.5: 1553 | resolution: {integrity: sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==} 1554 | engines: {node: '>= 0.4'} 1555 | dependencies: 1556 | array-buffer-byte-length: 1.0.1 1557 | arraybuffer.prototype.slice: 1.0.3 1558 | available-typed-arrays: 1.0.7 1559 | call-bind: 1.0.7 1560 | es-define-property: 1.0.0 1561 | es-errors: 1.3.0 1562 | es-set-tostringtag: 2.0.3 1563 | es-to-primitive: 1.2.1 1564 | function.prototype.name: 1.1.6 1565 | get-intrinsic: 1.2.4 1566 | get-symbol-description: 1.0.2 1567 | globalthis: 1.0.3 1568 | gopd: 1.0.1 1569 | has-property-descriptors: 1.0.2 1570 | has-proto: 1.0.3 1571 | has-symbols: 1.0.3 1572 | hasown: 2.0.2 1573 | internal-slot: 1.0.7 1574 | is-array-buffer: 3.0.4 1575 | is-callable: 1.2.7 1576 | is-negative-zero: 2.0.3 1577 | is-regex: 1.1.4 1578 | is-shared-array-buffer: 1.0.3 1579 | is-string: 1.0.7 1580 | is-typed-array: 1.1.13 1581 | is-weakref: 1.0.2 1582 | object-inspect: 1.13.1 1583 | object-keys: 1.1.1 1584 | object.assign: 4.1.5 1585 | regexp.prototype.flags: 1.5.2 1586 | safe-array-concat: 1.1.2 1587 | safe-regex-test: 1.0.3 1588 | string.prototype.trim: 1.2.8 1589 | string.prototype.trimend: 1.0.7 1590 | string.prototype.trimstart: 1.0.7 1591 | typed-array-buffer: 1.0.2 1592 | typed-array-byte-length: 1.0.1 1593 | typed-array-byte-offset: 1.0.2 1594 | typed-array-length: 1.0.5 1595 | unbox-primitive: 1.0.2 1596 | which-typed-array: 1.1.15 1597 | dev: true 1598 | 1599 | /es-array-method-boxes-properly@1.0.0: 1600 | resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} 1601 | dev: true 1602 | 1603 | /es-define-property@1.0.0: 1604 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 1605 | engines: {node: '>= 0.4'} 1606 | dependencies: 1607 | get-intrinsic: 1.2.4 1608 | dev: true 1609 | 1610 | /es-errors@1.3.0: 1611 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 1612 | engines: {node: '>= 0.4'} 1613 | dev: true 1614 | 1615 | /es-iterator-helpers@1.0.17: 1616 | resolution: {integrity: sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==} 1617 | engines: {node: '>= 0.4'} 1618 | dependencies: 1619 | asynciterator.prototype: 1.0.0 1620 | call-bind: 1.0.7 1621 | define-properties: 1.2.1 1622 | es-abstract: 1.22.5 1623 | es-errors: 1.3.0 1624 | es-set-tostringtag: 2.0.3 1625 | function-bind: 1.1.2 1626 | get-intrinsic: 1.2.4 1627 | globalthis: 1.0.3 1628 | has-property-descriptors: 1.0.2 1629 | has-proto: 1.0.3 1630 | has-symbols: 1.0.3 1631 | internal-slot: 1.0.7 1632 | iterator.prototype: 1.1.2 1633 | safe-array-concat: 1.1.2 1634 | dev: true 1635 | 1636 | /es-set-tostringtag@2.0.3: 1637 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} 1638 | engines: {node: '>= 0.4'} 1639 | dependencies: 1640 | get-intrinsic: 1.2.4 1641 | has-tostringtag: 1.0.2 1642 | hasown: 2.0.2 1643 | dev: true 1644 | 1645 | /es-shim-unscopables@1.0.2: 1646 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 1647 | dependencies: 1648 | hasown: 2.0.2 1649 | dev: true 1650 | 1651 | /es-to-primitive@1.2.1: 1652 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1653 | engines: {node: '>= 0.4'} 1654 | dependencies: 1655 | is-callable: 1.2.7 1656 | is-date-object: 1.0.5 1657 | is-symbol: 1.0.4 1658 | dev: true 1659 | 1660 | /es5-ext@0.10.64: 1661 | resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} 1662 | engines: {node: '>=0.10'} 1663 | requiresBuild: true 1664 | dependencies: 1665 | es6-iterator: 2.0.3 1666 | es6-symbol: 3.1.4 1667 | esniff: 2.0.1 1668 | next-tick: 1.1.0 1669 | dev: true 1670 | 1671 | /es6-iterator@2.0.3: 1672 | resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} 1673 | dependencies: 1674 | d: 1.0.2 1675 | es5-ext: 0.10.64 1676 | es6-symbol: 3.1.4 1677 | dev: true 1678 | 1679 | /es6-symbol@3.1.4: 1680 | resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} 1681 | engines: {node: '>=0.12'} 1682 | dependencies: 1683 | d: 1.0.2 1684 | ext: 1.7.0 1685 | dev: true 1686 | 1687 | /es6-weak-map@2.0.3: 1688 | resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} 1689 | dependencies: 1690 | d: 1.0.2 1691 | es5-ext: 0.10.64 1692 | es6-iterator: 2.0.3 1693 | es6-symbol: 3.1.4 1694 | dev: true 1695 | 1696 | /esbuild-register@3.5.0(esbuild@0.19.12): 1697 | resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} 1698 | peerDependencies: 1699 | esbuild: '>=0.12 <1' 1700 | dependencies: 1701 | debug: 4.3.4 1702 | esbuild: 0.19.12 1703 | transitivePeerDependencies: 1704 | - supports-color 1705 | dev: true 1706 | 1707 | /esbuild@0.18.20: 1708 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 1709 | engines: {node: '>=12'} 1710 | hasBin: true 1711 | requiresBuild: true 1712 | optionalDependencies: 1713 | '@esbuild/android-arm': 0.18.20 1714 | '@esbuild/android-arm64': 0.18.20 1715 | '@esbuild/android-x64': 0.18.20 1716 | '@esbuild/darwin-arm64': 0.18.20 1717 | '@esbuild/darwin-x64': 0.18.20 1718 | '@esbuild/freebsd-arm64': 0.18.20 1719 | '@esbuild/freebsd-x64': 0.18.20 1720 | '@esbuild/linux-arm': 0.18.20 1721 | '@esbuild/linux-arm64': 0.18.20 1722 | '@esbuild/linux-ia32': 0.18.20 1723 | '@esbuild/linux-loong64': 0.18.20 1724 | '@esbuild/linux-mips64el': 0.18.20 1725 | '@esbuild/linux-ppc64': 0.18.20 1726 | '@esbuild/linux-riscv64': 0.18.20 1727 | '@esbuild/linux-s390x': 0.18.20 1728 | '@esbuild/linux-x64': 0.18.20 1729 | '@esbuild/netbsd-x64': 0.18.20 1730 | '@esbuild/openbsd-x64': 0.18.20 1731 | '@esbuild/sunos-x64': 0.18.20 1732 | '@esbuild/win32-arm64': 0.18.20 1733 | '@esbuild/win32-ia32': 0.18.20 1734 | '@esbuild/win32-x64': 0.18.20 1735 | dev: true 1736 | 1737 | /esbuild@0.19.12: 1738 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 1739 | engines: {node: '>=12'} 1740 | hasBin: true 1741 | requiresBuild: true 1742 | optionalDependencies: 1743 | '@esbuild/aix-ppc64': 0.19.12 1744 | '@esbuild/android-arm': 0.19.12 1745 | '@esbuild/android-arm64': 0.19.12 1746 | '@esbuild/android-x64': 0.19.12 1747 | '@esbuild/darwin-arm64': 0.19.12 1748 | '@esbuild/darwin-x64': 0.19.12 1749 | '@esbuild/freebsd-arm64': 0.19.12 1750 | '@esbuild/freebsd-x64': 0.19.12 1751 | '@esbuild/linux-arm': 0.19.12 1752 | '@esbuild/linux-arm64': 0.19.12 1753 | '@esbuild/linux-ia32': 0.19.12 1754 | '@esbuild/linux-loong64': 0.19.12 1755 | '@esbuild/linux-mips64el': 0.19.12 1756 | '@esbuild/linux-ppc64': 0.19.12 1757 | '@esbuild/linux-riscv64': 0.19.12 1758 | '@esbuild/linux-s390x': 0.19.12 1759 | '@esbuild/linux-x64': 0.19.12 1760 | '@esbuild/netbsd-x64': 0.19.12 1761 | '@esbuild/openbsd-x64': 0.19.12 1762 | '@esbuild/sunos-x64': 0.19.12 1763 | '@esbuild/win32-arm64': 0.19.12 1764 | '@esbuild/win32-ia32': 0.19.12 1765 | '@esbuild/win32-x64': 0.19.12 1766 | 1767 | /escalade@3.1.2: 1768 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1769 | engines: {node: '>=6'} 1770 | dev: true 1771 | 1772 | /escape-string-regexp@4.0.0: 1773 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1774 | engines: {node: '>=10'} 1775 | dev: true 1776 | 1777 | /eslint-config-next@14.1.3(eslint@8.0.0)(typescript@5.0.2): 1778 | resolution: {integrity: sha512-sUCpWlGuHpEhI0pIT0UtdSLJk5Z8E2DYinPTwsBiWaSYQomchdl0i60pjynY48+oXvtyWMQ7oE+G3m49yrfacg==} 1779 | peerDependencies: 1780 | eslint: ^7.23.0 || ^8.0.0 1781 | typescript: '>=3.3.1' 1782 | peerDependenciesMeta: 1783 | typescript: 1784 | optional: true 1785 | dependencies: 1786 | '@next/eslint-plugin-next': 14.1.3 1787 | '@rushstack/eslint-patch': 1.7.2 1788 | '@typescript-eslint/parser': 6.21.0(eslint@8.0.0)(typescript@5.0.2) 1789 | eslint: 8.0.0 1790 | eslint-import-resolver-node: 0.3.9 1791 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.0.0) 1792 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0) 1793 | eslint-plugin-jsx-a11y: 6.8.0(eslint@8.0.0) 1794 | eslint-plugin-react: 7.34.0(eslint@8.0.0) 1795 | eslint-plugin-react-hooks: 4.6.0(eslint@8.0.0) 1796 | typescript: 5.0.2 1797 | transitivePeerDependencies: 1798 | - eslint-import-resolver-webpack 1799 | - supports-color 1800 | dev: true 1801 | 1802 | /eslint-import-resolver-node@0.3.9: 1803 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 1804 | dependencies: 1805 | debug: 3.2.7 1806 | is-core-module: 2.13.1 1807 | resolve: 1.22.8 1808 | transitivePeerDependencies: 1809 | - supports-color 1810 | dev: true 1811 | 1812 | /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.0.0): 1813 | resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} 1814 | engines: {node: ^14.18.0 || >=16.0.0} 1815 | peerDependencies: 1816 | eslint: '*' 1817 | eslint-plugin-import: '*' 1818 | dependencies: 1819 | debug: 4.3.4 1820 | enhanced-resolve: 5.16.0 1821 | eslint: 8.0.0 1822 | eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0) 1823 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0) 1824 | fast-glob: 3.3.2 1825 | get-tsconfig: 4.7.3 1826 | is-core-module: 2.13.1 1827 | is-glob: 4.0.3 1828 | transitivePeerDependencies: 1829 | - '@typescript-eslint/parser' 1830 | - eslint-import-resolver-node 1831 | - eslint-import-resolver-webpack 1832 | - supports-color 1833 | dev: true 1834 | 1835 | /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0): 1836 | resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} 1837 | engines: {node: '>=4'} 1838 | peerDependencies: 1839 | '@typescript-eslint/parser': '*' 1840 | eslint: '*' 1841 | eslint-import-resolver-node: '*' 1842 | eslint-import-resolver-typescript: '*' 1843 | eslint-import-resolver-webpack: '*' 1844 | peerDependenciesMeta: 1845 | '@typescript-eslint/parser': 1846 | optional: true 1847 | eslint: 1848 | optional: true 1849 | eslint-import-resolver-node: 1850 | optional: true 1851 | eslint-import-resolver-typescript: 1852 | optional: true 1853 | eslint-import-resolver-webpack: 1854 | optional: true 1855 | dependencies: 1856 | '@typescript-eslint/parser': 6.21.0(eslint@8.0.0)(typescript@5.0.2) 1857 | debug: 3.2.7 1858 | eslint: 8.0.0 1859 | eslint-import-resolver-node: 0.3.9 1860 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.0.0) 1861 | transitivePeerDependencies: 1862 | - supports-color 1863 | dev: true 1864 | 1865 | /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0): 1866 | resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} 1867 | engines: {node: '>=4'} 1868 | peerDependencies: 1869 | '@typescript-eslint/parser': '*' 1870 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1871 | peerDependenciesMeta: 1872 | '@typescript-eslint/parser': 1873 | optional: true 1874 | dependencies: 1875 | '@typescript-eslint/parser': 6.21.0(eslint@8.0.0)(typescript@5.0.2) 1876 | array-includes: 3.1.7 1877 | array.prototype.findlastindex: 1.2.4 1878 | array.prototype.flat: 1.3.2 1879 | array.prototype.flatmap: 1.3.2 1880 | debug: 3.2.7 1881 | doctrine: 2.1.0 1882 | eslint: 8.0.0 1883 | eslint-import-resolver-node: 0.3.9 1884 | eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0) 1885 | hasown: 2.0.2 1886 | is-core-module: 2.13.1 1887 | is-glob: 4.0.3 1888 | minimatch: 3.1.2 1889 | object.fromentries: 2.0.7 1890 | object.groupby: 1.0.2 1891 | object.values: 1.1.7 1892 | semver: 6.3.1 1893 | tsconfig-paths: 3.15.0 1894 | transitivePeerDependencies: 1895 | - eslint-import-resolver-typescript 1896 | - eslint-import-resolver-webpack 1897 | - supports-color 1898 | dev: true 1899 | 1900 | /eslint-plugin-jsx-a11y@6.8.0(eslint@8.0.0): 1901 | resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} 1902 | engines: {node: '>=4.0'} 1903 | peerDependencies: 1904 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1905 | dependencies: 1906 | '@babel/runtime': 7.24.0 1907 | aria-query: 5.3.0 1908 | array-includes: 3.1.7 1909 | array.prototype.flatmap: 1.3.2 1910 | ast-types-flow: 0.0.8 1911 | axe-core: 4.7.0 1912 | axobject-query: 3.2.1 1913 | damerau-levenshtein: 1.0.8 1914 | emoji-regex: 9.2.2 1915 | es-iterator-helpers: 1.0.17 1916 | eslint: 8.0.0 1917 | hasown: 2.0.2 1918 | jsx-ast-utils: 3.3.5 1919 | language-tags: 1.0.9 1920 | minimatch: 3.1.2 1921 | object.entries: 1.1.7 1922 | object.fromentries: 2.0.7 1923 | dev: true 1924 | 1925 | /eslint-plugin-react-hooks@4.6.0(eslint@8.0.0): 1926 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1927 | engines: {node: '>=10'} 1928 | peerDependencies: 1929 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1930 | dependencies: 1931 | eslint: 8.0.0 1932 | dev: true 1933 | 1934 | /eslint-plugin-react@7.34.0(eslint@8.0.0): 1935 | resolution: {integrity: sha512-MeVXdReleBTdkz/bvcQMSnCXGi+c9kvy51IpinjnJgutl3YTHWsDdke7Z1ufZpGfDG8xduBDKyjtB9JH1eBKIQ==} 1936 | engines: {node: '>=4'} 1937 | peerDependencies: 1938 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1939 | dependencies: 1940 | array-includes: 3.1.7 1941 | array.prototype.findlast: 1.2.4 1942 | array.prototype.flatmap: 1.3.2 1943 | array.prototype.toreversed: 1.1.2 1944 | array.prototype.tosorted: 1.1.3 1945 | doctrine: 2.1.0 1946 | es-iterator-helpers: 1.0.17 1947 | eslint: 8.0.0 1948 | estraverse: 5.3.0 1949 | jsx-ast-utils: 3.3.5 1950 | minimatch: 3.1.2 1951 | object.entries: 1.1.7 1952 | object.fromentries: 2.0.7 1953 | object.hasown: 1.1.3 1954 | object.values: 1.1.7 1955 | prop-types: 15.8.1 1956 | resolve: 2.0.0-next.5 1957 | semver: 6.3.1 1958 | string.prototype.matchall: 4.0.10 1959 | dev: true 1960 | 1961 | /eslint-scope@6.0.0: 1962 | resolution: {integrity: sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==} 1963 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1964 | dependencies: 1965 | esrecurse: 4.3.0 1966 | estraverse: 5.3.0 1967 | dev: true 1968 | 1969 | /eslint-utils@3.0.0(eslint@8.0.0): 1970 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1971 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1972 | peerDependencies: 1973 | eslint: '>=5' 1974 | dependencies: 1975 | eslint: 8.0.0 1976 | eslint-visitor-keys: 2.1.0 1977 | dev: true 1978 | 1979 | /eslint-visitor-keys@2.1.0: 1980 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1981 | engines: {node: '>=10'} 1982 | dev: true 1983 | 1984 | /eslint-visitor-keys@3.4.3: 1985 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1986 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1987 | dev: true 1988 | 1989 | /eslint@8.0.0: 1990 | resolution: {integrity: sha512-03spzPzMAO4pElm44m60Nj08nYonPGQXmw6Ceai/S4QK82IgwWO1EXx1s9namKzVlbVu3Jf81hb+N+8+v21/HQ==} 1991 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1992 | hasBin: true 1993 | dependencies: 1994 | '@eslint/eslintrc': 1.4.1 1995 | '@humanwhocodes/config-array': 0.6.0 1996 | ajv: 6.12.6 1997 | chalk: 4.1.2 1998 | cross-spawn: 7.0.3 1999 | debug: 4.3.4 2000 | doctrine: 3.0.0 2001 | enquirer: 2.4.1 2002 | escape-string-regexp: 4.0.0 2003 | eslint-scope: 6.0.0 2004 | eslint-utils: 3.0.0(eslint@8.0.0) 2005 | eslint-visitor-keys: 3.4.3 2006 | espree: 9.6.1 2007 | esquery: 1.5.0 2008 | esutils: 2.0.3 2009 | fast-deep-equal: 3.1.3 2010 | file-entry-cache: 6.0.1 2011 | functional-red-black-tree: 1.0.1 2012 | glob-parent: 6.0.2 2013 | globals: 13.24.0 2014 | ignore: 4.0.6 2015 | import-fresh: 3.3.0 2016 | imurmurhash: 0.1.4 2017 | is-glob: 4.0.3 2018 | js-yaml: 4.1.0 2019 | json-stable-stringify-without-jsonify: 1.0.1 2020 | levn: 0.4.1 2021 | lodash.merge: 4.6.2 2022 | minimatch: 3.1.2 2023 | natural-compare: 1.4.0 2024 | optionator: 0.9.3 2025 | progress: 2.0.3 2026 | regexpp: 3.2.0 2027 | semver: 7.6.0 2028 | strip-ansi: 6.0.1 2029 | strip-json-comments: 3.1.1 2030 | text-table: 0.2.0 2031 | v8-compile-cache: 2.4.0 2032 | transitivePeerDependencies: 2033 | - supports-color 2034 | dev: true 2035 | 2036 | /esniff@2.0.1: 2037 | resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} 2038 | engines: {node: '>=0.10'} 2039 | dependencies: 2040 | d: 1.0.2 2041 | es5-ext: 0.10.64 2042 | event-emitter: 0.3.5 2043 | type: 2.7.2 2044 | dev: true 2045 | 2046 | /espree@9.6.1: 2047 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 2048 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2049 | dependencies: 2050 | acorn: 8.11.3 2051 | acorn-jsx: 5.3.2(acorn@8.11.3) 2052 | eslint-visitor-keys: 3.4.3 2053 | dev: true 2054 | 2055 | /esquery@1.5.0: 2056 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 2057 | engines: {node: '>=0.10'} 2058 | dependencies: 2059 | estraverse: 5.3.0 2060 | dev: true 2061 | 2062 | /esrecurse@4.3.0: 2063 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 2064 | engines: {node: '>=4.0'} 2065 | dependencies: 2066 | estraverse: 5.3.0 2067 | dev: true 2068 | 2069 | /estraverse@5.3.0: 2070 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 2071 | engines: {node: '>=4.0'} 2072 | dev: true 2073 | 2074 | /esutils@2.0.3: 2075 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 2076 | engines: {node: '>=0.10.0'} 2077 | dev: true 2078 | 2079 | /event-emitter@0.3.5: 2080 | resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} 2081 | dependencies: 2082 | d: 1.0.2 2083 | es5-ext: 0.10.64 2084 | dev: true 2085 | 2086 | /event-target-shim@5.0.1: 2087 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 2088 | engines: {node: '>=6'} 2089 | dev: false 2090 | 2091 | /ext@1.7.0: 2092 | resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} 2093 | dependencies: 2094 | type: 2.7.2 2095 | dev: true 2096 | 2097 | /fast-deep-equal@3.1.3: 2098 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 2099 | dev: true 2100 | 2101 | /fast-glob@3.3.2: 2102 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 2103 | engines: {node: '>=8.6.0'} 2104 | dependencies: 2105 | '@nodelib/fs.stat': 2.0.5 2106 | '@nodelib/fs.walk': 1.2.8 2107 | glob-parent: 5.1.2 2108 | merge2: 1.4.1 2109 | micromatch: 4.0.5 2110 | 2111 | /fast-json-stable-stringify@2.1.0: 2112 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 2113 | dev: true 2114 | 2115 | /fast-levenshtein@2.0.6: 2116 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 2117 | dev: true 2118 | 2119 | /fastq@1.17.1: 2120 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 2121 | dependencies: 2122 | reusify: 1.0.4 2123 | 2124 | /file-entry-cache@6.0.1: 2125 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 2126 | engines: {node: ^10.12.0 || >=12.0.0} 2127 | dependencies: 2128 | flat-cache: 3.2.0 2129 | dev: true 2130 | 2131 | /fill-range@7.0.1: 2132 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 2133 | engines: {node: '>=8'} 2134 | dependencies: 2135 | to-regex-range: 5.0.1 2136 | 2137 | /flat-cache@3.2.0: 2138 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 2139 | engines: {node: ^10.12.0 || >=12.0.0} 2140 | dependencies: 2141 | flatted: 3.3.1 2142 | keyv: 4.5.4 2143 | rimraf: 3.0.2 2144 | dev: true 2145 | 2146 | /flatted@3.3.1: 2147 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 2148 | dev: true 2149 | 2150 | /for-each@0.3.3: 2151 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 2152 | dependencies: 2153 | is-callable: 1.2.7 2154 | dev: true 2155 | 2156 | /foreground-child@3.1.1: 2157 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 2158 | engines: {node: '>=14'} 2159 | dependencies: 2160 | cross-spawn: 7.0.3 2161 | signal-exit: 4.1.0 2162 | 2163 | /form-data-encoder@1.7.2: 2164 | resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} 2165 | dev: false 2166 | 2167 | /form-data@4.0.0: 2168 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 2169 | engines: {node: '>= 6'} 2170 | dependencies: 2171 | asynckit: 0.4.0 2172 | combined-stream: 1.0.8 2173 | mime-types: 2.1.35 2174 | dev: false 2175 | 2176 | /formdata-node@4.4.1: 2177 | resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} 2178 | engines: {node: '>= 12.20'} 2179 | dependencies: 2180 | node-domexception: 1.0.0 2181 | web-streams-polyfill: 4.0.0-beta.3 2182 | dev: false 2183 | 2184 | /fs.realpath@1.0.0: 2185 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 2186 | dev: true 2187 | 2188 | /fsevents@2.3.3: 2189 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 2190 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2191 | os: [darwin] 2192 | requiresBuild: true 2193 | optional: true 2194 | 2195 | /function-bind@1.1.2: 2196 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 2197 | 2198 | /function.prototype.name@1.1.6: 2199 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 2200 | engines: {node: '>= 0.4'} 2201 | dependencies: 2202 | call-bind: 1.0.7 2203 | define-properties: 1.2.1 2204 | es-abstract: 1.22.5 2205 | functions-have-names: 1.2.3 2206 | dev: true 2207 | 2208 | /functional-red-black-tree@1.0.1: 2209 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} 2210 | dev: true 2211 | 2212 | /functions-have-names@1.2.3: 2213 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 2214 | dev: true 2215 | 2216 | /get-intrinsic@1.2.4: 2217 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 2218 | engines: {node: '>= 0.4'} 2219 | dependencies: 2220 | es-errors: 1.3.0 2221 | function-bind: 1.1.2 2222 | has-proto: 1.0.3 2223 | has-symbols: 1.0.3 2224 | hasown: 2.0.2 2225 | dev: true 2226 | 2227 | /get-symbol-description@1.0.2: 2228 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} 2229 | engines: {node: '>= 0.4'} 2230 | dependencies: 2231 | call-bind: 1.0.7 2232 | es-errors: 1.3.0 2233 | get-intrinsic: 1.2.4 2234 | dev: true 2235 | 2236 | /get-tsconfig@4.7.3: 2237 | resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} 2238 | dependencies: 2239 | resolve-pkg-maps: 1.0.0 2240 | 2241 | /glob-parent@5.1.2: 2242 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2243 | engines: {node: '>= 6'} 2244 | dependencies: 2245 | is-glob: 4.0.3 2246 | 2247 | /glob-parent@6.0.2: 2248 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 2249 | engines: {node: '>=10.13.0'} 2250 | dependencies: 2251 | is-glob: 4.0.3 2252 | 2253 | /glob@10.3.10: 2254 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 2255 | engines: {node: '>=16 || 14 >=14.17'} 2256 | hasBin: true 2257 | dependencies: 2258 | foreground-child: 3.1.1 2259 | jackspeak: 2.3.6 2260 | minimatch: 9.0.3 2261 | minipass: 7.0.4 2262 | path-scurry: 1.10.1 2263 | 2264 | /glob@7.2.3: 2265 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 2266 | dependencies: 2267 | fs.realpath: 1.0.0 2268 | inflight: 1.0.6 2269 | inherits: 2.0.4 2270 | minimatch: 3.1.2 2271 | once: 1.4.0 2272 | path-is-absolute: 1.0.1 2273 | dev: true 2274 | 2275 | /glob@8.1.0: 2276 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 2277 | engines: {node: '>=12'} 2278 | dependencies: 2279 | fs.realpath: 1.0.0 2280 | inflight: 1.0.6 2281 | inherits: 2.0.4 2282 | minimatch: 5.1.6 2283 | once: 1.4.0 2284 | dev: true 2285 | 2286 | /globals@13.24.0: 2287 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 2288 | engines: {node: '>=8'} 2289 | dependencies: 2290 | type-fest: 0.20.2 2291 | dev: true 2292 | 2293 | /globalthis@1.0.3: 2294 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 2295 | engines: {node: '>= 0.4'} 2296 | dependencies: 2297 | define-properties: 1.2.1 2298 | dev: true 2299 | 2300 | /globby@11.1.0: 2301 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 2302 | engines: {node: '>=10'} 2303 | dependencies: 2304 | array-union: 2.1.0 2305 | dir-glob: 3.0.1 2306 | fast-glob: 3.3.2 2307 | ignore: 5.3.1 2308 | merge2: 1.4.1 2309 | slash: 3.0.0 2310 | dev: true 2311 | 2312 | /gopd@1.0.1: 2313 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 2314 | dependencies: 2315 | get-intrinsic: 1.2.4 2316 | dev: true 2317 | 2318 | /graceful-fs@4.2.11: 2319 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 2320 | 2321 | /hanji@0.0.5: 2322 | resolution: {integrity: sha512-Abxw1Lq+TnYiL4BueXqMau222fPSPMFtya8HdpWsz/xVAhifXou71mPh/kY2+08RgFcVccjG3uZHs6K5HAe3zw==} 2323 | dependencies: 2324 | lodash.throttle: 4.1.1 2325 | sisteransi: 1.0.5 2326 | dev: true 2327 | 2328 | /has-bigints@1.0.2: 2329 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 2330 | dev: true 2331 | 2332 | /has-flag@4.0.0: 2333 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2334 | engines: {node: '>=8'} 2335 | dev: true 2336 | 2337 | /has-property-descriptors@1.0.2: 2338 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 2339 | dependencies: 2340 | es-define-property: 1.0.0 2341 | dev: true 2342 | 2343 | /has-proto@1.0.3: 2344 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 2345 | engines: {node: '>= 0.4'} 2346 | dev: true 2347 | 2348 | /has-symbols@1.0.3: 2349 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 2350 | engines: {node: '>= 0.4'} 2351 | dev: true 2352 | 2353 | /has-tostringtag@1.0.2: 2354 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 2355 | engines: {node: '>= 0.4'} 2356 | dependencies: 2357 | has-symbols: 1.0.3 2358 | dev: true 2359 | 2360 | /hasown@2.0.2: 2361 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 2362 | engines: {node: '>= 0.4'} 2363 | dependencies: 2364 | function-bind: 1.1.2 2365 | 2366 | /heap@0.2.7: 2367 | resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} 2368 | dev: true 2369 | 2370 | /humanize-ms@1.2.1: 2371 | resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} 2372 | dependencies: 2373 | ms: 2.1.3 2374 | dev: false 2375 | 2376 | /ignore@4.0.6: 2377 | resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} 2378 | engines: {node: '>= 4'} 2379 | dev: true 2380 | 2381 | /ignore@5.3.1: 2382 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 2383 | engines: {node: '>= 4'} 2384 | dev: true 2385 | 2386 | /import-fresh@3.3.0: 2387 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2388 | engines: {node: '>=6'} 2389 | dependencies: 2390 | parent-module: 1.0.1 2391 | resolve-from: 4.0.0 2392 | dev: true 2393 | 2394 | /imurmurhash@0.1.4: 2395 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2396 | engines: {node: '>=0.8.19'} 2397 | dev: true 2398 | 2399 | /inflight@1.0.6: 2400 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2401 | dependencies: 2402 | once: 1.4.0 2403 | wrappy: 1.0.2 2404 | dev: true 2405 | 2406 | /inherits@2.0.4: 2407 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2408 | dev: true 2409 | 2410 | /internal-slot@1.0.7: 2411 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} 2412 | engines: {node: '>= 0.4'} 2413 | dependencies: 2414 | es-errors: 1.3.0 2415 | hasown: 2.0.2 2416 | side-channel: 1.0.6 2417 | dev: true 2418 | 2419 | /is-array-buffer@3.0.4: 2420 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} 2421 | engines: {node: '>= 0.4'} 2422 | dependencies: 2423 | call-bind: 1.0.7 2424 | get-intrinsic: 1.2.4 2425 | dev: true 2426 | 2427 | /is-async-function@2.0.0: 2428 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} 2429 | engines: {node: '>= 0.4'} 2430 | dependencies: 2431 | has-tostringtag: 1.0.2 2432 | dev: true 2433 | 2434 | /is-bigint@1.0.4: 2435 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 2436 | dependencies: 2437 | has-bigints: 1.0.2 2438 | dev: true 2439 | 2440 | /is-binary-path@2.1.0: 2441 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2442 | engines: {node: '>=8'} 2443 | dependencies: 2444 | binary-extensions: 2.2.0 2445 | 2446 | /is-boolean-object@1.1.2: 2447 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 2448 | engines: {node: '>= 0.4'} 2449 | dependencies: 2450 | call-bind: 1.0.7 2451 | has-tostringtag: 1.0.2 2452 | dev: true 2453 | 2454 | /is-buffer@1.1.6: 2455 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} 2456 | dev: false 2457 | 2458 | /is-callable@1.2.7: 2459 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 2460 | engines: {node: '>= 0.4'} 2461 | dev: true 2462 | 2463 | /is-core-module@2.13.1: 2464 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 2465 | dependencies: 2466 | hasown: 2.0.2 2467 | 2468 | /is-date-object@1.0.5: 2469 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 2470 | engines: {node: '>= 0.4'} 2471 | dependencies: 2472 | has-tostringtag: 1.0.2 2473 | dev: true 2474 | 2475 | /is-extglob@2.1.1: 2476 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2477 | engines: {node: '>=0.10.0'} 2478 | 2479 | /is-finalizationregistry@1.0.2: 2480 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} 2481 | dependencies: 2482 | call-bind: 1.0.7 2483 | dev: true 2484 | 2485 | /is-fullwidth-code-point@3.0.0: 2486 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2487 | engines: {node: '>=8'} 2488 | 2489 | /is-generator-function@1.0.10: 2490 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 2491 | engines: {node: '>= 0.4'} 2492 | dependencies: 2493 | has-tostringtag: 1.0.2 2494 | dev: true 2495 | 2496 | /is-glob@4.0.3: 2497 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2498 | engines: {node: '>=0.10.0'} 2499 | dependencies: 2500 | is-extglob: 2.1.1 2501 | 2502 | /is-map@2.0.3: 2503 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 2504 | engines: {node: '>= 0.4'} 2505 | dev: true 2506 | 2507 | /is-negative-zero@2.0.3: 2508 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 2509 | engines: {node: '>= 0.4'} 2510 | dev: true 2511 | 2512 | /is-number-object@1.0.7: 2513 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 2514 | engines: {node: '>= 0.4'} 2515 | dependencies: 2516 | has-tostringtag: 1.0.2 2517 | dev: true 2518 | 2519 | /is-number@7.0.0: 2520 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2521 | engines: {node: '>=0.12.0'} 2522 | 2523 | /is-promise@2.2.2: 2524 | resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} 2525 | dev: true 2526 | 2527 | /is-regex@1.1.4: 2528 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 2529 | engines: {node: '>= 0.4'} 2530 | dependencies: 2531 | call-bind: 1.0.7 2532 | has-tostringtag: 1.0.2 2533 | dev: true 2534 | 2535 | /is-set@2.0.3: 2536 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 2537 | engines: {node: '>= 0.4'} 2538 | dev: true 2539 | 2540 | /is-shared-array-buffer@1.0.3: 2541 | resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} 2542 | engines: {node: '>= 0.4'} 2543 | dependencies: 2544 | call-bind: 1.0.7 2545 | dev: true 2546 | 2547 | /is-string@1.0.7: 2548 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 2549 | engines: {node: '>= 0.4'} 2550 | dependencies: 2551 | has-tostringtag: 1.0.2 2552 | dev: true 2553 | 2554 | /is-symbol@1.0.4: 2555 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2556 | engines: {node: '>= 0.4'} 2557 | dependencies: 2558 | has-symbols: 1.0.3 2559 | dev: true 2560 | 2561 | /is-typed-array@1.1.13: 2562 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} 2563 | engines: {node: '>= 0.4'} 2564 | dependencies: 2565 | which-typed-array: 1.1.15 2566 | dev: true 2567 | 2568 | /is-weakmap@2.0.2: 2569 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 2570 | engines: {node: '>= 0.4'} 2571 | dev: true 2572 | 2573 | /is-weakref@1.0.2: 2574 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 2575 | dependencies: 2576 | call-bind: 1.0.7 2577 | dev: true 2578 | 2579 | /is-weakset@2.0.3: 2580 | resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} 2581 | engines: {node: '>= 0.4'} 2582 | dependencies: 2583 | call-bind: 1.0.7 2584 | get-intrinsic: 1.2.4 2585 | dev: true 2586 | 2587 | /is-what@4.1.16: 2588 | resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} 2589 | engines: {node: '>=12.13'} 2590 | dev: true 2591 | 2592 | /isarray@1.0.0: 2593 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 2594 | 2595 | /isarray@2.0.5: 2596 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 2597 | dev: true 2598 | 2599 | /isexe@2.0.0: 2600 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2601 | 2602 | /isobject@2.1.0: 2603 | resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} 2604 | engines: {node: '>=0.10.0'} 2605 | dependencies: 2606 | isarray: 1.0.0 2607 | 2608 | /iterator.prototype@1.1.2: 2609 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} 2610 | dependencies: 2611 | define-properties: 1.2.1 2612 | get-intrinsic: 1.2.4 2613 | has-symbols: 1.0.3 2614 | reflect.getprototypeof: 1.0.5 2615 | set-function-name: 2.0.2 2616 | dev: true 2617 | 2618 | /jackspeak@2.3.6: 2619 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 2620 | engines: {node: '>=14'} 2621 | dependencies: 2622 | '@isaacs/cliui': 8.0.2 2623 | optionalDependencies: 2624 | '@pkgjs/parseargs': 0.11.0 2625 | 2626 | /jiti@1.21.0: 2627 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 2628 | hasBin: true 2629 | 2630 | /js-tokens@4.0.0: 2631 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2632 | 2633 | /js-yaml@4.1.0: 2634 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2635 | hasBin: true 2636 | dependencies: 2637 | argparse: 2.0.1 2638 | dev: true 2639 | 2640 | /json-buffer@3.0.1: 2641 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 2642 | dev: true 2643 | 2644 | /json-diff@0.9.0: 2645 | resolution: {integrity: sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ==} 2646 | hasBin: true 2647 | dependencies: 2648 | cli-color: 2.0.4 2649 | difflib: 0.2.4 2650 | dreamopt: 0.8.0 2651 | dev: true 2652 | 2653 | /json-schema-traverse@0.4.1: 2654 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2655 | dev: true 2656 | 2657 | /json-stable-stringify-without-jsonify@1.0.1: 2658 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2659 | dev: true 2660 | 2661 | /json5@1.0.2: 2662 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 2663 | hasBin: true 2664 | dependencies: 2665 | minimist: 1.2.8 2666 | dev: true 2667 | 2668 | /jsx-ast-utils@3.3.5: 2669 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 2670 | engines: {node: '>=4.0'} 2671 | dependencies: 2672 | array-includes: 3.1.7 2673 | array.prototype.flat: 1.3.2 2674 | object.assign: 4.1.5 2675 | object.values: 1.1.7 2676 | dev: true 2677 | 2678 | /keyv@4.5.4: 2679 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 2680 | dependencies: 2681 | json-buffer: 3.0.1 2682 | dev: true 2683 | 2684 | /language-subtag-registry@0.3.22: 2685 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} 2686 | dev: true 2687 | 2688 | /language-tags@1.0.9: 2689 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 2690 | engines: {node: '>=0.10'} 2691 | dependencies: 2692 | language-subtag-registry: 0.3.22 2693 | dev: true 2694 | 2695 | /levn@0.4.1: 2696 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2697 | engines: {node: '>= 0.8.0'} 2698 | dependencies: 2699 | prelude-ls: 1.2.1 2700 | type-check: 0.4.0 2701 | dev: true 2702 | 2703 | /lilconfig@2.1.0: 2704 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 2705 | engines: {node: '>=10'} 2706 | 2707 | /line-column@1.0.2: 2708 | resolution: {integrity: sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==} 2709 | dependencies: 2710 | isarray: 1.0.0 2711 | isobject: 2.1.0 2712 | 2713 | /lines-and-columns@1.2.4: 2714 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2715 | 2716 | /lodash.merge@4.6.2: 2717 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2718 | dev: true 2719 | 2720 | /lodash.throttle@4.1.1: 2721 | resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} 2722 | dev: true 2723 | 2724 | /loose-envify@1.4.0: 2725 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2726 | hasBin: true 2727 | dependencies: 2728 | js-tokens: 4.0.0 2729 | 2730 | /lru-cache@10.2.0: 2731 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} 2732 | engines: {node: 14 || >=16.14} 2733 | 2734 | /lru-cache@6.0.0: 2735 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2736 | engines: {node: '>=10'} 2737 | dependencies: 2738 | yallist: 4.0.0 2739 | dev: true 2740 | 2741 | /lru-queue@0.1.0: 2742 | resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} 2743 | dependencies: 2744 | es5-ext: 0.10.64 2745 | dev: true 2746 | 2747 | /lucide-react@0.357.0(react@18.0.0): 2748 | resolution: {integrity: sha512-ILK6Ye6BMFyXyIHqG8FwMit1XKrj4KocLLLW4fDAAwsFjt6gSL9U6e3sZlbARIOqv0oP5XzLVacHEcb2SxuWkw==} 2749 | peerDependencies: 2750 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 2751 | dependencies: 2752 | react: 18.0.0 2753 | dev: false 2754 | 2755 | /md5@2.3.0: 2756 | resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} 2757 | dependencies: 2758 | charenc: 0.0.2 2759 | crypt: 0.0.2 2760 | is-buffer: 1.1.6 2761 | dev: false 2762 | 2763 | /memoizee@0.4.15: 2764 | resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} 2765 | dependencies: 2766 | d: 1.0.2 2767 | es5-ext: 0.10.64 2768 | es6-weak-map: 2.0.3 2769 | event-emitter: 0.3.5 2770 | is-promise: 2.2.2 2771 | lru-queue: 0.1.0 2772 | next-tick: 1.1.0 2773 | timers-ext: 0.1.7 2774 | dev: true 2775 | 2776 | /merge2@1.4.1: 2777 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2778 | engines: {node: '>= 8'} 2779 | 2780 | /micromatch@4.0.5: 2781 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2782 | engines: {node: '>=8.6'} 2783 | dependencies: 2784 | braces: 3.0.2 2785 | picomatch: 2.3.1 2786 | 2787 | /mime-db@1.52.0: 2788 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 2789 | engines: {node: '>= 0.6'} 2790 | dev: false 2791 | 2792 | /mime-types@2.1.35: 2793 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 2794 | engines: {node: '>= 0.6'} 2795 | dependencies: 2796 | mime-db: 1.52.0 2797 | dev: false 2798 | 2799 | /minimatch@3.1.2: 2800 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2801 | dependencies: 2802 | brace-expansion: 1.1.11 2803 | dev: true 2804 | 2805 | /minimatch@5.1.6: 2806 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 2807 | engines: {node: '>=10'} 2808 | dependencies: 2809 | brace-expansion: 2.0.1 2810 | dev: true 2811 | 2812 | /minimatch@7.4.6: 2813 | resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} 2814 | engines: {node: '>=10'} 2815 | dependencies: 2816 | brace-expansion: 2.0.1 2817 | dev: true 2818 | 2819 | /minimatch@9.0.3: 2820 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 2821 | engines: {node: '>=16 || 14 >=14.17'} 2822 | dependencies: 2823 | brace-expansion: 2.0.1 2824 | 2825 | /minimist@1.2.8: 2826 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2827 | dev: true 2828 | 2829 | /minipass@7.0.4: 2830 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} 2831 | engines: {node: '>=16 || 14 >=14.17'} 2832 | 2833 | /ms@2.1.2: 2834 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2835 | dev: true 2836 | 2837 | /ms@2.1.3: 2838 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2839 | 2840 | /mz@2.7.0: 2841 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2842 | dependencies: 2843 | any-promise: 1.3.0 2844 | object-assign: 4.1.1 2845 | thenify-all: 1.6.0 2846 | 2847 | /nanoid@3.3.7: 2848 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 2849 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2850 | hasBin: true 2851 | 2852 | /natural-compare@1.4.0: 2853 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2854 | dev: true 2855 | 2856 | /next-tick@1.1.0: 2857 | resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} 2858 | dev: true 2859 | 2860 | /next@14.1.3(react-dom@18.0.0)(react@18.0.0): 2861 | resolution: {integrity: sha512-oexgMV2MapI0UIWiXKkixF8J8ORxpy64OuJ/J9oVUmIthXOUCcuVEZX+dtpgq7wIfIqtBwQsKEDXejcjTsan9g==} 2862 | engines: {node: '>=18.17.0'} 2863 | hasBin: true 2864 | peerDependencies: 2865 | '@opentelemetry/api': ^1.1.0 2866 | react: ^18.2.0 2867 | react-dom: ^18.2.0 2868 | sass: ^1.3.0 2869 | peerDependenciesMeta: 2870 | '@opentelemetry/api': 2871 | optional: true 2872 | sass: 2873 | optional: true 2874 | dependencies: 2875 | '@next/env': 14.1.3 2876 | '@swc/helpers': 0.5.2 2877 | busboy: 1.6.0 2878 | caniuse-lite: 1.0.30001597 2879 | graceful-fs: 4.2.11 2880 | postcss: 8.4.31 2881 | react: 18.0.0 2882 | react-dom: 18.0.0(react@18.0.0) 2883 | styled-jsx: 5.1.1(react@18.0.0) 2884 | optionalDependencies: 2885 | '@next/swc-darwin-arm64': 14.1.3 2886 | '@next/swc-darwin-x64': 14.1.3 2887 | '@next/swc-linux-arm64-gnu': 14.1.3 2888 | '@next/swc-linux-arm64-musl': 14.1.3 2889 | '@next/swc-linux-x64-gnu': 14.1.3 2890 | '@next/swc-linux-x64-musl': 14.1.3 2891 | '@next/swc-win32-arm64-msvc': 14.1.3 2892 | '@next/swc-win32-ia32-msvc': 14.1.3 2893 | '@next/swc-win32-x64-msvc': 14.1.3 2894 | transitivePeerDependencies: 2895 | - '@babel/core' 2896 | - babel-plugin-macros 2897 | dev: false 2898 | 2899 | /node-domexception@1.0.0: 2900 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} 2901 | engines: {node: '>=10.5.0'} 2902 | dev: false 2903 | 2904 | /node-fetch@2.7.0: 2905 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 2906 | engines: {node: 4.x || >=6.0.0} 2907 | peerDependencies: 2908 | encoding: ^0.1.0 2909 | peerDependenciesMeta: 2910 | encoding: 2911 | optional: true 2912 | dependencies: 2913 | whatwg-url: 5.0.0 2914 | dev: false 2915 | 2916 | /node-releases@2.0.14: 2917 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 2918 | dev: true 2919 | 2920 | /normalize-path@3.0.0: 2921 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2922 | engines: {node: '>=0.10.0'} 2923 | 2924 | /normalize-range@0.1.2: 2925 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 2926 | engines: {node: '>=0.10.0'} 2927 | dev: true 2928 | 2929 | /num2fraction@1.2.2: 2930 | resolution: {integrity: sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==} 2931 | dev: true 2932 | 2933 | /object-assign@4.1.1: 2934 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2935 | engines: {node: '>=0.10.0'} 2936 | 2937 | /object-hash@3.0.0: 2938 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 2939 | engines: {node: '>= 6'} 2940 | 2941 | /object-inspect@1.13.1: 2942 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 2943 | dev: true 2944 | 2945 | /object-keys@1.1.1: 2946 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2947 | engines: {node: '>= 0.4'} 2948 | dev: true 2949 | 2950 | /object.assign@4.1.5: 2951 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} 2952 | engines: {node: '>= 0.4'} 2953 | dependencies: 2954 | call-bind: 1.0.7 2955 | define-properties: 1.2.1 2956 | has-symbols: 1.0.3 2957 | object-keys: 1.1.1 2958 | dev: true 2959 | 2960 | /object.entries@1.1.7: 2961 | resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} 2962 | engines: {node: '>= 0.4'} 2963 | dependencies: 2964 | call-bind: 1.0.7 2965 | define-properties: 1.2.1 2966 | es-abstract: 1.22.5 2967 | dev: true 2968 | 2969 | /object.fromentries@2.0.7: 2970 | resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} 2971 | engines: {node: '>= 0.4'} 2972 | dependencies: 2973 | call-bind: 1.0.7 2974 | define-properties: 1.2.1 2975 | es-abstract: 1.22.5 2976 | dev: true 2977 | 2978 | /object.groupby@1.0.2: 2979 | resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==} 2980 | dependencies: 2981 | array.prototype.filter: 1.0.3 2982 | call-bind: 1.0.7 2983 | define-properties: 1.2.1 2984 | es-abstract: 1.22.5 2985 | es-errors: 1.3.0 2986 | dev: true 2987 | 2988 | /object.hasown@1.1.3: 2989 | resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} 2990 | dependencies: 2991 | define-properties: 1.2.1 2992 | es-abstract: 1.22.5 2993 | dev: true 2994 | 2995 | /object.values@1.1.7: 2996 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} 2997 | engines: {node: '>= 0.4'} 2998 | dependencies: 2999 | call-bind: 1.0.7 3000 | define-properties: 1.2.1 3001 | es-abstract: 1.22.5 3002 | dev: true 3003 | 3004 | /once@1.4.0: 3005 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 3006 | dependencies: 3007 | wrappy: 1.0.2 3008 | dev: true 3009 | 3010 | /openai@4.29.0: 3011 | resolution: {integrity: sha512-ic6C681bSow1XQdKhADthM/OOKqNL05M1gCFLx1mRqLJ+yH49v6qnvaWQ76kwqI/IieCuVTXfRfTk3sz4cB45w==} 3012 | hasBin: true 3013 | dependencies: 3014 | '@types/node': 18.19.24 3015 | '@types/node-fetch': 2.6.11 3016 | abort-controller: 3.0.0 3017 | agentkeepalive: 4.5.0 3018 | digest-fetch: 1.3.0 3019 | form-data-encoder: 1.7.2 3020 | formdata-node: 4.4.1 3021 | node-fetch: 2.7.0 3022 | web-streams-polyfill: 3.3.3 3023 | transitivePeerDependencies: 3024 | - encoding 3025 | dev: false 3026 | 3027 | /optionator@0.9.3: 3028 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 3029 | engines: {node: '>= 0.8.0'} 3030 | dependencies: 3031 | '@aashutoshrathi/word-wrap': 1.2.6 3032 | deep-is: 0.1.4 3033 | fast-levenshtein: 2.0.6 3034 | levn: 0.4.1 3035 | prelude-ls: 1.2.1 3036 | type-check: 0.4.0 3037 | dev: true 3038 | 3039 | /packet-reader@1.0.0: 3040 | resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} 3041 | dev: false 3042 | 3043 | /parent-module@1.0.1: 3044 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 3045 | engines: {node: '>=6'} 3046 | dependencies: 3047 | callsites: 3.1.0 3048 | dev: true 3049 | 3050 | /path-is-absolute@1.0.1: 3051 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 3052 | engines: {node: '>=0.10.0'} 3053 | dev: true 3054 | 3055 | /path-key@3.1.1: 3056 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 3057 | engines: {node: '>=8'} 3058 | 3059 | /path-parse@1.0.7: 3060 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 3061 | 3062 | /path-scurry@1.10.1: 3063 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} 3064 | engines: {node: '>=16 || 14 >=14.17'} 3065 | dependencies: 3066 | lru-cache: 10.2.0 3067 | minipass: 7.0.4 3068 | 3069 | /path-type@4.0.0: 3070 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 3071 | engines: {node: '>=8'} 3072 | dev: true 3073 | 3074 | /pg-cloudflare@1.1.1: 3075 | resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} 3076 | requiresBuild: true 3077 | dev: false 3078 | optional: true 3079 | 3080 | /pg-connection-string@2.6.2: 3081 | resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} 3082 | dev: false 3083 | 3084 | /pg-int8@1.0.1: 3085 | resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} 3086 | engines: {node: '>=4.0.0'} 3087 | dev: false 3088 | 3089 | /pg-pool@3.6.1(pg@8.11.3): 3090 | resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} 3091 | peerDependencies: 3092 | pg: '>=8.0' 3093 | dependencies: 3094 | pg: 8.11.3 3095 | dev: false 3096 | 3097 | /pg-protocol@1.6.0: 3098 | resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} 3099 | dev: false 3100 | 3101 | /pg-types@2.2.0: 3102 | resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} 3103 | engines: {node: '>=4'} 3104 | dependencies: 3105 | pg-int8: 1.0.1 3106 | postgres-array: 2.0.0 3107 | postgres-bytea: 1.0.0 3108 | postgres-date: 1.0.7 3109 | postgres-interval: 1.2.0 3110 | dev: false 3111 | 3112 | /pg@8.11.3: 3113 | resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} 3114 | engines: {node: '>= 8.0.0'} 3115 | peerDependencies: 3116 | pg-native: '>=3.0.1' 3117 | peerDependenciesMeta: 3118 | pg-native: 3119 | optional: true 3120 | dependencies: 3121 | buffer-writer: 2.0.0 3122 | packet-reader: 1.0.0 3123 | pg-connection-string: 2.6.2 3124 | pg-pool: 3.6.1(pg@8.11.3) 3125 | pg-protocol: 1.6.0 3126 | pg-types: 2.2.0 3127 | pgpass: 1.0.5 3128 | optionalDependencies: 3129 | pg-cloudflare: 1.1.1 3130 | dev: false 3131 | 3132 | /pgpass@1.0.5: 3133 | resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} 3134 | dependencies: 3135 | split2: 4.2.0 3136 | dev: false 3137 | 3138 | /picocolors@1.0.0: 3139 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 3140 | 3141 | /picomatch@2.3.1: 3142 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 3143 | engines: {node: '>=8.6'} 3144 | 3145 | /pify@2.3.0: 3146 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 3147 | engines: {node: '>=0.10.0'} 3148 | 3149 | /pirates@4.0.6: 3150 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 3151 | engines: {node: '>= 6'} 3152 | 3153 | /possible-typed-array-names@1.0.0: 3154 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 3155 | engines: {node: '>= 0.4'} 3156 | dev: true 3157 | 3158 | /postcss-import@14.1.0(postcss@8.0.0): 3159 | resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} 3160 | engines: {node: '>=10.0.0'} 3161 | peerDependencies: 3162 | postcss: ^8.0.0 3163 | dependencies: 3164 | postcss: 8.0.0 3165 | postcss-value-parser: 4.2.0 3166 | read-cache: 1.0.0 3167 | resolve: 1.22.8 3168 | 3169 | /postcss-js@4.0.1(postcss@8.0.0): 3170 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 3171 | engines: {node: ^12 || ^14 || >= 16} 3172 | peerDependencies: 3173 | postcss: ^8.4.21 3174 | dependencies: 3175 | camelcase-css: 2.0.1 3176 | postcss: 8.0.0 3177 | 3178 | /postcss-load-config@3.1.4(postcss@8.0.0): 3179 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 3180 | engines: {node: '>= 10'} 3181 | peerDependencies: 3182 | postcss: '>=8.0.9' 3183 | ts-node: '>=9.0.0' 3184 | peerDependenciesMeta: 3185 | postcss: 3186 | optional: true 3187 | ts-node: 3188 | optional: true 3189 | dependencies: 3190 | lilconfig: 2.1.0 3191 | postcss: 8.0.0 3192 | yaml: 1.10.2 3193 | 3194 | /postcss-nested@6.0.0(postcss@8.0.0): 3195 | resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} 3196 | engines: {node: '>=12.0'} 3197 | peerDependencies: 3198 | postcss: ^8.2.14 3199 | dependencies: 3200 | postcss: 8.0.0 3201 | postcss-selector-parser: 6.0.16 3202 | 3203 | /postcss-selector-parser@6.0.16: 3204 | resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} 3205 | engines: {node: '>=4'} 3206 | dependencies: 3207 | cssesc: 3.0.0 3208 | util-deprecate: 1.0.2 3209 | 3210 | /postcss-value-parser@4.2.0: 3211 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 3212 | 3213 | /postcss@8.0.0: 3214 | resolution: {integrity: sha512-BriaW5AeZHfyuuKhK3Z6yRDKI6NR2TdRWyZcj3+Pk2nczQsMBqavggAzTledsbyexPthW3nFA6XfgCWjZqmVPA==} 3215 | engines: {node: ^10 || ^12 || >=14} 3216 | dependencies: 3217 | colorette: 1.4.0 3218 | line-column: 1.0.2 3219 | nanoid: 3.3.7 3220 | source-map: 0.6.1 3221 | 3222 | /postcss@8.4.31: 3223 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 3224 | engines: {node: ^10 || ^12 || >=14} 3225 | dependencies: 3226 | nanoid: 3.3.7 3227 | picocolors: 1.0.0 3228 | source-map-js: 1.0.2 3229 | dev: false 3230 | 3231 | /postgres-array@2.0.0: 3232 | resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} 3233 | engines: {node: '>=4'} 3234 | dev: false 3235 | 3236 | /postgres-bytea@1.0.0: 3237 | resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} 3238 | engines: {node: '>=0.10.0'} 3239 | dev: false 3240 | 3241 | /postgres-date@1.0.7: 3242 | resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} 3243 | engines: {node: '>=0.10.0'} 3244 | dev: false 3245 | 3246 | /postgres-interval@1.2.0: 3247 | resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} 3248 | engines: {node: '>=0.10.0'} 3249 | dependencies: 3250 | xtend: 4.0.2 3251 | dev: false 3252 | 3253 | /prelude-ls@1.2.1: 3254 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 3255 | engines: {node: '>= 0.8.0'} 3256 | dev: true 3257 | 3258 | /progress@2.0.3: 3259 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 3260 | engines: {node: '>=0.4.0'} 3261 | dev: true 3262 | 3263 | /prop-types@15.8.1: 3264 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 3265 | dependencies: 3266 | loose-envify: 1.4.0 3267 | object-assign: 4.1.1 3268 | react-is: 16.13.1 3269 | dev: true 3270 | 3271 | /punycode@2.3.1: 3272 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 3273 | engines: {node: '>=6'} 3274 | dev: true 3275 | 3276 | /queue-microtask@1.2.3: 3277 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3278 | 3279 | /quick-lru@5.1.1: 3280 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 3281 | engines: {node: '>=10'} 3282 | 3283 | /react-dom@18.0.0(react@18.0.0): 3284 | resolution: {integrity: sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==} 3285 | peerDependencies: 3286 | react: ^18.0.0 3287 | dependencies: 3288 | loose-envify: 1.4.0 3289 | react: 18.0.0 3290 | scheduler: 0.21.0 3291 | dev: false 3292 | 3293 | /react-is@16.13.1: 3294 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 3295 | dev: true 3296 | 3297 | /react@18.0.0: 3298 | resolution: {integrity: sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==} 3299 | engines: {node: '>=0.10.0'} 3300 | dependencies: 3301 | loose-envify: 1.4.0 3302 | dev: false 3303 | 3304 | /read-cache@1.0.0: 3305 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 3306 | dependencies: 3307 | pify: 2.3.0 3308 | 3309 | /readdirp@3.6.0: 3310 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3311 | engines: {node: '>=8.10.0'} 3312 | dependencies: 3313 | picomatch: 2.3.1 3314 | 3315 | /reflect.getprototypeof@1.0.5: 3316 | resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==} 3317 | engines: {node: '>= 0.4'} 3318 | dependencies: 3319 | call-bind: 1.0.7 3320 | define-properties: 1.2.1 3321 | es-abstract: 1.22.5 3322 | es-errors: 1.3.0 3323 | get-intrinsic: 1.2.4 3324 | globalthis: 1.0.3 3325 | which-builtin-type: 1.1.3 3326 | dev: true 3327 | 3328 | /regenerator-runtime@0.14.1: 3329 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 3330 | 3331 | /regexp.prototype.flags@1.5.2: 3332 | resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} 3333 | engines: {node: '>= 0.4'} 3334 | dependencies: 3335 | call-bind: 1.0.7 3336 | define-properties: 1.2.1 3337 | es-errors: 1.3.0 3338 | set-function-name: 2.0.2 3339 | dev: true 3340 | 3341 | /regexpp@3.2.0: 3342 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 3343 | engines: {node: '>=8'} 3344 | dev: true 3345 | 3346 | /resolve-from@4.0.0: 3347 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3348 | engines: {node: '>=4'} 3349 | dev: true 3350 | 3351 | /resolve-pkg-maps@1.0.0: 3352 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 3353 | 3354 | /resolve@1.22.8: 3355 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 3356 | hasBin: true 3357 | dependencies: 3358 | is-core-module: 2.13.1 3359 | path-parse: 1.0.7 3360 | supports-preserve-symlinks-flag: 1.0.0 3361 | 3362 | /resolve@2.0.0-next.5: 3363 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 3364 | hasBin: true 3365 | dependencies: 3366 | is-core-module: 2.13.1 3367 | path-parse: 1.0.7 3368 | supports-preserve-symlinks-flag: 1.0.0 3369 | dev: true 3370 | 3371 | /reusify@1.0.4: 3372 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3373 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3374 | 3375 | /rimraf@3.0.2: 3376 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3377 | hasBin: true 3378 | dependencies: 3379 | glob: 7.2.3 3380 | dev: true 3381 | 3382 | /run-parallel@1.2.0: 3383 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3384 | dependencies: 3385 | queue-microtask: 1.2.3 3386 | 3387 | /safe-array-concat@1.1.2: 3388 | resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} 3389 | engines: {node: '>=0.4'} 3390 | dependencies: 3391 | call-bind: 1.0.7 3392 | get-intrinsic: 1.2.4 3393 | has-symbols: 1.0.3 3394 | isarray: 2.0.5 3395 | dev: true 3396 | 3397 | /safe-regex-test@1.0.3: 3398 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} 3399 | engines: {node: '>= 0.4'} 3400 | dependencies: 3401 | call-bind: 1.0.7 3402 | es-errors: 1.3.0 3403 | is-regex: 1.1.4 3404 | dev: true 3405 | 3406 | /scheduler@0.21.0: 3407 | resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} 3408 | dependencies: 3409 | loose-envify: 1.4.0 3410 | dev: false 3411 | 3412 | /semver@6.3.1: 3413 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 3414 | hasBin: true 3415 | dev: true 3416 | 3417 | /semver@7.6.0: 3418 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 3419 | engines: {node: '>=10'} 3420 | hasBin: true 3421 | dependencies: 3422 | lru-cache: 6.0.0 3423 | dev: true 3424 | 3425 | /set-function-length@1.2.2: 3426 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 3427 | engines: {node: '>= 0.4'} 3428 | dependencies: 3429 | define-data-property: 1.1.4 3430 | es-errors: 1.3.0 3431 | function-bind: 1.1.2 3432 | get-intrinsic: 1.2.4 3433 | gopd: 1.0.1 3434 | has-property-descriptors: 1.0.2 3435 | dev: true 3436 | 3437 | /set-function-name@2.0.2: 3438 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 3439 | engines: {node: '>= 0.4'} 3440 | dependencies: 3441 | define-data-property: 1.1.4 3442 | es-errors: 1.3.0 3443 | functions-have-names: 1.2.3 3444 | has-property-descriptors: 1.0.2 3445 | dev: true 3446 | 3447 | /shebang-command@2.0.0: 3448 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3449 | engines: {node: '>=8'} 3450 | dependencies: 3451 | shebang-regex: 3.0.0 3452 | 3453 | /shebang-regex@3.0.0: 3454 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3455 | engines: {node: '>=8'} 3456 | 3457 | /side-channel@1.0.6: 3458 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 3459 | engines: {node: '>= 0.4'} 3460 | dependencies: 3461 | call-bind: 1.0.7 3462 | es-errors: 1.3.0 3463 | get-intrinsic: 1.2.4 3464 | object-inspect: 1.13.1 3465 | dev: true 3466 | 3467 | /signal-exit@4.1.0: 3468 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3469 | engines: {node: '>=14'} 3470 | 3471 | /sisteransi@1.0.5: 3472 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 3473 | dev: true 3474 | 3475 | /slash@3.0.0: 3476 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3477 | engines: {node: '>=8'} 3478 | dev: true 3479 | 3480 | /source-map-js@1.0.2: 3481 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 3482 | engines: {node: '>=0.10.0'} 3483 | dev: false 3484 | 3485 | /source-map-support@0.5.21: 3486 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 3487 | dependencies: 3488 | buffer-from: 1.1.2 3489 | source-map: 0.6.1 3490 | dev: true 3491 | 3492 | /source-map@0.6.1: 3493 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3494 | engines: {node: '>=0.10.0'} 3495 | 3496 | /split2@4.2.0: 3497 | resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 3498 | engines: {node: '>= 10.x'} 3499 | dev: false 3500 | 3501 | /streamsearch@1.1.0: 3502 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 3503 | engines: {node: '>=10.0.0'} 3504 | dev: false 3505 | 3506 | /string-width@4.2.3: 3507 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3508 | engines: {node: '>=8'} 3509 | dependencies: 3510 | emoji-regex: 8.0.0 3511 | is-fullwidth-code-point: 3.0.0 3512 | strip-ansi: 6.0.1 3513 | 3514 | /string-width@5.1.2: 3515 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3516 | engines: {node: '>=12'} 3517 | dependencies: 3518 | eastasianwidth: 0.2.0 3519 | emoji-regex: 9.2.2 3520 | strip-ansi: 7.1.0 3521 | 3522 | /string.prototype.matchall@4.0.10: 3523 | resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} 3524 | dependencies: 3525 | call-bind: 1.0.7 3526 | define-properties: 1.2.1 3527 | es-abstract: 1.22.5 3528 | get-intrinsic: 1.2.4 3529 | has-symbols: 1.0.3 3530 | internal-slot: 1.0.7 3531 | regexp.prototype.flags: 1.5.2 3532 | set-function-name: 2.0.2 3533 | side-channel: 1.0.6 3534 | dev: true 3535 | 3536 | /string.prototype.trim@1.2.8: 3537 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} 3538 | engines: {node: '>= 0.4'} 3539 | dependencies: 3540 | call-bind: 1.0.7 3541 | define-properties: 1.2.1 3542 | es-abstract: 1.22.5 3543 | dev: true 3544 | 3545 | /string.prototype.trimend@1.0.7: 3546 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} 3547 | dependencies: 3548 | call-bind: 1.0.7 3549 | define-properties: 1.2.1 3550 | es-abstract: 1.22.5 3551 | dev: true 3552 | 3553 | /string.prototype.trimstart@1.0.7: 3554 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} 3555 | dependencies: 3556 | call-bind: 1.0.7 3557 | define-properties: 1.2.1 3558 | es-abstract: 1.22.5 3559 | dev: true 3560 | 3561 | /strip-ansi@6.0.1: 3562 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3563 | engines: {node: '>=8'} 3564 | dependencies: 3565 | ansi-regex: 5.0.1 3566 | 3567 | /strip-ansi@7.1.0: 3568 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 3569 | engines: {node: '>=12'} 3570 | dependencies: 3571 | ansi-regex: 6.0.1 3572 | 3573 | /strip-bom@3.0.0: 3574 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 3575 | engines: {node: '>=4'} 3576 | dev: true 3577 | 3578 | /strip-json-comments@3.1.1: 3579 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3580 | engines: {node: '>=8'} 3581 | dev: true 3582 | 3583 | /styled-jsx@5.1.1(react@18.0.0): 3584 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 3585 | engines: {node: '>= 12.0.0'} 3586 | peerDependencies: 3587 | '@babel/core': '*' 3588 | babel-plugin-macros: '*' 3589 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 3590 | peerDependenciesMeta: 3591 | '@babel/core': 3592 | optional: true 3593 | babel-plugin-macros: 3594 | optional: true 3595 | dependencies: 3596 | client-only: 0.0.1 3597 | react: 18.0.0 3598 | dev: false 3599 | 3600 | /sucrase@3.35.0: 3601 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 3602 | engines: {node: '>=16 || 14 >=14.17'} 3603 | hasBin: true 3604 | dependencies: 3605 | '@jridgewell/gen-mapping': 0.3.5 3606 | commander: 4.1.1 3607 | glob: 10.3.10 3608 | lines-and-columns: 1.2.4 3609 | mz: 2.7.0 3610 | pirates: 4.0.6 3611 | ts-interface-checker: 0.1.13 3612 | 3613 | /superjson@2.2.1: 3614 | resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} 3615 | engines: {node: '>=16'} 3616 | dependencies: 3617 | copy-anything: 3.0.5 3618 | dev: true 3619 | 3620 | /supports-color@7.2.0: 3621 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3622 | engines: {node: '>=8'} 3623 | dependencies: 3624 | has-flag: 4.0.0 3625 | dev: true 3626 | 3627 | /supports-preserve-symlinks-flag@1.0.0: 3628 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3629 | engines: {node: '>= 0.4'} 3630 | 3631 | /tailwind-merge@2.2.1: 3632 | resolution: {integrity: sha512-o+2GTLkthfa5YUt4JxPfzMIpQzZ3adD1vLVkvKE1Twl9UAhGsEbIZhHHZVRttyW177S8PDJI3bTQNaebyofK3Q==} 3633 | dependencies: 3634 | '@babel/runtime': 7.24.0 3635 | dev: false 3636 | 3637 | /tailwindcss-animate@1.0.7(tailwindcss@3.3.0): 3638 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} 3639 | peerDependencies: 3640 | tailwindcss: '>=3.0.0 || insiders' 3641 | dependencies: 3642 | tailwindcss: 3.3.0(postcss@8.0.0) 3643 | dev: false 3644 | 3645 | /tailwindcss@3.3.0(postcss@8.0.0): 3646 | resolution: {integrity: sha512-hOXlFx+YcklJ8kXiCAfk/FMyr4Pm9ck477G0m/us2344Vuj355IpoEDB5UmGAsSpTBmr+4ZhjzW04JuFXkb/fw==} 3647 | engines: {node: '>=12.13.0'} 3648 | hasBin: true 3649 | peerDependencies: 3650 | postcss: ^8.0.9 3651 | dependencies: 3652 | arg: 5.0.2 3653 | chokidar: 3.6.0 3654 | color-name: 1.1.4 3655 | didyoumean: 1.2.2 3656 | dlv: 1.1.3 3657 | fast-glob: 3.3.2 3658 | glob-parent: 6.0.2 3659 | is-glob: 4.0.3 3660 | jiti: 1.21.0 3661 | lilconfig: 2.1.0 3662 | micromatch: 4.0.5 3663 | normalize-path: 3.0.0 3664 | object-hash: 3.0.0 3665 | picocolors: 1.0.0 3666 | postcss: 8.0.0 3667 | postcss-import: 14.1.0(postcss@8.0.0) 3668 | postcss-js: 4.0.1(postcss@8.0.0) 3669 | postcss-load-config: 3.1.4(postcss@8.0.0) 3670 | postcss-nested: 6.0.0(postcss@8.0.0) 3671 | postcss-selector-parser: 6.0.16 3672 | postcss-value-parser: 4.2.0 3673 | quick-lru: 5.1.1 3674 | resolve: 1.22.8 3675 | sucrase: 3.35.0 3676 | transitivePeerDependencies: 3677 | - ts-node 3678 | 3679 | /tapable@2.2.1: 3680 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 3681 | engines: {node: '>=6'} 3682 | dev: true 3683 | 3684 | /text-table@0.2.0: 3685 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3686 | dev: true 3687 | 3688 | /thenify-all@1.6.0: 3689 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 3690 | engines: {node: '>=0.8'} 3691 | dependencies: 3692 | thenify: 3.3.1 3693 | 3694 | /thenify@3.3.1: 3695 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3696 | dependencies: 3697 | any-promise: 1.3.0 3698 | 3699 | /timers-ext@0.1.7: 3700 | resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} 3701 | dependencies: 3702 | es5-ext: 0.10.64 3703 | next-tick: 1.1.0 3704 | dev: true 3705 | 3706 | /to-regex-range@5.0.1: 3707 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3708 | engines: {node: '>=8.0'} 3709 | dependencies: 3710 | is-number: 7.0.0 3711 | 3712 | /tr46@0.0.3: 3713 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 3714 | dev: false 3715 | 3716 | /ts-api-utils@1.3.0(typescript@5.0.2): 3717 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 3718 | engines: {node: '>=16'} 3719 | peerDependencies: 3720 | typescript: '>=4.2.0' 3721 | dependencies: 3722 | typescript: 5.0.2 3723 | dev: true 3724 | 3725 | /ts-interface-checker@0.1.13: 3726 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3727 | 3728 | /tsconfig-paths@3.15.0: 3729 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 3730 | dependencies: 3731 | '@types/json5': 0.0.29 3732 | json5: 1.0.2 3733 | minimist: 1.2.8 3734 | strip-bom: 3.0.0 3735 | dev: true 3736 | 3737 | /tslib@2.6.2: 3738 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 3739 | dev: false 3740 | 3741 | /tsx@4.7.1: 3742 | resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} 3743 | engines: {node: '>=18.0.0'} 3744 | hasBin: true 3745 | dependencies: 3746 | esbuild: 0.19.12 3747 | get-tsconfig: 4.7.3 3748 | optionalDependencies: 3749 | fsevents: 2.3.3 3750 | dev: false 3751 | 3752 | /type-check@0.4.0: 3753 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3754 | engines: {node: '>= 0.8.0'} 3755 | dependencies: 3756 | prelude-ls: 1.2.1 3757 | dev: true 3758 | 3759 | /type-fest@0.20.2: 3760 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3761 | engines: {node: '>=10'} 3762 | dev: true 3763 | 3764 | /type@2.7.2: 3765 | resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} 3766 | dev: true 3767 | 3768 | /typed-array-buffer@1.0.2: 3769 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} 3770 | engines: {node: '>= 0.4'} 3771 | dependencies: 3772 | call-bind: 1.0.7 3773 | es-errors: 1.3.0 3774 | is-typed-array: 1.1.13 3775 | dev: true 3776 | 3777 | /typed-array-byte-length@1.0.1: 3778 | resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} 3779 | engines: {node: '>= 0.4'} 3780 | dependencies: 3781 | call-bind: 1.0.7 3782 | for-each: 0.3.3 3783 | gopd: 1.0.1 3784 | has-proto: 1.0.3 3785 | is-typed-array: 1.1.13 3786 | dev: true 3787 | 3788 | /typed-array-byte-offset@1.0.2: 3789 | resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} 3790 | engines: {node: '>= 0.4'} 3791 | dependencies: 3792 | available-typed-arrays: 1.0.7 3793 | call-bind: 1.0.7 3794 | for-each: 0.3.3 3795 | gopd: 1.0.1 3796 | has-proto: 1.0.3 3797 | is-typed-array: 1.1.13 3798 | dev: true 3799 | 3800 | /typed-array-length@1.0.5: 3801 | resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} 3802 | engines: {node: '>= 0.4'} 3803 | dependencies: 3804 | call-bind: 1.0.7 3805 | for-each: 0.3.3 3806 | gopd: 1.0.1 3807 | has-proto: 1.0.3 3808 | is-typed-array: 1.1.13 3809 | possible-typed-array-names: 1.0.0 3810 | dev: true 3811 | 3812 | /typescript@5.0.2: 3813 | resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} 3814 | engines: {node: '>=12.20'} 3815 | hasBin: true 3816 | dev: true 3817 | 3818 | /unbox-primitive@1.0.2: 3819 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 3820 | dependencies: 3821 | call-bind: 1.0.7 3822 | has-bigints: 1.0.2 3823 | has-symbols: 1.0.3 3824 | which-boxed-primitive: 1.0.2 3825 | dev: true 3826 | 3827 | /undici-types@5.26.5: 3828 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 3829 | dev: false 3830 | 3831 | /update-browserslist-db@1.0.13(browserslist@4.23.0): 3832 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 3833 | hasBin: true 3834 | peerDependencies: 3835 | browserslist: '>= 4.21.0' 3836 | dependencies: 3837 | browserslist: 4.23.0 3838 | escalade: 3.1.2 3839 | picocolors: 1.0.0 3840 | dev: true 3841 | 3842 | /uri-js@4.4.1: 3843 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3844 | dependencies: 3845 | punycode: 2.3.1 3846 | dev: true 3847 | 3848 | /util-deprecate@1.0.2: 3849 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3850 | 3851 | /v8-compile-cache@2.4.0: 3852 | resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} 3853 | dev: true 3854 | 3855 | /web-streams-polyfill@3.3.3: 3856 | resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} 3857 | engines: {node: '>= 8'} 3858 | dev: false 3859 | 3860 | /web-streams-polyfill@4.0.0-beta.3: 3861 | resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} 3862 | engines: {node: '>= 14'} 3863 | dev: false 3864 | 3865 | /webidl-conversions@3.0.1: 3866 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 3867 | dev: false 3868 | 3869 | /whatwg-url@5.0.0: 3870 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 3871 | dependencies: 3872 | tr46: 0.0.3 3873 | webidl-conversions: 3.0.1 3874 | dev: false 3875 | 3876 | /which-boxed-primitive@1.0.2: 3877 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 3878 | dependencies: 3879 | is-bigint: 1.0.4 3880 | is-boolean-object: 1.1.2 3881 | is-number-object: 1.0.7 3882 | is-string: 1.0.7 3883 | is-symbol: 1.0.4 3884 | dev: true 3885 | 3886 | /which-builtin-type@1.1.3: 3887 | resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} 3888 | engines: {node: '>= 0.4'} 3889 | dependencies: 3890 | function.prototype.name: 1.1.6 3891 | has-tostringtag: 1.0.2 3892 | is-async-function: 2.0.0 3893 | is-date-object: 1.0.5 3894 | is-finalizationregistry: 1.0.2 3895 | is-generator-function: 1.0.10 3896 | is-regex: 1.1.4 3897 | is-weakref: 1.0.2 3898 | isarray: 2.0.5 3899 | which-boxed-primitive: 1.0.2 3900 | which-collection: 1.0.2 3901 | which-typed-array: 1.1.15 3902 | dev: true 3903 | 3904 | /which-collection@1.0.2: 3905 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 3906 | engines: {node: '>= 0.4'} 3907 | dependencies: 3908 | is-map: 2.0.3 3909 | is-set: 2.0.3 3910 | is-weakmap: 2.0.2 3911 | is-weakset: 2.0.3 3912 | dev: true 3913 | 3914 | /which-typed-array@1.1.15: 3915 | resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} 3916 | engines: {node: '>= 0.4'} 3917 | dependencies: 3918 | available-typed-arrays: 1.0.7 3919 | call-bind: 1.0.7 3920 | for-each: 0.3.3 3921 | gopd: 1.0.1 3922 | has-tostringtag: 1.0.2 3923 | dev: true 3924 | 3925 | /which@2.0.2: 3926 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3927 | engines: {node: '>= 8'} 3928 | hasBin: true 3929 | dependencies: 3930 | isexe: 2.0.0 3931 | 3932 | /wordwrap@1.0.0: 3933 | resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} 3934 | dev: true 3935 | 3936 | /wrap-ansi@7.0.0: 3937 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3938 | engines: {node: '>=10'} 3939 | dependencies: 3940 | ansi-styles: 4.3.0 3941 | string-width: 4.2.3 3942 | strip-ansi: 6.0.1 3943 | 3944 | /wrap-ansi@8.1.0: 3945 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 3946 | engines: {node: '>=12'} 3947 | dependencies: 3948 | ansi-styles: 6.2.1 3949 | string-width: 5.1.2 3950 | strip-ansi: 7.1.0 3951 | 3952 | /wrappy@1.0.2: 3953 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3954 | dev: true 3955 | 3956 | /xtend@4.0.2: 3957 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 3958 | engines: {node: '>=0.4'} 3959 | dev: false 3960 | 3961 | /yallist@4.0.0: 3962 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3963 | dev: true 3964 | 3965 | /yaml@1.10.2: 3966 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 3967 | engines: {node: '>= 6'} 3968 | 3969 | /zod@3.22.4: 3970 | resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} 3971 | dev: true 3972 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /public/dark_down_jacket_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/dark_down_jacket_1.png -------------------------------------------------------------------------------- /public/dark_down_jacket_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/dark_down_jacket_2.png -------------------------------------------------------------------------------- /public/dark_fleece_jacket_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/dark_fleece_jacket_1.png -------------------------------------------------------------------------------- /public/dark_leather_jacket_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/dark_leather_jacket_1.png -------------------------------------------------------------------------------- /public/dark_parka_jacket_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/dark_parka_jacket_1.png -------------------------------------------------------------------------------- /public/dark_parka_jacket_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/dark_parka_jacket_2.png -------------------------------------------------------------------------------- /public/dark_parka_jacket_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/dark_parka_jacket_3.png -------------------------------------------------------------------------------- /public/dark_trench_coat_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/dark_trench_coat_1.png -------------------------------------------------------------------------------- /public/light_down_jacket_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_down_jacket_1.png -------------------------------------------------------------------------------- /public/light_down_jacket_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_down_jacket_2.png -------------------------------------------------------------------------------- /public/light_down_jacket_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_down_jacket_3.png -------------------------------------------------------------------------------- /public/light_fleece_jacket_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_fleece_jacket_1.png -------------------------------------------------------------------------------- /public/light_jeans_jacket_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_jeans_jacket_1.png -------------------------------------------------------------------------------- /public/light_jeans_jacket_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_jeans_jacket_2.png -------------------------------------------------------------------------------- /public/light_parka_jacket_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_parka_jacket_1.png -------------------------------------------------------------------------------- /public/light_trench_coat_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_trench_coat_1.png -------------------------------------------------------------------------------- /public/light_trench_coat_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_trench_coat_2.png -------------------------------------------------------------------------------- /public/light_wind_jacket_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_wind_jacket_1.png -------------------------------------------------------------------------------- /public/light_wind_jacket_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_wind_jacket_2.png -------------------------------------------------------------------------------- /public/light_wind_jacket_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_wind_jacket_3.png -------------------------------------------------------------------------------- /public/light_wind_jacket_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/public/light_wind_jacket_4.png -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joschan21/magicsearch/5f9eb64f144e5b4fff3eabbb6449e2b29bc404d3/src/app/favicon.ico -------------------------------------------------------------------------------- /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 | 10 | --card: 0 0% 100%; 11 | --card-foreground: 222.2 84% 4.9%; 12 | 13 | --popover: 0 0% 100%; 14 | --popover-foreground: 222.2 84% 4.9%; 15 | 16 | --primary: 222.2 47.4% 11.2%; 17 | --primary-foreground: 210 40% 98%; 18 | 19 | --secondary: 210 40% 96.1%; 20 | --secondary-foreground: 222.2 47.4% 11.2%; 21 | 22 | --muted: 210 40% 96.1%; 23 | --muted-foreground: 215.4 16.3% 46.9%; 24 | 25 | --accent: 210 40% 96.1%; 26 | --accent-foreground: 222.2 47.4% 11.2%; 27 | 28 | --destructive: 0 84.2% 60.2%; 29 | --destructive-foreground: 210 40% 98%; 30 | 31 | --border: 214.3 31.8% 91.4%; 32 | --input: 214.3 31.8% 91.4%; 33 | --ring: 222.2 84% 4.9%; 34 | 35 | --radius: 0.5rem; 36 | } 37 | 38 | .dark { 39 | --background: 222.2 84% 4.9%; 40 | --foreground: 210 40% 98%; 41 | 42 | --card: 222.2 84% 4.9%; 43 | --card-foreground: 210 40% 98%; 44 | 45 | --popover: 222.2 84% 4.9%; 46 | --popover-foreground: 210 40% 98%; 47 | 48 | --primary: 210 40% 98%; 49 | --primary-foreground: 222.2 47.4% 11.2%; 50 | 51 | --secondary: 217.2 32.6% 17.5%; 52 | --secondary-foreground: 210 40% 98%; 53 | 54 | --muted: 217.2 32.6% 17.5%; 55 | --muted-foreground: 215 20.2% 65.1%; 56 | 57 | --accent: 217.2 32.6% 17.5%; 58 | --accent-foreground: 210 40% 98%; 59 | 60 | --destructive: 0 62.8% 30.6%; 61 | --destructive-foreground: 210 40% 98%; 62 | 63 | --border: 217.2 32.6% 17.5%; 64 | --input: 217.2 32.6% 17.5%; 65 | --ring: 212.7 26.8% 83.9%; 66 | } 67 | } 68 | 69 | @layer base { 70 | * { 71 | @apply border-border; 72 | } 73 | body { 74 | @apply bg-background text-foreground; 75 | } 76 | } -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from 'next' 2 | import { Inter } from 'next/font/google' 3 | import './globals.css' 4 | import { Icons } from '@/components/Icons' 5 | import SearchBar from '@/components/SearchBar' 6 | 7 | const inter = Inter({ subsets: ['latin'] }) 8 | 9 | export const metadata: Metadata = { 10 | title: 'Create Next App', 11 | description: 'Generated by create next app', 12 | } 13 | 14 | export default function RootLayout({ 15 | children, 16 | }: Readonly<{ 17 | children: React.ReactNode 18 | }>) { 19 | return ( 20 | 21 | 22 |
23 | 44 | 45 |
46 |
47 | 48 | 49 |

50 | MagicSearch 51 |

52 | 53 |

54 | A beautifully designed, hybrid search engine that enhances 55 | search accuracy by querying semantically related results. 56 |

57 | 58 |
59 | 60 | 61 | {children} 62 |
63 |
64 |
65 |
66 | 67 | 68 | ) 69 | } 70 | -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | // this could be your landing page 2 | // we dont need this page, logic is handled in the layout 3 | 4 | export default function Home() { 5 | return <> 6 | } 7 | -------------------------------------------------------------------------------- /src/app/products/[productId]/page.tsx: -------------------------------------------------------------------------------- 1 | import { db } from '@/db' 2 | import { productsTable } from '@/db/schema' 3 | import { notFound } from 'next/navigation' 4 | import { eq } from 'drizzle-orm' 5 | import BackButton from '@/components/BackButton' 6 | import Image from 'next/image' 7 | import { Check, Shield } from 'lucide-react' 8 | import { Button } from '@/components/ui/button' 9 | 10 | interface PageProps { 11 | params: { 12 | productId: string 13 | } 14 | } 15 | 16 | const Page = async ({ params }: PageProps) => { 17 | const { productId } = params 18 | 19 | if (!productId) return notFound() 20 | 21 | const [product] = await db 22 | .select() 23 | .from(productsTable) 24 | .where(eq(productsTable.id, productId)) 25 | 26 | if (!product) return notFound() 27 | 28 | return ( 29 |
30 |
31 | 32 | 33 |
34 |

35 | {product.name} 36 |

37 |
38 | 39 |
40 |
41 | product image 48 |
49 |
50 | 51 |
52 |
53 |

54 | ${product.price.toFixed(2)} 55 |

56 |
57 | 58 |
59 |

60 | {product.description} 61 |

62 |
63 | 64 |
65 | 66 |

67 | Eligible for express delivery 68 |

69 |
70 |
71 |
72 | 73 |
74 | 75 | 76 |
77 |
78 | 79 | 80 | 30 Day Return Guarantee 81 | 82 |
83 |
84 |
85 |
86 | ) 87 | } 88 | 89 | export default Page 90 | -------------------------------------------------------------------------------- /src/app/search/loading.tsx: -------------------------------------------------------------------------------- 1 | export default function Loading() { 2 | return ( 3 | 20 | ) 21 | } 22 | -------------------------------------------------------------------------------- /src/app/search/page.tsx: -------------------------------------------------------------------------------- 1 | import { db } from '@/db' 2 | import { Product, productsTable } from '@/db/schema' 3 | import { vectorize } from '@/lib/vectorize' 4 | import { Index } from '@upstash/vector' 5 | import { sql } from 'drizzle-orm' 6 | import { X } from 'lucide-react' 7 | import Image from 'next/image' 8 | import Link from 'next/link' 9 | import { redirect } from 'next/navigation' 10 | 11 | export const dynamic = 'force-dynamic' 12 | 13 | interface PageProps { 14 | searchParams: { 15 | [key: string]: string | string[] | undefined 16 | } 17 | } 18 | 19 | export type CoreProduct = Omit 20 | 21 | const index = new Index() 22 | 23 | const Page = async ({ searchParams }: PageProps) => { 24 | const query = searchParams.query 25 | 26 | if (Array.isArray(query) || !query) { 27 | return redirect('/') 28 | } 29 | 30 | let products: CoreProduct[] = await db 31 | .select() 32 | .from(productsTable) 33 | .where( 34 | sql`to_tsvector('simple', lower(${productsTable.name} || ' ' || ${ 35 | productsTable.description 36 | })) @@ to_tsquery('simple', lower(${query 37 | .trim() 38 | .split(' ') 39 | .join(' & ')}))` 40 | ) 41 | .limit(3) 42 | 43 | if (products.length < 3) { 44 | // search products by semantic similarity 45 | const vector = await vectorize(query) 46 | 47 | const res = await index.query({ 48 | topK: 5, 49 | vector, 50 | includeMetadata: true, 51 | }) 52 | 53 | const vectorProducts = res 54 | .filter((existingProduct) => { 55 | if ( 56 | products.some((product) => product.id === existingProduct.id) || 57 | existingProduct.score < 0.9 58 | ) { 59 | return false 60 | } else { 61 | return true 62 | } 63 | }) 64 | .map(({ metadata }) => metadata!) 65 | 66 | products.push(...vectorProducts) 67 | } 68 | 69 | if (products.length === 0) { 70 | return ( 71 |
72 | 73 |

No results

74 |

75 | Sorry, we couldn't find any matches for{' '} 76 | {query}. 77 |

78 |
79 | ) 80 | } 81 | 82 | return ( 83 | 113 | ) 114 | } 115 | 116 | export default Page 117 | -------------------------------------------------------------------------------- /src/components/BackButton.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | import { useRouter } from 'next/navigation' 4 | import { Button } from './ui/button' 5 | import { ChevronLeft } from 'lucide-react' 6 | 7 | const BackButton = () => { 8 | const router = useRouter() 9 | return ( 10 | 17 | ) 18 | } 19 | 20 | export default BackButton 21 | -------------------------------------------------------------------------------- /src/components/Icons.tsx: -------------------------------------------------------------------------------- 1 | import type { LucideProps } from 'lucide-react' 2 | 3 | export const Icons = { 4 | Sparkles: (props: LucideProps) => ( 5 | 6 | 14 | 22 | 31 | 32 | 40 | 45 | 53 | 54 | 55 | 64 | 65 | 73 | 88 | 92 | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | 128 | 132 | 136 | 149 | 162 | 163 | ), 164 | } 165 | -------------------------------------------------------------------------------- /src/components/SearchBar.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | import { Loader2, Search } from 'lucide-react' 4 | import { Button } from './ui/button' 5 | import { Input } from './ui/input' 6 | import { useRef, useState, useTransition } from 'react' 7 | import { useRouter, useSearchParams } from 'next/navigation' 8 | 9 | const SearchBar = () => { 10 | const searchParams = useSearchParams() 11 | const defaultQuery = searchParams.get("query") || '' 12 | const inputRef = useRef(null) 13 | const [isSearching, startTransition] = useTransition() 14 | const router = useRouter() 15 | const [query, setQuery] = useState(defaultQuery) 16 | 17 | const search = () => { 18 | startTransition(() => { 19 | router.push(`/search?query=${query}`) 20 | }) 21 | } 22 | 23 | return ( 24 |
25 |
26 | setQuery(e.target.value)} 30 | onKeyDown={(e) => { 31 | if (e.key === 'Enter') { 32 | search() 33 | } 34 | 35 | if (e.key === 'Escape') { 36 | inputRef?.current?.blur() 37 | } 38 | }} 39 | ref={inputRef} 40 | className='absolute inset-0 h-full' 41 | /> 42 | 43 | 50 |
51 |
52 | ) 53 | } 54 | 55 | export default SearchBar 56 | -------------------------------------------------------------------------------- /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 | }, 22 | size: { 23 | default: "h-10 px-4 py-2", 24 | sm: "h-9 rounded-md px-3", 25 | lg: "h-11 rounded-md px-8", 26 | icon: "h-10 w-10", 27 | }, 28 | }, 29 | defaultVariants: { 30 | variant: "default", 31 | size: "default", 32 | }, 33 | } 34 | ) 35 | 36 | export interface ButtonProps 37 | extends React.ButtonHTMLAttributes, 38 | VariantProps { 39 | asChild?: boolean 40 | } 41 | 42 | const Button = React.forwardRef( 43 | ({ className, variant, size, asChild = false, ...props }, ref) => { 44 | const Comp = asChild ? Slot : "button" 45 | return ( 46 | 51 | ) 52 | } 53 | ) 54 | Button.displayName = "Button" 55 | 56 | export { Button, buttonVariants } 57 | -------------------------------------------------------------------------------- /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/db/index.ts: -------------------------------------------------------------------------------- 1 | import { neon } from "@neondatabase/serverless"; 2 | import {drizzle} from "drizzle-orm/neon-http" 3 | 4 | const connector = neon(process.env.DATABASE_URL!) 5 | // @ts-expect-error 6 | export const db = drizzle(connector) 7 | 8 | -------------------------------------------------------------------------------- /src/db/schema.ts: -------------------------------------------------------------------------------- 1 | import { doublePrecision, pgTable, text, timestamp } from 'drizzle-orm/pg-core' 2 | 3 | export const productsTable = pgTable('products', { 4 | id: text('id').primaryKey().default('uuid_generate_v4()'), 5 | name: text('name').notNull(), 6 | imageId: text('imageId').notNull(), 7 | price: doublePrecision('price').notNull(), 8 | description: text('description'), 9 | createdAt: timestamp('createdAt').defaultNow(), 10 | updatedAt: timestamp('updatedAt').defaultNow(), 11 | }) 12 | 13 | export type Product = typeof productsTable.$inferSelect 14 | -------------------------------------------------------------------------------- /src/db/seed.ts: -------------------------------------------------------------------------------- 1 | import { faker } from '@faker-js/faker' 2 | import { neon } from '@neondatabase/serverless' 3 | import { Index } from '@upstash/vector' 4 | import * as dotenv from 'dotenv' 5 | import { drizzle } from 'drizzle-orm/neon-http' 6 | import { vectorize } from '../lib/vectorize' 7 | import { productsTable } from './schema' 8 | 9 | dotenv.config() 10 | 11 | const index = new Index() 12 | 13 | async function main() { 14 | const connector = neon(process.env.DATABASE_URL!) 15 | // @ts-expect-error neon-drizzle 16 | const db = drizzle(connector) 17 | 18 | const products: (typeof productsTable.$inferInsert)[] = [] 19 | 20 | const productImageIDs = [ 21 | { 22 | imageId: 'dark_down_jacket_1.png', 23 | description: 24 | 'A sleek, insulated down jacket designed for chilly urban adventures. Its slim fit and dark hue make it a versatile addition to any winter wardrobe.', 25 | }, 26 | { 27 | imageId: 'dark_down_jacket_2.png', 28 | description: 29 | 'This durable down jacket offers exceptional warmth with a touch of elegance. Perfect for those who demand both style and functionality in cold weather.', 30 | }, 31 | { 32 | imageId: 'dark_fleece_jacket_1.png', 33 | description: 34 | 'Experience the cozy warmth of this dark fleece jacket. Ideal for layering, its soft texture and classic design ensure comfort and style on cooler days.', 35 | }, 36 | { 37 | imageId: 'dark_leather_jacket_1.png', 38 | description: 39 | 'A timeless dark leather jacket that combines classic styling with rugged durability. Perfect for adding an edge to any outfit, rain or shine.', 40 | }, 41 | { 42 | imageId: 'dark_parka_jacket_1.png', 43 | description: 44 | 'Stay protected against the elements with this durable parka. Its insulated lining and fur-trimmed hood offer warmth and style in harsh conditions.', 45 | }, 46 | { 47 | imageId: 'dark_parka_jacket_2.png', 48 | description: 49 | 'This sleek parka features a waterproof exterior and a thermal interior, making it a must-have for winter escapades in the city or the mountains.', 50 | }, 51 | { 52 | imageId: 'dark_parka_jacket_3.png', 53 | description: 54 | 'With its adjustable features and multiple pockets, this parka blends practicality with modern aesthetics for the ultimate winter outerwear.', 55 | }, 56 | { 57 | imageId: 'dark_trench_coat_1.png', 58 | description: 59 | 'A modern twist on a classic design, this dark trench coat offers both sophistication and weather resistance, perfect for rainy days.', 60 | }, 61 | { 62 | imageId: 'light_down_jacket_1.png', 63 | description: 64 | 'Lightweight yet warm, this down jacket is an essential layer for transitional weather, offering comfort without bulk.', 65 | }, 66 | { 67 | imageId: 'light_down_jacket_2.png', 68 | description: 69 | 'Embrace the cold in this light and airy down jacket, featuring a water-resistant shell and a sleek design for everyday wear.', 70 | }, 71 | { 72 | imageId: 'light_down_jacket_3.png', 73 | description: 74 | 'This stylish down jacket combines warmth and lightweight design, making it the perfect companion for winter travel.', 75 | }, 76 | { 77 | imageId: 'light_fleece_jacket_1.png', 78 | description: 79 | 'Enjoy the soft touch of this light fleece jacket, designed for brisk mornings and cool evenings, with a versatile zip-up style for easy layering.', 80 | }, 81 | { 82 | imageId: 'light_jeans_jacket_1.png', 83 | description: 84 | 'A casual classic, this light denim jacket adds a layer of cool to any outfit, perfect for those crisp, sunny days.', 85 | }, 86 | { 87 | imageId: 'light_jeans_jacket_2.png', 88 | description: 89 | 'Upgrade your casual wear with this distressed light denim jacket, featuring a relaxed fit and timeless appeal.', 90 | }, 91 | { 92 | imageId: 'light_parka_jacket_1.png', 93 | description: 94 | "This light parka offers a breathable, water-resistant layer, ideal for unpredictable weather, with a sleek design that doesn't compromise on style.", 95 | }, 96 | { 97 | imageId: 'light_trench_coat_1.png', 98 | description: 99 | 'A chic and lightweight trench coat that brings an elegant layer to spring and autumn outfits, with a belted waist for a flattering fit.', 100 | }, 101 | { 102 | imageId: 'light_trench_coat_2.png', 103 | description: 104 | 'Enjoy a stylish and sophisticated look with this lightweight trench coat made from a fabric that resists both wind and rain. Perfect for the transition between seasons.', 105 | }, 106 | { 107 | imageId: 'light_wind_jacket_1.png', 108 | description: 109 | 'Take on the breezy days with this lightweight wind jacket that is designed to offer protection and style with its minimalist design and functional features.', 110 | }, 111 | { 112 | imageId: 'light_wind_jacket_2.png', 113 | description: 114 | 'A versatile windbreaker for active days. This jacket offers lightweight comfort and resistance to the elements in a sleek package.', 115 | }, 116 | { 117 | imageId: 'light_wind_jacket_3.png', 118 | description: 119 | 'Stay ahead of the weather with this dynamic light wind jacket, combining breathability with waterproof technology for all-day comfort.', 120 | }, 121 | { 122 | imageId: 'light_wind_jacket_4.png', 123 | description: 124 | 'A comfortable wind jacket designed to keep you warm during winter or rain. With a minimal light grey color it suits the rest of your outfit well.', 125 | }, 126 | ] 127 | 128 | productImageIDs.forEach(({ description, imageId }, i) => { 129 | products.push({ 130 | id: (i + 1).toString(), 131 | name: formatFileName(imageId), 132 | description, 133 | price: parseFloat(faker.commerce.price({ min: 40, max: 200 })), 134 | imageId, 135 | }) 136 | }) 137 | 138 | products.forEach(async (product) => { 139 | await db.insert(productsTable).values(product).onConflictDoNothing() 140 | 141 | await index.upsert({ 142 | id: product.id!, 143 | vector: await vectorize(`${product.name}: ${product.description}`), 144 | metadata: { 145 | id: product.id, 146 | name: product.name, 147 | description: product.description, 148 | price: product.price, 149 | imageId: product.imageId, 150 | }, 151 | }) 152 | }) 153 | } 154 | 155 | 156 | // 'dark_down_jacket_1.png' -> 'Dark Down Jacket 1' 157 | function formatFileName(fileName: string): string { 158 | const nameWithoutExtension = fileName.replace(/\.\w+$/, '') 159 | const words = nameWithoutExtension.split('_') 160 | 161 | const capitalizedWords = words.map( 162 | (word) => word.charAt(0).toUpperCase() + word.slice(1) 163 | ) 164 | return capitalizedWords.join(' ') 165 | } 166 | 167 | main() 168 | -------------------------------------------------------------------------------- /src/lib/openai.ts: -------------------------------------------------------------------------------- 1 | import OpenAI from 'openai' 2 | 3 | export const openai = new OpenAI({ 4 | apiKey: process.env.OPENAI_API_KEY, 5 | }) 6 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/lib/vectorize.ts: -------------------------------------------------------------------------------- 1 | import { openai } from './openai' 2 | 3 | export const vectorize = async (input: string): Promise => { 4 | const embeddingResponse = await openai.embeddings.create({ 5 | input, 6 | model: 'text-embedding-ada-002', 7 | }) 8 | 9 | const vector = embeddingResponse.data[0].embedding 10 | 11 | return vector 12 | } 13 | -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------