├── .env.development ├── .eslintrc.json ├── .github └── images │ └── preview.png ├── .gitignore ├── README.md ├── drizzle.config.ts ├── next.config.js ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public ├── next.svg └── vercel.svg ├── src ├── app.d.ts ├── app │ ├── api │ │ ├── login │ │ │ └── route.ts │ │ ├── logout │ │ │ └── route.ts │ │ └── signup │ │ │ └── route.ts │ ├── favicon.ico │ ├── globals.css │ ├── layout.tsx │ ├── login │ │ └── page.tsx │ ├── page.tsx │ └── signup │ │ └── page.tsx ├── components │ ├── form.tsx │ ├── list-posts.tsx │ └── new-post-form.tsx └── lib │ ├── auth │ ├── handle-auth-request.ts │ ├── lucia.ts │ └── validate-auth-form-data.ts │ ├── database │ ├── db.ts │ └── schema.ts │ └── posts │ ├── get-posts-dto.ts │ └── new-post-server-action.ts ├── tailwind.config.ts └── tsconfig.json /.env.development: -------------------------------------------------------------------------------- 1 | DATABASE_URL = example.sqlite3 2 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.github/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devlulcas/next-js-auth-with-lucia-and-drizzle-demo/4beef1e754b8f7a5112363c34d17e926377930a8/.github/images/preview.png -------------------------------------------------------------------------------- /.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 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | 38 | example.sqlite3 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Next.js with Lucia for Auth and Drizzle ORM + SQLite app using server actions (Oversimplified example) 2 | 3 | In that app you can see a simple protected server action for creating "posts". We use Lucia for authentication and Drizzle ORM + SQLite for the database. The objective of this example is to show how to use Lucia with server actions. 4 | 5 | > Most of the app is just a copy of the [Sign in with username and password in Next.js App Router](https://lucia-auth.com/guidebook/sign-in-with-username-and-password/nextjs-app). The only difference is the server action, database and the fact that we use Drizzle ORM instead of Prisma.There is some styling added to the app, but it's not the focus of this example. 6 | 7 | ![screenshot](.github/images//preview.png) 8 | 9 | ## Getting Started 10 | 11 | First, run the development server: 12 | 13 | ```bash 14 | npm run dev 15 | # or 16 | yarn dev 17 | # or 18 | pnpm dev 19 | # or 20 | bun dev 21 | ``` 22 | 23 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 24 | -------------------------------------------------------------------------------- /drizzle.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from 'dotenv'; 2 | import type { Config } from 'drizzle-kit'; 3 | 4 | config({ 5 | path: 6 | process.env.NODE_ENV === 'production' ? '.env.local' : '.env.development', 7 | }); 8 | 9 | const DATABASE_URL = process.env.DATABASE_URL; 10 | 11 | if (!DATABASE_URL) { 12 | throw new Error('DATABASE_URL is not defined'); 13 | } 14 | 15 | export default { 16 | schema: './src/lib/database/schema.ts', 17 | out: './drizzle', 18 | driver: 'better-sqlite', 19 | dbCredentials: { 20 | url: DATABASE_URL, 21 | }, 22 | } satisfies Config; 23 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {} 3 | 4 | module.exports = nextConfig 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-actions", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@lucia-auth/adapter-sqlite": "^2.0.1", 13 | "better-sqlite3": "^9.0.0", 14 | "drizzle-orm": "^0.28.6", 15 | "lucia": "^2.7.2", 16 | "next": "14.0.1", 17 | "react": "^18", 18 | "react-dom": "^18" 19 | }, 20 | "devDependencies": { 21 | "@types/better-sqlite3": "^7.6.6", 22 | "@types/node": "^20", 23 | "@types/react": "^18", 24 | "@types/react-dom": "^18", 25 | "autoprefixer": "^10.0.1", 26 | "dotenv": "^16.3.1", 27 | "drizzle-kit": "^0.19.13", 28 | "eslint": "^8", 29 | "eslint-config-next": "14.0.1", 30 | "postcss": "^8", 31 | "tailwindcss": "^3.3.0", 32 | "typescript": "^5" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@lucia-auth/adapter-sqlite': 9 | specifier: ^2.0.1 10 | version: 2.0.1(better-sqlite3@9.0.0)(lucia@2.7.2) 11 | better-sqlite3: 12 | specifier: ^9.0.0 13 | version: 9.0.0 14 | drizzle-orm: 15 | specifier: ^0.28.6 16 | version: 0.28.6(@types/better-sqlite3@7.6.6)(better-sqlite3@9.0.0) 17 | lucia: 18 | specifier: ^2.7.2 19 | version: 2.7.2 20 | next: 21 | specifier: 14.0.1 22 | version: 14.0.1(react-dom@18.0.0)(react@18.0.0) 23 | react: 24 | specifier: ^18 25 | version: 18.0.0 26 | react-dom: 27 | specifier: ^18 28 | version: 18.0.0(react@18.0.0) 29 | 30 | devDependencies: 31 | '@types/better-sqlite3': 32 | specifier: ^7.6.6 33 | version: 7.6.6 34 | '@types/node': 35 | specifier: ^20 36 | version: 20.0.0 37 | '@types/react': 38 | specifier: ^18 39 | version: 18.0.0 40 | '@types/react-dom': 41 | specifier: ^18 42 | version: 18.0.0 43 | autoprefixer: 44 | specifier: ^10.0.1 45 | version: 10.0.1(postcss@8.0.0) 46 | dotenv: 47 | specifier: ^16.3.1 48 | version: 16.3.1 49 | drizzle-kit: 50 | specifier: ^0.19.13 51 | version: 0.19.13 52 | eslint: 53 | specifier: ^8 54 | version: 8.0.0 55 | eslint-config-next: 56 | specifier: 14.0.1 57 | version: 14.0.1(eslint@8.0.0)(typescript@5.0.2) 58 | postcss: 59 | specifier: ^8 60 | version: 8.0.0 61 | tailwindcss: 62 | specifier: ^3.3.0 63 | version: 3.3.0(postcss@8.0.0) 64 | typescript: 65 | specifier: ^5 66 | version: 5.0.2 67 | 68 | packages: 69 | 70 | /@aashutoshrathi/word-wrap@1.2.6: 71 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 72 | engines: {node: '>=0.10.0'} 73 | dev: true 74 | 75 | /@babel/runtime@7.23.2: 76 | resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} 77 | engines: {node: '>=6.9.0'} 78 | dependencies: 79 | regenerator-runtime: 0.14.0 80 | dev: true 81 | 82 | /@drizzle-team/studio@0.0.5: 83 | resolution: {integrity: sha512-ps5qF0tMxWRVu+V5gvCRrQNqlY92aTnIKdq27gm9LZMSdaKYZt6AVvSK1dlUMzs6Rt0Jm80b+eWct6xShBKhIw==} 84 | dev: true 85 | 86 | /@esbuild-kit/core-utils@3.3.2: 87 | resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} 88 | dependencies: 89 | esbuild: 0.18.20 90 | source-map-support: 0.5.21 91 | dev: true 92 | 93 | /@esbuild-kit/esm-loader@2.6.5: 94 | resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} 95 | dependencies: 96 | '@esbuild-kit/core-utils': 3.3.2 97 | get-tsconfig: 4.7.2 98 | dev: true 99 | 100 | /@esbuild/android-arm64@0.18.20: 101 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 102 | engines: {node: '>=12'} 103 | cpu: [arm64] 104 | os: [android] 105 | requiresBuild: true 106 | dev: true 107 | optional: true 108 | 109 | /@esbuild/android-arm@0.18.20: 110 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 111 | engines: {node: '>=12'} 112 | cpu: [arm] 113 | os: [android] 114 | requiresBuild: true 115 | dev: true 116 | optional: true 117 | 118 | /@esbuild/android-x64@0.18.20: 119 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 120 | engines: {node: '>=12'} 121 | cpu: [x64] 122 | os: [android] 123 | requiresBuild: true 124 | dev: true 125 | optional: true 126 | 127 | /@esbuild/darwin-arm64@0.18.20: 128 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 129 | engines: {node: '>=12'} 130 | cpu: [arm64] 131 | os: [darwin] 132 | requiresBuild: true 133 | dev: true 134 | optional: true 135 | 136 | /@esbuild/darwin-x64@0.18.20: 137 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 138 | engines: {node: '>=12'} 139 | cpu: [x64] 140 | os: [darwin] 141 | requiresBuild: true 142 | dev: true 143 | optional: true 144 | 145 | /@esbuild/freebsd-arm64@0.18.20: 146 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 147 | engines: {node: '>=12'} 148 | cpu: [arm64] 149 | os: [freebsd] 150 | requiresBuild: true 151 | dev: true 152 | optional: true 153 | 154 | /@esbuild/freebsd-x64@0.18.20: 155 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 156 | engines: {node: '>=12'} 157 | cpu: [x64] 158 | os: [freebsd] 159 | requiresBuild: true 160 | dev: true 161 | optional: true 162 | 163 | /@esbuild/linux-arm64@0.18.20: 164 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 165 | engines: {node: '>=12'} 166 | cpu: [arm64] 167 | os: [linux] 168 | requiresBuild: true 169 | dev: true 170 | optional: true 171 | 172 | /@esbuild/linux-arm@0.18.20: 173 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 174 | engines: {node: '>=12'} 175 | cpu: [arm] 176 | os: [linux] 177 | requiresBuild: true 178 | dev: true 179 | optional: true 180 | 181 | /@esbuild/linux-ia32@0.18.20: 182 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 183 | engines: {node: '>=12'} 184 | cpu: [ia32] 185 | os: [linux] 186 | requiresBuild: true 187 | dev: true 188 | optional: true 189 | 190 | /@esbuild/linux-loong64@0.18.20: 191 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 192 | engines: {node: '>=12'} 193 | cpu: [loong64] 194 | os: [linux] 195 | requiresBuild: true 196 | dev: true 197 | optional: true 198 | 199 | /@esbuild/linux-mips64el@0.18.20: 200 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 201 | engines: {node: '>=12'} 202 | cpu: [mips64el] 203 | os: [linux] 204 | requiresBuild: true 205 | dev: true 206 | optional: true 207 | 208 | /@esbuild/linux-ppc64@0.18.20: 209 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 210 | engines: {node: '>=12'} 211 | cpu: [ppc64] 212 | os: [linux] 213 | requiresBuild: true 214 | dev: true 215 | optional: true 216 | 217 | /@esbuild/linux-riscv64@0.18.20: 218 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 219 | engines: {node: '>=12'} 220 | cpu: [riscv64] 221 | os: [linux] 222 | requiresBuild: true 223 | dev: true 224 | optional: true 225 | 226 | /@esbuild/linux-s390x@0.18.20: 227 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 228 | engines: {node: '>=12'} 229 | cpu: [s390x] 230 | os: [linux] 231 | requiresBuild: true 232 | dev: true 233 | optional: true 234 | 235 | /@esbuild/linux-x64@0.18.20: 236 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 237 | engines: {node: '>=12'} 238 | cpu: [x64] 239 | os: [linux] 240 | requiresBuild: true 241 | dev: true 242 | optional: true 243 | 244 | /@esbuild/netbsd-x64@0.18.20: 245 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 246 | engines: {node: '>=12'} 247 | cpu: [x64] 248 | os: [netbsd] 249 | requiresBuild: true 250 | dev: true 251 | optional: true 252 | 253 | /@esbuild/openbsd-x64@0.18.20: 254 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 255 | engines: {node: '>=12'} 256 | cpu: [x64] 257 | os: [openbsd] 258 | requiresBuild: true 259 | dev: true 260 | optional: true 261 | 262 | /@esbuild/sunos-x64@0.18.20: 263 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 264 | engines: {node: '>=12'} 265 | cpu: [x64] 266 | os: [sunos] 267 | requiresBuild: true 268 | dev: true 269 | optional: true 270 | 271 | /@esbuild/win32-arm64@0.18.20: 272 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 273 | engines: {node: '>=12'} 274 | cpu: [arm64] 275 | os: [win32] 276 | requiresBuild: true 277 | dev: true 278 | optional: true 279 | 280 | /@esbuild/win32-ia32@0.18.20: 281 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 282 | engines: {node: '>=12'} 283 | cpu: [ia32] 284 | os: [win32] 285 | requiresBuild: true 286 | dev: true 287 | optional: true 288 | 289 | /@esbuild/win32-x64@0.18.20: 290 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 291 | engines: {node: '>=12'} 292 | cpu: [x64] 293 | os: [win32] 294 | requiresBuild: true 295 | dev: true 296 | optional: true 297 | 298 | /@eslint/eslintrc@1.4.1: 299 | resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} 300 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 301 | dependencies: 302 | ajv: 6.12.6 303 | debug: 4.3.4 304 | espree: 9.6.1 305 | globals: 13.23.0 306 | ignore: 5.2.4 307 | import-fresh: 3.3.0 308 | js-yaml: 4.1.0 309 | minimatch: 3.1.2 310 | strip-json-comments: 3.1.1 311 | transitivePeerDependencies: 312 | - supports-color 313 | dev: true 314 | 315 | /@humanwhocodes/config-array@0.6.0: 316 | resolution: {integrity: sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==} 317 | engines: {node: '>=10.10.0'} 318 | dependencies: 319 | '@humanwhocodes/object-schema': 1.2.1 320 | debug: 4.3.4 321 | minimatch: 3.1.2 322 | transitivePeerDependencies: 323 | - supports-color 324 | dev: true 325 | 326 | /@humanwhocodes/object-schema@1.2.1: 327 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 328 | dev: true 329 | 330 | /@jridgewell/gen-mapping@0.3.3: 331 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 332 | engines: {node: '>=6.0.0'} 333 | dependencies: 334 | '@jridgewell/set-array': 1.1.2 335 | '@jridgewell/sourcemap-codec': 1.4.15 336 | '@jridgewell/trace-mapping': 0.3.20 337 | dev: true 338 | 339 | /@jridgewell/resolve-uri@3.1.1: 340 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 341 | engines: {node: '>=6.0.0'} 342 | dev: true 343 | 344 | /@jridgewell/set-array@1.1.2: 345 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 346 | engines: {node: '>=6.0.0'} 347 | dev: true 348 | 349 | /@jridgewell/sourcemap-codec@1.4.15: 350 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 351 | dev: true 352 | 353 | /@jridgewell/trace-mapping@0.3.20: 354 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} 355 | dependencies: 356 | '@jridgewell/resolve-uri': 3.1.1 357 | '@jridgewell/sourcemap-codec': 1.4.15 358 | dev: true 359 | 360 | /@lucia-auth/adapter-sqlite@2.0.1(better-sqlite3@9.0.0)(lucia@2.7.2): 361 | resolution: {integrity: sha512-yc7XQ4X3sWG1gyUGHqaXipJIkmvB4MOgJypnSMWy7Vjhn3AOCM2xw51xTs+dGpLOQIn2Laomg9xpmDM2/9tgqQ==} 362 | peerDependencies: 363 | '@libsql/client': ^0.3.0 364 | better-sqlite3: 8.x - 9.x 365 | lucia: ^2.0.0 366 | peerDependenciesMeta: 367 | '@libsql/client': 368 | optional: true 369 | better-sqlite3: 370 | optional: true 371 | dependencies: 372 | better-sqlite3: 9.0.0 373 | lucia: 2.7.2 374 | dev: false 375 | 376 | /@next/env@14.0.1: 377 | resolution: {integrity: sha512-Ms8ZswqY65/YfcjrlcIwMPD7Rg/dVjdLapMcSHG26W6O67EJDF435ShW4H4LXi1xKO1oRc97tLXUpx8jpLe86A==} 378 | dev: false 379 | 380 | /@next/eslint-plugin-next@14.0.1: 381 | resolution: {integrity: sha512-bLjJMwXdzvhnQOnxvHoTTUh/+PYk6FF/DCgHi4BXwXCINer+o1ZYfL9aVeezj/oI7wqGJOqwGIXrlBvPbAId3w==} 382 | dependencies: 383 | glob: 7.1.7 384 | dev: true 385 | 386 | /@next/swc-darwin-arm64@14.0.1: 387 | resolution: {integrity: sha512-JyxnGCS4qT67hdOKQ0CkgFTp+PXub5W1wsGvIq98TNbF3YEIN7iDekYhYsZzc8Ov0pWEsghQt+tANdidITCLaw==} 388 | engines: {node: '>= 10'} 389 | cpu: [arm64] 390 | os: [darwin] 391 | requiresBuild: true 392 | dev: false 393 | optional: true 394 | 395 | /@next/swc-darwin-x64@14.0.1: 396 | resolution: {integrity: sha512-625Z7bb5AyIzswF9hvfZWa+HTwFZw+Jn3lOBNZB87lUS0iuCYDHqk3ujuHCkiyPtSC0xFBtYDLcrZ11mF/ap3w==} 397 | engines: {node: '>= 10'} 398 | cpu: [x64] 399 | os: [darwin] 400 | requiresBuild: true 401 | dev: false 402 | optional: true 403 | 404 | /@next/swc-linux-arm64-gnu@14.0.1: 405 | resolution: {integrity: sha512-iVpn3KG3DprFXzVHM09kvb//4CNNXBQ9NB/pTm8LO+vnnnaObnzFdS5KM+w1okwa32xH0g8EvZIhoB3fI3mS1g==} 406 | engines: {node: '>= 10'} 407 | cpu: [arm64] 408 | os: [linux] 409 | requiresBuild: true 410 | dev: false 411 | optional: true 412 | 413 | /@next/swc-linux-arm64-musl@14.0.1: 414 | resolution: {integrity: sha512-mVsGyMxTLWZXyD5sen6kGOTYVOO67lZjLApIj/JsTEEohDDt1im2nkspzfV5MvhfS7diDw6Rp/xvAQaWZTv1Ww==} 415 | engines: {node: '>= 10'} 416 | cpu: [arm64] 417 | os: [linux] 418 | requiresBuild: true 419 | dev: false 420 | optional: true 421 | 422 | /@next/swc-linux-x64-gnu@14.0.1: 423 | resolution: {integrity: sha512-wMqf90uDWN001NqCM/auRl3+qVVeKfjJdT9XW+RMIOf+rhUzadmYJu++tp2y+hUbb6GTRhT+VjQzcgg/QTD9NQ==} 424 | engines: {node: '>= 10'} 425 | cpu: [x64] 426 | os: [linux] 427 | requiresBuild: true 428 | dev: false 429 | optional: true 430 | 431 | /@next/swc-linux-x64-musl@14.0.1: 432 | resolution: {integrity: sha512-ol1X1e24w4j4QwdeNjfX0f+Nza25n+ymY0T2frTyalVczUmzkVD7QGgPTZMHfR1aLrO69hBs0G3QBYaj22J5GQ==} 433 | engines: {node: '>= 10'} 434 | cpu: [x64] 435 | os: [linux] 436 | requiresBuild: true 437 | dev: false 438 | optional: true 439 | 440 | /@next/swc-win32-arm64-msvc@14.0.1: 441 | resolution: {integrity: sha512-WEmTEeWs6yRUEnUlahTgvZteh5RJc4sEjCQIodJlZZ5/VJwVP8p2L7l6VhzQhT4h7KvLx/Ed4UViBdne6zpIsw==} 442 | engines: {node: '>= 10'} 443 | cpu: [arm64] 444 | os: [win32] 445 | requiresBuild: true 446 | dev: false 447 | optional: true 448 | 449 | /@next/swc-win32-ia32-msvc@14.0.1: 450 | resolution: {integrity: sha512-oFpHphN4ygAgZUKjzga7SoH2VGbEJXZa/KL8bHCAwCjDWle6R1SpiGOdUdA8EJ9YsG1TYWpzY6FTbUA+iAJeww==} 451 | engines: {node: '>= 10'} 452 | cpu: [ia32] 453 | os: [win32] 454 | requiresBuild: true 455 | dev: false 456 | optional: true 457 | 458 | /@next/swc-win32-x64-msvc@14.0.1: 459 | resolution: {integrity: sha512-FFp3nOJ/5qSpeWT0BZQ+YE1pSMk4IMpkME/1DwKBwhg4mJLB9L+6EXuJi4JEwaJdl5iN+UUlmUD3IsR1kx5fAg==} 460 | engines: {node: '>= 10'} 461 | cpu: [x64] 462 | os: [win32] 463 | requiresBuild: true 464 | dev: false 465 | optional: true 466 | 467 | /@nodelib/fs.scandir@2.1.5: 468 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 469 | engines: {node: '>= 8'} 470 | dependencies: 471 | '@nodelib/fs.stat': 2.0.5 472 | run-parallel: 1.2.0 473 | dev: true 474 | 475 | /@nodelib/fs.stat@2.0.5: 476 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 477 | engines: {node: '>= 8'} 478 | dev: true 479 | 480 | /@nodelib/fs.walk@1.2.8: 481 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 482 | engines: {node: '>= 8'} 483 | dependencies: 484 | '@nodelib/fs.scandir': 2.1.5 485 | fastq: 1.15.0 486 | dev: true 487 | 488 | /@rushstack/eslint-patch@1.5.1: 489 | resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} 490 | dev: true 491 | 492 | /@swc/helpers@0.5.2: 493 | resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} 494 | dependencies: 495 | tslib: 2.6.2 496 | dev: false 497 | 498 | /@types/better-sqlite3@7.6.6: 499 | resolution: {integrity: sha512-nuFAptzt0hZYBvyLzKQCbuCCK+RN9PHH4ezar5EJLIg2qpVhwQ/uLvLO/K8A9O7N8DafawgFupiyXQSs0U48Ng==} 500 | dependencies: 501 | '@types/node': 20.0.0 502 | 503 | /@types/json5@0.0.29: 504 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 505 | dev: true 506 | 507 | /@types/node@20.0.0: 508 | resolution: {integrity: sha512-cD2uPTDnQQCVpmRefonO98/PPijuOnnEy5oytWJFPY1N9aJCz2wJ5kSGWO+zJoed2cY2JxQh6yBuUq4vIn61hw==} 509 | 510 | /@types/prop-types@15.7.9: 511 | resolution: {integrity: sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==} 512 | dev: true 513 | 514 | /@types/react-dom@18.0.0: 515 | resolution: {integrity: sha512-49897Y0UiCGmxZqpC8Blrf6meL8QUla6eb+BBhn69dTXlmuOlzkfr7HHY/O8J25e1lTUMs+YYxSlVDAaGHCOLg==} 516 | dependencies: 517 | '@types/react': 18.0.0 518 | dev: true 519 | 520 | /@types/react@18.0.0: 521 | resolution: {integrity: sha512-7+K7zEQYu7NzOwQGLR91KwWXXDzmTFODRVizJyIALf6RfLv2GDpqpknX64pvRVILXCpXi7O/pua8NGk44dLvJw==} 522 | dependencies: 523 | '@types/prop-types': 15.7.9 524 | '@types/scheduler': 0.16.5 525 | csstype: 3.1.2 526 | dev: true 527 | 528 | /@types/scheduler@0.16.5: 529 | resolution: {integrity: sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==} 530 | dev: true 531 | 532 | /@typescript-eslint/parser@6.9.1(eslint@8.0.0)(typescript@5.0.2): 533 | resolution: {integrity: sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==} 534 | engines: {node: ^16.0.0 || >=18.0.0} 535 | peerDependencies: 536 | eslint: ^7.0.0 || ^8.0.0 537 | typescript: '*' 538 | peerDependenciesMeta: 539 | typescript: 540 | optional: true 541 | dependencies: 542 | '@typescript-eslint/scope-manager': 6.9.1 543 | '@typescript-eslint/types': 6.9.1 544 | '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.0.2) 545 | '@typescript-eslint/visitor-keys': 6.9.1 546 | debug: 4.3.4 547 | eslint: 8.0.0 548 | typescript: 5.0.2 549 | transitivePeerDependencies: 550 | - supports-color 551 | dev: true 552 | 553 | /@typescript-eslint/scope-manager@6.9.1: 554 | resolution: {integrity: sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==} 555 | engines: {node: ^16.0.0 || >=18.0.0} 556 | dependencies: 557 | '@typescript-eslint/types': 6.9.1 558 | '@typescript-eslint/visitor-keys': 6.9.1 559 | dev: true 560 | 561 | /@typescript-eslint/types@6.9.1: 562 | resolution: {integrity: sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==} 563 | engines: {node: ^16.0.0 || >=18.0.0} 564 | dev: true 565 | 566 | /@typescript-eslint/typescript-estree@6.9.1(typescript@5.0.2): 567 | resolution: {integrity: sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==} 568 | engines: {node: ^16.0.0 || >=18.0.0} 569 | peerDependencies: 570 | typescript: '*' 571 | peerDependenciesMeta: 572 | typescript: 573 | optional: true 574 | dependencies: 575 | '@typescript-eslint/types': 6.9.1 576 | '@typescript-eslint/visitor-keys': 6.9.1 577 | debug: 4.3.4 578 | globby: 11.1.0 579 | is-glob: 4.0.3 580 | semver: 7.5.4 581 | ts-api-utils: 1.0.3(typescript@5.0.2) 582 | typescript: 5.0.2 583 | transitivePeerDependencies: 584 | - supports-color 585 | dev: true 586 | 587 | /@typescript-eslint/visitor-keys@6.9.1: 588 | resolution: {integrity: sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==} 589 | engines: {node: ^16.0.0 || >=18.0.0} 590 | dependencies: 591 | '@typescript-eslint/types': 6.9.1 592 | eslint-visitor-keys: 3.4.3 593 | dev: true 594 | 595 | /acorn-jsx@5.3.2(acorn@8.11.2): 596 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 597 | peerDependencies: 598 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 599 | dependencies: 600 | acorn: 8.11.2 601 | dev: true 602 | 603 | /acorn@8.11.2: 604 | resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} 605 | engines: {node: '>=0.4.0'} 606 | hasBin: true 607 | dev: true 608 | 609 | /ajv@6.12.6: 610 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 611 | dependencies: 612 | fast-deep-equal: 3.1.3 613 | fast-json-stable-stringify: 2.1.0 614 | json-schema-traverse: 0.4.1 615 | uri-js: 4.4.1 616 | dev: true 617 | 618 | /ansi-colors@4.1.3: 619 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 620 | engines: {node: '>=6'} 621 | dev: true 622 | 623 | /ansi-regex@5.0.1: 624 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 625 | engines: {node: '>=8'} 626 | dev: true 627 | 628 | /ansi-styles@4.3.0: 629 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 630 | engines: {node: '>=8'} 631 | dependencies: 632 | color-convert: 2.0.1 633 | dev: true 634 | 635 | /any-promise@1.3.0: 636 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 637 | dev: true 638 | 639 | /anymatch@3.1.3: 640 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 641 | engines: {node: '>= 8'} 642 | dependencies: 643 | normalize-path: 3.0.0 644 | picomatch: 2.3.1 645 | dev: true 646 | 647 | /arg@5.0.2: 648 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 649 | dev: true 650 | 651 | /argparse@2.0.1: 652 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 653 | dev: true 654 | 655 | /aria-query@5.3.0: 656 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 657 | dependencies: 658 | dequal: 2.0.3 659 | dev: true 660 | 661 | /array-buffer-byte-length@1.0.0: 662 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 663 | dependencies: 664 | call-bind: 1.0.5 665 | is-array-buffer: 3.0.2 666 | dev: true 667 | 668 | /array-includes@3.1.7: 669 | resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} 670 | engines: {node: '>= 0.4'} 671 | dependencies: 672 | call-bind: 1.0.5 673 | define-properties: 1.2.1 674 | es-abstract: 1.22.3 675 | get-intrinsic: 1.2.2 676 | is-string: 1.0.7 677 | dev: true 678 | 679 | /array-union@2.1.0: 680 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 681 | engines: {node: '>=8'} 682 | dev: true 683 | 684 | /array.prototype.findlastindex@1.2.3: 685 | resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} 686 | engines: {node: '>= 0.4'} 687 | dependencies: 688 | call-bind: 1.0.5 689 | define-properties: 1.2.1 690 | es-abstract: 1.22.3 691 | es-shim-unscopables: 1.0.2 692 | get-intrinsic: 1.2.2 693 | dev: true 694 | 695 | /array.prototype.flat@1.3.2: 696 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 697 | engines: {node: '>= 0.4'} 698 | dependencies: 699 | call-bind: 1.0.5 700 | define-properties: 1.2.1 701 | es-abstract: 1.22.3 702 | es-shim-unscopables: 1.0.2 703 | dev: true 704 | 705 | /array.prototype.flatmap@1.3.2: 706 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 707 | engines: {node: '>= 0.4'} 708 | dependencies: 709 | call-bind: 1.0.5 710 | define-properties: 1.2.1 711 | es-abstract: 1.22.3 712 | es-shim-unscopables: 1.0.2 713 | dev: true 714 | 715 | /array.prototype.tosorted@1.1.2: 716 | resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} 717 | dependencies: 718 | call-bind: 1.0.5 719 | define-properties: 1.2.1 720 | es-abstract: 1.22.3 721 | es-shim-unscopables: 1.0.2 722 | get-intrinsic: 1.2.2 723 | dev: true 724 | 725 | /arraybuffer.prototype.slice@1.0.2: 726 | resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} 727 | engines: {node: '>= 0.4'} 728 | dependencies: 729 | array-buffer-byte-length: 1.0.0 730 | call-bind: 1.0.5 731 | define-properties: 1.2.1 732 | es-abstract: 1.22.3 733 | get-intrinsic: 1.2.2 734 | is-array-buffer: 3.0.2 735 | is-shared-array-buffer: 1.0.2 736 | dev: true 737 | 738 | /ast-types-flow@0.0.8: 739 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 740 | dev: true 741 | 742 | /asynciterator.prototype@1.0.0: 743 | resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} 744 | dependencies: 745 | has-symbols: 1.0.3 746 | dev: true 747 | 748 | /autoprefixer@10.0.1(postcss@8.0.0): 749 | resolution: {integrity: sha512-aQo2BDIsoOdemXUAOBpFv4ZQa2DrOtEufarYhtFsK1088Ca0TUwu/aQWf0M3mrILXZ3mTIVn1lR3hPW8acacsw==} 750 | engines: {node: ^10 || ^12 || >=14} 751 | hasBin: true 752 | peerDependencies: 753 | postcss: ^8.1.0 754 | dependencies: 755 | browserslist: 4.22.1 756 | caniuse-lite: 1.0.30001559 757 | colorette: 1.4.0 758 | normalize-range: 0.1.2 759 | num2fraction: 1.2.2 760 | postcss: 8.0.0 761 | postcss-value-parser: 4.2.0 762 | dev: true 763 | 764 | /available-typed-arrays@1.0.5: 765 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 766 | engines: {node: '>= 0.4'} 767 | dev: true 768 | 769 | /axe-core@4.7.0: 770 | resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} 771 | engines: {node: '>=4'} 772 | dev: true 773 | 774 | /axobject-query@3.2.1: 775 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} 776 | dependencies: 777 | dequal: 2.0.3 778 | dev: true 779 | 780 | /balanced-match@1.0.2: 781 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 782 | dev: true 783 | 784 | /base64-js@1.5.1: 785 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 786 | dev: false 787 | 788 | /better-sqlite3@9.0.0: 789 | resolution: {integrity: sha512-lDxQ9qg/XuUHZG6xzrQaMHkNWl37t35/LPB/VJGV8DdScSuGFNfFSqgscXEd8UIuyk/d9wU8iaMxQa4If5Wqog==} 790 | requiresBuild: true 791 | dependencies: 792 | bindings: 1.5.0 793 | prebuild-install: 7.1.1 794 | dev: false 795 | 796 | /binary-extensions@2.2.0: 797 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 798 | engines: {node: '>=8'} 799 | dev: true 800 | 801 | /bindings@1.5.0: 802 | resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} 803 | dependencies: 804 | file-uri-to-path: 1.0.0 805 | dev: false 806 | 807 | /bl@4.1.0: 808 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 809 | dependencies: 810 | buffer: 5.7.1 811 | inherits: 2.0.4 812 | readable-stream: 3.6.2 813 | dev: false 814 | 815 | /brace-expansion@1.1.11: 816 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 817 | dependencies: 818 | balanced-match: 1.0.2 819 | concat-map: 0.0.1 820 | dev: true 821 | 822 | /brace-expansion@2.0.1: 823 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 824 | dependencies: 825 | balanced-match: 1.0.2 826 | dev: true 827 | 828 | /braces@3.0.2: 829 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 830 | engines: {node: '>=8'} 831 | dependencies: 832 | fill-range: 7.0.1 833 | dev: true 834 | 835 | /browserslist@4.22.1: 836 | resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} 837 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 838 | hasBin: true 839 | dependencies: 840 | caniuse-lite: 1.0.30001559 841 | electron-to-chromium: 1.4.574 842 | node-releases: 2.0.13 843 | update-browserslist-db: 1.0.13(browserslist@4.22.1) 844 | dev: true 845 | 846 | /buffer-from@1.1.2: 847 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 848 | dev: true 849 | 850 | /buffer@5.7.1: 851 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 852 | dependencies: 853 | base64-js: 1.5.1 854 | ieee754: 1.2.1 855 | dev: false 856 | 857 | /busboy@1.6.0: 858 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 859 | engines: {node: '>=10.16.0'} 860 | dependencies: 861 | streamsearch: 1.1.0 862 | dev: false 863 | 864 | /call-bind@1.0.5: 865 | resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} 866 | dependencies: 867 | function-bind: 1.1.2 868 | get-intrinsic: 1.2.2 869 | set-function-length: 1.1.1 870 | dev: true 871 | 872 | /callsites@3.1.0: 873 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 874 | engines: {node: '>=6'} 875 | dev: true 876 | 877 | /camelcase-css@2.0.1: 878 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 879 | engines: {node: '>= 6'} 880 | dev: true 881 | 882 | /camelcase@7.0.1: 883 | resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} 884 | engines: {node: '>=14.16'} 885 | dev: true 886 | 887 | /caniuse-lite@1.0.30001559: 888 | resolution: {integrity: sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==} 889 | 890 | /chalk@4.1.2: 891 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 892 | engines: {node: '>=10'} 893 | dependencies: 894 | ansi-styles: 4.3.0 895 | supports-color: 7.2.0 896 | dev: true 897 | 898 | /chalk@5.3.0: 899 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 900 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 901 | dev: true 902 | 903 | /chokidar@3.5.3: 904 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 905 | engines: {node: '>= 8.10.0'} 906 | dependencies: 907 | anymatch: 3.1.3 908 | braces: 3.0.2 909 | glob-parent: 5.1.2 910 | is-binary-path: 2.1.0 911 | is-glob: 4.0.3 912 | normalize-path: 3.0.0 913 | readdirp: 3.6.0 914 | optionalDependencies: 915 | fsevents: 2.3.3 916 | dev: true 917 | 918 | /chownr@1.1.4: 919 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 920 | dev: false 921 | 922 | /cli-color@2.0.3: 923 | resolution: {integrity: sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==} 924 | engines: {node: '>=0.10'} 925 | dependencies: 926 | d: 1.0.1 927 | es5-ext: 0.10.62 928 | es6-iterator: 2.0.3 929 | memoizee: 0.4.15 930 | timers-ext: 0.1.7 931 | dev: true 932 | 933 | /client-only@0.0.1: 934 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 935 | dev: false 936 | 937 | /color-convert@2.0.1: 938 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 939 | engines: {node: '>=7.0.0'} 940 | dependencies: 941 | color-name: 1.1.4 942 | dev: true 943 | 944 | /color-name@1.1.4: 945 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 946 | dev: true 947 | 948 | /colorette@1.4.0: 949 | resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} 950 | dev: true 951 | 952 | /commander@4.1.1: 953 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 954 | engines: {node: '>= 6'} 955 | dev: true 956 | 957 | /commander@9.5.0: 958 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} 959 | engines: {node: ^12.20.0 || >=14} 960 | dev: true 961 | 962 | /concat-map@0.0.1: 963 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 964 | dev: true 965 | 966 | /cross-spawn@7.0.3: 967 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 968 | engines: {node: '>= 8'} 969 | dependencies: 970 | path-key: 3.1.1 971 | shebang-command: 2.0.0 972 | which: 2.0.2 973 | dev: true 974 | 975 | /cssesc@3.0.0: 976 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 977 | engines: {node: '>=4'} 978 | hasBin: true 979 | dev: true 980 | 981 | /csstype@3.1.2: 982 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} 983 | dev: true 984 | 985 | /d@1.0.1: 986 | resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} 987 | dependencies: 988 | es5-ext: 0.10.62 989 | type: 1.2.0 990 | dev: true 991 | 992 | /damerau-levenshtein@1.0.8: 993 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 994 | dev: true 995 | 996 | /debug@3.2.7: 997 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 998 | peerDependencies: 999 | supports-color: '*' 1000 | peerDependenciesMeta: 1001 | supports-color: 1002 | optional: true 1003 | dependencies: 1004 | ms: 2.1.3 1005 | dev: true 1006 | 1007 | /debug@4.3.4: 1008 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1009 | engines: {node: '>=6.0'} 1010 | peerDependencies: 1011 | supports-color: '*' 1012 | peerDependenciesMeta: 1013 | supports-color: 1014 | optional: true 1015 | dependencies: 1016 | ms: 2.1.2 1017 | dev: true 1018 | 1019 | /decompress-response@6.0.0: 1020 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} 1021 | engines: {node: '>=10'} 1022 | dependencies: 1023 | mimic-response: 3.1.0 1024 | dev: false 1025 | 1026 | /deep-extend@0.6.0: 1027 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 1028 | engines: {node: '>=4.0.0'} 1029 | dev: false 1030 | 1031 | /deep-is@0.1.4: 1032 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1033 | dev: true 1034 | 1035 | /define-data-property@1.1.1: 1036 | resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} 1037 | engines: {node: '>= 0.4'} 1038 | dependencies: 1039 | get-intrinsic: 1.2.2 1040 | gopd: 1.0.1 1041 | has-property-descriptors: 1.0.1 1042 | dev: true 1043 | 1044 | /define-properties@1.2.1: 1045 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 1046 | engines: {node: '>= 0.4'} 1047 | dependencies: 1048 | define-data-property: 1.1.1 1049 | has-property-descriptors: 1.0.1 1050 | object-keys: 1.1.1 1051 | dev: true 1052 | 1053 | /dequal@2.0.3: 1054 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1055 | engines: {node: '>=6'} 1056 | dev: true 1057 | 1058 | /detect-libc@2.0.2: 1059 | resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} 1060 | engines: {node: '>=8'} 1061 | dev: false 1062 | 1063 | /didyoumean@1.2.2: 1064 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1065 | dev: true 1066 | 1067 | /difflib@0.2.4: 1068 | resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} 1069 | dependencies: 1070 | heap: 0.2.7 1071 | dev: true 1072 | 1073 | /dir-glob@3.0.1: 1074 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1075 | engines: {node: '>=8'} 1076 | dependencies: 1077 | path-type: 4.0.0 1078 | dev: true 1079 | 1080 | /dlv@1.1.3: 1081 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1082 | dev: true 1083 | 1084 | /doctrine@2.1.0: 1085 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1086 | engines: {node: '>=0.10.0'} 1087 | dependencies: 1088 | esutils: 2.0.3 1089 | dev: true 1090 | 1091 | /doctrine@3.0.0: 1092 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1093 | engines: {node: '>=6.0.0'} 1094 | dependencies: 1095 | esutils: 2.0.3 1096 | dev: true 1097 | 1098 | /dotenv@16.3.1: 1099 | resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} 1100 | engines: {node: '>=12'} 1101 | dev: true 1102 | 1103 | /dreamopt@0.8.0: 1104 | resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} 1105 | engines: {node: '>=0.4.0'} 1106 | dependencies: 1107 | wordwrap: 1.0.0 1108 | dev: true 1109 | 1110 | /drizzle-kit@0.19.13: 1111 | resolution: {integrity: sha512-Rba5VW1O2JfJlwVBeZ8Zwt2E2us5oZ08PQBDiVSGlug53TOc8hzXjblZFuF+dnll9/RQEHrkzBmJFgqTvn5Rxg==} 1112 | hasBin: true 1113 | dependencies: 1114 | '@drizzle-team/studio': 0.0.5 1115 | '@esbuild-kit/esm-loader': 2.6.5 1116 | camelcase: 7.0.1 1117 | chalk: 5.3.0 1118 | commander: 9.5.0 1119 | esbuild: 0.18.20 1120 | esbuild-register: 3.5.0(esbuild@0.18.20) 1121 | glob: 8.1.0 1122 | hanji: 0.0.5 1123 | json-diff: 0.9.0 1124 | minimatch: 7.4.6 1125 | zod: 3.22.4 1126 | transitivePeerDependencies: 1127 | - supports-color 1128 | dev: true 1129 | 1130 | /drizzle-orm@0.28.6(@types/better-sqlite3@7.6.6)(better-sqlite3@9.0.0): 1131 | resolution: {integrity: sha512-yBe+F9htrlYER7uXgDJUQsTHFoIrI5yMm5A0bg0GiZ/kY5jNXTWoEy4KQtg35cE27sw1VbgzoMWHAgCckUUUww==} 1132 | peerDependencies: 1133 | '@aws-sdk/client-rds-data': '>=3' 1134 | '@cloudflare/workers-types': '>=3' 1135 | '@libsql/client': '*' 1136 | '@neondatabase/serverless': '>=0.1' 1137 | '@opentelemetry/api': ^1.4.1 1138 | '@planetscale/database': '>=1' 1139 | '@types/better-sqlite3': '*' 1140 | '@types/pg': '*' 1141 | '@types/sql.js': '*' 1142 | '@vercel/postgres': '*' 1143 | better-sqlite3: '>=7' 1144 | bun-types: '*' 1145 | knex: '*' 1146 | kysely: '*' 1147 | mysql2: '>=2' 1148 | pg: '>=8' 1149 | postgres: '>=3' 1150 | sql.js: '>=1' 1151 | sqlite3: '>=5' 1152 | peerDependenciesMeta: 1153 | '@aws-sdk/client-rds-data': 1154 | optional: true 1155 | '@cloudflare/workers-types': 1156 | optional: true 1157 | '@libsql/client': 1158 | optional: true 1159 | '@neondatabase/serverless': 1160 | optional: true 1161 | '@opentelemetry/api': 1162 | optional: true 1163 | '@planetscale/database': 1164 | optional: true 1165 | '@types/better-sqlite3': 1166 | optional: true 1167 | '@types/pg': 1168 | optional: true 1169 | '@types/sql.js': 1170 | optional: true 1171 | '@vercel/postgres': 1172 | optional: true 1173 | better-sqlite3: 1174 | optional: true 1175 | bun-types: 1176 | optional: true 1177 | knex: 1178 | optional: true 1179 | kysely: 1180 | optional: true 1181 | mysql2: 1182 | optional: true 1183 | pg: 1184 | optional: true 1185 | postgres: 1186 | optional: true 1187 | sql.js: 1188 | optional: true 1189 | sqlite3: 1190 | optional: true 1191 | dependencies: 1192 | '@types/better-sqlite3': 7.6.6 1193 | better-sqlite3: 9.0.0 1194 | dev: false 1195 | 1196 | /electron-to-chromium@1.4.574: 1197 | resolution: {integrity: sha512-bg1m8L0n02xRzx4LsTTMbBPiUd9yIR+74iPtS/Ao65CuXvhVZHP0ym1kSdDG3yHFDXqHQQBKujlN1AQ8qZnyFg==} 1198 | dev: true 1199 | 1200 | /emoji-regex@9.2.2: 1201 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1202 | dev: true 1203 | 1204 | /end-of-stream@1.4.4: 1205 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1206 | dependencies: 1207 | once: 1.4.0 1208 | dev: false 1209 | 1210 | /enhanced-resolve@5.15.0: 1211 | resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} 1212 | engines: {node: '>=10.13.0'} 1213 | dependencies: 1214 | graceful-fs: 4.2.11 1215 | tapable: 2.2.1 1216 | dev: true 1217 | 1218 | /enquirer@2.4.1: 1219 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} 1220 | engines: {node: '>=8.6'} 1221 | dependencies: 1222 | ansi-colors: 4.1.3 1223 | strip-ansi: 6.0.1 1224 | dev: true 1225 | 1226 | /es-abstract@1.22.3: 1227 | resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} 1228 | engines: {node: '>= 0.4'} 1229 | dependencies: 1230 | array-buffer-byte-length: 1.0.0 1231 | arraybuffer.prototype.slice: 1.0.2 1232 | available-typed-arrays: 1.0.5 1233 | call-bind: 1.0.5 1234 | es-set-tostringtag: 2.0.2 1235 | es-to-primitive: 1.2.1 1236 | function.prototype.name: 1.1.6 1237 | get-intrinsic: 1.2.2 1238 | get-symbol-description: 1.0.0 1239 | globalthis: 1.0.3 1240 | gopd: 1.0.1 1241 | has-property-descriptors: 1.0.1 1242 | has-proto: 1.0.1 1243 | has-symbols: 1.0.3 1244 | hasown: 2.0.0 1245 | internal-slot: 1.0.6 1246 | is-array-buffer: 3.0.2 1247 | is-callable: 1.2.7 1248 | is-negative-zero: 2.0.2 1249 | is-regex: 1.1.4 1250 | is-shared-array-buffer: 1.0.2 1251 | is-string: 1.0.7 1252 | is-typed-array: 1.1.12 1253 | is-weakref: 1.0.2 1254 | object-inspect: 1.13.1 1255 | object-keys: 1.1.1 1256 | object.assign: 4.1.4 1257 | regexp.prototype.flags: 1.5.1 1258 | safe-array-concat: 1.0.1 1259 | safe-regex-test: 1.0.0 1260 | string.prototype.trim: 1.2.8 1261 | string.prototype.trimend: 1.0.7 1262 | string.prototype.trimstart: 1.0.7 1263 | typed-array-buffer: 1.0.0 1264 | typed-array-byte-length: 1.0.0 1265 | typed-array-byte-offset: 1.0.0 1266 | typed-array-length: 1.0.4 1267 | unbox-primitive: 1.0.2 1268 | which-typed-array: 1.1.13 1269 | dev: true 1270 | 1271 | /es-iterator-helpers@1.0.15: 1272 | resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} 1273 | dependencies: 1274 | asynciterator.prototype: 1.0.0 1275 | call-bind: 1.0.5 1276 | define-properties: 1.2.1 1277 | es-abstract: 1.22.3 1278 | es-set-tostringtag: 2.0.2 1279 | function-bind: 1.1.2 1280 | get-intrinsic: 1.2.2 1281 | globalthis: 1.0.3 1282 | has-property-descriptors: 1.0.1 1283 | has-proto: 1.0.1 1284 | has-symbols: 1.0.3 1285 | internal-slot: 1.0.6 1286 | iterator.prototype: 1.1.2 1287 | safe-array-concat: 1.0.1 1288 | dev: true 1289 | 1290 | /es-set-tostringtag@2.0.2: 1291 | resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} 1292 | engines: {node: '>= 0.4'} 1293 | dependencies: 1294 | get-intrinsic: 1.2.2 1295 | has-tostringtag: 1.0.0 1296 | hasown: 2.0.0 1297 | dev: true 1298 | 1299 | /es-shim-unscopables@1.0.2: 1300 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 1301 | dependencies: 1302 | hasown: 2.0.0 1303 | dev: true 1304 | 1305 | /es-to-primitive@1.2.1: 1306 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1307 | engines: {node: '>= 0.4'} 1308 | dependencies: 1309 | is-callable: 1.2.7 1310 | is-date-object: 1.0.5 1311 | is-symbol: 1.0.4 1312 | dev: true 1313 | 1314 | /es5-ext@0.10.62: 1315 | resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} 1316 | engines: {node: '>=0.10'} 1317 | requiresBuild: true 1318 | dependencies: 1319 | es6-iterator: 2.0.3 1320 | es6-symbol: 3.1.3 1321 | next-tick: 1.1.0 1322 | dev: true 1323 | 1324 | /es6-iterator@2.0.3: 1325 | resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} 1326 | dependencies: 1327 | d: 1.0.1 1328 | es5-ext: 0.10.62 1329 | es6-symbol: 3.1.3 1330 | dev: true 1331 | 1332 | /es6-symbol@3.1.3: 1333 | resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} 1334 | dependencies: 1335 | d: 1.0.1 1336 | ext: 1.7.0 1337 | dev: true 1338 | 1339 | /es6-weak-map@2.0.3: 1340 | resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} 1341 | dependencies: 1342 | d: 1.0.1 1343 | es5-ext: 0.10.62 1344 | es6-iterator: 2.0.3 1345 | es6-symbol: 3.1.3 1346 | dev: true 1347 | 1348 | /esbuild-register@3.5.0(esbuild@0.18.20): 1349 | resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} 1350 | peerDependencies: 1351 | esbuild: '>=0.12 <1' 1352 | dependencies: 1353 | debug: 4.3.4 1354 | esbuild: 0.18.20 1355 | transitivePeerDependencies: 1356 | - supports-color 1357 | dev: true 1358 | 1359 | /esbuild@0.18.20: 1360 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 1361 | engines: {node: '>=12'} 1362 | hasBin: true 1363 | requiresBuild: true 1364 | optionalDependencies: 1365 | '@esbuild/android-arm': 0.18.20 1366 | '@esbuild/android-arm64': 0.18.20 1367 | '@esbuild/android-x64': 0.18.20 1368 | '@esbuild/darwin-arm64': 0.18.20 1369 | '@esbuild/darwin-x64': 0.18.20 1370 | '@esbuild/freebsd-arm64': 0.18.20 1371 | '@esbuild/freebsd-x64': 0.18.20 1372 | '@esbuild/linux-arm': 0.18.20 1373 | '@esbuild/linux-arm64': 0.18.20 1374 | '@esbuild/linux-ia32': 0.18.20 1375 | '@esbuild/linux-loong64': 0.18.20 1376 | '@esbuild/linux-mips64el': 0.18.20 1377 | '@esbuild/linux-ppc64': 0.18.20 1378 | '@esbuild/linux-riscv64': 0.18.20 1379 | '@esbuild/linux-s390x': 0.18.20 1380 | '@esbuild/linux-x64': 0.18.20 1381 | '@esbuild/netbsd-x64': 0.18.20 1382 | '@esbuild/openbsd-x64': 0.18.20 1383 | '@esbuild/sunos-x64': 0.18.20 1384 | '@esbuild/win32-arm64': 0.18.20 1385 | '@esbuild/win32-ia32': 0.18.20 1386 | '@esbuild/win32-x64': 0.18.20 1387 | dev: true 1388 | 1389 | /escalade@3.1.1: 1390 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1391 | engines: {node: '>=6'} 1392 | dev: true 1393 | 1394 | /escape-string-regexp@4.0.0: 1395 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1396 | engines: {node: '>=10'} 1397 | dev: true 1398 | 1399 | /eslint-config-next@14.0.1(eslint@8.0.0)(typescript@5.0.2): 1400 | resolution: {integrity: sha512-QfIFK2WD39H4WOespjgf6PLv9Bpsd7KGGelCtmq4l67nGvnlsGpuvj0hIT+aIy6p5gKH+lAChYILsyDlxP52yg==} 1401 | peerDependencies: 1402 | eslint: ^7.23.0 || ^8.0.0 1403 | typescript: '>=3.3.1' 1404 | peerDependenciesMeta: 1405 | typescript: 1406 | optional: true 1407 | dependencies: 1408 | '@next/eslint-plugin-next': 14.0.1 1409 | '@rushstack/eslint-patch': 1.5.1 1410 | '@typescript-eslint/parser': 6.9.1(eslint@8.0.0)(typescript@5.0.2) 1411 | eslint: 8.0.0 1412 | eslint-import-resolver-node: 0.3.9 1413 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.0.0) 1414 | eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0) 1415 | eslint-plugin-jsx-a11y: 6.8.0(eslint@8.0.0) 1416 | eslint-plugin-react: 7.33.2(eslint@8.0.0) 1417 | eslint-plugin-react-hooks: 4.6.0(eslint@8.0.0) 1418 | typescript: 5.0.2 1419 | transitivePeerDependencies: 1420 | - eslint-import-resolver-webpack 1421 | - supports-color 1422 | dev: true 1423 | 1424 | /eslint-import-resolver-node@0.3.9: 1425 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 1426 | dependencies: 1427 | debug: 3.2.7 1428 | is-core-module: 2.13.1 1429 | resolve: 1.22.8 1430 | transitivePeerDependencies: 1431 | - supports-color 1432 | dev: true 1433 | 1434 | /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.0.0): 1435 | resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} 1436 | engines: {node: ^14.18.0 || >=16.0.0} 1437 | peerDependencies: 1438 | eslint: '*' 1439 | eslint-plugin-import: '*' 1440 | dependencies: 1441 | debug: 4.3.4 1442 | enhanced-resolve: 5.15.0 1443 | eslint: 8.0.0 1444 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0) 1445 | eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0) 1446 | fast-glob: 3.3.1 1447 | get-tsconfig: 4.7.2 1448 | is-core-module: 2.13.1 1449 | is-glob: 4.0.3 1450 | transitivePeerDependencies: 1451 | - '@typescript-eslint/parser' 1452 | - eslint-import-resolver-node 1453 | - eslint-import-resolver-webpack 1454 | - supports-color 1455 | dev: true 1456 | 1457 | /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0): 1458 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} 1459 | engines: {node: '>=4'} 1460 | peerDependencies: 1461 | '@typescript-eslint/parser': '*' 1462 | eslint: '*' 1463 | eslint-import-resolver-node: '*' 1464 | eslint-import-resolver-typescript: '*' 1465 | eslint-import-resolver-webpack: '*' 1466 | peerDependenciesMeta: 1467 | '@typescript-eslint/parser': 1468 | optional: true 1469 | eslint: 1470 | optional: true 1471 | eslint-import-resolver-node: 1472 | optional: true 1473 | eslint-import-resolver-typescript: 1474 | optional: true 1475 | eslint-import-resolver-webpack: 1476 | optional: true 1477 | dependencies: 1478 | '@typescript-eslint/parser': 6.9.1(eslint@8.0.0)(typescript@5.0.2) 1479 | debug: 3.2.7 1480 | eslint: 8.0.0 1481 | eslint-import-resolver-node: 0.3.9 1482 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.0.0) 1483 | transitivePeerDependencies: 1484 | - supports-color 1485 | dev: true 1486 | 1487 | /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0): 1488 | resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} 1489 | engines: {node: '>=4'} 1490 | peerDependencies: 1491 | '@typescript-eslint/parser': '*' 1492 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1493 | peerDependenciesMeta: 1494 | '@typescript-eslint/parser': 1495 | optional: true 1496 | dependencies: 1497 | '@typescript-eslint/parser': 6.9.1(eslint@8.0.0)(typescript@5.0.2) 1498 | array-includes: 3.1.7 1499 | array.prototype.findlastindex: 1.2.3 1500 | array.prototype.flat: 1.3.2 1501 | array.prototype.flatmap: 1.3.2 1502 | debug: 3.2.7 1503 | doctrine: 2.1.0 1504 | eslint: 8.0.0 1505 | eslint-import-resolver-node: 0.3.9 1506 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.0.0) 1507 | hasown: 2.0.0 1508 | is-core-module: 2.13.1 1509 | is-glob: 4.0.3 1510 | minimatch: 3.1.2 1511 | object.fromentries: 2.0.7 1512 | object.groupby: 1.0.1 1513 | object.values: 1.1.7 1514 | semver: 6.3.1 1515 | tsconfig-paths: 3.14.2 1516 | transitivePeerDependencies: 1517 | - eslint-import-resolver-typescript 1518 | - eslint-import-resolver-webpack 1519 | - supports-color 1520 | dev: true 1521 | 1522 | /eslint-plugin-jsx-a11y@6.8.0(eslint@8.0.0): 1523 | resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} 1524 | engines: {node: '>=4.0'} 1525 | peerDependencies: 1526 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1527 | dependencies: 1528 | '@babel/runtime': 7.23.2 1529 | aria-query: 5.3.0 1530 | array-includes: 3.1.7 1531 | array.prototype.flatmap: 1.3.2 1532 | ast-types-flow: 0.0.8 1533 | axe-core: 4.7.0 1534 | axobject-query: 3.2.1 1535 | damerau-levenshtein: 1.0.8 1536 | emoji-regex: 9.2.2 1537 | es-iterator-helpers: 1.0.15 1538 | eslint: 8.0.0 1539 | hasown: 2.0.0 1540 | jsx-ast-utils: 3.3.5 1541 | language-tags: 1.0.9 1542 | minimatch: 3.1.2 1543 | object.entries: 1.1.7 1544 | object.fromentries: 2.0.7 1545 | dev: true 1546 | 1547 | /eslint-plugin-react-hooks@4.6.0(eslint@8.0.0): 1548 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1549 | engines: {node: '>=10'} 1550 | peerDependencies: 1551 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1552 | dependencies: 1553 | eslint: 8.0.0 1554 | dev: true 1555 | 1556 | /eslint-plugin-react@7.33.2(eslint@8.0.0): 1557 | resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} 1558 | engines: {node: '>=4'} 1559 | peerDependencies: 1560 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1561 | dependencies: 1562 | array-includes: 3.1.7 1563 | array.prototype.flatmap: 1.3.2 1564 | array.prototype.tosorted: 1.1.2 1565 | doctrine: 2.1.0 1566 | es-iterator-helpers: 1.0.15 1567 | eslint: 8.0.0 1568 | estraverse: 5.3.0 1569 | jsx-ast-utils: 3.3.5 1570 | minimatch: 3.1.2 1571 | object.entries: 1.1.7 1572 | object.fromentries: 2.0.7 1573 | object.hasown: 1.1.3 1574 | object.values: 1.1.7 1575 | prop-types: 15.8.1 1576 | resolve: 2.0.0-next.5 1577 | semver: 6.3.1 1578 | string.prototype.matchall: 4.0.10 1579 | dev: true 1580 | 1581 | /eslint-scope@6.0.0: 1582 | resolution: {integrity: sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==} 1583 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1584 | dependencies: 1585 | esrecurse: 4.3.0 1586 | estraverse: 5.3.0 1587 | dev: true 1588 | 1589 | /eslint-utils@3.0.0(eslint@8.0.0): 1590 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1591 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1592 | peerDependencies: 1593 | eslint: '>=5' 1594 | dependencies: 1595 | eslint: 8.0.0 1596 | eslint-visitor-keys: 2.1.0 1597 | dev: true 1598 | 1599 | /eslint-visitor-keys@2.1.0: 1600 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1601 | engines: {node: '>=10'} 1602 | dev: true 1603 | 1604 | /eslint-visitor-keys@3.4.3: 1605 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1606 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1607 | dev: true 1608 | 1609 | /eslint@8.0.0: 1610 | resolution: {integrity: sha512-03spzPzMAO4pElm44m60Nj08nYonPGQXmw6Ceai/S4QK82IgwWO1EXx1s9namKzVlbVu3Jf81hb+N+8+v21/HQ==} 1611 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1612 | hasBin: true 1613 | dependencies: 1614 | '@eslint/eslintrc': 1.4.1 1615 | '@humanwhocodes/config-array': 0.6.0 1616 | ajv: 6.12.6 1617 | chalk: 4.1.2 1618 | cross-spawn: 7.0.3 1619 | debug: 4.3.4 1620 | doctrine: 3.0.0 1621 | enquirer: 2.4.1 1622 | escape-string-regexp: 4.0.0 1623 | eslint-scope: 6.0.0 1624 | eslint-utils: 3.0.0(eslint@8.0.0) 1625 | eslint-visitor-keys: 3.4.3 1626 | espree: 9.6.1 1627 | esquery: 1.5.0 1628 | esutils: 2.0.3 1629 | fast-deep-equal: 3.1.3 1630 | file-entry-cache: 6.0.1 1631 | functional-red-black-tree: 1.0.1 1632 | glob-parent: 6.0.2 1633 | globals: 13.23.0 1634 | ignore: 4.0.6 1635 | import-fresh: 3.3.0 1636 | imurmurhash: 0.1.4 1637 | is-glob: 4.0.3 1638 | js-yaml: 4.1.0 1639 | json-stable-stringify-without-jsonify: 1.0.1 1640 | levn: 0.4.1 1641 | lodash.merge: 4.6.2 1642 | minimatch: 3.1.2 1643 | natural-compare: 1.4.0 1644 | optionator: 0.9.3 1645 | progress: 2.0.3 1646 | regexpp: 3.2.0 1647 | semver: 7.5.4 1648 | strip-ansi: 6.0.1 1649 | strip-json-comments: 3.1.1 1650 | text-table: 0.2.0 1651 | v8-compile-cache: 2.4.0 1652 | transitivePeerDependencies: 1653 | - supports-color 1654 | dev: true 1655 | 1656 | /espree@9.6.1: 1657 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1658 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1659 | dependencies: 1660 | acorn: 8.11.2 1661 | acorn-jsx: 5.3.2(acorn@8.11.2) 1662 | eslint-visitor-keys: 3.4.3 1663 | dev: true 1664 | 1665 | /esquery@1.5.0: 1666 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1667 | engines: {node: '>=0.10'} 1668 | dependencies: 1669 | estraverse: 5.3.0 1670 | dev: true 1671 | 1672 | /esrecurse@4.3.0: 1673 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1674 | engines: {node: '>=4.0'} 1675 | dependencies: 1676 | estraverse: 5.3.0 1677 | dev: true 1678 | 1679 | /estraverse@5.3.0: 1680 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1681 | engines: {node: '>=4.0'} 1682 | dev: true 1683 | 1684 | /esutils@2.0.3: 1685 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1686 | engines: {node: '>=0.10.0'} 1687 | dev: true 1688 | 1689 | /event-emitter@0.3.5: 1690 | resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} 1691 | dependencies: 1692 | d: 1.0.1 1693 | es5-ext: 0.10.62 1694 | dev: true 1695 | 1696 | /expand-template@2.0.3: 1697 | resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 1698 | engines: {node: '>=6'} 1699 | dev: false 1700 | 1701 | /ext@1.7.0: 1702 | resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} 1703 | dependencies: 1704 | type: 2.7.2 1705 | dev: true 1706 | 1707 | /fast-deep-equal@3.1.3: 1708 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1709 | dev: true 1710 | 1711 | /fast-glob@3.3.1: 1712 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 1713 | engines: {node: '>=8.6.0'} 1714 | dependencies: 1715 | '@nodelib/fs.stat': 2.0.5 1716 | '@nodelib/fs.walk': 1.2.8 1717 | glob-parent: 5.1.2 1718 | merge2: 1.4.1 1719 | micromatch: 4.0.5 1720 | dev: true 1721 | 1722 | /fast-json-stable-stringify@2.1.0: 1723 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1724 | dev: true 1725 | 1726 | /fast-levenshtein@2.0.6: 1727 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1728 | dev: true 1729 | 1730 | /fastq@1.15.0: 1731 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1732 | dependencies: 1733 | reusify: 1.0.4 1734 | dev: true 1735 | 1736 | /file-entry-cache@6.0.1: 1737 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1738 | engines: {node: ^10.12.0 || >=12.0.0} 1739 | dependencies: 1740 | flat-cache: 3.1.1 1741 | dev: true 1742 | 1743 | /file-uri-to-path@1.0.0: 1744 | resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} 1745 | dev: false 1746 | 1747 | /fill-range@7.0.1: 1748 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1749 | engines: {node: '>=8'} 1750 | dependencies: 1751 | to-regex-range: 5.0.1 1752 | dev: true 1753 | 1754 | /flat-cache@3.1.1: 1755 | resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} 1756 | engines: {node: '>=12.0.0'} 1757 | dependencies: 1758 | flatted: 3.2.9 1759 | keyv: 4.5.4 1760 | rimraf: 3.0.2 1761 | dev: true 1762 | 1763 | /flatted@3.2.9: 1764 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} 1765 | dev: true 1766 | 1767 | /for-each@0.3.3: 1768 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1769 | dependencies: 1770 | is-callable: 1.2.7 1771 | dev: true 1772 | 1773 | /fs-constants@1.0.0: 1774 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 1775 | dev: false 1776 | 1777 | /fs.realpath@1.0.0: 1778 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1779 | dev: true 1780 | 1781 | /fsevents@2.3.3: 1782 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1783 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1784 | os: [darwin] 1785 | requiresBuild: true 1786 | dev: true 1787 | optional: true 1788 | 1789 | /function-bind@1.1.2: 1790 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1791 | dev: true 1792 | 1793 | /function.prototype.name@1.1.6: 1794 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 1795 | engines: {node: '>= 0.4'} 1796 | dependencies: 1797 | call-bind: 1.0.5 1798 | define-properties: 1.2.1 1799 | es-abstract: 1.22.3 1800 | functions-have-names: 1.2.3 1801 | dev: true 1802 | 1803 | /functional-red-black-tree@1.0.1: 1804 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} 1805 | dev: true 1806 | 1807 | /functions-have-names@1.2.3: 1808 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1809 | dev: true 1810 | 1811 | /get-intrinsic@1.2.2: 1812 | resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} 1813 | dependencies: 1814 | function-bind: 1.1.2 1815 | has-proto: 1.0.1 1816 | has-symbols: 1.0.3 1817 | hasown: 2.0.0 1818 | dev: true 1819 | 1820 | /get-symbol-description@1.0.0: 1821 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1822 | engines: {node: '>= 0.4'} 1823 | dependencies: 1824 | call-bind: 1.0.5 1825 | get-intrinsic: 1.2.2 1826 | dev: true 1827 | 1828 | /get-tsconfig@4.7.2: 1829 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} 1830 | dependencies: 1831 | resolve-pkg-maps: 1.0.0 1832 | dev: true 1833 | 1834 | /github-from-package@0.0.0: 1835 | resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} 1836 | dev: false 1837 | 1838 | /glob-parent@5.1.2: 1839 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1840 | engines: {node: '>= 6'} 1841 | dependencies: 1842 | is-glob: 4.0.3 1843 | dev: true 1844 | 1845 | /glob-parent@6.0.2: 1846 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1847 | engines: {node: '>=10.13.0'} 1848 | dependencies: 1849 | is-glob: 4.0.3 1850 | dev: true 1851 | 1852 | /glob-to-regexp@0.4.1: 1853 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 1854 | dev: false 1855 | 1856 | /glob@7.1.6: 1857 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 1858 | dependencies: 1859 | fs.realpath: 1.0.0 1860 | inflight: 1.0.6 1861 | inherits: 2.0.4 1862 | minimatch: 3.1.2 1863 | once: 1.4.0 1864 | path-is-absolute: 1.0.1 1865 | dev: true 1866 | 1867 | /glob@7.1.7: 1868 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 1869 | dependencies: 1870 | fs.realpath: 1.0.0 1871 | inflight: 1.0.6 1872 | inherits: 2.0.4 1873 | minimatch: 3.1.2 1874 | once: 1.4.0 1875 | path-is-absolute: 1.0.1 1876 | dev: true 1877 | 1878 | /glob@7.2.3: 1879 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1880 | dependencies: 1881 | fs.realpath: 1.0.0 1882 | inflight: 1.0.6 1883 | inherits: 2.0.4 1884 | minimatch: 3.1.2 1885 | once: 1.4.0 1886 | path-is-absolute: 1.0.1 1887 | dev: true 1888 | 1889 | /glob@8.1.0: 1890 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 1891 | engines: {node: '>=12'} 1892 | dependencies: 1893 | fs.realpath: 1.0.0 1894 | inflight: 1.0.6 1895 | inherits: 2.0.4 1896 | minimatch: 5.1.6 1897 | once: 1.4.0 1898 | dev: true 1899 | 1900 | /globals@13.23.0: 1901 | resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} 1902 | engines: {node: '>=8'} 1903 | dependencies: 1904 | type-fest: 0.20.2 1905 | dev: true 1906 | 1907 | /globalthis@1.0.3: 1908 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1909 | engines: {node: '>= 0.4'} 1910 | dependencies: 1911 | define-properties: 1.2.1 1912 | dev: true 1913 | 1914 | /globby@11.1.0: 1915 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1916 | engines: {node: '>=10'} 1917 | dependencies: 1918 | array-union: 2.1.0 1919 | dir-glob: 3.0.1 1920 | fast-glob: 3.3.1 1921 | ignore: 5.2.4 1922 | merge2: 1.4.1 1923 | slash: 3.0.0 1924 | dev: true 1925 | 1926 | /gopd@1.0.1: 1927 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1928 | dependencies: 1929 | get-intrinsic: 1.2.2 1930 | dev: true 1931 | 1932 | /graceful-fs@4.2.11: 1933 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1934 | 1935 | /hanji@0.0.5: 1936 | resolution: {integrity: sha512-Abxw1Lq+TnYiL4BueXqMau222fPSPMFtya8HdpWsz/xVAhifXou71mPh/kY2+08RgFcVccjG3uZHs6K5HAe3zw==} 1937 | dependencies: 1938 | lodash.throttle: 4.1.1 1939 | sisteransi: 1.0.5 1940 | dev: true 1941 | 1942 | /has-bigints@1.0.2: 1943 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1944 | dev: true 1945 | 1946 | /has-flag@4.0.0: 1947 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1948 | engines: {node: '>=8'} 1949 | dev: true 1950 | 1951 | /has-property-descriptors@1.0.1: 1952 | resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} 1953 | dependencies: 1954 | get-intrinsic: 1.2.2 1955 | dev: true 1956 | 1957 | /has-proto@1.0.1: 1958 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 1959 | engines: {node: '>= 0.4'} 1960 | dev: true 1961 | 1962 | /has-symbols@1.0.3: 1963 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1964 | engines: {node: '>= 0.4'} 1965 | dev: true 1966 | 1967 | /has-tostringtag@1.0.0: 1968 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1969 | engines: {node: '>= 0.4'} 1970 | dependencies: 1971 | has-symbols: 1.0.3 1972 | dev: true 1973 | 1974 | /hasown@2.0.0: 1975 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} 1976 | engines: {node: '>= 0.4'} 1977 | dependencies: 1978 | function-bind: 1.1.2 1979 | dev: true 1980 | 1981 | /heap@0.2.7: 1982 | resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} 1983 | dev: true 1984 | 1985 | /ieee754@1.2.1: 1986 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1987 | dev: false 1988 | 1989 | /ignore@4.0.6: 1990 | resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} 1991 | engines: {node: '>= 4'} 1992 | dev: true 1993 | 1994 | /ignore@5.2.4: 1995 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1996 | engines: {node: '>= 4'} 1997 | dev: true 1998 | 1999 | /import-fresh@3.3.0: 2000 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2001 | engines: {node: '>=6'} 2002 | dependencies: 2003 | parent-module: 1.0.1 2004 | resolve-from: 4.0.0 2005 | dev: true 2006 | 2007 | /imurmurhash@0.1.4: 2008 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2009 | engines: {node: '>=0.8.19'} 2010 | dev: true 2011 | 2012 | /inflight@1.0.6: 2013 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2014 | dependencies: 2015 | once: 1.4.0 2016 | wrappy: 1.0.2 2017 | dev: true 2018 | 2019 | /inherits@2.0.4: 2020 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2021 | 2022 | /ini@1.3.8: 2023 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 2024 | dev: false 2025 | 2026 | /internal-slot@1.0.6: 2027 | resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} 2028 | engines: {node: '>= 0.4'} 2029 | dependencies: 2030 | get-intrinsic: 1.2.2 2031 | hasown: 2.0.0 2032 | side-channel: 1.0.4 2033 | dev: true 2034 | 2035 | /is-array-buffer@3.0.2: 2036 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 2037 | dependencies: 2038 | call-bind: 1.0.5 2039 | get-intrinsic: 1.2.2 2040 | is-typed-array: 1.1.12 2041 | dev: true 2042 | 2043 | /is-async-function@2.0.0: 2044 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} 2045 | engines: {node: '>= 0.4'} 2046 | dependencies: 2047 | has-tostringtag: 1.0.0 2048 | dev: true 2049 | 2050 | /is-bigint@1.0.4: 2051 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 2052 | dependencies: 2053 | has-bigints: 1.0.2 2054 | dev: true 2055 | 2056 | /is-binary-path@2.1.0: 2057 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2058 | engines: {node: '>=8'} 2059 | dependencies: 2060 | binary-extensions: 2.2.0 2061 | dev: true 2062 | 2063 | /is-boolean-object@1.1.2: 2064 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 2065 | engines: {node: '>= 0.4'} 2066 | dependencies: 2067 | call-bind: 1.0.5 2068 | has-tostringtag: 1.0.0 2069 | dev: true 2070 | 2071 | /is-callable@1.2.7: 2072 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 2073 | engines: {node: '>= 0.4'} 2074 | dev: true 2075 | 2076 | /is-core-module@2.13.1: 2077 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 2078 | dependencies: 2079 | hasown: 2.0.0 2080 | dev: true 2081 | 2082 | /is-date-object@1.0.5: 2083 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 2084 | engines: {node: '>= 0.4'} 2085 | dependencies: 2086 | has-tostringtag: 1.0.0 2087 | dev: true 2088 | 2089 | /is-extglob@2.1.1: 2090 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2091 | engines: {node: '>=0.10.0'} 2092 | dev: true 2093 | 2094 | /is-finalizationregistry@1.0.2: 2095 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} 2096 | dependencies: 2097 | call-bind: 1.0.5 2098 | dev: true 2099 | 2100 | /is-generator-function@1.0.10: 2101 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 2102 | engines: {node: '>= 0.4'} 2103 | dependencies: 2104 | has-tostringtag: 1.0.0 2105 | dev: true 2106 | 2107 | /is-glob@4.0.3: 2108 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2109 | engines: {node: '>=0.10.0'} 2110 | dependencies: 2111 | is-extglob: 2.1.1 2112 | dev: true 2113 | 2114 | /is-map@2.0.2: 2115 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} 2116 | dev: true 2117 | 2118 | /is-negative-zero@2.0.2: 2119 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 2120 | engines: {node: '>= 0.4'} 2121 | dev: true 2122 | 2123 | /is-number-object@1.0.7: 2124 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 2125 | engines: {node: '>= 0.4'} 2126 | dependencies: 2127 | has-tostringtag: 1.0.0 2128 | dev: true 2129 | 2130 | /is-number@7.0.0: 2131 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2132 | engines: {node: '>=0.12.0'} 2133 | dev: true 2134 | 2135 | /is-promise@2.2.2: 2136 | resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} 2137 | dev: true 2138 | 2139 | /is-regex@1.1.4: 2140 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 2141 | engines: {node: '>= 0.4'} 2142 | dependencies: 2143 | call-bind: 1.0.5 2144 | has-tostringtag: 1.0.0 2145 | dev: true 2146 | 2147 | /is-set@2.0.2: 2148 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} 2149 | dev: true 2150 | 2151 | /is-shared-array-buffer@1.0.2: 2152 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 2153 | dependencies: 2154 | call-bind: 1.0.5 2155 | dev: true 2156 | 2157 | /is-string@1.0.7: 2158 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 2159 | engines: {node: '>= 0.4'} 2160 | dependencies: 2161 | has-tostringtag: 1.0.0 2162 | dev: true 2163 | 2164 | /is-symbol@1.0.4: 2165 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2166 | engines: {node: '>= 0.4'} 2167 | dependencies: 2168 | has-symbols: 1.0.3 2169 | dev: true 2170 | 2171 | /is-typed-array@1.1.12: 2172 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} 2173 | engines: {node: '>= 0.4'} 2174 | dependencies: 2175 | which-typed-array: 1.1.13 2176 | dev: true 2177 | 2178 | /is-weakmap@2.0.1: 2179 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} 2180 | dev: true 2181 | 2182 | /is-weakref@1.0.2: 2183 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 2184 | dependencies: 2185 | call-bind: 1.0.5 2186 | dev: true 2187 | 2188 | /is-weakset@2.0.2: 2189 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} 2190 | dependencies: 2191 | call-bind: 1.0.5 2192 | get-intrinsic: 1.2.2 2193 | dev: true 2194 | 2195 | /isarray@1.0.0: 2196 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 2197 | dev: true 2198 | 2199 | /isarray@2.0.5: 2200 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 2201 | dev: true 2202 | 2203 | /isexe@2.0.0: 2204 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2205 | dev: true 2206 | 2207 | /isobject@2.1.0: 2208 | resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} 2209 | engines: {node: '>=0.10.0'} 2210 | dependencies: 2211 | isarray: 1.0.0 2212 | dev: true 2213 | 2214 | /iterator.prototype@1.1.2: 2215 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} 2216 | dependencies: 2217 | define-properties: 1.2.1 2218 | get-intrinsic: 1.2.2 2219 | has-symbols: 1.0.3 2220 | reflect.getprototypeof: 1.0.4 2221 | set-function-name: 2.0.1 2222 | dev: true 2223 | 2224 | /jiti@1.21.0: 2225 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 2226 | hasBin: true 2227 | dev: true 2228 | 2229 | /js-tokens@4.0.0: 2230 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2231 | 2232 | /js-yaml@4.1.0: 2233 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2234 | hasBin: true 2235 | dependencies: 2236 | argparse: 2.0.1 2237 | dev: true 2238 | 2239 | /json-buffer@3.0.1: 2240 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 2241 | dev: true 2242 | 2243 | /json-diff@0.9.0: 2244 | resolution: {integrity: sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ==} 2245 | hasBin: true 2246 | dependencies: 2247 | cli-color: 2.0.3 2248 | difflib: 0.2.4 2249 | dreamopt: 0.8.0 2250 | dev: true 2251 | 2252 | /json-schema-traverse@0.4.1: 2253 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2254 | dev: true 2255 | 2256 | /json-stable-stringify-without-jsonify@1.0.1: 2257 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2258 | dev: true 2259 | 2260 | /json5@1.0.2: 2261 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 2262 | hasBin: true 2263 | dependencies: 2264 | minimist: 1.2.8 2265 | dev: true 2266 | 2267 | /jsx-ast-utils@3.3.5: 2268 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 2269 | engines: {node: '>=4.0'} 2270 | dependencies: 2271 | array-includes: 3.1.7 2272 | array.prototype.flat: 1.3.2 2273 | object.assign: 4.1.4 2274 | object.values: 1.1.7 2275 | dev: true 2276 | 2277 | /keyv@4.5.4: 2278 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 2279 | dependencies: 2280 | json-buffer: 3.0.1 2281 | dev: true 2282 | 2283 | /language-subtag-registry@0.3.22: 2284 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} 2285 | dev: true 2286 | 2287 | /language-tags@1.0.9: 2288 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 2289 | engines: {node: '>=0.10'} 2290 | dependencies: 2291 | language-subtag-registry: 0.3.22 2292 | dev: true 2293 | 2294 | /levn@0.4.1: 2295 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2296 | engines: {node: '>= 0.8.0'} 2297 | dependencies: 2298 | prelude-ls: 1.2.1 2299 | type-check: 0.4.0 2300 | dev: true 2301 | 2302 | /lilconfig@2.1.0: 2303 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 2304 | engines: {node: '>=10'} 2305 | dev: true 2306 | 2307 | /line-column@1.0.2: 2308 | resolution: {integrity: sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==} 2309 | dependencies: 2310 | isarray: 1.0.0 2311 | isobject: 2.1.0 2312 | dev: true 2313 | 2314 | /lines-and-columns@1.2.4: 2315 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2316 | dev: true 2317 | 2318 | /lodash.merge@4.6.2: 2319 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2320 | dev: true 2321 | 2322 | /lodash.throttle@4.1.1: 2323 | resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} 2324 | dev: true 2325 | 2326 | /loose-envify@1.4.0: 2327 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2328 | hasBin: true 2329 | dependencies: 2330 | js-tokens: 4.0.0 2331 | 2332 | /lru-cache@6.0.0: 2333 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2334 | engines: {node: '>=10'} 2335 | dependencies: 2336 | yallist: 4.0.0 2337 | 2338 | /lru-queue@0.1.0: 2339 | resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} 2340 | dependencies: 2341 | es5-ext: 0.10.62 2342 | dev: true 2343 | 2344 | /lucia@2.7.2: 2345 | resolution: {integrity: sha512-fEsD5EW8k3JxEhp3Cor+ar3dAfSY/QAjN/gQArfxbp1bludR7zzyW6s/gmy1cuGvABASTuZxgwCyBz0Osbg6WA==} 2346 | dev: false 2347 | 2348 | /memoizee@0.4.15: 2349 | resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} 2350 | dependencies: 2351 | d: 1.0.1 2352 | es5-ext: 0.10.62 2353 | es6-weak-map: 2.0.3 2354 | event-emitter: 0.3.5 2355 | is-promise: 2.2.2 2356 | lru-queue: 0.1.0 2357 | next-tick: 1.1.0 2358 | timers-ext: 0.1.7 2359 | dev: true 2360 | 2361 | /merge2@1.4.1: 2362 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2363 | engines: {node: '>= 8'} 2364 | dev: true 2365 | 2366 | /micromatch@4.0.5: 2367 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2368 | engines: {node: '>=8.6'} 2369 | dependencies: 2370 | braces: 3.0.2 2371 | picomatch: 2.3.1 2372 | dev: true 2373 | 2374 | /mimic-response@3.1.0: 2375 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 2376 | engines: {node: '>=10'} 2377 | dev: false 2378 | 2379 | /minimatch@3.1.2: 2380 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2381 | dependencies: 2382 | brace-expansion: 1.1.11 2383 | dev: true 2384 | 2385 | /minimatch@5.1.6: 2386 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 2387 | engines: {node: '>=10'} 2388 | dependencies: 2389 | brace-expansion: 2.0.1 2390 | dev: true 2391 | 2392 | /minimatch@7.4.6: 2393 | resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} 2394 | engines: {node: '>=10'} 2395 | dependencies: 2396 | brace-expansion: 2.0.1 2397 | dev: true 2398 | 2399 | /minimist@1.2.8: 2400 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2401 | 2402 | /mkdirp-classic@0.5.3: 2403 | resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} 2404 | dev: false 2405 | 2406 | /ms@2.1.2: 2407 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2408 | dev: true 2409 | 2410 | /ms@2.1.3: 2411 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2412 | dev: true 2413 | 2414 | /mz@2.7.0: 2415 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2416 | dependencies: 2417 | any-promise: 1.3.0 2418 | object-assign: 4.1.1 2419 | thenify-all: 1.6.0 2420 | dev: true 2421 | 2422 | /nanoid@3.3.6: 2423 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 2424 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2425 | hasBin: true 2426 | 2427 | /napi-build-utils@1.0.2: 2428 | resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} 2429 | dev: false 2430 | 2431 | /natural-compare@1.4.0: 2432 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2433 | dev: true 2434 | 2435 | /next-tick@1.1.0: 2436 | resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} 2437 | dev: true 2438 | 2439 | /next@14.0.1(react-dom@18.0.0)(react@18.0.0): 2440 | resolution: {integrity: sha512-s4YaLpE4b0gmb3ggtmpmV+wt+lPRuGtANzojMQ2+gmBpgX9w5fTbjsy6dXByBuENsdCX5pukZH/GxdFgO62+pA==} 2441 | engines: {node: '>=18.17.0'} 2442 | hasBin: true 2443 | peerDependencies: 2444 | '@opentelemetry/api': ^1.1.0 2445 | react: ^18.2.0 2446 | react-dom: ^18.2.0 2447 | sass: ^1.3.0 2448 | peerDependenciesMeta: 2449 | '@opentelemetry/api': 2450 | optional: true 2451 | sass: 2452 | optional: true 2453 | dependencies: 2454 | '@next/env': 14.0.1 2455 | '@swc/helpers': 0.5.2 2456 | busboy: 1.6.0 2457 | caniuse-lite: 1.0.30001559 2458 | postcss: 8.4.31 2459 | react: 18.0.0 2460 | react-dom: 18.0.0(react@18.0.0) 2461 | styled-jsx: 5.1.1(react@18.0.0) 2462 | watchpack: 2.4.0 2463 | optionalDependencies: 2464 | '@next/swc-darwin-arm64': 14.0.1 2465 | '@next/swc-darwin-x64': 14.0.1 2466 | '@next/swc-linux-arm64-gnu': 14.0.1 2467 | '@next/swc-linux-arm64-musl': 14.0.1 2468 | '@next/swc-linux-x64-gnu': 14.0.1 2469 | '@next/swc-linux-x64-musl': 14.0.1 2470 | '@next/swc-win32-arm64-msvc': 14.0.1 2471 | '@next/swc-win32-ia32-msvc': 14.0.1 2472 | '@next/swc-win32-x64-msvc': 14.0.1 2473 | transitivePeerDependencies: 2474 | - '@babel/core' 2475 | - babel-plugin-macros 2476 | dev: false 2477 | 2478 | /node-abi@3.51.0: 2479 | resolution: {integrity: sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==} 2480 | engines: {node: '>=10'} 2481 | dependencies: 2482 | semver: 7.5.4 2483 | dev: false 2484 | 2485 | /node-releases@2.0.13: 2486 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} 2487 | dev: true 2488 | 2489 | /normalize-path@3.0.0: 2490 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2491 | engines: {node: '>=0.10.0'} 2492 | dev: true 2493 | 2494 | /normalize-range@0.1.2: 2495 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 2496 | engines: {node: '>=0.10.0'} 2497 | dev: true 2498 | 2499 | /num2fraction@1.2.2: 2500 | resolution: {integrity: sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==} 2501 | dev: true 2502 | 2503 | /object-assign@4.1.1: 2504 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2505 | engines: {node: '>=0.10.0'} 2506 | dev: true 2507 | 2508 | /object-hash@3.0.0: 2509 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 2510 | engines: {node: '>= 6'} 2511 | dev: true 2512 | 2513 | /object-inspect@1.13.1: 2514 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 2515 | dev: true 2516 | 2517 | /object-keys@1.1.1: 2518 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2519 | engines: {node: '>= 0.4'} 2520 | dev: true 2521 | 2522 | /object.assign@4.1.4: 2523 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 2524 | engines: {node: '>= 0.4'} 2525 | dependencies: 2526 | call-bind: 1.0.5 2527 | define-properties: 1.2.1 2528 | has-symbols: 1.0.3 2529 | object-keys: 1.1.1 2530 | dev: true 2531 | 2532 | /object.entries@1.1.7: 2533 | resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} 2534 | engines: {node: '>= 0.4'} 2535 | dependencies: 2536 | call-bind: 1.0.5 2537 | define-properties: 1.2.1 2538 | es-abstract: 1.22.3 2539 | dev: true 2540 | 2541 | /object.fromentries@2.0.7: 2542 | resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} 2543 | engines: {node: '>= 0.4'} 2544 | dependencies: 2545 | call-bind: 1.0.5 2546 | define-properties: 1.2.1 2547 | es-abstract: 1.22.3 2548 | dev: true 2549 | 2550 | /object.groupby@1.0.1: 2551 | resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} 2552 | dependencies: 2553 | call-bind: 1.0.5 2554 | define-properties: 1.2.1 2555 | es-abstract: 1.22.3 2556 | get-intrinsic: 1.2.2 2557 | dev: true 2558 | 2559 | /object.hasown@1.1.3: 2560 | resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} 2561 | dependencies: 2562 | define-properties: 1.2.1 2563 | es-abstract: 1.22.3 2564 | dev: true 2565 | 2566 | /object.values@1.1.7: 2567 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} 2568 | engines: {node: '>= 0.4'} 2569 | dependencies: 2570 | call-bind: 1.0.5 2571 | define-properties: 1.2.1 2572 | es-abstract: 1.22.3 2573 | dev: true 2574 | 2575 | /once@1.4.0: 2576 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2577 | dependencies: 2578 | wrappy: 1.0.2 2579 | 2580 | /optionator@0.9.3: 2581 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 2582 | engines: {node: '>= 0.8.0'} 2583 | dependencies: 2584 | '@aashutoshrathi/word-wrap': 1.2.6 2585 | deep-is: 0.1.4 2586 | fast-levenshtein: 2.0.6 2587 | levn: 0.4.1 2588 | prelude-ls: 1.2.1 2589 | type-check: 0.4.0 2590 | dev: true 2591 | 2592 | /parent-module@1.0.1: 2593 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2594 | engines: {node: '>=6'} 2595 | dependencies: 2596 | callsites: 3.1.0 2597 | dev: true 2598 | 2599 | /path-is-absolute@1.0.1: 2600 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2601 | engines: {node: '>=0.10.0'} 2602 | dev: true 2603 | 2604 | /path-key@3.1.1: 2605 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2606 | engines: {node: '>=8'} 2607 | dev: true 2608 | 2609 | /path-parse@1.0.7: 2610 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2611 | dev: true 2612 | 2613 | /path-type@4.0.0: 2614 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2615 | engines: {node: '>=8'} 2616 | dev: true 2617 | 2618 | /picocolors@1.0.0: 2619 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2620 | 2621 | /picomatch@2.3.1: 2622 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2623 | engines: {node: '>=8.6'} 2624 | dev: true 2625 | 2626 | /pify@2.3.0: 2627 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 2628 | engines: {node: '>=0.10.0'} 2629 | dev: true 2630 | 2631 | /pirates@4.0.6: 2632 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 2633 | engines: {node: '>= 6'} 2634 | dev: true 2635 | 2636 | /postcss-import@14.1.0(postcss@8.0.0): 2637 | resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} 2638 | engines: {node: '>=10.0.0'} 2639 | peerDependencies: 2640 | postcss: ^8.0.0 2641 | dependencies: 2642 | postcss: 8.0.0 2643 | postcss-value-parser: 4.2.0 2644 | read-cache: 1.0.0 2645 | resolve: 1.22.8 2646 | dev: true 2647 | 2648 | /postcss-js@4.0.1(postcss@8.0.0): 2649 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 2650 | engines: {node: ^12 || ^14 || >= 16} 2651 | peerDependencies: 2652 | postcss: ^8.4.21 2653 | dependencies: 2654 | camelcase-css: 2.0.1 2655 | postcss: 8.0.0 2656 | dev: true 2657 | 2658 | /postcss-load-config@3.1.4(postcss@8.0.0): 2659 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 2660 | engines: {node: '>= 10'} 2661 | peerDependencies: 2662 | postcss: '>=8.0.9' 2663 | ts-node: '>=9.0.0' 2664 | peerDependenciesMeta: 2665 | postcss: 2666 | optional: true 2667 | ts-node: 2668 | optional: true 2669 | dependencies: 2670 | lilconfig: 2.1.0 2671 | postcss: 8.0.0 2672 | yaml: 1.10.2 2673 | dev: true 2674 | 2675 | /postcss-nested@6.0.0(postcss@8.0.0): 2676 | resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} 2677 | engines: {node: '>=12.0'} 2678 | peerDependencies: 2679 | postcss: ^8.2.14 2680 | dependencies: 2681 | postcss: 8.0.0 2682 | postcss-selector-parser: 6.0.13 2683 | dev: true 2684 | 2685 | /postcss-selector-parser@6.0.13: 2686 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} 2687 | engines: {node: '>=4'} 2688 | dependencies: 2689 | cssesc: 3.0.0 2690 | util-deprecate: 1.0.2 2691 | dev: true 2692 | 2693 | /postcss-value-parser@4.2.0: 2694 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 2695 | dev: true 2696 | 2697 | /postcss@8.0.0: 2698 | resolution: {integrity: sha512-BriaW5AeZHfyuuKhK3Z6yRDKI6NR2TdRWyZcj3+Pk2nczQsMBqavggAzTledsbyexPthW3nFA6XfgCWjZqmVPA==} 2699 | engines: {node: ^10 || ^12 || >=14} 2700 | dependencies: 2701 | colorette: 1.4.0 2702 | line-column: 1.0.2 2703 | nanoid: 3.3.6 2704 | source-map: 0.6.1 2705 | dev: true 2706 | 2707 | /postcss@8.4.31: 2708 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 2709 | engines: {node: ^10 || ^12 || >=14} 2710 | dependencies: 2711 | nanoid: 3.3.6 2712 | picocolors: 1.0.0 2713 | source-map-js: 1.0.2 2714 | dev: false 2715 | 2716 | /prebuild-install@7.1.1: 2717 | resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} 2718 | engines: {node: '>=10'} 2719 | hasBin: true 2720 | dependencies: 2721 | detect-libc: 2.0.2 2722 | expand-template: 2.0.3 2723 | github-from-package: 0.0.0 2724 | minimist: 1.2.8 2725 | mkdirp-classic: 0.5.3 2726 | napi-build-utils: 1.0.2 2727 | node-abi: 3.51.0 2728 | pump: 3.0.0 2729 | rc: 1.2.8 2730 | simple-get: 4.0.1 2731 | tar-fs: 2.1.1 2732 | tunnel-agent: 0.6.0 2733 | dev: false 2734 | 2735 | /prelude-ls@1.2.1: 2736 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2737 | engines: {node: '>= 0.8.0'} 2738 | dev: true 2739 | 2740 | /progress@2.0.3: 2741 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 2742 | engines: {node: '>=0.4.0'} 2743 | dev: true 2744 | 2745 | /prop-types@15.8.1: 2746 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2747 | dependencies: 2748 | loose-envify: 1.4.0 2749 | object-assign: 4.1.1 2750 | react-is: 16.13.1 2751 | dev: true 2752 | 2753 | /pump@3.0.0: 2754 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 2755 | dependencies: 2756 | end-of-stream: 1.4.4 2757 | once: 1.4.0 2758 | dev: false 2759 | 2760 | /punycode@2.3.1: 2761 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2762 | engines: {node: '>=6'} 2763 | dev: true 2764 | 2765 | /queue-microtask@1.2.3: 2766 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2767 | dev: true 2768 | 2769 | /quick-lru@5.1.1: 2770 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 2771 | engines: {node: '>=10'} 2772 | dev: true 2773 | 2774 | /rc@1.2.8: 2775 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 2776 | hasBin: true 2777 | dependencies: 2778 | deep-extend: 0.6.0 2779 | ini: 1.3.8 2780 | minimist: 1.2.8 2781 | strip-json-comments: 2.0.1 2782 | dev: false 2783 | 2784 | /react-dom@18.0.0(react@18.0.0): 2785 | resolution: {integrity: sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==} 2786 | peerDependencies: 2787 | react: ^18.0.0 2788 | dependencies: 2789 | loose-envify: 1.4.0 2790 | react: 18.0.0 2791 | scheduler: 0.21.0 2792 | dev: false 2793 | 2794 | /react-is@16.13.1: 2795 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 2796 | dev: true 2797 | 2798 | /react@18.0.0: 2799 | resolution: {integrity: sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==} 2800 | engines: {node: '>=0.10.0'} 2801 | dependencies: 2802 | loose-envify: 1.4.0 2803 | dev: false 2804 | 2805 | /read-cache@1.0.0: 2806 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 2807 | dependencies: 2808 | pify: 2.3.0 2809 | dev: true 2810 | 2811 | /readable-stream@3.6.2: 2812 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 2813 | engines: {node: '>= 6'} 2814 | dependencies: 2815 | inherits: 2.0.4 2816 | string_decoder: 1.3.0 2817 | util-deprecate: 1.0.2 2818 | dev: false 2819 | 2820 | /readdirp@3.6.0: 2821 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2822 | engines: {node: '>=8.10.0'} 2823 | dependencies: 2824 | picomatch: 2.3.1 2825 | dev: true 2826 | 2827 | /reflect.getprototypeof@1.0.4: 2828 | resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} 2829 | engines: {node: '>= 0.4'} 2830 | dependencies: 2831 | call-bind: 1.0.5 2832 | define-properties: 1.2.1 2833 | es-abstract: 1.22.3 2834 | get-intrinsic: 1.2.2 2835 | globalthis: 1.0.3 2836 | which-builtin-type: 1.1.3 2837 | dev: true 2838 | 2839 | /regenerator-runtime@0.14.0: 2840 | resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} 2841 | dev: true 2842 | 2843 | /regexp.prototype.flags@1.5.1: 2844 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} 2845 | engines: {node: '>= 0.4'} 2846 | dependencies: 2847 | call-bind: 1.0.5 2848 | define-properties: 1.2.1 2849 | set-function-name: 2.0.1 2850 | dev: true 2851 | 2852 | /regexpp@3.2.0: 2853 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 2854 | engines: {node: '>=8'} 2855 | dev: true 2856 | 2857 | /resolve-from@4.0.0: 2858 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2859 | engines: {node: '>=4'} 2860 | dev: true 2861 | 2862 | /resolve-pkg-maps@1.0.0: 2863 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 2864 | dev: true 2865 | 2866 | /resolve@1.22.8: 2867 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 2868 | hasBin: true 2869 | dependencies: 2870 | is-core-module: 2.13.1 2871 | path-parse: 1.0.7 2872 | supports-preserve-symlinks-flag: 1.0.0 2873 | dev: true 2874 | 2875 | /resolve@2.0.0-next.5: 2876 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 2877 | hasBin: true 2878 | dependencies: 2879 | is-core-module: 2.13.1 2880 | path-parse: 1.0.7 2881 | supports-preserve-symlinks-flag: 1.0.0 2882 | dev: true 2883 | 2884 | /reusify@1.0.4: 2885 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2886 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2887 | dev: true 2888 | 2889 | /rimraf@3.0.2: 2890 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2891 | hasBin: true 2892 | dependencies: 2893 | glob: 7.2.3 2894 | dev: true 2895 | 2896 | /run-parallel@1.2.0: 2897 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2898 | dependencies: 2899 | queue-microtask: 1.2.3 2900 | dev: true 2901 | 2902 | /safe-array-concat@1.0.1: 2903 | resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} 2904 | engines: {node: '>=0.4'} 2905 | dependencies: 2906 | call-bind: 1.0.5 2907 | get-intrinsic: 1.2.2 2908 | has-symbols: 1.0.3 2909 | isarray: 2.0.5 2910 | dev: true 2911 | 2912 | /safe-buffer@5.2.1: 2913 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 2914 | dev: false 2915 | 2916 | /safe-regex-test@1.0.0: 2917 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 2918 | dependencies: 2919 | call-bind: 1.0.5 2920 | get-intrinsic: 1.2.2 2921 | is-regex: 1.1.4 2922 | dev: true 2923 | 2924 | /scheduler@0.21.0: 2925 | resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} 2926 | dependencies: 2927 | loose-envify: 1.4.0 2928 | dev: false 2929 | 2930 | /semver@6.3.1: 2931 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 2932 | hasBin: true 2933 | dev: true 2934 | 2935 | /semver@7.5.4: 2936 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 2937 | engines: {node: '>=10'} 2938 | hasBin: true 2939 | dependencies: 2940 | lru-cache: 6.0.0 2941 | 2942 | /set-function-length@1.1.1: 2943 | resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} 2944 | engines: {node: '>= 0.4'} 2945 | dependencies: 2946 | define-data-property: 1.1.1 2947 | get-intrinsic: 1.2.2 2948 | gopd: 1.0.1 2949 | has-property-descriptors: 1.0.1 2950 | dev: true 2951 | 2952 | /set-function-name@2.0.1: 2953 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} 2954 | engines: {node: '>= 0.4'} 2955 | dependencies: 2956 | define-data-property: 1.1.1 2957 | functions-have-names: 1.2.3 2958 | has-property-descriptors: 1.0.1 2959 | dev: true 2960 | 2961 | /shebang-command@2.0.0: 2962 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2963 | engines: {node: '>=8'} 2964 | dependencies: 2965 | shebang-regex: 3.0.0 2966 | dev: true 2967 | 2968 | /shebang-regex@3.0.0: 2969 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2970 | engines: {node: '>=8'} 2971 | dev: true 2972 | 2973 | /side-channel@1.0.4: 2974 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2975 | dependencies: 2976 | call-bind: 1.0.5 2977 | get-intrinsic: 1.2.2 2978 | object-inspect: 1.13.1 2979 | dev: true 2980 | 2981 | /simple-concat@1.0.1: 2982 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} 2983 | dev: false 2984 | 2985 | /simple-get@4.0.1: 2986 | resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} 2987 | dependencies: 2988 | decompress-response: 6.0.0 2989 | once: 1.4.0 2990 | simple-concat: 1.0.1 2991 | dev: false 2992 | 2993 | /sisteransi@1.0.5: 2994 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 2995 | dev: true 2996 | 2997 | /slash@3.0.0: 2998 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2999 | engines: {node: '>=8'} 3000 | dev: true 3001 | 3002 | /source-map-js@1.0.2: 3003 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 3004 | engines: {node: '>=0.10.0'} 3005 | dev: false 3006 | 3007 | /source-map-support@0.5.21: 3008 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 3009 | dependencies: 3010 | buffer-from: 1.1.2 3011 | source-map: 0.6.1 3012 | dev: true 3013 | 3014 | /source-map@0.6.1: 3015 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3016 | engines: {node: '>=0.10.0'} 3017 | dev: true 3018 | 3019 | /streamsearch@1.1.0: 3020 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 3021 | engines: {node: '>=10.0.0'} 3022 | dev: false 3023 | 3024 | /string.prototype.matchall@4.0.10: 3025 | resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} 3026 | dependencies: 3027 | call-bind: 1.0.5 3028 | define-properties: 1.2.1 3029 | es-abstract: 1.22.3 3030 | get-intrinsic: 1.2.2 3031 | has-symbols: 1.0.3 3032 | internal-slot: 1.0.6 3033 | regexp.prototype.flags: 1.5.1 3034 | set-function-name: 2.0.1 3035 | side-channel: 1.0.4 3036 | dev: true 3037 | 3038 | /string.prototype.trim@1.2.8: 3039 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} 3040 | engines: {node: '>= 0.4'} 3041 | dependencies: 3042 | call-bind: 1.0.5 3043 | define-properties: 1.2.1 3044 | es-abstract: 1.22.3 3045 | dev: true 3046 | 3047 | /string.prototype.trimend@1.0.7: 3048 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} 3049 | dependencies: 3050 | call-bind: 1.0.5 3051 | define-properties: 1.2.1 3052 | es-abstract: 1.22.3 3053 | dev: true 3054 | 3055 | /string.prototype.trimstart@1.0.7: 3056 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} 3057 | dependencies: 3058 | call-bind: 1.0.5 3059 | define-properties: 1.2.1 3060 | es-abstract: 1.22.3 3061 | dev: true 3062 | 3063 | /string_decoder@1.3.0: 3064 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 3065 | dependencies: 3066 | safe-buffer: 5.2.1 3067 | dev: false 3068 | 3069 | /strip-ansi@6.0.1: 3070 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3071 | engines: {node: '>=8'} 3072 | dependencies: 3073 | ansi-regex: 5.0.1 3074 | dev: true 3075 | 3076 | /strip-bom@3.0.0: 3077 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 3078 | engines: {node: '>=4'} 3079 | dev: true 3080 | 3081 | /strip-json-comments@2.0.1: 3082 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 3083 | engines: {node: '>=0.10.0'} 3084 | dev: false 3085 | 3086 | /strip-json-comments@3.1.1: 3087 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3088 | engines: {node: '>=8'} 3089 | dev: true 3090 | 3091 | /styled-jsx@5.1.1(react@18.0.0): 3092 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 3093 | engines: {node: '>= 12.0.0'} 3094 | peerDependencies: 3095 | '@babel/core': '*' 3096 | babel-plugin-macros: '*' 3097 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 3098 | peerDependenciesMeta: 3099 | '@babel/core': 3100 | optional: true 3101 | babel-plugin-macros: 3102 | optional: true 3103 | dependencies: 3104 | client-only: 0.0.1 3105 | react: 18.0.0 3106 | dev: false 3107 | 3108 | /sucrase@3.34.0: 3109 | resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} 3110 | engines: {node: '>=8'} 3111 | hasBin: true 3112 | dependencies: 3113 | '@jridgewell/gen-mapping': 0.3.3 3114 | commander: 4.1.1 3115 | glob: 7.1.6 3116 | lines-and-columns: 1.2.4 3117 | mz: 2.7.0 3118 | pirates: 4.0.6 3119 | ts-interface-checker: 0.1.13 3120 | dev: true 3121 | 3122 | /supports-color@7.2.0: 3123 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3124 | engines: {node: '>=8'} 3125 | dependencies: 3126 | has-flag: 4.0.0 3127 | dev: true 3128 | 3129 | /supports-preserve-symlinks-flag@1.0.0: 3130 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3131 | engines: {node: '>= 0.4'} 3132 | dev: true 3133 | 3134 | /tailwindcss@3.3.0(postcss@8.0.0): 3135 | resolution: {integrity: sha512-hOXlFx+YcklJ8kXiCAfk/FMyr4Pm9ck477G0m/us2344Vuj355IpoEDB5UmGAsSpTBmr+4ZhjzW04JuFXkb/fw==} 3136 | engines: {node: '>=12.13.0'} 3137 | hasBin: true 3138 | peerDependencies: 3139 | postcss: ^8.0.9 3140 | dependencies: 3141 | arg: 5.0.2 3142 | chokidar: 3.5.3 3143 | color-name: 1.1.4 3144 | didyoumean: 1.2.2 3145 | dlv: 1.1.3 3146 | fast-glob: 3.3.1 3147 | glob-parent: 6.0.2 3148 | is-glob: 4.0.3 3149 | jiti: 1.21.0 3150 | lilconfig: 2.1.0 3151 | micromatch: 4.0.5 3152 | normalize-path: 3.0.0 3153 | object-hash: 3.0.0 3154 | picocolors: 1.0.0 3155 | postcss: 8.0.0 3156 | postcss-import: 14.1.0(postcss@8.0.0) 3157 | postcss-js: 4.0.1(postcss@8.0.0) 3158 | postcss-load-config: 3.1.4(postcss@8.0.0) 3159 | postcss-nested: 6.0.0(postcss@8.0.0) 3160 | postcss-selector-parser: 6.0.13 3161 | postcss-value-parser: 4.2.0 3162 | quick-lru: 5.1.1 3163 | resolve: 1.22.8 3164 | sucrase: 3.34.0 3165 | transitivePeerDependencies: 3166 | - ts-node 3167 | dev: true 3168 | 3169 | /tapable@2.2.1: 3170 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 3171 | engines: {node: '>=6'} 3172 | dev: true 3173 | 3174 | /tar-fs@2.1.1: 3175 | resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} 3176 | dependencies: 3177 | chownr: 1.1.4 3178 | mkdirp-classic: 0.5.3 3179 | pump: 3.0.0 3180 | tar-stream: 2.2.0 3181 | dev: false 3182 | 3183 | /tar-stream@2.2.0: 3184 | resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 3185 | engines: {node: '>=6'} 3186 | dependencies: 3187 | bl: 4.1.0 3188 | end-of-stream: 1.4.4 3189 | fs-constants: 1.0.0 3190 | inherits: 2.0.4 3191 | readable-stream: 3.6.2 3192 | dev: false 3193 | 3194 | /text-table@0.2.0: 3195 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3196 | dev: true 3197 | 3198 | /thenify-all@1.6.0: 3199 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 3200 | engines: {node: '>=0.8'} 3201 | dependencies: 3202 | thenify: 3.3.1 3203 | dev: true 3204 | 3205 | /thenify@3.3.1: 3206 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3207 | dependencies: 3208 | any-promise: 1.3.0 3209 | dev: true 3210 | 3211 | /timers-ext@0.1.7: 3212 | resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} 3213 | dependencies: 3214 | es5-ext: 0.10.62 3215 | next-tick: 1.1.0 3216 | dev: true 3217 | 3218 | /to-regex-range@5.0.1: 3219 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3220 | engines: {node: '>=8.0'} 3221 | dependencies: 3222 | is-number: 7.0.0 3223 | dev: true 3224 | 3225 | /ts-api-utils@1.0.3(typescript@5.0.2): 3226 | resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} 3227 | engines: {node: '>=16.13.0'} 3228 | peerDependencies: 3229 | typescript: '>=4.2.0' 3230 | dependencies: 3231 | typescript: 5.0.2 3232 | dev: true 3233 | 3234 | /ts-interface-checker@0.1.13: 3235 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3236 | dev: true 3237 | 3238 | /tsconfig-paths@3.14.2: 3239 | resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} 3240 | dependencies: 3241 | '@types/json5': 0.0.29 3242 | json5: 1.0.2 3243 | minimist: 1.2.8 3244 | strip-bom: 3.0.0 3245 | dev: true 3246 | 3247 | /tslib@2.6.2: 3248 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 3249 | dev: false 3250 | 3251 | /tunnel-agent@0.6.0: 3252 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 3253 | dependencies: 3254 | safe-buffer: 5.2.1 3255 | dev: false 3256 | 3257 | /type-check@0.4.0: 3258 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3259 | engines: {node: '>= 0.8.0'} 3260 | dependencies: 3261 | prelude-ls: 1.2.1 3262 | dev: true 3263 | 3264 | /type-fest@0.20.2: 3265 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3266 | engines: {node: '>=10'} 3267 | dev: true 3268 | 3269 | /type@1.2.0: 3270 | resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} 3271 | dev: true 3272 | 3273 | /type@2.7.2: 3274 | resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} 3275 | dev: true 3276 | 3277 | /typed-array-buffer@1.0.0: 3278 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} 3279 | engines: {node: '>= 0.4'} 3280 | dependencies: 3281 | call-bind: 1.0.5 3282 | get-intrinsic: 1.2.2 3283 | is-typed-array: 1.1.12 3284 | dev: true 3285 | 3286 | /typed-array-byte-length@1.0.0: 3287 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} 3288 | engines: {node: '>= 0.4'} 3289 | dependencies: 3290 | call-bind: 1.0.5 3291 | for-each: 0.3.3 3292 | has-proto: 1.0.1 3293 | is-typed-array: 1.1.12 3294 | dev: true 3295 | 3296 | /typed-array-byte-offset@1.0.0: 3297 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} 3298 | engines: {node: '>= 0.4'} 3299 | dependencies: 3300 | available-typed-arrays: 1.0.5 3301 | call-bind: 1.0.5 3302 | for-each: 0.3.3 3303 | has-proto: 1.0.1 3304 | is-typed-array: 1.1.12 3305 | dev: true 3306 | 3307 | /typed-array-length@1.0.4: 3308 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 3309 | dependencies: 3310 | call-bind: 1.0.5 3311 | for-each: 0.3.3 3312 | is-typed-array: 1.1.12 3313 | dev: true 3314 | 3315 | /typescript@5.0.2: 3316 | resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} 3317 | engines: {node: '>=12.20'} 3318 | hasBin: true 3319 | dev: true 3320 | 3321 | /unbox-primitive@1.0.2: 3322 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 3323 | dependencies: 3324 | call-bind: 1.0.5 3325 | has-bigints: 1.0.2 3326 | has-symbols: 1.0.3 3327 | which-boxed-primitive: 1.0.2 3328 | dev: true 3329 | 3330 | /update-browserslist-db@1.0.13(browserslist@4.22.1): 3331 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 3332 | hasBin: true 3333 | peerDependencies: 3334 | browserslist: '>= 4.21.0' 3335 | dependencies: 3336 | browserslist: 4.22.1 3337 | escalade: 3.1.1 3338 | picocolors: 1.0.0 3339 | dev: true 3340 | 3341 | /uri-js@4.4.1: 3342 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3343 | dependencies: 3344 | punycode: 2.3.1 3345 | dev: true 3346 | 3347 | /util-deprecate@1.0.2: 3348 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3349 | 3350 | /v8-compile-cache@2.4.0: 3351 | resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} 3352 | dev: true 3353 | 3354 | /watchpack@2.4.0: 3355 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} 3356 | engines: {node: '>=10.13.0'} 3357 | dependencies: 3358 | glob-to-regexp: 0.4.1 3359 | graceful-fs: 4.2.11 3360 | dev: false 3361 | 3362 | /which-boxed-primitive@1.0.2: 3363 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 3364 | dependencies: 3365 | is-bigint: 1.0.4 3366 | is-boolean-object: 1.1.2 3367 | is-number-object: 1.0.7 3368 | is-string: 1.0.7 3369 | is-symbol: 1.0.4 3370 | dev: true 3371 | 3372 | /which-builtin-type@1.1.3: 3373 | resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} 3374 | engines: {node: '>= 0.4'} 3375 | dependencies: 3376 | function.prototype.name: 1.1.6 3377 | has-tostringtag: 1.0.0 3378 | is-async-function: 2.0.0 3379 | is-date-object: 1.0.5 3380 | is-finalizationregistry: 1.0.2 3381 | is-generator-function: 1.0.10 3382 | is-regex: 1.1.4 3383 | is-weakref: 1.0.2 3384 | isarray: 2.0.5 3385 | which-boxed-primitive: 1.0.2 3386 | which-collection: 1.0.1 3387 | which-typed-array: 1.1.13 3388 | dev: true 3389 | 3390 | /which-collection@1.0.1: 3391 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} 3392 | dependencies: 3393 | is-map: 2.0.2 3394 | is-set: 2.0.2 3395 | is-weakmap: 2.0.1 3396 | is-weakset: 2.0.2 3397 | dev: true 3398 | 3399 | /which-typed-array@1.1.13: 3400 | resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} 3401 | engines: {node: '>= 0.4'} 3402 | dependencies: 3403 | available-typed-arrays: 1.0.5 3404 | call-bind: 1.0.5 3405 | for-each: 0.3.3 3406 | gopd: 1.0.1 3407 | has-tostringtag: 1.0.0 3408 | dev: true 3409 | 3410 | /which@2.0.2: 3411 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3412 | engines: {node: '>= 8'} 3413 | hasBin: true 3414 | dependencies: 3415 | isexe: 2.0.0 3416 | dev: true 3417 | 3418 | /wordwrap@1.0.0: 3419 | resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} 3420 | dev: true 3421 | 3422 | /wrappy@1.0.2: 3423 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3424 | 3425 | /yallist@4.0.0: 3426 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3427 | 3428 | /yaml@1.10.2: 3429 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 3430 | engines: {node: '>= 6'} 3431 | dev: true 3432 | 3433 | /zod@3.22.4: 3434 | resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} 3435 | dev: true 3436 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/next.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | declare namespace Lucia { 3 | type Auth = import('./lib/auth/lucia').Auth; 4 | type DatabaseUserAttributes = { 5 | username: string; 6 | }; 7 | type DatabaseSessionAttributes = {}; 8 | } 9 | -------------------------------------------------------------------------------- /src/app/api/login/route.ts: -------------------------------------------------------------------------------- 1 | import { auth } from '@/lib/auth/lucia'; 2 | import { validateAuthFormData } from '@/lib/auth/validate-auth-form-data'; 3 | import { LuciaError } from 'lucia'; 4 | import * as context from 'next/headers'; 5 | import { NextResponse, type NextRequest } from 'next/server'; 6 | 7 | export const POST = async (request: NextRequest) => { 8 | const formData = await request.formData(); 9 | 10 | const formDataResult = validateAuthFormData(formData); 11 | 12 | if (!formDataResult.data) { 13 | return NextResponse.json({ error: formDataResult.error }, { status: 400 }); 14 | } 15 | 16 | const { username, password } = formDataResult.data; 17 | 18 | try { 19 | // find user by key 20 | // and validate password 21 | const key = await auth.useKey('username', username.toLowerCase(), password); 22 | 23 | const session = await auth.createSession({ 24 | userId: key.userId, 25 | attributes: {}, 26 | }); 27 | 28 | const authRequest = auth.handleRequest(request.method, context); 29 | 30 | authRequest.setSession(session); 31 | 32 | return new Response(null, { 33 | status: 302, 34 | headers: { 35 | Location: '/', // redirect to profile page 36 | }, 37 | }); 38 | } catch (e) { 39 | if ( 40 | e instanceof LuciaError && 41 | (e.message === 'AUTH_INVALID_KEY_ID' || 42 | e.message === 'AUTH_INVALID_PASSWORD') 43 | ) { 44 | // user does not exist or invalid password 45 | return NextResponse.json( 46 | { error: 'Incorrect username or password' }, 47 | { status: 400 } 48 | ); 49 | } 50 | 51 | return NextResponse.json( 52 | { error: 'An unknown error occurred' }, 53 | { status: 500 } 54 | ); 55 | } 56 | }; 57 | -------------------------------------------------------------------------------- /src/app/api/logout/route.ts: -------------------------------------------------------------------------------- 1 | import { handleRouteAuthRequest } from '@/lib/auth/handle-auth-request'; 2 | import { auth } from '@/lib/auth/lucia'; 3 | 4 | import type { NextRequest } from 'next/server'; 5 | 6 | export const POST = async (request: NextRequest) => { 7 | const authRequest = handleRouteAuthRequest(request); 8 | 9 | // check if user is authenticated 10 | const session = await authRequest.validate(); 11 | 12 | if (!session) { 13 | return new Response(null, { 14 | status: 401, 15 | }); 16 | } 17 | 18 | // make sure to invalidate the current session! 19 | await auth.invalidateSession(session.sessionId); 20 | 21 | // delete session cookie 22 | authRequest.setSession(null); 23 | 24 | return new Response(null, { 25 | status: 302, 26 | headers: { 27 | Location: '/login', // redirect to login page 28 | }, 29 | }); 30 | }; 31 | -------------------------------------------------------------------------------- /src/app/api/signup/route.ts: -------------------------------------------------------------------------------- 1 | import { auth } from '@/lib/auth/lucia'; 2 | import { validateAuthFormData } from '@/lib/auth/validate-auth-form-data'; 3 | import * as context from 'next/headers'; 4 | import { NextResponse, type NextRequest } from 'next/server'; 5 | 6 | export const POST = async (request: NextRequest) => { 7 | const formData = await request.formData(); 8 | 9 | const formDataResult = validateAuthFormData(formData); 10 | 11 | if (!formDataResult.data) { 12 | return NextResponse.json({ error: formDataResult.error }, { status: 400 }); 13 | } 14 | 15 | const { username, password } = formDataResult.data; 16 | 17 | try { 18 | const user = await auth.createUser({ 19 | key: { 20 | providerId: 'username', // auth method 21 | providerUserId: username.toLowerCase(), // unique id when using "username" auth method 22 | password, // hashed by Lucia 23 | }, 24 | attributes: { 25 | username, 26 | }, 27 | }); 28 | 29 | const session = await auth.createSession({ 30 | userId: user.userId, 31 | attributes: {}, 32 | }); 33 | 34 | const authRequest = auth.handleRequest(request.method, context); 35 | 36 | authRequest.setSession(session); 37 | 38 | return new Response(null, { 39 | status: 302, 40 | headers: { 41 | Location: '/', // redirect to profile page 42 | }, 43 | }); 44 | } catch (e) { 45 | return NextResponse.json( 46 | { error: 'An unknown error occurred' }, 47 | { status: 500 } 48 | ); 49 | } 50 | }; 51 | -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devlulcas/next-js-auth-with-lucia-and-drizzle-demo/4beef1e754b8f7a5112363c34d17e926377930a8/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from 'next'; 2 | import { Inter } from 'next/font/google'; 3 | import './globals.css'; 4 | 5 | const inter = Inter({ subsets: ['latin'] }); 6 | 7 | export const metadata: Metadata = { 8 | title: 'Next JS + Lucia example using Server Actions', 9 | description: 'This is just an example', 10 | }; 11 | 12 | export default function RootLayout({ 13 | children, 14 | }: { 15 | children: React.ReactNode; 16 | }) { 17 | return ( 18 | 19 | 22 | {children} 23 | 24 | 25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /src/app/login/page.tsx: -------------------------------------------------------------------------------- 1 | import { Form } from '@/components/form'; 2 | import Link from 'next/link'; 3 | 4 | export default function LoginPage() { 5 | return ( 6 |
7 |

Sign in

8 |
9 |
10 |
11 | 12 | 17 |
18 | 19 |
20 | 21 | 27 |
28 | 29 | 32 |
33 |
34 | 35 | 36 | Create an account 37 | 38 |
39 | ); 40 | } 41 | -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | import { Form } from '@/components/form'; 2 | import { ListPosts } from '@/components/list-posts'; 3 | import { NewPostForm } from '@/components/new-post-form'; 4 | import { handlePageAuthRequest } from '@/lib/auth/handle-auth-request'; 5 | import { redirect } from 'next/navigation'; 6 | 7 | export default async function HomePage() { 8 | const authRequest = handlePageAuthRequest(); 9 | 10 | const session = await authRequest.validate(); 11 | 12 | if (!session) redirect('/login'); 13 | 14 | return ( 15 |
16 |
17 |

{session.user.username} is signed in

18 | 19 |
20 | 23 |
24 |
25 | 26 |
27 | 28 | 29 | 30 |
31 | 32 | 33 |
34 | ); 35 | } 36 | -------------------------------------------------------------------------------- /src/app/signup/page.tsx: -------------------------------------------------------------------------------- 1 | import { Form } from '@/components/form'; 2 | import Link from 'next/link'; 3 | 4 | export default function SignUpPage() { 5 | return ( 6 |
7 |

Sign up

8 |
9 |
10 |
11 | 12 | 17 |
18 | 19 |
20 | 21 | 27 |
28 | 29 | 32 |
33 |
34 | 35 | 36 | Sign in 37 | 38 |
39 | ); 40 | } 41 | -------------------------------------------------------------------------------- /src/components/form.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { useRouter } from 'next/navigation'; 4 | 5 | type FormProps = { 6 | children: React.ReactNode; 7 | action: string; 8 | }; 9 | 10 | export function Form({ children, action }: FormProps) { 11 | const router = useRouter(); 12 | 13 | return ( 14 |
{ 18 | e.preventDefault(); 19 | const formData = new FormData(e.currentTarget); 20 | const response = await fetch(action, { 21 | method: 'POST', 22 | body: formData, 23 | redirect: 'manual', 24 | }); 25 | 26 | if (response.status === 0) { 27 | // redirected 28 | // when using `redirect: "manual"`, response status 0 is returned 29 | return router.refresh(); 30 | } 31 | }} 32 | > 33 | {children} 34 |
35 | ); 36 | } 37 | -------------------------------------------------------------------------------- /src/components/list-posts.tsx: -------------------------------------------------------------------------------- 1 | import { getPostsDto } from '@/lib/posts/get-posts-dto'; 2 | 3 | export function ListPosts() { 4 | const posts = getPostsDto(); 5 | 6 | return ( 7 |
8 |

List of posts

9 | 16 |
17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /src/components/new-post-form.tsx: -------------------------------------------------------------------------------- 1 | import { newPostServerAction } from '@/lib/posts/new-post-server-action'; 2 | 3 | export function NewPostForm() { 4 | return ( 5 |
6 |

New post

7 |
8 |
9 | 10 | 11 |