├── .eslintrc.cjs
├── .gitignore
├── README.md
├── next-env.d.ts
├── next.config.mjs
├── package.json
├── pnpm-lock.yaml
├── postcss.config.cjs
├── prettier.config.cjs
├── prisma
└── schema.prisma
├── public
├── favicon.svg
├── robots.txt
└── sitemap.xml
├── src
├── components
│ ├── button.tsx
│ ├── footer.tsx
│ ├── meta.tsx
│ └── states
│ │ ├── error.tsx
│ │ ├── index.ts
│ │ └── loading.tsx
├── env.mjs
├── pages
│ ├── _app.tsx
│ ├── _document.tsx
│ ├── api
│ │ ├── auth
│ │ │ └── [...nextauth].ts
│ │ └── trpc
│ │ │ └── [trpc].ts
│ ├── index.tsx
│ └── sign-in.tsx
├── server
│ ├── api
│ │ ├── router
│ │ │ ├── index.ts
│ │ │ └── routers
│ │ │ │ └── todo.ts
│ │ └── trpc.ts
│ ├── auth.ts
│ └── db.ts
├── styles
│ └── globals.css
└── utils
│ ├── cn.ts
│ └── trpc.ts
├── tailwind.config.ts
└── tsconfig.json
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line @typescript-eslint/no-var-requires
2 | const path = require('path');
3 |
4 | /** @type {import("eslint").Linter.Config} */
5 | const config = {
6 | overrides: [
7 | {
8 | extends: ['plugin:@typescript-eslint/recommended-requiring-type-checking'],
9 | files: ['*.ts', '*.tsx'],
10 | parserOptions: {
11 | project: path.join(__dirname, 'tsconfig.json'),
12 | },
13 | rules: {
14 | '@typescript-eslint/no-misused-promises': [
15 | 'error',
16 | {
17 | checksVoidReturn: false,
18 | },
19 | ],
20 | },
21 | },
22 | ],
23 | parser: '@typescript-eslint/parser',
24 | parserOptions: {
25 | project: path.join(__dirname, 'tsconfig.json'),
26 | },
27 | plugins: ['@typescript-eslint'],
28 | extends: ['next/core-web-vitals', 'plugin:@typescript-eslint/recommended'],
29 | rules: {
30 | '@typescript-eslint/consistent-type-imports': [
31 | 'warn',
32 | {
33 | prefer: 'type-imports',
34 | fixStyle: 'inline-type-imports',
35 | },
36 | ],
37 | '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
38 | },
39 | };
40 |
41 | module.exports = config;
42 |
--------------------------------------------------------------------------------
/.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 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env
29 | .env.local
30 | .env.development.local
31 | .env.test.local
32 | .env.production.local
33 |
34 | # vercel
35 | .vercel
36 |
37 | # typescript
38 | *.tsbuildinfo
39 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Todo App
2 |
3 | Simple Todo App with [GitHub](https://github.com) authentication, built with [t3-stack](https://create.t3.gg).
4 |
5 | ### Front-end:
6 |
7 | - **Deployment**: [Vercel](https://vercel.com)
8 | - [Next.js](https://nextjs.org)
9 | - [Tailwind CSS](https://tailwindcss.com)
10 | - [Headless UI](https://headlessui.com)
11 |
12 | ### Back-end:
13 |
14 | - **Deployment**: [Vercel Serverless (/api)](https://vercel.com/docs/concepts/functions/serverless-functions)
15 | - [tRPC](https://trpc.io)
16 | - [Auth.js (NextAuth)](https://authjs.dev)
17 | - [Aiven (MySQL)](https://aiven.io)
18 | - [Prisma](https://prisma.io)
19 | - [Upstash (Redis)](https://upstash.com)
20 | - [Upstash Rate Limit](https://github.com/upstash/ratelimit)
21 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | // NOTE: This file should not be edited
5 | // see https://nextjs.org/docs/basic-features/typescript for more information.
6 |
--------------------------------------------------------------------------------
/next.config.mjs:
--------------------------------------------------------------------------------
1 | await import('./src/env.mjs');
2 |
3 | /** @type {import("next").NextConfig} */
4 | const config = {
5 | reactStrictMode: true,
6 | swcMinify: true,
7 | images: {
8 | domains: ['avatars.githubusercontent.com'],
9 | },
10 | };
11 |
12 | export default config;
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "todo",
3 | "version": "1.0.0",
4 | "license": "MIT",
5 | "scripts": {
6 | "build": "next build",
7 | "dev": "next dev",
8 | "lint": "next lint",
9 | "start": "next start",
10 | "typecheck": "tsc --noEmit",
11 | "postinstall": "prisma generate"
12 | },
13 | "dependencies": {
14 | "@formkit/auto-animate": "^0.8.0",
15 | "@headlessui/react": "^1.7.17",
16 | "@next-auth/prisma-adapter": "^1.0.7",
17 | "@prisma/client": "5.3.1",
18 | "@t3-oss/env-nextjs": "^0.6.1",
19 | "@tanstack/react-query": "^4.35.7",
20 | "@trpc/client": "^10.38.5",
21 | "@trpc/next": "^10.38.5",
22 | "@trpc/react-query": "^10.38.5",
23 | "@trpc/server": "^10.38.5",
24 | "@upstash/ratelimit": "^0.4.4",
25 | "@upstash/redis": "^1.22.1",
26 | "clsx": "^2.0.0",
27 | "next": "13.5.4",
28 | "next-auth": "^4.23.2",
29 | "react": "^18.2.0",
30 | "react-dom": "^18.2.0",
31 | "react-hot-toast": "^2.4.1",
32 | "react-icons": "^4.11.0",
33 | "superjson": "^1.13.3",
34 | "tailwind-merge": "^1.14.0",
35 | "zod": "^3.22.2"
36 | },
37 | "devDependencies": {
38 | "@types/eslint": "^8.44.3",
39 | "@types/node": "^20.8.2",
40 | "@types/react": "18.2.24",
41 | "@types/react-dom": "^18.2.8",
42 | "@typescript-eslint/eslint-plugin": "^6.7.4",
43 | "@typescript-eslint/parser": "^6.7.4",
44 | "autoprefixer": "^10.4.16",
45 | "eslint": "^8.50.0",
46 | "eslint-config-next": "^13.5.4",
47 | "postcss": "^8.4.31",
48 | "prettier": "^3.0.3",
49 | "prettier-plugin-tailwindcss": "^0.5.5",
50 | "prisma": "5.3.1",
51 | "tailwindcss": "^3.3.3",
52 | "typescript": "^5.2.2"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | dependencies:
8 | '@formkit/auto-animate':
9 | specifier: ^0.8.0
10 | version: 0.8.0
11 | '@headlessui/react':
12 | specifier: ^1.7.17
13 | version: 1.7.17(react-dom@18.2.0)(react@18.2.0)
14 | '@next-auth/prisma-adapter':
15 | specifier: ^1.0.7
16 | version: 1.0.7(@prisma/client@5.3.1)(next-auth@4.23.2)
17 | '@prisma/client':
18 | specifier: 5.3.1
19 | version: 5.3.1(prisma@5.3.1)
20 | '@t3-oss/env-nextjs':
21 | specifier: ^0.6.1
22 | version: 0.6.1(typescript@5.2.2)(zod@3.22.2)
23 | '@tanstack/react-query':
24 | specifier: ^4.35.7
25 | version: 4.35.7(react-dom@18.2.0)(react@18.2.0)
26 | '@trpc/client':
27 | specifier: ^10.38.5
28 | version: 10.38.5(@trpc/server@10.38.5)
29 | '@trpc/next':
30 | specifier: ^10.38.5
31 | version: 10.38.5(@tanstack/react-query@4.35.7)(@trpc/client@10.38.5)(@trpc/react-query@10.38.5)(@trpc/server@10.38.5)(next@13.5.4)(react-dom@18.2.0)(react@18.2.0)
32 | '@trpc/react-query':
33 | specifier: ^10.38.5
34 | version: 10.38.5(@tanstack/react-query@4.35.7)(@trpc/client@10.38.5)(@trpc/server@10.38.5)(react-dom@18.2.0)(react@18.2.0)
35 | '@trpc/server':
36 | specifier: ^10.38.5
37 | version: 10.38.5
38 | '@upstash/ratelimit':
39 | specifier: ^0.4.4
40 | version: 0.4.4
41 | '@upstash/redis':
42 | specifier: ^1.22.1
43 | version: 1.22.1
44 | clsx:
45 | specifier: ^2.0.0
46 | version: 2.0.0
47 | next:
48 | specifier: 13.5.4
49 | version: 13.5.4(react-dom@18.2.0)(react@18.2.0)
50 | next-auth:
51 | specifier: ^4.23.2
52 | version: 4.23.2(next@13.5.4)(react-dom@18.2.0)(react@18.2.0)
53 | react:
54 | specifier: ^18.2.0
55 | version: 18.2.0
56 | react-dom:
57 | specifier: ^18.2.0
58 | version: 18.2.0(react@18.2.0)
59 | react-hot-toast:
60 | specifier: ^2.4.1
61 | version: 2.4.1(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0)
62 | react-icons:
63 | specifier: ^4.11.0
64 | version: 4.11.0(react@18.2.0)
65 | superjson:
66 | specifier: ^1.13.3
67 | version: 1.13.3
68 | tailwind-merge:
69 | specifier: ^1.14.0
70 | version: 1.14.0
71 | zod:
72 | specifier: ^3.22.2
73 | version: 3.22.2
74 |
75 | devDependencies:
76 | '@types/eslint':
77 | specifier: ^8.44.3
78 | version: 8.44.3
79 | '@types/node':
80 | specifier: ^20.8.2
81 | version: 20.8.2
82 | '@types/react':
83 | specifier: 18.2.24
84 | version: 18.2.24
85 | '@types/react-dom':
86 | specifier: ^18.2.8
87 | version: 18.2.8
88 | '@typescript-eslint/eslint-plugin':
89 | specifier: ^6.7.4
90 | version: 6.7.4(@typescript-eslint/parser@6.7.4)(eslint@8.50.0)(typescript@5.2.2)
91 | '@typescript-eslint/parser':
92 | specifier: ^6.7.4
93 | version: 6.7.4(eslint@8.50.0)(typescript@5.2.2)
94 | autoprefixer:
95 | specifier: ^10.4.16
96 | version: 10.4.16(postcss@8.4.31)
97 | eslint:
98 | specifier: ^8.50.0
99 | version: 8.50.0
100 | eslint-config-next:
101 | specifier: ^13.5.4
102 | version: 13.5.4(eslint@8.50.0)(typescript@5.2.2)
103 | postcss:
104 | specifier: ^8.4.31
105 | version: 8.4.31
106 | prettier:
107 | specifier: ^3.0.3
108 | version: 3.0.3
109 | prettier-plugin-tailwindcss:
110 | specifier: ^0.5.5
111 | version: 0.5.5(prettier@3.0.3)
112 | prisma:
113 | specifier: 5.3.1
114 | version: 5.3.1
115 | tailwindcss:
116 | specifier: ^3.3.3
117 | version: 3.3.3
118 | typescript:
119 | specifier: ^5.2.2
120 | version: 5.2.2
121 |
122 | packages:
123 |
124 | /@aashutoshrathi/word-wrap@1.2.6:
125 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
126 | engines: {node: '>=0.10.0'}
127 | dev: true
128 |
129 | /@alloc/quick-lru@5.2.0:
130 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
131 | engines: {node: '>=10'}
132 | dev: true
133 |
134 | /@babel/runtime@7.23.1:
135 | resolution: {integrity: sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==}
136 | engines: {node: '>=6.9.0'}
137 | dependencies:
138 | regenerator-runtime: 0.14.0
139 |
140 | /@eslint-community/eslint-utils@4.4.0(eslint@8.50.0):
141 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
142 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
143 | peerDependencies:
144 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
145 | dependencies:
146 | eslint: 8.50.0
147 | eslint-visitor-keys: 3.4.3
148 | dev: true
149 |
150 | /@eslint-community/regexpp@4.9.1:
151 | resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==}
152 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
153 | dev: true
154 |
155 | /@eslint/eslintrc@2.1.2:
156 | resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==}
157 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
158 | dependencies:
159 | ajv: 6.12.6
160 | debug: 4.3.4
161 | espree: 9.6.1
162 | globals: 13.22.0
163 | ignore: 5.2.4
164 | import-fresh: 3.3.0
165 | js-yaml: 4.1.0
166 | minimatch: 3.1.2
167 | strip-json-comments: 3.1.1
168 | transitivePeerDependencies:
169 | - supports-color
170 | dev: true
171 |
172 | /@eslint/js@8.50.0:
173 | resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==}
174 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
175 | dev: true
176 |
177 | /@formkit/auto-animate@0.8.0:
178 | resolution: {integrity: sha512-G8f7489ka0mWyi+1IEZT+xgIwcpWtRMmE2x+IrVoQ+KM1cP6VDj/TbujZjwxdb0P8w8b16/qBfViRmydbYHwMw==}
179 | dev: false
180 |
181 | /@headlessui/react@1.7.17(react-dom@18.2.0)(react@18.2.0):
182 | resolution: {integrity: sha512-4am+tzvkqDSSgiwrsEpGWqgGo9dz8qU5M3znCkC4PgkpY4HcCZzEDEvozltGGGHIKl9jbXbZPSH5TWn4sWJdow==}
183 | engines: {node: '>=10'}
184 | peerDependencies:
185 | react: ^16 || ^17 || ^18
186 | react-dom: ^16 || ^17 || ^18
187 | dependencies:
188 | client-only: 0.0.1
189 | react: 18.2.0
190 | react-dom: 18.2.0(react@18.2.0)
191 | dev: false
192 |
193 | /@humanwhocodes/config-array@0.11.11:
194 | resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==}
195 | engines: {node: '>=10.10.0'}
196 | dependencies:
197 | '@humanwhocodes/object-schema': 1.2.1
198 | debug: 4.3.4
199 | minimatch: 3.1.2
200 | transitivePeerDependencies:
201 | - supports-color
202 | dev: true
203 |
204 | /@humanwhocodes/module-importer@1.0.1:
205 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
206 | engines: {node: '>=12.22'}
207 | dev: true
208 |
209 | /@humanwhocodes/object-schema@1.2.1:
210 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
211 | dev: true
212 |
213 | /@jridgewell/gen-mapping@0.3.3:
214 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
215 | engines: {node: '>=6.0.0'}
216 | dependencies:
217 | '@jridgewell/set-array': 1.1.2
218 | '@jridgewell/sourcemap-codec': 1.4.15
219 | '@jridgewell/trace-mapping': 0.3.19
220 | dev: true
221 |
222 | /@jridgewell/resolve-uri@3.1.1:
223 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
224 | engines: {node: '>=6.0.0'}
225 | dev: true
226 |
227 | /@jridgewell/set-array@1.1.2:
228 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
229 | engines: {node: '>=6.0.0'}
230 | dev: true
231 |
232 | /@jridgewell/sourcemap-codec@1.4.15:
233 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
234 | dev: true
235 |
236 | /@jridgewell/trace-mapping@0.3.19:
237 | resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
238 | dependencies:
239 | '@jridgewell/resolve-uri': 3.1.1
240 | '@jridgewell/sourcemap-codec': 1.4.15
241 | dev: true
242 |
243 | /@next-auth/prisma-adapter@1.0.7(@prisma/client@5.3.1)(next-auth@4.23.2):
244 | resolution: {integrity: sha512-Cdko4KfcmKjsyHFrWwZ//lfLUbcLqlyFqjd/nYE2m3aZ7tjMNUjpks47iw7NTCnXf+5UWz5Ypyt1dSs1EP5QJw==}
245 | peerDependencies:
246 | '@prisma/client': '>=2.26.0 || >=3'
247 | next-auth: ^4
248 | dependencies:
249 | '@prisma/client': 5.3.1(prisma@5.3.1)
250 | next-auth: 4.23.2(next@13.5.4)(react-dom@18.2.0)(react@18.2.0)
251 | dev: false
252 |
253 | /@next/env@13.5.4:
254 | resolution: {integrity: sha512-LGegJkMvRNw90WWphGJ3RMHMVplYcOfRWf2Be3td3sUa+1AaxmsYyANsA+znrGCBjXJNi4XAQlSoEfUxs/4kIQ==}
255 | dev: false
256 |
257 | /@next/eslint-plugin-next@13.5.4:
258 | resolution: {integrity: sha512-vI94U+D7RNgX6XypSyjeFrOzxGlZyxOplU0dVE5norIfZGn/LDjJYPHdvdsR5vN1eRtl6PDAsOHmycFEOljK5A==}
259 | dependencies:
260 | glob: 7.1.7
261 | dev: true
262 |
263 | /@next/swc-darwin-arm64@13.5.4:
264 | resolution: {integrity: sha512-Df8SHuXgF1p+aonBMcDPEsaahNo2TCwuie7VXED4FVyECvdXfRT9unapm54NssV9tF3OQFKBFOdlje4T43VO0w==}
265 | engines: {node: '>= 10'}
266 | cpu: [arm64]
267 | os: [darwin]
268 | requiresBuild: true
269 | dev: false
270 | optional: true
271 |
272 | /@next/swc-darwin-x64@13.5.4:
273 | resolution: {integrity: sha512-siPuUwO45PnNRMeZnSa8n/Lye5ZX93IJom9wQRB5DEOdFrw0JjOMu1GINB8jAEdwa7Vdyn1oJ2xGNaQpdQQ9Pw==}
274 | engines: {node: '>= 10'}
275 | cpu: [x64]
276 | os: [darwin]
277 | requiresBuild: true
278 | dev: false
279 | optional: true
280 |
281 | /@next/swc-linux-arm64-gnu@13.5.4:
282 | resolution: {integrity: sha512-l/k/fvRP/zmB2jkFMfefmFkyZbDkYW0mRM/LB+tH5u9pB98WsHXC0WvDHlGCYp3CH/jlkJPL7gN8nkTQVrQ/2w==}
283 | engines: {node: '>= 10'}
284 | cpu: [arm64]
285 | os: [linux]
286 | requiresBuild: true
287 | dev: false
288 | optional: true
289 |
290 | /@next/swc-linux-arm64-musl@13.5.4:
291 | resolution: {integrity: sha512-YYGb7SlLkI+XqfQa8VPErljb7k9nUnhhRrVaOdfJNCaQnHBcvbT7cx/UjDQLdleJcfyg1Hkn5YSSIeVfjgmkTg==}
292 | engines: {node: '>= 10'}
293 | cpu: [arm64]
294 | os: [linux]
295 | requiresBuild: true
296 | dev: false
297 | optional: true
298 |
299 | /@next/swc-linux-x64-gnu@13.5.4:
300 | resolution: {integrity: sha512-uE61vyUSClnCH18YHjA8tE1prr/PBFlBFhxBZis4XBRJoR+txAky5d7gGNUIbQ8sZZ7LVkSVgm/5Fc7mwXmRAg==}
301 | engines: {node: '>= 10'}
302 | cpu: [x64]
303 | os: [linux]
304 | requiresBuild: true
305 | dev: false
306 | optional: true
307 |
308 | /@next/swc-linux-x64-musl@13.5.4:
309 | resolution: {integrity: sha512-qVEKFYML/GvJSy9CfYqAdUexA6M5AklYcQCW+8JECmkQHGoPxCf04iMh7CPR7wkHyWWK+XLt4Ja7hhsPJtSnhg==}
310 | engines: {node: '>= 10'}
311 | cpu: [x64]
312 | os: [linux]
313 | requiresBuild: true
314 | dev: false
315 | optional: true
316 |
317 | /@next/swc-win32-arm64-msvc@13.5.4:
318 | resolution: {integrity: sha512-mDSQfqxAlfpeZOLPxLymZkX0hYF3juN57W6vFHTvwKlnHfmh12Pt7hPIRLYIShk8uYRsKPtMTth/EzpwRI+u8w==}
319 | engines: {node: '>= 10'}
320 | cpu: [arm64]
321 | os: [win32]
322 | requiresBuild: true
323 | dev: false
324 | optional: true
325 |
326 | /@next/swc-win32-ia32-msvc@13.5.4:
327 | resolution: {integrity: sha512-aoqAT2XIekIWoriwzOmGFAvTtVY5O7JjV21giozBTP5c6uZhpvTWRbmHXbmsjZqY4HnEZQRXWkSAppsIBweKqw==}
328 | engines: {node: '>= 10'}
329 | cpu: [ia32]
330 | os: [win32]
331 | requiresBuild: true
332 | dev: false
333 | optional: true
334 |
335 | /@next/swc-win32-x64-msvc@13.5.4:
336 | resolution: {integrity: sha512-cyRvlAxwlddlqeB9xtPSfNSCRy8BOa4wtMo0IuI9P7Y0XT2qpDrpFKRyZ7kUngZis59mPVla5k8X1oOJ8RxDYg==}
337 | engines: {node: '>= 10'}
338 | cpu: [x64]
339 | os: [win32]
340 | requiresBuild: true
341 | dev: false
342 | optional: true
343 |
344 | /@nodelib/fs.scandir@2.1.5:
345 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
346 | engines: {node: '>= 8'}
347 | dependencies:
348 | '@nodelib/fs.stat': 2.0.5
349 | run-parallel: 1.2.0
350 | dev: true
351 |
352 | /@nodelib/fs.stat@2.0.5:
353 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
354 | engines: {node: '>= 8'}
355 | dev: true
356 |
357 | /@nodelib/fs.walk@1.2.8:
358 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
359 | engines: {node: '>= 8'}
360 | dependencies:
361 | '@nodelib/fs.scandir': 2.1.5
362 | fastq: 1.15.0
363 | dev: true
364 |
365 | /@panva/hkdf@1.1.1:
366 | resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==}
367 | dev: false
368 |
369 | /@prisma/client@5.3.1(prisma@5.3.1):
370 | resolution: {integrity: sha512-ArOKjHwdFZIe1cGU56oIfy7wRuTn0FfZjGuU/AjgEBOQh+4rDkB6nF+AGHP8KaVpkBIiHGPQh3IpwQ3xDMdO0Q==}
371 | engines: {node: '>=16.13'}
372 | requiresBuild: true
373 | peerDependencies:
374 | prisma: '*'
375 | peerDependenciesMeta:
376 | prisma:
377 | optional: true
378 | dependencies:
379 | '@prisma/engines-version': 5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59
380 | prisma: 5.3.1
381 | dev: false
382 |
383 | /@prisma/engines-version@5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59:
384 | resolution: {integrity: sha512-y5qbUi3ql2Xg7XraqcXEdMHh0MocBfnBzDn5GbV1xk23S3Mq8MGs+VjacTNiBh3dtEdUERCrUUG7Z3QaJ+h79w==}
385 | dev: false
386 |
387 | /@prisma/engines@5.3.1:
388 | resolution: {integrity: sha512-6QkILNyfeeN67BNEPEtkgh3Xo2tm6D7V+UhrkBbRHqKw9CTaz/vvTP/ROwYSP/3JT2MtIutZm/EnhxUiuOPVDA==}
389 | requiresBuild: true
390 |
391 | /@rushstack/eslint-patch@1.5.1:
392 | resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==}
393 | dev: true
394 |
395 | /@swc/helpers@0.5.2:
396 | resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
397 | dependencies:
398 | tslib: 2.6.2
399 | dev: false
400 |
401 | /@t3-oss/env-core@0.6.1(typescript@5.2.2)(zod@3.22.2):
402 | resolution: {integrity: sha512-KQD7qEDJtkWIWWmTVjNvk0wnHpkvAQ6CRbUxbWMFNG/fiosBQDQvtRpBNu6USxBscJCoC4z6y7P9MN52/mLOzw==}
403 | peerDependencies:
404 | typescript: '>=4.7.2'
405 | zod: ^3.0.0
406 | dependencies:
407 | typescript: 5.2.2
408 | zod: 3.22.2
409 | dev: false
410 |
411 | /@t3-oss/env-nextjs@0.6.1(typescript@5.2.2)(zod@3.22.2):
412 | resolution: {integrity: sha512-z1dIC++Vxj9kmzX5nSPfcrCSkszy3dTEPC4Ssx7Ap5AqR3c2Qa7S0xf8axn6coy7D/vCXDAAnHYnCMDhtcY3SQ==}
413 | peerDependencies:
414 | typescript: '>=4.7.2'
415 | zod: ^3.0.0
416 | dependencies:
417 | '@t3-oss/env-core': 0.6.1(typescript@5.2.2)(zod@3.22.2)
418 | typescript: 5.2.2
419 | zod: 3.22.2
420 | dev: false
421 |
422 | /@tanstack/query-core@4.35.7:
423 | resolution: {integrity: sha512-PgDJtX75ubFS0WCYFM7DqEoJ4QbxU3S5OH3gJSI40xr7UVVax3/J4CM3XUMOTs+EOT5YGEfssi3tfRVGte4DEw==}
424 | dev: false
425 |
426 | /@tanstack/react-query@4.35.7(react-dom@18.2.0)(react@18.2.0):
427 | resolution: {integrity: sha512-0MankquP/6EOM2ATfEov6ViiKemey5uTbjGlFMX1xGotwNaqC76YKDMJdHumZupPbZcZPWAeoPGEHQmVKIKoOQ==}
428 | peerDependencies:
429 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
430 | react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
431 | react-native: '*'
432 | peerDependenciesMeta:
433 | react-dom:
434 | optional: true
435 | react-native:
436 | optional: true
437 | dependencies:
438 | '@tanstack/query-core': 4.35.7
439 | react: 18.2.0
440 | react-dom: 18.2.0(react@18.2.0)
441 | use-sync-external-store: 1.2.0(react@18.2.0)
442 | dev: false
443 |
444 | /@trpc/client@10.38.5(@trpc/server@10.38.5):
445 | resolution: {integrity: sha512-tpGUsoAP+3CD/1KRqMdWZ+zebvB68/86SaVPAYHaEDozTFLQdNqTe98DS/T0S4hfh7WCKbMSObj40SCzE8amKQ==}
446 | peerDependencies:
447 | '@trpc/server': 10.38.5
448 | dependencies:
449 | '@trpc/server': 10.38.5
450 | dev: false
451 |
452 | /@trpc/next@10.38.5(@tanstack/react-query@4.35.7)(@trpc/client@10.38.5)(@trpc/react-query@10.38.5)(@trpc/server@10.38.5)(next@13.5.4)(react-dom@18.2.0)(react@18.2.0):
453 | resolution: {integrity: sha512-sSPEiaNtNIH3psU+RiGtfLWjLbHFaD66pqcPvUR3C686u7A3TDFXznez9K20Ii0LRwpyQOWCz2Doe51oj7TL6w==}
454 | peerDependencies:
455 | '@tanstack/react-query': ^4.18.0
456 | '@trpc/client': 10.38.5
457 | '@trpc/react-query': 10.38.5
458 | '@trpc/server': 10.38.5
459 | next: '*'
460 | react: '>=16.8.0'
461 | react-dom: '>=16.8.0'
462 | dependencies:
463 | '@tanstack/react-query': 4.35.7(react-dom@18.2.0)(react@18.2.0)
464 | '@trpc/client': 10.38.5(@trpc/server@10.38.5)
465 | '@trpc/react-query': 10.38.5(@tanstack/react-query@4.35.7)(@trpc/client@10.38.5)(@trpc/server@10.38.5)(react-dom@18.2.0)(react@18.2.0)
466 | '@trpc/server': 10.38.5
467 | next: 13.5.4(react-dom@18.2.0)(react@18.2.0)
468 | react: 18.2.0
469 | react-dom: 18.2.0(react@18.2.0)
470 | react-ssr-prepass: 1.5.0(react@18.2.0)
471 | dev: false
472 |
473 | /@trpc/react-query@10.38.5(@tanstack/react-query@4.35.7)(@trpc/client@10.38.5)(@trpc/server@10.38.5)(react-dom@18.2.0)(react@18.2.0):
474 | resolution: {integrity: sha512-cGpKfiQen3ba3lTII3+Y6Hm3KnC60AS9n2AYt07I7LZx/GknsGHq4h570imdIxr6Qb5LtYe3DFV13kzbm+yGeA==}
475 | peerDependencies:
476 | '@tanstack/react-query': ^4.18.0
477 | '@trpc/client': 10.38.5
478 | '@trpc/server': 10.38.5
479 | react: '>=16.8.0'
480 | react-dom: '>=16.8.0'
481 | dependencies:
482 | '@tanstack/react-query': 4.35.7(react-dom@18.2.0)(react@18.2.0)
483 | '@trpc/client': 10.38.5(@trpc/server@10.38.5)
484 | '@trpc/server': 10.38.5
485 | react: 18.2.0
486 | react-dom: 18.2.0(react@18.2.0)
487 | dev: false
488 |
489 | /@trpc/server@10.38.5:
490 | resolution: {integrity: sha512-J0d2Y3Gpt2bMohOshPBfuzDqVrPaE3OKEDtJYgTmLk5t1pZy3kXHQep4rP2LEIr+ELbmkelhcrSvvFLA+4/w/Q==}
491 | dev: false
492 |
493 | /@types/eslint@8.44.3:
494 | resolution: {integrity: sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==}
495 | dependencies:
496 | '@types/estree': 1.0.2
497 | '@types/json-schema': 7.0.13
498 | dev: true
499 |
500 | /@types/estree@1.0.2:
501 | resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==}
502 | dev: true
503 |
504 | /@types/json-schema@7.0.13:
505 | resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==}
506 | dev: true
507 |
508 | /@types/json5@0.0.29:
509 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
510 | dev: true
511 |
512 | /@types/node@20.8.2:
513 | resolution: {integrity: sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==}
514 | dev: true
515 |
516 | /@types/prop-types@15.7.8:
517 | resolution: {integrity: sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==}
518 | dev: true
519 |
520 | /@types/react-dom@18.2.8:
521 | resolution: {integrity: sha512-bAIvO5lN/U8sPGvs1Xm61rlRHHaq5rp5N3kp9C+NJ/Q41P8iqjkXSu0+/qu8POsjH9pNWb0OYabFez7taP7omw==}
522 | dependencies:
523 | '@types/react': 18.2.24
524 | dev: true
525 |
526 | /@types/react@18.2.24:
527 | resolution: {integrity: sha512-Ee0Jt4sbJxMu1iDcetZEIKQr99J1Zfb6D4F3qfUWoR1JpInkY1Wdg4WwCyBjL257D0+jGqSl1twBjV8iCaC0Aw==}
528 | dependencies:
529 | '@types/prop-types': 15.7.8
530 | '@types/scheduler': 0.16.4
531 | csstype: 3.1.2
532 | dev: true
533 |
534 | /@types/scheduler@0.16.4:
535 | resolution: {integrity: sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==}
536 | dev: true
537 |
538 | /@types/semver@7.5.3:
539 | resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==}
540 | dev: true
541 |
542 | /@typescript-eslint/eslint-plugin@6.7.4(@typescript-eslint/parser@6.7.4)(eslint@8.50.0)(typescript@5.2.2):
543 | resolution: {integrity: sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==}
544 | engines: {node: ^16.0.0 || >=18.0.0}
545 | peerDependencies:
546 | '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
547 | eslint: ^7.0.0 || ^8.0.0
548 | typescript: '*'
549 | peerDependenciesMeta:
550 | typescript:
551 | optional: true
552 | dependencies:
553 | '@eslint-community/regexpp': 4.9.1
554 | '@typescript-eslint/parser': 6.7.4(eslint@8.50.0)(typescript@5.2.2)
555 | '@typescript-eslint/scope-manager': 6.7.4
556 | '@typescript-eslint/type-utils': 6.7.4(eslint@8.50.0)(typescript@5.2.2)
557 | '@typescript-eslint/utils': 6.7.4(eslint@8.50.0)(typescript@5.2.2)
558 | '@typescript-eslint/visitor-keys': 6.7.4
559 | debug: 4.3.4
560 | eslint: 8.50.0
561 | graphemer: 1.4.0
562 | ignore: 5.2.4
563 | natural-compare: 1.4.0
564 | semver: 7.5.4
565 | ts-api-utils: 1.0.3(typescript@5.2.2)
566 | typescript: 5.2.2
567 | transitivePeerDependencies:
568 | - supports-color
569 | dev: true
570 |
571 | /@typescript-eslint/parser@6.7.4(eslint@8.50.0)(typescript@5.2.2):
572 | resolution: {integrity: sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==}
573 | engines: {node: ^16.0.0 || >=18.0.0}
574 | peerDependencies:
575 | eslint: ^7.0.0 || ^8.0.0
576 | typescript: '*'
577 | peerDependenciesMeta:
578 | typescript:
579 | optional: true
580 | dependencies:
581 | '@typescript-eslint/scope-manager': 6.7.4
582 | '@typescript-eslint/types': 6.7.4
583 | '@typescript-eslint/typescript-estree': 6.7.4(typescript@5.2.2)
584 | '@typescript-eslint/visitor-keys': 6.7.4
585 | debug: 4.3.4
586 | eslint: 8.50.0
587 | typescript: 5.2.2
588 | transitivePeerDependencies:
589 | - supports-color
590 | dev: true
591 |
592 | /@typescript-eslint/scope-manager@6.7.4:
593 | resolution: {integrity: sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==}
594 | engines: {node: ^16.0.0 || >=18.0.0}
595 | dependencies:
596 | '@typescript-eslint/types': 6.7.4
597 | '@typescript-eslint/visitor-keys': 6.7.4
598 | dev: true
599 |
600 | /@typescript-eslint/type-utils@6.7.4(eslint@8.50.0)(typescript@5.2.2):
601 | resolution: {integrity: sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==}
602 | engines: {node: ^16.0.0 || >=18.0.0}
603 | peerDependencies:
604 | eslint: ^7.0.0 || ^8.0.0
605 | typescript: '*'
606 | peerDependenciesMeta:
607 | typescript:
608 | optional: true
609 | dependencies:
610 | '@typescript-eslint/typescript-estree': 6.7.4(typescript@5.2.2)
611 | '@typescript-eslint/utils': 6.7.4(eslint@8.50.0)(typescript@5.2.2)
612 | debug: 4.3.4
613 | eslint: 8.50.0
614 | ts-api-utils: 1.0.3(typescript@5.2.2)
615 | typescript: 5.2.2
616 | transitivePeerDependencies:
617 | - supports-color
618 | dev: true
619 |
620 | /@typescript-eslint/types@6.7.4:
621 | resolution: {integrity: sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==}
622 | engines: {node: ^16.0.0 || >=18.0.0}
623 | dev: true
624 |
625 | /@typescript-eslint/typescript-estree@6.7.4(typescript@5.2.2):
626 | resolution: {integrity: sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==}
627 | engines: {node: ^16.0.0 || >=18.0.0}
628 | peerDependencies:
629 | typescript: '*'
630 | peerDependenciesMeta:
631 | typescript:
632 | optional: true
633 | dependencies:
634 | '@typescript-eslint/types': 6.7.4
635 | '@typescript-eslint/visitor-keys': 6.7.4
636 | debug: 4.3.4
637 | globby: 11.1.0
638 | is-glob: 4.0.3
639 | semver: 7.5.4
640 | ts-api-utils: 1.0.3(typescript@5.2.2)
641 | typescript: 5.2.2
642 | transitivePeerDependencies:
643 | - supports-color
644 | dev: true
645 |
646 | /@typescript-eslint/utils@6.7.4(eslint@8.50.0)(typescript@5.2.2):
647 | resolution: {integrity: sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==}
648 | engines: {node: ^16.0.0 || >=18.0.0}
649 | peerDependencies:
650 | eslint: ^7.0.0 || ^8.0.0
651 | dependencies:
652 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0)
653 | '@types/json-schema': 7.0.13
654 | '@types/semver': 7.5.3
655 | '@typescript-eslint/scope-manager': 6.7.4
656 | '@typescript-eslint/types': 6.7.4
657 | '@typescript-eslint/typescript-estree': 6.7.4(typescript@5.2.2)
658 | eslint: 8.50.0
659 | semver: 7.5.4
660 | transitivePeerDependencies:
661 | - supports-color
662 | - typescript
663 | dev: true
664 |
665 | /@typescript-eslint/visitor-keys@6.7.4:
666 | resolution: {integrity: sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==}
667 | engines: {node: ^16.0.0 || >=18.0.0}
668 | dependencies:
669 | '@typescript-eslint/types': 6.7.4
670 | eslint-visitor-keys: 3.4.3
671 | dev: true
672 |
673 | /@upstash/core-analytics@0.0.6:
674 | resolution: {integrity: sha512-cpPSR0XJAJs4Ddz9nq3tINlPS5aLfWVCqhhtHnXt4p7qr5+/Znlt1Es736poB/9rnl1hAHrOsOvVj46NEXcVqA==}
675 | engines: {node: '>=16.0.0'}
676 | dependencies:
677 | '@upstash/redis': 1.22.1
678 | transitivePeerDependencies:
679 | - encoding
680 | dev: false
681 |
682 | /@upstash/ratelimit@0.4.4:
683 | resolution: {integrity: sha512-y3q6cNDdcRQ2MRPRf5UNWBN36IwnZ4kAEkGoH3i6OqdWwz4qlBxNsw4/Rpqn9h93+Nx1cqg5IOq7O2e2zMJY1w==}
684 | dependencies:
685 | '@upstash/core-analytics': 0.0.6
686 | transitivePeerDependencies:
687 | - encoding
688 | dev: false
689 |
690 | /@upstash/redis@1.22.1:
691 | resolution: {integrity: sha512-7ec2eCMkVxZzuHNb+hPKonX4b/Pu0BdDeSBsEy+jKIqiweXzCs5Dpu9642vJgf57YnEsfwgXnQMVEataarvyeQ==}
692 | dependencies:
693 | isomorphic-fetch: 3.0.0
694 | transitivePeerDependencies:
695 | - encoding
696 | dev: false
697 |
698 | /acorn-jsx@5.3.2(acorn@8.10.0):
699 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
700 | peerDependencies:
701 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
702 | dependencies:
703 | acorn: 8.10.0
704 | dev: true
705 |
706 | /acorn@8.10.0:
707 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
708 | engines: {node: '>=0.4.0'}
709 | hasBin: true
710 | dev: true
711 |
712 | /ajv@6.12.6:
713 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
714 | dependencies:
715 | fast-deep-equal: 3.1.3
716 | fast-json-stable-stringify: 2.1.0
717 | json-schema-traverse: 0.4.1
718 | uri-js: 4.4.1
719 | dev: true
720 |
721 | /ansi-regex@5.0.1:
722 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
723 | engines: {node: '>=8'}
724 | dev: true
725 |
726 | /ansi-styles@4.3.0:
727 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
728 | engines: {node: '>=8'}
729 | dependencies:
730 | color-convert: 2.0.1
731 | dev: true
732 |
733 | /any-promise@1.3.0:
734 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
735 | dev: true
736 |
737 | /anymatch@3.1.3:
738 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
739 | engines: {node: '>= 8'}
740 | dependencies:
741 | normalize-path: 3.0.0
742 | picomatch: 2.3.1
743 | dev: true
744 |
745 | /arg@5.0.2:
746 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
747 | dev: true
748 |
749 | /argparse@2.0.1:
750 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
751 | dev: true
752 |
753 | /aria-query@5.3.0:
754 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
755 | dependencies:
756 | dequal: 2.0.3
757 | dev: true
758 |
759 | /array-buffer-byte-length@1.0.0:
760 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
761 | dependencies:
762 | call-bind: 1.0.2
763 | is-array-buffer: 3.0.2
764 | dev: true
765 |
766 | /array-includes@3.1.7:
767 | resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
768 | engines: {node: '>= 0.4'}
769 | dependencies:
770 | call-bind: 1.0.2
771 | define-properties: 1.2.1
772 | es-abstract: 1.22.2
773 | get-intrinsic: 1.2.1
774 | is-string: 1.0.7
775 | dev: true
776 |
777 | /array-union@2.1.0:
778 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
779 | engines: {node: '>=8'}
780 | dev: true
781 |
782 | /array.prototype.findlastindex@1.2.3:
783 | resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==}
784 | engines: {node: '>= 0.4'}
785 | dependencies:
786 | call-bind: 1.0.2
787 | define-properties: 1.2.1
788 | es-abstract: 1.22.2
789 | es-shim-unscopables: 1.0.0
790 | get-intrinsic: 1.2.1
791 | dev: true
792 |
793 | /array.prototype.flat@1.3.2:
794 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
795 | engines: {node: '>= 0.4'}
796 | dependencies:
797 | call-bind: 1.0.2
798 | define-properties: 1.2.1
799 | es-abstract: 1.22.2
800 | es-shim-unscopables: 1.0.0
801 | dev: true
802 |
803 | /array.prototype.flatmap@1.3.2:
804 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
805 | engines: {node: '>= 0.4'}
806 | dependencies:
807 | call-bind: 1.0.2
808 | define-properties: 1.2.1
809 | es-abstract: 1.22.2
810 | es-shim-unscopables: 1.0.0
811 | dev: true
812 |
813 | /array.prototype.tosorted@1.1.2:
814 | resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==}
815 | dependencies:
816 | call-bind: 1.0.2
817 | define-properties: 1.2.1
818 | es-abstract: 1.22.2
819 | es-shim-unscopables: 1.0.0
820 | get-intrinsic: 1.2.1
821 | dev: true
822 |
823 | /arraybuffer.prototype.slice@1.0.2:
824 | resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==}
825 | engines: {node: '>= 0.4'}
826 | dependencies:
827 | array-buffer-byte-length: 1.0.0
828 | call-bind: 1.0.2
829 | define-properties: 1.2.1
830 | es-abstract: 1.22.2
831 | get-intrinsic: 1.2.1
832 | is-array-buffer: 3.0.2
833 | is-shared-array-buffer: 1.0.2
834 | dev: true
835 |
836 | /ast-types-flow@0.0.7:
837 | resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
838 | dev: true
839 |
840 | /asynciterator.prototype@1.0.0:
841 | resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==}
842 | dependencies:
843 | has-symbols: 1.0.3
844 | dev: true
845 |
846 | /autoprefixer@10.4.16(postcss@8.4.31):
847 | resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
848 | engines: {node: ^10 || ^12 || >=14}
849 | hasBin: true
850 | peerDependencies:
851 | postcss: ^8.1.0
852 | dependencies:
853 | browserslist: 4.22.1
854 | caniuse-lite: 1.0.30001543
855 | fraction.js: 4.3.6
856 | normalize-range: 0.1.2
857 | picocolors: 1.0.0
858 | postcss: 8.4.31
859 | postcss-value-parser: 4.2.0
860 | dev: true
861 |
862 | /available-typed-arrays@1.0.5:
863 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
864 | engines: {node: '>= 0.4'}
865 | dev: true
866 |
867 | /axe-core@4.8.2:
868 | resolution: {integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==}
869 | engines: {node: '>=4'}
870 | dev: true
871 |
872 | /axobject-query@3.2.1:
873 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
874 | dependencies:
875 | dequal: 2.0.3
876 | dev: true
877 |
878 | /balanced-match@1.0.2:
879 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
880 | dev: true
881 |
882 | /binary-extensions@2.2.0:
883 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
884 | engines: {node: '>=8'}
885 | dev: true
886 |
887 | /brace-expansion@1.1.11:
888 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
889 | dependencies:
890 | balanced-match: 1.0.2
891 | concat-map: 0.0.1
892 | dev: true
893 |
894 | /braces@3.0.2:
895 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
896 | engines: {node: '>=8'}
897 | dependencies:
898 | fill-range: 7.0.1
899 | dev: true
900 |
901 | /browserslist@4.22.1:
902 | resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
903 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
904 | hasBin: true
905 | dependencies:
906 | caniuse-lite: 1.0.30001543
907 | electron-to-chromium: 1.4.540
908 | node-releases: 2.0.13
909 | update-browserslist-db: 1.0.13(browserslist@4.22.1)
910 | dev: true
911 |
912 | /busboy@1.6.0:
913 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
914 | engines: {node: '>=10.16.0'}
915 | dependencies:
916 | streamsearch: 1.1.0
917 | dev: false
918 |
919 | /call-bind@1.0.2:
920 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
921 | dependencies:
922 | function-bind: 1.1.1
923 | get-intrinsic: 1.2.1
924 | dev: true
925 |
926 | /callsites@3.1.0:
927 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
928 | engines: {node: '>=6'}
929 | dev: true
930 |
931 | /camelcase-css@2.0.1:
932 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
933 | engines: {node: '>= 6'}
934 | dev: true
935 |
936 | /caniuse-lite@1.0.30001543:
937 | resolution: {integrity: sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA==}
938 |
939 | /chalk@4.1.2:
940 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
941 | engines: {node: '>=10'}
942 | dependencies:
943 | ansi-styles: 4.3.0
944 | supports-color: 7.2.0
945 | dev: true
946 |
947 | /chokidar@3.5.3:
948 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
949 | engines: {node: '>= 8.10.0'}
950 | dependencies:
951 | anymatch: 3.1.3
952 | braces: 3.0.2
953 | glob-parent: 5.1.2
954 | is-binary-path: 2.1.0
955 | is-glob: 4.0.3
956 | normalize-path: 3.0.0
957 | readdirp: 3.6.0
958 | optionalDependencies:
959 | fsevents: 2.3.3
960 | dev: true
961 |
962 | /client-only@0.0.1:
963 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
964 | dev: false
965 |
966 | /clsx@2.0.0:
967 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
968 | engines: {node: '>=6'}
969 | dev: false
970 |
971 | /color-convert@2.0.1:
972 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
973 | engines: {node: '>=7.0.0'}
974 | dependencies:
975 | color-name: 1.1.4
976 | dev: true
977 |
978 | /color-name@1.1.4:
979 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
980 | dev: true
981 |
982 | /commander@4.1.1:
983 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
984 | engines: {node: '>= 6'}
985 | dev: true
986 |
987 | /concat-map@0.0.1:
988 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
989 | dev: true
990 |
991 | /cookie@0.5.0:
992 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
993 | engines: {node: '>= 0.6'}
994 | dev: false
995 |
996 | /copy-anything@3.0.5:
997 | resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
998 | engines: {node: '>=12.13'}
999 | dependencies:
1000 | is-what: 4.1.15
1001 | dev: false
1002 |
1003 | /cross-spawn@7.0.3:
1004 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
1005 | engines: {node: '>= 8'}
1006 | dependencies:
1007 | path-key: 3.1.1
1008 | shebang-command: 2.0.0
1009 | which: 2.0.2
1010 | dev: true
1011 |
1012 | /cssesc@3.0.0:
1013 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
1014 | engines: {node: '>=4'}
1015 | hasBin: true
1016 | dev: true
1017 |
1018 | /csstype@3.1.2:
1019 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
1020 |
1021 | /damerau-levenshtein@1.0.8:
1022 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
1023 | dev: true
1024 |
1025 | /debug@3.2.7:
1026 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
1027 | peerDependencies:
1028 | supports-color: '*'
1029 | peerDependenciesMeta:
1030 | supports-color:
1031 | optional: true
1032 | dependencies:
1033 | ms: 2.1.3
1034 | dev: true
1035 |
1036 | /debug@4.3.4:
1037 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
1038 | engines: {node: '>=6.0'}
1039 | peerDependencies:
1040 | supports-color: '*'
1041 | peerDependenciesMeta:
1042 | supports-color:
1043 | optional: true
1044 | dependencies:
1045 | ms: 2.1.2
1046 | dev: true
1047 |
1048 | /deep-is@0.1.4:
1049 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
1050 | dev: true
1051 |
1052 | /define-data-property@1.1.0:
1053 | resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==}
1054 | engines: {node: '>= 0.4'}
1055 | dependencies:
1056 | get-intrinsic: 1.2.1
1057 | gopd: 1.0.1
1058 | has-property-descriptors: 1.0.0
1059 | dev: true
1060 |
1061 | /define-properties@1.2.1:
1062 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
1063 | engines: {node: '>= 0.4'}
1064 | dependencies:
1065 | define-data-property: 1.1.0
1066 | has-property-descriptors: 1.0.0
1067 | object-keys: 1.1.1
1068 | dev: true
1069 |
1070 | /dequal@2.0.3:
1071 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
1072 | engines: {node: '>=6'}
1073 | dev: true
1074 |
1075 | /didyoumean@1.2.2:
1076 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
1077 | dev: true
1078 |
1079 | /dir-glob@3.0.1:
1080 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
1081 | engines: {node: '>=8'}
1082 | dependencies:
1083 | path-type: 4.0.0
1084 | dev: true
1085 |
1086 | /dlv@1.1.3:
1087 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
1088 | dev: true
1089 |
1090 | /doctrine@2.1.0:
1091 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
1092 | engines: {node: '>=0.10.0'}
1093 | dependencies:
1094 | esutils: 2.0.3
1095 | dev: true
1096 |
1097 | /doctrine@3.0.0:
1098 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
1099 | engines: {node: '>=6.0.0'}
1100 | dependencies:
1101 | esutils: 2.0.3
1102 | dev: true
1103 |
1104 | /electron-to-chromium@1.4.540:
1105 | resolution: {integrity: sha512-aoCqgU6r9+o9/S7wkcSbmPRFi7OWZWiXS9rtjEd+Ouyu/Xyw5RSq2XN8s5Qp8IaFOLiRrhQCphCIjAxgG3eCAg==}
1106 | dev: true
1107 |
1108 | /emoji-regex@9.2.2:
1109 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
1110 | dev: true
1111 |
1112 | /enhanced-resolve@5.15.0:
1113 | resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
1114 | engines: {node: '>=10.13.0'}
1115 | dependencies:
1116 | graceful-fs: 4.2.11
1117 | tapable: 2.2.1
1118 | dev: true
1119 |
1120 | /es-abstract@1.22.2:
1121 | resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==}
1122 | engines: {node: '>= 0.4'}
1123 | dependencies:
1124 | array-buffer-byte-length: 1.0.0
1125 | arraybuffer.prototype.slice: 1.0.2
1126 | available-typed-arrays: 1.0.5
1127 | call-bind: 1.0.2
1128 | es-set-tostringtag: 2.0.1
1129 | es-to-primitive: 1.2.1
1130 | function.prototype.name: 1.1.6
1131 | get-intrinsic: 1.2.1
1132 | get-symbol-description: 1.0.0
1133 | globalthis: 1.0.3
1134 | gopd: 1.0.1
1135 | has: 1.0.4
1136 | has-property-descriptors: 1.0.0
1137 | has-proto: 1.0.1
1138 | has-symbols: 1.0.3
1139 | internal-slot: 1.0.5
1140 | is-array-buffer: 3.0.2
1141 | is-callable: 1.2.7
1142 | is-negative-zero: 2.0.2
1143 | is-regex: 1.1.4
1144 | is-shared-array-buffer: 1.0.2
1145 | is-string: 1.0.7
1146 | is-typed-array: 1.1.12
1147 | is-weakref: 1.0.2
1148 | object-inspect: 1.12.3
1149 | object-keys: 1.1.1
1150 | object.assign: 4.1.4
1151 | regexp.prototype.flags: 1.5.1
1152 | safe-array-concat: 1.0.1
1153 | safe-regex-test: 1.0.0
1154 | string.prototype.trim: 1.2.8
1155 | string.prototype.trimend: 1.0.7
1156 | string.prototype.trimstart: 1.0.7
1157 | typed-array-buffer: 1.0.0
1158 | typed-array-byte-length: 1.0.0
1159 | typed-array-byte-offset: 1.0.0
1160 | typed-array-length: 1.0.4
1161 | unbox-primitive: 1.0.2
1162 | which-typed-array: 1.1.11
1163 | dev: true
1164 |
1165 | /es-iterator-helpers@1.0.15:
1166 | resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==}
1167 | dependencies:
1168 | asynciterator.prototype: 1.0.0
1169 | call-bind: 1.0.2
1170 | define-properties: 1.2.1
1171 | es-abstract: 1.22.2
1172 | es-set-tostringtag: 2.0.1
1173 | function-bind: 1.1.1
1174 | get-intrinsic: 1.2.1
1175 | globalthis: 1.0.3
1176 | has-property-descriptors: 1.0.0
1177 | has-proto: 1.0.1
1178 | has-symbols: 1.0.3
1179 | internal-slot: 1.0.5
1180 | iterator.prototype: 1.1.2
1181 | safe-array-concat: 1.0.1
1182 | dev: true
1183 |
1184 | /es-set-tostringtag@2.0.1:
1185 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
1186 | engines: {node: '>= 0.4'}
1187 | dependencies:
1188 | get-intrinsic: 1.2.1
1189 | has: 1.0.4
1190 | has-tostringtag: 1.0.0
1191 | dev: true
1192 |
1193 | /es-shim-unscopables@1.0.0:
1194 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
1195 | dependencies:
1196 | has: 1.0.4
1197 | dev: true
1198 |
1199 | /es-to-primitive@1.2.1:
1200 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
1201 | engines: {node: '>= 0.4'}
1202 | dependencies:
1203 | is-callable: 1.2.7
1204 | is-date-object: 1.0.5
1205 | is-symbol: 1.0.4
1206 | dev: true
1207 |
1208 | /escalade@3.1.1:
1209 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
1210 | engines: {node: '>=6'}
1211 | dev: true
1212 |
1213 | /escape-string-regexp@4.0.0:
1214 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
1215 | engines: {node: '>=10'}
1216 | dev: true
1217 |
1218 | /eslint-config-next@13.5.4(eslint@8.50.0)(typescript@5.2.2):
1219 | resolution: {integrity: sha512-FzQGIj4UEszRX7fcRSJK6L1LrDiVZvDFW320VVntVKh3BSU8Fb9kpaoxQx0cdFgf3MQXdeSbrCXJ/5Z/NndDkQ==}
1220 | peerDependencies:
1221 | eslint: ^7.23.0 || ^8.0.0
1222 | typescript: '>=3.3.1'
1223 | peerDependenciesMeta:
1224 | typescript:
1225 | optional: true
1226 | dependencies:
1227 | '@next/eslint-plugin-next': 13.5.4
1228 | '@rushstack/eslint-patch': 1.5.1
1229 | '@typescript-eslint/parser': 6.7.4(eslint@8.50.0)(typescript@5.2.2)
1230 | eslint: 8.50.0
1231 | eslint-import-resolver-node: 0.3.9
1232 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.50.0)
1233 | eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0)
1234 | eslint-plugin-jsx-a11y: 6.7.1(eslint@8.50.0)
1235 | eslint-plugin-react: 7.33.2(eslint@8.50.0)
1236 | eslint-plugin-react-hooks: 4.6.0(eslint@8.50.0)
1237 | typescript: 5.2.2
1238 | transitivePeerDependencies:
1239 | - eslint-import-resolver-webpack
1240 | - supports-color
1241 | dev: true
1242 |
1243 | /eslint-import-resolver-node@0.3.9:
1244 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
1245 | dependencies:
1246 | debug: 3.2.7
1247 | is-core-module: 2.13.0
1248 | resolve: 1.22.6
1249 | transitivePeerDependencies:
1250 | - supports-color
1251 | dev: true
1252 |
1253 | /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.50.0):
1254 | resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
1255 | engines: {node: ^14.18.0 || >=16.0.0}
1256 | peerDependencies:
1257 | eslint: '*'
1258 | eslint-plugin-import: '*'
1259 | dependencies:
1260 | debug: 4.3.4
1261 | enhanced-resolve: 5.15.0
1262 | eslint: 8.50.0
1263 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0)
1264 | eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0)
1265 | fast-glob: 3.3.1
1266 | get-tsconfig: 4.7.2
1267 | is-core-module: 2.13.0
1268 | is-glob: 4.0.3
1269 | transitivePeerDependencies:
1270 | - '@typescript-eslint/parser'
1271 | - eslint-import-resolver-node
1272 | - eslint-import-resolver-webpack
1273 | - supports-color
1274 | dev: true
1275 |
1276 | /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0):
1277 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
1278 | engines: {node: '>=4'}
1279 | peerDependencies:
1280 | '@typescript-eslint/parser': '*'
1281 | eslint: '*'
1282 | eslint-import-resolver-node: '*'
1283 | eslint-import-resolver-typescript: '*'
1284 | eslint-import-resolver-webpack: '*'
1285 | peerDependenciesMeta:
1286 | '@typescript-eslint/parser':
1287 | optional: true
1288 | eslint:
1289 | optional: true
1290 | eslint-import-resolver-node:
1291 | optional: true
1292 | eslint-import-resolver-typescript:
1293 | optional: true
1294 | eslint-import-resolver-webpack:
1295 | optional: true
1296 | dependencies:
1297 | '@typescript-eslint/parser': 6.7.4(eslint@8.50.0)(typescript@5.2.2)
1298 | debug: 3.2.7
1299 | eslint: 8.50.0
1300 | eslint-import-resolver-node: 0.3.9
1301 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.50.0)
1302 | transitivePeerDependencies:
1303 | - supports-color
1304 | dev: true
1305 |
1306 | /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0):
1307 | resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==}
1308 | engines: {node: '>=4'}
1309 | peerDependencies:
1310 | '@typescript-eslint/parser': '*'
1311 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
1312 | peerDependenciesMeta:
1313 | '@typescript-eslint/parser':
1314 | optional: true
1315 | dependencies:
1316 | '@typescript-eslint/parser': 6.7.4(eslint@8.50.0)(typescript@5.2.2)
1317 | array-includes: 3.1.7
1318 | array.prototype.findlastindex: 1.2.3
1319 | array.prototype.flat: 1.3.2
1320 | array.prototype.flatmap: 1.3.2
1321 | debug: 3.2.7
1322 | doctrine: 2.1.0
1323 | eslint: 8.50.0
1324 | eslint-import-resolver-node: 0.3.9
1325 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0)
1326 | has: 1.0.4
1327 | is-core-module: 2.13.0
1328 | is-glob: 4.0.3
1329 | minimatch: 3.1.2
1330 | object.fromentries: 2.0.7
1331 | object.groupby: 1.0.1
1332 | object.values: 1.1.7
1333 | semver: 6.3.1
1334 | tsconfig-paths: 3.14.2
1335 | transitivePeerDependencies:
1336 | - eslint-import-resolver-typescript
1337 | - eslint-import-resolver-webpack
1338 | - supports-color
1339 | dev: true
1340 |
1341 | /eslint-plugin-jsx-a11y@6.7.1(eslint@8.50.0):
1342 | resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==}
1343 | engines: {node: '>=4.0'}
1344 | peerDependencies:
1345 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
1346 | dependencies:
1347 | '@babel/runtime': 7.23.1
1348 | aria-query: 5.3.0
1349 | array-includes: 3.1.7
1350 | array.prototype.flatmap: 1.3.2
1351 | ast-types-flow: 0.0.7
1352 | axe-core: 4.8.2
1353 | axobject-query: 3.2.1
1354 | damerau-levenshtein: 1.0.8
1355 | emoji-regex: 9.2.2
1356 | eslint: 8.50.0
1357 | has: 1.0.4
1358 | jsx-ast-utils: 3.3.5
1359 | language-tags: 1.0.5
1360 | minimatch: 3.1.2
1361 | object.entries: 1.1.7
1362 | object.fromentries: 2.0.7
1363 | semver: 6.3.1
1364 | dev: true
1365 |
1366 | /eslint-plugin-react-hooks@4.6.0(eslint@8.50.0):
1367 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
1368 | engines: {node: '>=10'}
1369 | peerDependencies:
1370 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
1371 | dependencies:
1372 | eslint: 8.50.0
1373 | dev: true
1374 |
1375 | /eslint-plugin-react@7.33.2(eslint@8.50.0):
1376 | resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
1377 | engines: {node: '>=4'}
1378 | peerDependencies:
1379 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
1380 | dependencies:
1381 | array-includes: 3.1.7
1382 | array.prototype.flatmap: 1.3.2
1383 | array.prototype.tosorted: 1.1.2
1384 | doctrine: 2.1.0
1385 | es-iterator-helpers: 1.0.15
1386 | eslint: 8.50.0
1387 | estraverse: 5.3.0
1388 | jsx-ast-utils: 3.3.5
1389 | minimatch: 3.1.2
1390 | object.entries: 1.1.7
1391 | object.fromentries: 2.0.7
1392 | object.hasown: 1.1.3
1393 | object.values: 1.1.7
1394 | prop-types: 15.8.1
1395 | resolve: 2.0.0-next.4
1396 | semver: 6.3.1
1397 | string.prototype.matchall: 4.0.10
1398 | dev: true
1399 |
1400 | /eslint-scope@7.2.2:
1401 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
1402 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1403 | dependencies:
1404 | esrecurse: 4.3.0
1405 | estraverse: 5.3.0
1406 | dev: true
1407 |
1408 | /eslint-visitor-keys@3.4.3:
1409 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
1410 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1411 | dev: true
1412 |
1413 | /eslint@8.50.0:
1414 | resolution: {integrity: sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==}
1415 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1416 | hasBin: true
1417 | dependencies:
1418 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0)
1419 | '@eslint-community/regexpp': 4.9.1
1420 | '@eslint/eslintrc': 2.1.2
1421 | '@eslint/js': 8.50.0
1422 | '@humanwhocodes/config-array': 0.11.11
1423 | '@humanwhocodes/module-importer': 1.0.1
1424 | '@nodelib/fs.walk': 1.2.8
1425 | ajv: 6.12.6
1426 | chalk: 4.1.2
1427 | cross-spawn: 7.0.3
1428 | debug: 4.3.4
1429 | doctrine: 3.0.0
1430 | escape-string-regexp: 4.0.0
1431 | eslint-scope: 7.2.2
1432 | eslint-visitor-keys: 3.4.3
1433 | espree: 9.6.1
1434 | esquery: 1.5.0
1435 | esutils: 2.0.3
1436 | fast-deep-equal: 3.1.3
1437 | file-entry-cache: 6.0.1
1438 | find-up: 5.0.0
1439 | glob-parent: 6.0.2
1440 | globals: 13.22.0
1441 | graphemer: 1.4.0
1442 | ignore: 5.2.4
1443 | imurmurhash: 0.1.4
1444 | is-glob: 4.0.3
1445 | is-path-inside: 3.0.3
1446 | js-yaml: 4.1.0
1447 | json-stable-stringify-without-jsonify: 1.0.1
1448 | levn: 0.4.1
1449 | lodash.merge: 4.6.2
1450 | minimatch: 3.1.2
1451 | natural-compare: 1.4.0
1452 | optionator: 0.9.3
1453 | strip-ansi: 6.0.1
1454 | text-table: 0.2.0
1455 | transitivePeerDependencies:
1456 | - supports-color
1457 | dev: true
1458 |
1459 | /espree@9.6.1:
1460 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
1461 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1462 | dependencies:
1463 | acorn: 8.10.0
1464 | acorn-jsx: 5.3.2(acorn@8.10.0)
1465 | eslint-visitor-keys: 3.4.3
1466 | dev: true
1467 |
1468 | /esquery@1.5.0:
1469 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
1470 | engines: {node: '>=0.10'}
1471 | dependencies:
1472 | estraverse: 5.3.0
1473 | dev: true
1474 |
1475 | /esrecurse@4.3.0:
1476 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1477 | engines: {node: '>=4.0'}
1478 | dependencies:
1479 | estraverse: 5.3.0
1480 | dev: true
1481 |
1482 | /estraverse@5.3.0:
1483 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1484 | engines: {node: '>=4.0'}
1485 | dev: true
1486 |
1487 | /esutils@2.0.3:
1488 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1489 | engines: {node: '>=0.10.0'}
1490 | dev: true
1491 |
1492 | /fast-deep-equal@3.1.3:
1493 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1494 | dev: true
1495 |
1496 | /fast-glob@3.3.1:
1497 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
1498 | engines: {node: '>=8.6.0'}
1499 | dependencies:
1500 | '@nodelib/fs.stat': 2.0.5
1501 | '@nodelib/fs.walk': 1.2.8
1502 | glob-parent: 5.1.2
1503 | merge2: 1.4.1
1504 | micromatch: 4.0.5
1505 | dev: true
1506 |
1507 | /fast-json-stable-stringify@2.1.0:
1508 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1509 | dev: true
1510 |
1511 | /fast-levenshtein@2.0.6:
1512 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1513 | dev: true
1514 |
1515 | /fastq@1.15.0:
1516 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
1517 | dependencies:
1518 | reusify: 1.0.4
1519 | dev: true
1520 |
1521 | /file-entry-cache@6.0.1:
1522 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1523 | engines: {node: ^10.12.0 || >=12.0.0}
1524 | dependencies:
1525 | flat-cache: 3.1.0
1526 | dev: true
1527 |
1528 | /fill-range@7.0.1:
1529 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1530 | engines: {node: '>=8'}
1531 | dependencies:
1532 | to-regex-range: 5.0.1
1533 | dev: true
1534 |
1535 | /find-up@5.0.0:
1536 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1537 | engines: {node: '>=10'}
1538 | dependencies:
1539 | locate-path: 6.0.0
1540 | path-exists: 4.0.0
1541 | dev: true
1542 |
1543 | /flat-cache@3.1.0:
1544 | resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==}
1545 | engines: {node: '>=12.0.0'}
1546 | dependencies:
1547 | flatted: 3.2.9
1548 | keyv: 4.5.3
1549 | rimraf: 3.0.2
1550 | dev: true
1551 |
1552 | /flatted@3.2.9:
1553 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
1554 | dev: true
1555 |
1556 | /for-each@0.3.3:
1557 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
1558 | dependencies:
1559 | is-callable: 1.2.7
1560 | dev: true
1561 |
1562 | /fraction.js@4.3.6:
1563 | resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==}
1564 | dev: true
1565 |
1566 | /fs.realpath@1.0.0:
1567 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1568 | dev: true
1569 |
1570 | /fsevents@2.3.3:
1571 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1572 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1573 | os: [darwin]
1574 | requiresBuild: true
1575 | dev: true
1576 | optional: true
1577 |
1578 | /function-bind@1.1.1:
1579 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
1580 | dev: true
1581 |
1582 | /function.prototype.name@1.1.6:
1583 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
1584 | engines: {node: '>= 0.4'}
1585 | dependencies:
1586 | call-bind: 1.0.2
1587 | define-properties: 1.2.1
1588 | es-abstract: 1.22.2
1589 | functions-have-names: 1.2.3
1590 | dev: true
1591 |
1592 | /functions-have-names@1.2.3:
1593 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
1594 | dev: true
1595 |
1596 | /get-intrinsic@1.2.1:
1597 | resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
1598 | dependencies:
1599 | function-bind: 1.1.1
1600 | has: 1.0.4
1601 | has-proto: 1.0.1
1602 | has-symbols: 1.0.3
1603 | dev: true
1604 |
1605 | /get-symbol-description@1.0.0:
1606 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
1607 | engines: {node: '>= 0.4'}
1608 | dependencies:
1609 | call-bind: 1.0.2
1610 | get-intrinsic: 1.2.1
1611 | dev: true
1612 |
1613 | /get-tsconfig@4.7.2:
1614 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
1615 | dependencies:
1616 | resolve-pkg-maps: 1.0.0
1617 | dev: true
1618 |
1619 | /glob-parent@5.1.2:
1620 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1621 | engines: {node: '>= 6'}
1622 | dependencies:
1623 | is-glob: 4.0.3
1624 | dev: true
1625 |
1626 | /glob-parent@6.0.2:
1627 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1628 | engines: {node: '>=10.13.0'}
1629 | dependencies:
1630 | is-glob: 4.0.3
1631 | dev: true
1632 |
1633 | /glob-to-regexp@0.4.1:
1634 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
1635 | dev: false
1636 |
1637 | /glob@7.1.6:
1638 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
1639 | dependencies:
1640 | fs.realpath: 1.0.0
1641 | inflight: 1.0.6
1642 | inherits: 2.0.4
1643 | minimatch: 3.1.2
1644 | once: 1.4.0
1645 | path-is-absolute: 1.0.1
1646 | dev: true
1647 |
1648 | /glob@7.1.7:
1649 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
1650 | dependencies:
1651 | fs.realpath: 1.0.0
1652 | inflight: 1.0.6
1653 | inherits: 2.0.4
1654 | minimatch: 3.1.2
1655 | once: 1.4.0
1656 | path-is-absolute: 1.0.1
1657 | dev: true
1658 |
1659 | /glob@7.2.3:
1660 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1661 | dependencies:
1662 | fs.realpath: 1.0.0
1663 | inflight: 1.0.6
1664 | inherits: 2.0.4
1665 | minimatch: 3.1.2
1666 | once: 1.4.0
1667 | path-is-absolute: 1.0.1
1668 | dev: true
1669 |
1670 | /globals@13.22.0:
1671 | resolution: {integrity: sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==}
1672 | engines: {node: '>=8'}
1673 | dependencies:
1674 | type-fest: 0.20.2
1675 | dev: true
1676 |
1677 | /globalthis@1.0.3:
1678 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
1679 | engines: {node: '>= 0.4'}
1680 | dependencies:
1681 | define-properties: 1.2.1
1682 | dev: true
1683 |
1684 | /globby@11.1.0:
1685 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1686 | engines: {node: '>=10'}
1687 | dependencies:
1688 | array-union: 2.1.0
1689 | dir-glob: 3.0.1
1690 | fast-glob: 3.3.1
1691 | ignore: 5.2.4
1692 | merge2: 1.4.1
1693 | slash: 3.0.0
1694 | dev: true
1695 |
1696 | /goober@2.1.13(csstype@3.1.2):
1697 | resolution: {integrity: sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==}
1698 | peerDependencies:
1699 | csstype: ^3.0.10
1700 | dependencies:
1701 | csstype: 3.1.2
1702 | dev: false
1703 |
1704 | /gopd@1.0.1:
1705 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
1706 | dependencies:
1707 | get-intrinsic: 1.2.1
1708 | dev: true
1709 |
1710 | /graceful-fs@4.2.11:
1711 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1712 |
1713 | /graphemer@1.4.0:
1714 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1715 | dev: true
1716 |
1717 | /has-bigints@1.0.2:
1718 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
1719 | dev: true
1720 |
1721 | /has-flag@4.0.0:
1722 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1723 | engines: {node: '>=8'}
1724 | dev: true
1725 |
1726 | /has-property-descriptors@1.0.0:
1727 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
1728 | dependencies:
1729 | get-intrinsic: 1.2.1
1730 | dev: true
1731 |
1732 | /has-proto@1.0.1:
1733 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
1734 | engines: {node: '>= 0.4'}
1735 | dev: true
1736 |
1737 | /has-symbols@1.0.3:
1738 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
1739 | engines: {node: '>= 0.4'}
1740 | dev: true
1741 |
1742 | /has-tostringtag@1.0.0:
1743 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
1744 | engines: {node: '>= 0.4'}
1745 | dependencies:
1746 | has-symbols: 1.0.3
1747 | dev: true
1748 |
1749 | /has@1.0.4:
1750 | resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==}
1751 | engines: {node: '>= 0.4.0'}
1752 | dev: true
1753 |
1754 | /ignore@5.2.4:
1755 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
1756 | engines: {node: '>= 4'}
1757 | dev: true
1758 |
1759 | /import-fresh@3.3.0:
1760 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1761 | engines: {node: '>=6'}
1762 | dependencies:
1763 | parent-module: 1.0.1
1764 | resolve-from: 4.0.0
1765 | dev: true
1766 |
1767 | /imurmurhash@0.1.4:
1768 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1769 | engines: {node: '>=0.8.19'}
1770 | dev: true
1771 |
1772 | /inflight@1.0.6:
1773 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1774 | dependencies:
1775 | once: 1.4.0
1776 | wrappy: 1.0.2
1777 | dev: true
1778 |
1779 | /inherits@2.0.4:
1780 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1781 | dev: true
1782 |
1783 | /internal-slot@1.0.5:
1784 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
1785 | engines: {node: '>= 0.4'}
1786 | dependencies:
1787 | get-intrinsic: 1.2.1
1788 | has: 1.0.4
1789 | side-channel: 1.0.4
1790 | dev: true
1791 |
1792 | /is-array-buffer@3.0.2:
1793 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
1794 | dependencies:
1795 | call-bind: 1.0.2
1796 | get-intrinsic: 1.2.1
1797 | is-typed-array: 1.1.12
1798 | dev: true
1799 |
1800 | /is-async-function@2.0.0:
1801 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
1802 | engines: {node: '>= 0.4'}
1803 | dependencies:
1804 | has-tostringtag: 1.0.0
1805 | dev: true
1806 |
1807 | /is-bigint@1.0.4:
1808 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
1809 | dependencies:
1810 | has-bigints: 1.0.2
1811 | dev: true
1812 |
1813 | /is-binary-path@2.1.0:
1814 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1815 | engines: {node: '>=8'}
1816 | dependencies:
1817 | binary-extensions: 2.2.0
1818 | dev: true
1819 |
1820 | /is-boolean-object@1.1.2:
1821 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
1822 | engines: {node: '>= 0.4'}
1823 | dependencies:
1824 | call-bind: 1.0.2
1825 | has-tostringtag: 1.0.0
1826 | dev: true
1827 |
1828 | /is-callable@1.2.7:
1829 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
1830 | engines: {node: '>= 0.4'}
1831 | dev: true
1832 |
1833 | /is-core-module@2.13.0:
1834 | resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
1835 | dependencies:
1836 | has: 1.0.4
1837 | dev: true
1838 |
1839 | /is-date-object@1.0.5:
1840 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
1841 | engines: {node: '>= 0.4'}
1842 | dependencies:
1843 | has-tostringtag: 1.0.0
1844 | dev: true
1845 |
1846 | /is-extglob@2.1.1:
1847 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1848 | engines: {node: '>=0.10.0'}
1849 | dev: true
1850 |
1851 | /is-finalizationregistry@1.0.2:
1852 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
1853 | dependencies:
1854 | call-bind: 1.0.2
1855 | dev: true
1856 |
1857 | /is-generator-function@1.0.10:
1858 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
1859 | engines: {node: '>= 0.4'}
1860 | dependencies:
1861 | has-tostringtag: 1.0.0
1862 | dev: true
1863 |
1864 | /is-glob@4.0.3:
1865 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1866 | engines: {node: '>=0.10.0'}
1867 | dependencies:
1868 | is-extglob: 2.1.1
1869 | dev: true
1870 |
1871 | /is-map@2.0.2:
1872 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
1873 | dev: true
1874 |
1875 | /is-negative-zero@2.0.2:
1876 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
1877 | engines: {node: '>= 0.4'}
1878 | dev: true
1879 |
1880 | /is-number-object@1.0.7:
1881 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1882 | engines: {node: '>= 0.4'}
1883 | dependencies:
1884 | has-tostringtag: 1.0.0
1885 | dev: true
1886 |
1887 | /is-number@7.0.0:
1888 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1889 | engines: {node: '>=0.12.0'}
1890 | dev: true
1891 |
1892 | /is-path-inside@3.0.3:
1893 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1894 | engines: {node: '>=8'}
1895 | dev: true
1896 |
1897 | /is-regex@1.1.4:
1898 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1899 | engines: {node: '>= 0.4'}
1900 | dependencies:
1901 | call-bind: 1.0.2
1902 | has-tostringtag: 1.0.0
1903 | dev: true
1904 |
1905 | /is-set@2.0.2:
1906 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
1907 | dev: true
1908 |
1909 | /is-shared-array-buffer@1.0.2:
1910 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
1911 | dependencies:
1912 | call-bind: 1.0.2
1913 | dev: true
1914 |
1915 | /is-string@1.0.7:
1916 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1917 | engines: {node: '>= 0.4'}
1918 | dependencies:
1919 | has-tostringtag: 1.0.0
1920 | dev: true
1921 |
1922 | /is-symbol@1.0.4:
1923 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1924 | engines: {node: '>= 0.4'}
1925 | dependencies:
1926 | has-symbols: 1.0.3
1927 | dev: true
1928 |
1929 | /is-typed-array@1.1.12:
1930 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
1931 | engines: {node: '>= 0.4'}
1932 | dependencies:
1933 | which-typed-array: 1.1.11
1934 | dev: true
1935 |
1936 | /is-weakmap@2.0.1:
1937 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
1938 | dev: true
1939 |
1940 | /is-weakref@1.0.2:
1941 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1942 | dependencies:
1943 | call-bind: 1.0.2
1944 | dev: true
1945 |
1946 | /is-weakset@2.0.2:
1947 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
1948 | dependencies:
1949 | call-bind: 1.0.2
1950 | get-intrinsic: 1.2.1
1951 | dev: true
1952 |
1953 | /is-what@4.1.15:
1954 | resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==}
1955 | engines: {node: '>=12.13'}
1956 | dev: false
1957 |
1958 | /isarray@2.0.5:
1959 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
1960 | dev: true
1961 |
1962 | /isexe@2.0.0:
1963 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1964 | dev: true
1965 |
1966 | /isomorphic-fetch@3.0.0:
1967 | resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==}
1968 | dependencies:
1969 | node-fetch: 2.7.0
1970 | whatwg-fetch: 3.6.19
1971 | transitivePeerDependencies:
1972 | - encoding
1973 | dev: false
1974 |
1975 | /iterator.prototype@1.1.2:
1976 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
1977 | dependencies:
1978 | define-properties: 1.2.1
1979 | get-intrinsic: 1.2.1
1980 | has-symbols: 1.0.3
1981 | reflect.getprototypeof: 1.0.4
1982 | set-function-name: 2.0.1
1983 | dev: true
1984 |
1985 | /jiti@1.20.0:
1986 | resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==}
1987 | hasBin: true
1988 | dev: true
1989 |
1990 | /jose@4.15.1:
1991 | resolution: {integrity: sha512-CinpaEMmwb/59YG0N6SC3DY1imdTU5iNl08HPWR7NdyxACPeFuQbqjaocEjCDGq04KbnxSqQu702vL3ZTvKe5w==}
1992 | dev: false
1993 |
1994 | /js-tokens@4.0.0:
1995 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1996 |
1997 | /js-yaml@4.1.0:
1998 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1999 | hasBin: true
2000 | dependencies:
2001 | argparse: 2.0.1
2002 | dev: true
2003 |
2004 | /json-buffer@3.0.1:
2005 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
2006 | dev: true
2007 |
2008 | /json-schema-traverse@0.4.1:
2009 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
2010 | dev: true
2011 |
2012 | /json-stable-stringify-without-jsonify@1.0.1:
2013 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
2014 | dev: true
2015 |
2016 | /json5@1.0.2:
2017 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
2018 | hasBin: true
2019 | dependencies:
2020 | minimist: 1.2.8
2021 | dev: true
2022 |
2023 | /jsx-ast-utils@3.3.5:
2024 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
2025 | engines: {node: '>=4.0'}
2026 | dependencies:
2027 | array-includes: 3.1.7
2028 | array.prototype.flat: 1.3.2
2029 | object.assign: 4.1.4
2030 | object.values: 1.1.7
2031 | dev: true
2032 |
2033 | /keyv@4.5.3:
2034 | resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==}
2035 | dependencies:
2036 | json-buffer: 3.0.1
2037 | dev: true
2038 |
2039 | /language-subtag-registry@0.3.22:
2040 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
2041 | dev: true
2042 |
2043 | /language-tags@1.0.5:
2044 | resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==}
2045 | dependencies:
2046 | language-subtag-registry: 0.3.22
2047 | dev: true
2048 |
2049 | /levn@0.4.1:
2050 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
2051 | engines: {node: '>= 0.8.0'}
2052 | dependencies:
2053 | prelude-ls: 1.2.1
2054 | type-check: 0.4.0
2055 | dev: true
2056 |
2057 | /lilconfig@2.1.0:
2058 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
2059 | engines: {node: '>=10'}
2060 | dev: true
2061 |
2062 | /lines-and-columns@1.2.4:
2063 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
2064 | dev: true
2065 |
2066 | /locate-path@6.0.0:
2067 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
2068 | engines: {node: '>=10'}
2069 | dependencies:
2070 | p-locate: 5.0.0
2071 | dev: true
2072 |
2073 | /lodash.merge@4.6.2:
2074 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
2075 | dev: true
2076 |
2077 | /loose-envify@1.4.0:
2078 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
2079 | hasBin: true
2080 | dependencies:
2081 | js-tokens: 4.0.0
2082 |
2083 | /lru-cache@6.0.0:
2084 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
2085 | engines: {node: '>=10'}
2086 | dependencies:
2087 | yallist: 4.0.0
2088 |
2089 | /merge2@1.4.1:
2090 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2091 | engines: {node: '>= 8'}
2092 | dev: true
2093 |
2094 | /micromatch@4.0.5:
2095 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
2096 | engines: {node: '>=8.6'}
2097 | dependencies:
2098 | braces: 3.0.2
2099 | picomatch: 2.3.1
2100 | dev: true
2101 |
2102 | /minimatch@3.1.2:
2103 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
2104 | dependencies:
2105 | brace-expansion: 1.1.11
2106 | dev: true
2107 |
2108 | /minimist@1.2.8:
2109 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
2110 | dev: true
2111 |
2112 | /ms@2.1.2:
2113 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
2114 | dev: true
2115 |
2116 | /ms@2.1.3:
2117 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
2118 | dev: true
2119 |
2120 | /mz@2.7.0:
2121 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
2122 | dependencies:
2123 | any-promise: 1.3.0
2124 | object-assign: 4.1.1
2125 | thenify-all: 1.6.0
2126 | dev: true
2127 |
2128 | /nanoid@3.3.6:
2129 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
2130 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2131 | hasBin: true
2132 |
2133 | /natural-compare@1.4.0:
2134 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
2135 | dev: true
2136 |
2137 | /next-auth@4.23.2(next@13.5.4)(react-dom@18.2.0)(react@18.2.0):
2138 | resolution: {integrity: sha512-VRmInu0r/yZNFQheDFeOKtiugu3bt90Po3owAQDnFQ3YLQFmUKgFjcE2+3L0ny5jsJpBXaKbm7j7W2QTc6Ye2A==}
2139 | peerDependencies:
2140 | next: ^12.2.5 || ^13
2141 | nodemailer: ^6.6.5
2142 | react: ^17.0.2 || ^18
2143 | react-dom: ^17.0.2 || ^18
2144 | peerDependenciesMeta:
2145 | nodemailer:
2146 | optional: true
2147 | dependencies:
2148 | '@babel/runtime': 7.23.1
2149 | '@panva/hkdf': 1.1.1
2150 | cookie: 0.5.0
2151 | jose: 4.15.1
2152 | next: 13.5.4(react-dom@18.2.0)(react@18.2.0)
2153 | oauth: 0.9.15
2154 | openid-client: 5.6.0
2155 | preact: 10.18.1
2156 | preact-render-to-string: 5.2.6(preact@10.18.1)
2157 | react: 18.2.0
2158 | react-dom: 18.2.0(react@18.2.0)
2159 | uuid: 8.3.2
2160 | dev: false
2161 |
2162 | /next@13.5.4(react-dom@18.2.0)(react@18.2.0):
2163 | resolution: {integrity: sha512-+93un5S779gho8y9ASQhb/bTkQF17FNQOtXLKAj3lsNgltEcF0C5PMLLncDmH+8X1EnJH1kbqAERa29nRXqhjA==}
2164 | engines: {node: '>=16.14.0'}
2165 | hasBin: true
2166 | peerDependencies:
2167 | '@opentelemetry/api': ^1.1.0
2168 | react: ^18.2.0
2169 | react-dom: ^18.2.0
2170 | sass: ^1.3.0
2171 | peerDependenciesMeta:
2172 | '@opentelemetry/api':
2173 | optional: true
2174 | sass:
2175 | optional: true
2176 | dependencies:
2177 | '@next/env': 13.5.4
2178 | '@swc/helpers': 0.5.2
2179 | busboy: 1.6.0
2180 | caniuse-lite: 1.0.30001543
2181 | postcss: 8.4.31
2182 | react: 18.2.0
2183 | react-dom: 18.2.0(react@18.2.0)
2184 | styled-jsx: 5.1.1(react@18.2.0)
2185 | watchpack: 2.4.0
2186 | optionalDependencies:
2187 | '@next/swc-darwin-arm64': 13.5.4
2188 | '@next/swc-darwin-x64': 13.5.4
2189 | '@next/swc-linux-arm64-gnu': 13.5.4
2190 | '@next/swc-linux-arm64-musl': 13.5.4
2191 | '@next/swc-linux-x64-gnu': 13.5.4
2192 | '@next/swc-linux-x64-musl': 13.5.4
2193 | '@next/swc-win32-arm64-msvc': 13.5.4
2194 | '@next/swc-win32-ia32-msvc': 13.5.4
2195 | '@next/swc-win32-x64-msvc': 13.5.4
2196 | transitivePeerDependencies:
2197 | - '@babel/core'
2198 | - babel-plugin-macros
2199 | dev: false
2200 |
2201 | /node-fetch@2.7.0:
2202 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
2203 | engines: {node: 4.x || >=6.0.0}
2204 | peerDependencies:
2205 | encoding: ^0.1.0
2206 | peerDependenciesMeta:
2207 | encoding:
2208 | optional: true
2209 | dependencies:
2210 | whatwg-url: 5.0.0
2211 | dev: false
2212 |
2213 | /node-releases@2.0.13:
2214 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
2215 | dev: true
2216 |
2217 | /normalize-path@3.0.0:
2218 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
2219 | engines: {node: '>=0.10.0'}
2220 | dev: true
2221 |
2222 | /normalize-range@0.1.2:
2223 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
2224 | engines: {node: '>=0.10.0'}
2225 | dev: true
2226 |
2227 | /oauth@0.9.15:
2228 | resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==}
2229 | dev: false
2230 |
2231 | /object-assign@4.1.1:
2232 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
2233 | engines: {node: '>=0.10.0'}
2234 | dev: true
2235 |
2236 | /object-hash@2.2.0:
2237 | resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==}
2238 | engines: {node: '>= 6'}
2239 | dev: false
2240 |
2241 | /object-hash@3.0.0:
2242 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
2243 | engines: {node: '>= 6'}
2244 | dev: true
2245 |
2246 | /object-inspect@1.12.3:
2247 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
2248 | dev: true
2249 |
2250 | /object-keys@1.1.1:
2251 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
2252 | engines: {node: '>= 0.4'}
2253 | dev: true
2254 |
2255 | /object.assign@4.1.4:
2256 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
2257 | engines: {node: '>= 0.4'}
2258 | dependencies:
2259 | call-bind: 1.0.2
2260 | define-properties: 1.2.1
2261 | has-symbols: 1.0.3
2262 | object-keys: 1.1.1
2263 | dev: true
2264 |
2265 | /object.entries@1.1.7:
2266 | resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==}
2267 | engines: {node: '>= 0.4'}
2268 | dependencies:
2269 | call-bind: 1.0.2
2270 | define-properties: 1.2.1
2271 | es-abstract: 1.22.2
2272 | dev: true
2273 |
2274 | /object.fromentries@2.0.7:
2275 | resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
2276 | engines: {node: '>= 0.4'}
2277 | dependencies:
2278 | call-bind: 1.0.2
2279 | define-properties: 1.2.1
2280 | es-abstract: 1.22.2
2281 | dev: true
2282 |
2283 | /object.groupby@1.0.1:
2284 | resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==}
2285 | dependencies:
2286 | call-bind: 1.0.2
2287 | define-properties: 1.2.1
2288 | es-abstract: 1.22.2
2289 | get-intrinsic: 1.2.1
2290 | dev: true
2291 |
2292 | /object.hasown@1.1.3:
2293 | resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==}
2294 | dependencies:
2295 | define-properties: 1.2.1
2296 | es-abstract: 1.22.2
2297 | dev: true
2298 |
2299 | /object.values@1.1.7:
2300 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
2301 | engines: {node: '>= 0.4'}
2302 | dependencies:
2303 | call-bind: 1.0.2
2304 | define-properties: 1.2.1
2305 | es-abstract: 1.22.2
2306 | dev: true
2307 |
2308 | /oidc-token-hash@5.0.3:
2309 | resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==}
2310 | engines: {node: ^10.13.0 || >=12.0.0}
2311 | dev: false
2312 |
2313 | /once@1.4.0:
2314 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
2315 | dependencies:
2316 | wrappy: 1.0.2
2317 | dev: true
2318 |
2319 | /openid-client@5.6.0:
2320 | resolution: {integrity: sha512-uFTkN/iqgKvSnmpVAS/T6SNThukRMBcmymTQ71Ngus1F60tdtKVap7zCrleocY+fogPtpmoxi5Q1YdrgYuTlkA==}
2321 | dependencies:
2322 | jose: 4.15.1
2323 | lru-cache: 6.0.0
2324 | object-hash: 2.2.0
2325 | oidc-token-hash: 5.0.3
2326 | dev: false
2327 |
2328 | /optionator@0.9.3:
2329 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
2330 | engines: {node: '>= 0.8.0'}
2331 | dependencies:
2332 | '@aashutoshrathi/word-wrap': 1.2.6
2333 | deep-is: 0.1.4
2334 | fast-levenshtein: 2.0.6
2335 | levn: 0.4.1
2336 | prelude-ls: 1.2.1
2337 | type-check: 0.4.0
2338 | dev: true
2339 |
2340 | /p-limit@3.1.0:
2341 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
2342 | engines: {node: '>=10'}
2343 | dependencies:
2344 | yocto-queue: 0.1.0
2345 | dev: true
2346 |
2347 | /p-locate@5.0.0:
2348 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
2349 | engines: {node: '>=10'}
2350 | dependencies:
2351 | p-limit: 3.1.0
2352 | dev: true
2353 |
2354 | /parent-module@1.0.1:
2355 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
2356 | engines: {node: '>=6'}
2357 | dependencies:
2358 | callsites: 3.1.0
2359 | dev: true
2360 |
2361 | /path-exists@4.0.0:
2362 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
2363 | engines: {node: '>=8'}
2364 | dev: true
2365 |
2366 | /path-is-absolute@1.0.1:
2367 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
2368 | engines: {node: '>=0.10.0'}
2369 | dev: true
2370 |
2371 | /path-key@3.1.1:
2372 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
2373 | engines: {node: '>=8'}
2374 | dev: true
2375 |
2376 | /path-parse@1.0.7:
2377 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
2378 | dev: true
2379 |
2380 | /path-type@4.0.0:
2381 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
2382 | engines: {node: '>=8'}
2383 | dev: true
2384 |
2385 | /picocolors@1.0.0:
2386 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
2387 |
2388 | /picomatch@2.3.1:
2389 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
2390 | engines: {node: '>=8.6'}
2391 | dev: true
2392 |
2393 | /pify@2.3.0:
2394 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
2395 | engines: {node: '>=0.10.0'}
2396 | dev: true
2397 |
2398 | /pirates@4.0.6:
2399 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
2400 | engines: {node: '>= 6'}
2401 | dev: true
2402 |
2403 | /postcss-import@15.1.0(postcss@8.4.31):
2404 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
2405 | engines: {node: '>=14.0.0'}
2406 | peerDependencies:
2407 | postcss: ^8.0.0
2408 | dependencies:
2409 | postcss: 8.4.31
2410 | postcss-value-parser: 4.2.0
2411 | read-cache: 1.0.0
2412 | resolve: 1.22.6
2413 | dev: true
2414 |
2415 | /postcss-js@4.0.1(postcss@8.4.31):
2416 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
2417 | engines: {node: ^12 || ^14 || >= 16}
2418 | peerDependencies:
2419 | postcss: ^8.4.21
2420 | dependencies:
2421 | camelcase-css: 2.0.1
2422 | postcss: 8.4.31
2423 | dev: true
2424 |
2425 | /postcss-load-config@4.0.1(postcss@8.4.31):
2426 | resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
2427 | engines: {node: '>= 14'}
2428 | peerDependencies:
2429 | postcss: '>=8.0.9'
2430 | ts-node: '>=9.0.0'
2431 | peerDependenciesMeta:
2432 | postcss:
2433 | optional: true
2434 | ts-node:
2435 | optional: true
2436 | dependencies:
2437 | lilconfig: 2.1.0
2438 | postcss: 8.4.31
2439 | yaml: 2.3.2
2440 | dev: true
2441 |
2442 | /postcss-nested@6.0.1(postcss@8.4.31):
2443 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
2444 | engines: {node: '>=12.0'}
2445 | peerDependencies:
2446 | postcss: ^8.2.14
2447 | dependencies:
2448 | postcss: 8.4.31
2449 | postcss-selector-parser: 6.0.13
2450 | dev: true
2451 |
2452 | /postcss-selector-parser@6.0.13:
2453 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
2454 | engines: {node: '>=4'}
2455 | dependencies:
2456 | cssesc: 3.0.0
2457 | util-deprecate: 1.0.2
2458 | dev: true
2459 |
2460 | /postcss-value-parser@4.2.0:
2461 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
2462 | dev: true
2463 |
2464 | /postcss@8.4.31:
2465 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
2466 | engines: {node: ^10 || ^12 || >=14}
2467 | dependencies:
2468 | nanoid: 3.3.6
2469 | picocolors: 1.0.0
2470 | source-map-js: 1.0.2
2471 |
2472 | /preact-render-to-string@5.2.6(preact@10.18.1):
2473 | resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==}
2474 | peerDependencies:
2475 | preact: '>=10'
2476 | dependencies:
2477 | preact: 10.18.1
2478 | pretty-format: 3.8.0
2479 | dev: false
2480 |
2481 | /preact@10.18.1:
2482 | resolution: {integrity: sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==}
2483 | dev: false
2484 |
2485 | /prelude-ls@1.2.1:
2486 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
2487 | engines: {node: '>= 0.8.0'}
2488 | dev: true
2489 |
2490 | /prettier-plugin-tailwindcss@0.5.5(prettier@3.0.3):
2491 | resolution: {integrity: sha512-voy0CjWv/CM8yeaduv5ZwovovpTGMR5LbzlhGF+LtEvMJt9wBeVTVnW781hL38R/RcDXCJwN2rolsgr94B/n0Q==}
2492 | engines: {node: '>=14.21.3'}
2493 | peerDependencies:
2494 | '@ianvs/prettier-plugin-sort-imports': '*'
2495 | '@prettier/plugin-pug': '*'
2496 | '@shopify/prettier-plugin-liquid': '*'
2497 | '@shufo/prettier-plugin-blade': '*'
2498 | '@trivago/prettier-plugin-sort-imports': '*'
2499 | prettier: ^3.0
2500 | prettier-plugin-astro: '*'
2501 | prettier-plugin-css-order: '*'
2502 | prettier-plugin-import-sort: '*'
2503 | prettier-plugin-jsdoc: '*'
2504 | prettier-plugin-marko: '*'
2505 | prettier-plugin-organize-attributes: '*'
2506 | prettier-plugin-organize-imports: '*'
2507 | prettier-plugin-style-order: '*'
2508 | prettier-plugin-svelte: '*'
2509 | prettier-plugin-twig-melody: '*'
2510 | peerDependenciesMeta:
2511 | '@ianvs/prettier-plugin-sort-imports':
2512 | optional: true
2513 | '@prettier/plugin-pug':
2514 | optional: true
2515 | '@shopify/prettier-plugin-liquid':
2516 | optional: true
2517 | '@shufo/prettier-plugin-blade':
2518 | optional: true
2519 | '@trivago/prettier-plugin-sort-imports':
2520 | optional: true
2521 | prettier-plugin-astro:
2522 | optional: true
2523 | prettier-plugin-css-order:
2524 | optional: true
2525 | prettier-plugin-import-sort:
2526 | optional: true
2527 | prettier-plugin-jsdoc:
2528 | optional: true
2529 | prettier-plugin-marko:
2530 | optional: true
2531 | prettier-plugin-organize-attributes:
2532 | optional: true
2533 | prettier-plugin-organize-imports:
2534 | optional: true
2535 | prettier-plugin-style-order:
2536 | optional: true
2537 | prettier-plugin-svelte:
2538 | optional: true
2539 | prettier-plugin-twig-melody:
2540 | optional: true
2541 | dependencies:
2542 | prettier: 3.0.3
2543 | dev: true
2544 |
2545 | /prettier@3.0.3:
2546 | resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==}
2547 | engines: {node: '>=14'}
2548 | hasBin: true
2549 | dev: true
2550 |
2551 | /pretty-format@3.8.0:
2552 | resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==}
2553 | dev: false
2554 |
2555 | /prisma@5.3.1:
2556 | resolution: {integrity: sha512-Wp2msQIlMPHe+5k5Od6xnsI/WNG7UJGgFUJgqv/ygc7kOECZapcSz/iU4NIEzISs3H1W9sFLjAPbg/gOqqtB7A==}
2557 | engines: {node: '>=16.13'}
2558 | hasBin: true
2559 | requiresBuild: true
2560 | dependencies:
2561 | '@prisma/engines': 5.3.1
2562 |
2563 | /prop-types@15.8.1:
2564 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
2565 | dependencies:
2566 | loose-envify: 1.4.0
2567 | object-assign: 4.1.1
2568 | react-is: 16.13.1
2569 | dev: true
2570 |
2571 | /punycode@2.3.0:
2572 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
2573 | engines: {node: '>=6'}
2574 | dev: true
2575 |
2576 | /queue-microtask@1.2.3:
2577 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
2578 | dev: true
2579 |
2580 | /react-dom@18.2.0(react@18.2.0):
2581 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
2582 | peerDependencies:
2583 | react: ^18.2.0
2584 | dependencies:
2585 | loose-envify: 1.4.0
2586 | react: 18.2.0
2587 | scheduler: 0.23.0
2588 | dev: false
2589 |
2590 | /react-hot-toast@2.4.1(csstype@3.1.2)(react-dom@18.2.0)(react@18.2.0):
2591 | resolution: {integrity: sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==}
2592 | engines: {node: '>=10'}
2593 | peerDependencies:
2594 | react: '>=16'
2595 | react-dom: '>=16'
2596 | dependencies:
2597 | goober: 2.1.13(csstype@3.1.2)
2598 | react: 18.2.0
2599 | react-dom: 18.2.0(react@18.2.0)
2600 | transitivePeerDependencies:
2601 | - csstype
2602 | dev: false
2603 |
2604 | /react-icons@4.11.0(react@18.2.0):
2605 | resolution: {integrity: sha512-V+4khzYcE5EBk/BvcuYRq6V/osf11ODUM2J8hg2FDSswRrGvqiYUYPRy4OdrWaQOBj4NcpJfmHZLNaD+VH0TyA==}
2606 | peerDependencies:
2607 | react: '*'
2608 | dependencies:
2609 | react: 18.2.0
2610 | dev: false
2611 |
2612 | /react-is@16.13.1:
2613 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
2614 | dev: true
2615 |
2616 | /react-ssr-prepass@1.5.0(react@18.2.0):
2617 | resolution: {integrity: sha512-yFNHrlVEReVYKsLI5lF05tZoHveA5pGzjFbFJY/3pOqqjGOmMmqx83N4hIjN2n6E1AOa+eQEUxs3CgRnPmT0RQ==}
2618 | peerDependencies:
2619 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
2620 | dependencies:
2621 | react: 18.2.0
2622 | dev: false
2623 |
2624 | /react@18.2.0:
2625 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
2626 | engines: {node: '>=0.10.0'}
2627 | dependencies:
2628 | loose-envify: 1.4.0
2629 | dev: false
2630 |
2631 | /read-cache@1.0.0:
2632 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
2633 | dependencies:
2634 | pify: 2.3.0
2635 | dev: true
2636 |
2637 | /readdirp@3.6.0:
2638 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
2639 | engines: {node: '>=8.10.0'}
2640 | dependencies:
2641 | picomatch: 2.3.1
2642 | dev: true
2643 |
2644 | /reflect.getprototypeof@1.0.4:
2645 | resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==}
2646 | engines: {node: '>= 0.4'}
2647 | dependencies:
2648 | call-bind: 1.0.2
2649 | define-properties: 1.2.1
2650 | es-abstract: 1.22.2
2651 | get-intrinsic: 1.2.1
2652 | globalthis: 1.0.3
2653 | which-builtin-type: 1.1.3
2654 | dev: true
2655 |
2656 | /regenerator-runtime@0.14.0:
2657 | resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
2658 |
2659 | /regexp.prototype.flags@1.5.1:
2660 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
2661 | engines: {node: '>= 0.4'}
2662 | dependencies:
2663 | call-bind: 1.0.2
2664 | define-properties: 1.2.1
2665 | set-function-name: 2.0.1
2666 | dev: true
2667 |
2668 | /resolve-from@4.0.0:
2669 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
2670 | engines: {node: '>=4'}
2671 | dev: true
2672 |
2673 | /resolve-pkg-maps@1.0.0:
2674 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
2675 | dev: true
2676 |
2677 | /resolve@1.22.6:
2678 | resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
2679 | hasBin: true
2680 | dependencies:
2681 | is-core-module: 2.13.0
2682 | path-parse: 1.0.7
2683 | supports-preserve-symlinks-flag: 1.0.0
2684 | dev: true
2685 |
2686 | /resolve@2.0.0-next.4:
2687 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
2688 | hasBin: true
2689 | dependencies:
2690 | is-core-module: 2.13.0
2691 | path-parse: 1.0.7
2692 | supports-preserve-symlinks-flag: 1.0.0
2693 | dev: true
2694 |
2695 | /reusify@1.0.4:
2696 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
2697 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
2698 | dev: true
2699 |
2700 | /rimraf@3.0.2:
2701 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
2702 | hasBin: true
2703 | dependencies:
2704 | glob: 7.2.3
2705 | dev: true
2706 |
2707 | /run-parallel@1.2.0:
2708 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2709 | dependencies:
2710 | queue-microtask: 1.2.3
2711 | dev: true
2712 |
2713 | /safe-array-concat@1.0.1:
2714 | resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==}
2715 | engines: {node: '>=0.4'}
2716 | dependencies:
2717 | call-bind: 1.0.2
2718 | get-intrinsic: 1.2.1
2719 | has-symbols: 1.0.3
2720 | isarray: 2.0.5
2721 | dev: true
2722 |
2723 | /safe-regex-test@1.0.0:
2724 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
2725 | dependencies:
2726 | call-bind: 1.0.2
2727 | get-intrinsic: 1.2.1
2728 | is-regex: 1.1.4
2729 | dev: true
2730 |
2731 | /scheduler@0.23.0:
2732 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
2733 | dependencies:
2734 | loose-envify: 1.4.0
2735 | dev: false
2736 |
2737 | /semver@6.3.1:
2738 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
2739 | hasBin: true
2740 | dev: true
2741 |
2742 | /semver@7.5.4:
2743 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
2744 | engines: {node: '>=10'}
2745 | hasBin: true
2746 | dependencies:
2747 | lru-cache: 6.0.0
2748 | dev: true
2749 |
2750 | /set-function-name@2.0.1:
2751 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
2752 | engines: {node: '>= 0.4'}
2753 | dependencies:
2754 | define-data-property: 1.1.0
2755 | functions-have-names: 1.2.3
2756 | has-property-descriptors: 1.0.0
2757 | dev: true
2758 |
2759 | /shebang-command@2.0.0:
2760 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
2761 | engines: {node: '>=8'}
2762 | dependencies:
2763 | shebang-regex: 3.0.0
2764 | dev: true
2765 |
2766 | /shebang-regex@3.0.0:
2767 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
2768 | engines: {node: '>=8'}
2769 | dev: true
2770 |
2771 | /side-channel@1.0.4:
2772 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
2773 | dependencies:
2774 | call-bind: 1.0.2
2775 | get-intrinsic: 1.2.1
2776 | object-inspect: 1.12.3
2777 | dev: true
2778 |
2779 | /slash@3.0.0:
2780 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
2781 | engines: {node: '>=8'}
2782 | dev: true
2783 |
2784 | /source-map-js@1.0.2:
2785 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
2786 | engines: {node: '>=0.10.0'}
2787 |
2788 | /streamsearch@1.1.0:
2789 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
2790 | engines: {node: '>=10.0.0'}
2791 | dev: false
2792 |
2793 | /string.prototype.matchall@4.0.10:
2794 | resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
2795 | dependencies:
2796 | call-bind: 1.0.2
2797 | define-properties: 1.2.1
2798 | es-abstract: 1.22.2
2799 | get-intrinsic: 1.2.1
2800 | has-symbols: 1.0.3
2801 | internal-slot: 1.0.5
2802 | regexp.prototype.flags: 1.5.1
2803 | set-function-name: 2.0.1
2804 | side-channel: 1.0.4
2805 | dev: true
2806 |
2807 | /string.prototype.trim@1.2.8:
2808 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
2809 | engines: {node: '>= 0.4'}
2810 | dependencies:
2811 | call-bind: 1.0.2
2812 | define-properties: 1.2.1
2813 | es-abstract: 1.22.2
2814 | dev: true
2815 |
2816 | /string.prototype.trimend@1.0.7:
2817 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
2818 | dependencies:
2819 | call-bind: 1.0.2
2820 | define-properties: 1.2.1
2821 | es-abstract: 1.22.2
2822 | dev: true
2823 |
2824 | /string.prototype.trimstart@1.0.7:
2825 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
2826 | dependencies:
2827 | call-bind: 1.0.2
2828 | define-properties: 1.2.1
2829 | es-abstract: 1.22.2
2830 | dev: true
2831 |
2832 | /strip-ansi@6.0.1:
2833 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
2834 | engines: {node: '>=8'}
2835 | dependencies:
2836 | ansi-regex: 5.0.1
2837 | dev: true
2838 |
2839 | /strip-bom@3.0.0:
2840 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
2841 | engines: {node: '>=4'}
2842 | dev: true
2843 |
2844 | /strip-json-comments@3.1.1:
2845 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
2846 | engines: {node: '>=8'}
2847 | dev: true
2848 |
2849 | /styled-jsx@5.1.1(react@18.2.0):
2850 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
2851 | engines: {node: '>= 12.0.0'}
2852 | peerDependencies:
2853 | '@babel/core': '*'
2854 | babel-plugin-macros: '*'
2855 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
2856 | peerDependenciesMeta:
2857 | '@babel/core':
2858 | optional: true
2859 | babel-plugin-macros:
2860 | optional: true
2861 | dependencies:
2862 | client-only: 0.0.1
2863 | react: 18.2.0
2864 | dev: false
2865 |
2866 | /sucrase@3.34.0:
2867 | resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
2868 | engines: {node: '>=8'}
2869 | hasBin: true
2870 | dependencies:
2871 | '@jridgewell/gen-mapping': 0.3.3
2872 | commander: 4.1.1
2873 | glob: 7.1.6
2874 | lines-and-columns: 1.2.4
2875 | mz: 2.7.0
2876 | pirates: 4.0.6
2877 | ts-interface-checker: 0.1.13
2878 | dev: true
2879 |
2880 | /superjson@1.13.3:
2881 | resolution: {integrity: sha512-mJiVjfd2vokfDxsQPOwJ/PtanO87LhpYY88ubI5dUB1Ab58Txbyje3+jpm+/83R/fevaq/107NNhtYBLuoTrFg==}
2882 | engines: {node: '>=10'}
2883 | dependencies:
2884 | copy-anything: 3.0.5
2885 | dev: false
2886 |
2887 | /supports-color@7.2.0:
2888 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
2889 | engines: {node: '>=8'}
2890 | dependencies:
2891 | has-flag: 4.0.0
2892 | dev: true
2893 |
2894 | /supports-preserve-symlinks-flag@1.0.0:
2895 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
2896 | engines: {node: '>= 0.4'}
2897 | dev: true
2898 |
2899 | /tailwind-merge@1.14.0:
2900 | resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==}
2901 | dev: false
2902 |
2903 | /tailwindcss@3.3.3:
2904 | resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==}
2905 | engines: {node: '>=14.0.0'}
2906 | hasBin: true
2907 | dependencies:
2908 | '@alloc/quick-lru': 5.2.0
2909 | arg: 5.0.2
2910 | chokidar: 3.5.3
2911 | didyoumean: 1.2.2
2912 | dlv: 1.1.3
2913 | fast-glob: 3.3.1
2914 | glob-parent: 6.0.2
2915 | is-glob: 4.0.3
2916 | jiti: 1.20.0
2917 | lilconfig: 2.1.0
2918 | micromatch: 4.0.5
2919 | normalize-path: 3.0.0
2920 | object-hash: 3.0.0
2921 | picocolors: 1.0.0
2922 | postcss: 8.4.31
2923 | postcss-import: 15.1.0(postcss@8.4.31)
2924 | postcss-js: 4.0.1(postcss@8.4.31)
2925 | postcss-load-config: 4.0.1(postcss@8.4.31)
2926 | postcss-nested: 6.0.1(postcss@8.4.31)
2927 | postcss-selector-parser: 6.0.13
2928 | resolve: 1.22.6
2929 | sucrase: 3.34.0
2930 | transitivePeerDependencies:
2931 | - ts-node
2932 | dev: true
2933 |
2934 | /tapable@2.2.1:
2935 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
2936 | engines: {node: '>=6'}
2937 | dev: true
2938 |
2939 | /text-table@0.2.0:
2940 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
2941 | dev: true
2942 |
2943 | /thenify-all@1.6.0:
2944 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
2945 | engines: {node: '>=0.8'}
2946 | dependencies:
2947 | thenify: 3.3.1
2948 | dev: true
2949 |
2950 | /thenify@3.3.1:
2951 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
2952 | dependencies:
2953 | any-promise: 1.3.0
2954 | dev: true
2955 |
2956 | /to-regex-range@5.0.1:
2957 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2958 | engines: {node: '>=8.0'}
2959 | dependencies:
2960 | is-number: 7.0.0
2961 | dev: true
2962 |
2963 | /tr46@0.0.3:
2964 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
2965 | dev: false
2966 |
2967 | /ts-api-utils@1.0.3(typescript@5.2.2):
2968 | resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
2969 | engines: {node: '>=16.13.0'}
2970 | peerDependencies:
2971 | typescript: '>=4.2.0'
2972 | dependencies:
2973 | typescript: 5.2.2
2974 | dev: true
2975 |
2976 | /ts-interface-checker@0.1.13:
2977 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
2978 | dev: true
2979 |
2980 | /tsconfig-paths@3.14.2:
2981 | resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
2982 | dependencies:
2983 | '@types/json5': 0.0.29
2984 | json5: 1.0.2
2985 | minimist: 1.2.8
2986 | strip-bom: 3.0.0
2987 | dev: true
2988 |
2989 | /tslib@2.6.2:
2990 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
2991 | dev: false
2992 |
2993 | /type-check@0.4.0:
2994 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
2995 | engines: {node: '>= 0.8.0'}
2996 | dependencies:
2997 | prelude-ls: 1.2.1
2998 | dev: true
2999 |
3000 | /type-fest@0.20.2:
3001 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
3002 | engines: {node: '>=10'}
3003 | dev: true
3004 |
3005 | /typed-array-buffer@1.0.0:
3006 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
3007 | engines: {node: '>= 0.4'}
3008 | dependencies:
3009 | call-bind: 1.0.2
3010 | get-intrinsic: 1.2.1
3011 | is-typed-array: 1.1.12
3012 | dev: true
3013 |
3014 | /typed-array-byte-length@1.0.0:
3015 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
3016 | engines: {node: '>= 0.4'}
3017 | dependencies:
3018 | call-bind: 1.0.2
3019 | for-each: 0.3.3
3020 | has-proto: 1.0.1
3021 | is-typed-array: 1.1.12
3022 | dev: true
3023 |
3024 | /typed-array-byte-offset@1.0.0:
3025 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
3026 | engines: {node: '>= 0.4'}
3027 | dependencies:
3028 | available-typed-arrays: 1.0.5
3029 | call-bind: 1.0.2
3030 | for-each: 0.3.3
3031 | has-proto: 1.0.1
3032 | is-typed-array: 1.1.12
3033 | dev: true
3034 |
3035 | /typed-array-length@1.0.4:
3036 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
3037 | dependencies:
3038 | call-bind: 1.0.2
3039 | for-each: 0.3.3
3040 | is-typed-array: 1.1.12
3041 | dev: true
3042 |
3043 | /typescript@5.2.2:
3044 | resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
3045 | engines: {node: '>=14.17'}
3046 | hasBin: true
3047 |
3048 | /unbox-primitive@1.0.2:
3049 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
3050 | dependencies:
3051 | call-bind: 1.0.2
3052 | has-bigints: 1.0.2
3053 | has-symbols: 1.0.3
3054 | which-boxed-primitive: 1.0.2
3055 | dev: true
3056 |
3057 | /update-browserslist-db@1.0.13(browserslist@4.22.1):
3058 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
3059 | hasBin: true
3060 | peerDependencies:
3061 | browserslist: '>= 4.21.0'
3062 | dependencies:
3063 | browserslist: 4.22.1
3064 | escalade: 3.1.1
3065 | picocolors: 1.0.0
3066 | dev: true
3067 |
3068 | /uri-js@4.4.1:
3069 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
3070 | dependencies:
3071 | punycode: 2.3.0
3072 | dev: true
3073 |
3074 | /use-sync-external-store@1.2.0(react@18.2.0):
3075 | resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
3076 | peerDependencies:
3077 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
3078 | dependencies:
3079 | react: 18.2.0
3080 | dev: false
3081 |
3082 | /util-deprecate@1.0.2:
3083 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
3084 | dev: true
3085 |
3086 | /uuid@8.3.2:
3087 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
3088 | hasBin: true
3089 | dev: false
3090 |
3091 | /watchpack@2.4.0:
3092 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
3093 | engines: {node: '>=10.13.0'}
3094 | dependencies:
3095 | glob-to-regexp: 0.4.1
3096 | graceful-fs: 4.2.11
3097 | dev: false
3098 |
3099 | /webidl-conversions@3.0.1:
3100 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
3101 | dev: false
3102 |
3103 | /whatwg-fetch@3.6.19:
3104 | resolution: {integrity: sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==}
3105 | dev: false
3106 |
3107 | /whatwg-url@5.0.0:
3108 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
3109 | dependencies:
3110 | tr46: 0.0.3
3111 | webidl-conversions: 3.0.1
3112 | dev: false
3113 |
3114 | /which-boxed-primitive@1.0.2:
3115 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
3116 | dependencies:
3117 | is-bigint: 1.0.4
3118 | is-boolean-object: 1.1.2
3119 | is-number-object: 1.0.7
3120 | is-string: 1.0.7
3121 | is-symbol: 1.0.4
3122 | dev: true
3123 |
3124 | /which-builtin-type@1.1.3:
3125 | resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
3126 | engines: {node: '>= 0.4'}
3127 | dependencies:
3128 | function.prototype.name: 1.1.6
3129 | has-tostringtag: 1.0.0
3130 | is-async-function: 2.0.0
3131 | is-date-object: 1.0.5
3132 | is-finalizationregistry: 1.0.2
3133 | is-generator-function: 1.0.10
3134 | is-regex: 1.1.4
3135 | is-weakref: 1.0.2
3136 | isarray: 2.0.5
3137 | which-boxed-primitive: 1.0.2
3138 | which-collection: 1.0.1
3139 | which-typed-array: 1.1.11
3140 | dev: true
3141 |
3142 | /which-collection@1.0.1:
3143 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
3144 | dependencies:
3145 | is-map: 2.0.2
3146 | is-set: 2.0.2
3147 | is-weakmap: 2.0.1
3148 | is-weakset: 2.0.2
3149 | dev: true
3150 |
3151 | /which-typed-array@1.1.11:
3152 | resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
3153 | engines: {node: '>= 0.4'}
3154 | dependencies:
3155 | available-typed-arrays: 1.0.5
3156 | call-bind: 1.0.2
3157 | for-each: 0.3.3
3158 | gopd: 1.0.1
3159 | has-tostringtag: 1.0.0
3160 | dev: true
3161 |
3162 | /which@2.0.2:
3163 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
3164 | engines: {node: '>= 8'}
3165 | hasBin: true
3166 | dependencies:
3167 | isexe: 2.0.0
3168 | dev: true
3169 |
3170 | /wrappy@1.0.2:
3171 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
3172 | dev: true
3173 |
3174 | /yallist@4.0.0:
3175 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
3176 |
3177 | /yaml@2.3.2:
3178 | resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==}
3179 | engines: {node: '>= 14'}
3180 | dev: true
3181 |
3182 | /yocto-queue@0.1.0:
3183 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
3184 | engines: {node: '>=10'}
3185 | dev: true
3186 |
3187 | /zod@3.22.2:
3188 | resolution: {integrity: sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==}
3189 | dev: false
3190 |
--------------------------------------------------------------------------------
/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | const config = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
8 | module.exports = config;
9 |
--------------------------------------------------------------------------------
/prettier.config.cjs:
--------------------------------------------------------------------------------
1 | /** @type {import("prettier").Config} */
2 | const config = {
3 | plugins: [require.resolve('prettier-plugin-tailwindcss')],
4 |
5 | tabWidth: 2,
6 | useTabs: false,
7 | semi: true,
8 | singleQuote: true,
9 | jsxSingleQuote: false,
10 | trailingComma: 'all',
11 | printWidth: 100,
12 | };
13 |
14 | module.exports = config;
15 |
--------------------------------------------------------------------------------
/prisma/schema.prisma:
--------------------------------------------------------------------------------
1 | // This is your Prisma schema file,
2 | // learn more about it in the docs: https://pris.ly/d/prisma-schema
3 |
4 | generator client {
5 | provider = "prisma-client-js"
6 | }
7 |
8 | datasource db {
9 | provider = "mysql"
10 | url = env("DATABASE_URL")
11 | relationMode = "prisma"
12 | }
13 |
14 | model Todo {
15 | id String @id @default(cuid())
16 | user User @relation(fields: [userId], references: [id], onDelete: Cascade)
17 | userId String
18 | title String @db.VarChar(200)
19 | description String? @db.VarChar(2000)
20 | completed Boolean @default(false)
21 | createdAt DateTime @default(now())
22 |
23 | @@index([userId])
24 | }
25 |
26 | // Necessary for Next auth
27 | model Account {
28 | id String @id @default(cuid())
29 | userId String
30 | type String
31 | provider String
32 | providerAccountId String
33 | refresh_token String?
34 | access_token String?
35 | expires_at Int?
36 | token_type String?
37 | scope String?
38 | id_token String?
39 | session_state String?
40 | user User @relation(fields: [userId], references: [id], onDelete: Cascade)
41 |
42 | @@unique([provider, providerAccountId])
43 | @@index([userId])
44 | }
45 |
46 | model Session {
47 | id String @id @default(cuid())
48 | sessionToken String @unique
49 | userId String
50 | expires DateTime
51 | user User @relation(fields: [userId], references: [id], onDelete: Cascade)
52 |
53 | @@index([userId])
54 | }
55 |
56 | model User {
57 | id String @id @default(cuid())
58 | name String?
59 | email String? @unique
60 | emailVerified DateTime?
61 | image String?
62 | accounts Account[]
63 | sessions Session[]
64 | todos Todo[]
65 | }
66 |
67 | model VerificationToken {
68 | id String @id @default(cuid())
69 | identifier String
70 | token String @unique
71 | expires DateTime
72 |
73 | @@unique([identifier, token])
74 | }
75 |
--------------------------------------------------------------------------------
/public/favicon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # *
2 | User-agent: *
3 | Allow: /
4 |
5 | # Host
6 | Host: https://todo.znagy.hu
7 |
8 | # Sitemaps
9 | Sitemap: https://todo.znagy.hu/sitemap.xml
--------------------------------------------------------------------------------
/public/sitemap.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 | https://todo.znagy.hu/
9 | 1.00
10 |
11 |
--------------------------------------------------------------------------------
/src/components/button.tsx:
--------------------------------------------------------------------------------
1 | import { cn } from '~/utils/cn';
2 |
3 | export const Button: React.FC<{
4 | onClick?: () => void;
5 | color?: 'red' | 'green';
6 | type?: 'button' | 'submit' | 'reset';
7 | className?: string;
8 | disabled?: boolean;
9 | children: React.ReactNode;
10 | }> = ({ onClick, color = 'green', type = 'button', className = '', disabled, children }) => {
11 | return (
12 |
26 | );
27 | };
28 |
--------------------------------------------------------------------------------
/src/components/footer.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link';
2 |
3 | const Anchor: React.FC<{ children: React.ReactNode; href: string }> = ({ children, href }) => (
4 |
10 | {children}
11 |
12 | );
13 |
14 | export const Footer: React.FC = () => (
15 |
28 | );
29 |
--------------------------------------------------------------------------------
/src/components/meta.tsx:
--------------------------------------------------------------------------------
1 | import Head from 'next/head';
2 |
3 | export const Meta: React.FC<{
4 | path: string;
5 | title: string;
6 | description: string;
7 | }> = ({ path, title, description }) => (
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
38 |
39 | {title}
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | );
50 |
--------------------------------------------------------------------------------
/src/components/states/error.tsx:
--------------------------------------------------------------------------------
1 | import { TbAlertCircle } from 'react-icons/tb';
2 |
3 | export const Error: React.FC<{ size?: number }> = ({ size = 48 }) => (
4 |
5 |
6 | Something went wrong... try again later!
7 |
8 | );
9 |
10 | export const ErrorPage: React.FC = () => (
11 |
12 |
13 |
14 | );
15 |
--------------------------------------------------------------------------------
/src/components/states/index.ts:
--------------------------------------------------------------------------------
1 | export * from './error';
2 | export * from './loading';
3 |
--------------------------------------------------------------------------------
/src/components/states/loading.tsx:
--------------------------------------------------------------------------------
1 | export const LoadingSpinner: React.FC<{ size?: number }> = ({ size = 32 }) => (
2 |
9 | );
10 |
11 | export const LoadingPage: React.FC = () => (
12 |
13 |
14 |
15 | );
16 |
--------------------------------------------------------------------------------
/src/env.mjs:
--------------------------------------------------------------------------------
1 | import { z } from 'zod';
2 | import { createEnv } from '@t3-oss/env-nextjs';
3 |
4 | export const env = createEnv({
5 | server: {
6 | DATABASE_URL: z.string().url(),
7 |
8 | UPSTASH_REDIS_REST_URL: z.string().url(),
9 | UPSTASH_REDIS_REST_TOKEN: z.string().min(1),
10 |
11 | GITHUB_CLIENT_ID: z.string().min(1),
12 | GITHUB_CLIENT_SECRET: z.string().min(1),
13 |
14 | NEXTAUTH_URL: z.preprocess(
15 | (str) => process.env.VERCEL_URL ?? str,
16 | process.env.VERCEL ? z.string().min(1) : z.string().url(),
17 | ),
18 | NEXTAUTH_SECRET:
19 | process.env.NODE_ENV === 'production' ? z.string().min(1) : z.string().optional(),
20 |
21 | NODE_ENV: z.enum(['development', 'test', 'production']),
22 | },
23 | client: {},
24 | runtimeEnv: {
25 | DATABASE_URL: process.env.DATABASE_URL,
26 |
27 | UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL,
28 | UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN,
29 |
30 | GITHUB_CLIENT_ID: process.env.GITHUB_CLIENT_ID,
31 | GITHUB_CLIENT_SECRET: process.env.GITHUB_CLIENT_SECRET,
32 |
33 | NEXTAUTH_URL: process.env.NEXTAUTH_URL,
34 | NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET,
35 |
36 | NODE_ENV: process.env.NODE_ENV,
37 | },
38 | });
39 |
--------------------------------------------------------------------------------
/src/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import type { Session } from 'next-auth';
2 | import type { AppType } from 'next/dist/shared/lib/utils';
3 | import { SessionProvider } from 'next-auth/react';
4 | import { Toaster } from 'react-hot-toast';
5 | import { Footer } from '~/components/footer';
6 | import { trpc } from '~/utils/trpc';
7 |
8 | import '~/styles/globals.css';
9 |
10 | const App: AppType<{ session: Session | null }> = ({
11 | Component,
12 | pageProps: { session, ...pageProps },
13 | }) => (
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | );
23 |
24 | export default trpc.withTRPC(App);
25 |
--------------------------------------------------------------------------------
/src/pages/_document.tsx:
--------------------------------------------------------------------------------
1 | import type { DocumentType } from 'next/dist/shared/lib/utils';
2 | import { Html, Head, Main, NextScript } from 'next/document';
3 |
4 | const Document: DocumentType = () => (
5 |
6 |
9 |
10 |
11 |
12 |
13 | );
14 |
15 | export default Document;
16 |
--------------------------------------------------------------------------------
/src/pages/api/auth/[...nextauth].ts:
--------------------------------------------------------------------------------
1 | import NextAuth from 'next-auth';
2 | import { authOptions } from '~/server/auth';
3 |
4 | export default NextAuth(authOptions);
5 |
--------------------------------------------------------------------------------
/src/pages/api/trpc/[trpc].ts:
--------------------------------------------------------------------------------
1 | import { createNextApiHandler } from '@trpc/server/adapters/next';
2 | import { createContext } from '~/server/api/trpc';
3 | import { appRouter } from '~/server/api/router';
4 | import { env } from '~/env.mjs';
5 |
6 | export default createNextApiHandler({
7 | router: appRouter,
8 | createContext,
9 | onError:
10 | env.NODE_ENV === 'development'
11 | ? ({ path, error }) => {
12 | console.error(`❌ tRPC failed on ${path ?? ''}: ${error.message}`);
13 | }
14 | : undefined,
15 | });
16 |
--------------------------------------------------------------------------------
/src/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import type { NextPage } from 'next';
2 | import type { Session } from 'next-auth';
3 | import type { Todo } from '@prisma/client';
4 | import Image from 'next/image';
5 | import { useRouter } from 'next/router';
6 | import { useEffect, useState, useRef, Fragment } from 'react';
7 | import { signOut, useSession } from 'next-auth/react';
8 | import { Dialog, Transition } from '@headlessui/react';
9 | import { useAutoAnimate } from '@formkit/auto-animate/react';
10 | import { TbAlignJustified, TbSelector, TbX } from 'react-icons/tb';
11 | import { toast } from 'react-hot-toast';
12 | import { trpc } from '~/utils/trpc';
13 | import { Button } from '~/components/button';
14 | import { Error, LoadingPage, LoadingSpinner } from '~/components/states';
15 | import { Meta } from '~/components/meta';
16 |
17 | type Order = 'desc' | 'asc';
18 |
19 | const Todos: React.FC<{ order: Order }> = ({ order }) => {
20 | const [todos, setTodos] = useState(null);
21 | const [selectedTodoID, setSelectedTodoID] = useState(null);
22 |
23 | const currentTodo = todos?.find((todo) => todo.id === selectedTodoID);
24 |
25 | const titleRef = useRef(null);
26 | const descriptionRef = useRef(null);
27 |
28 | const [parent] = useAutoAnimate();
29 |
30 | const { refetch, isError, isLoading } = trpc.todos.getAll.useQuery(
31 | { order },
32 | { onSettled: (data) => setTodos(data) },
33 | );
34 |
35 | const { mutate: updateTodo, isLoading: isUpdating } = trpc.todos.update.useMutation({
36 | onSuccess: () => refetch(),
37 | onError: () => toast.error('Failed to update Todo! Please try again later.'),
38 | });
39 |
40 | const { mutate: deleteTodo, isLoading: isDeleting } = trpc.todos.delete.useMutation({
41 | onSettled: () => setSelectedTodoID(null),
42 | onSuccess: () => refetch(),
43 | onError: () => toast.error('Failed to delete Todo! Please try again later.'),
44 | });
45 |
46 | const onClose = () => {
47 | if (!currentTodo || !titleRef.current || !descriptionRef.current) {
48 | return setSelectedTodoID(null);
49 | }
50 |
51 | const title = titleRef.current.value.trim();
52 | const description = descriptionRef.current.value.trim();
53 |
54 | if (currentTodo.title === title && currentTodo.description === description) {
55 | return setSelectedTodoID(null);
56 | }
57 |
58 | updateTodo({ ...currentTodo, title, description });
59 | setSelectedTodoID(null);
60 | };
61 |
62 | if (!todos && isLoading) return ;
63 | if (isError) return ;
64 |
65 | return (
66 | <>
67 | {currentTodo && (
68 |
69 |
162 |
163 | )}
164 |
165 |
166 | {todos?.map(({ id, title, completed }) => (
167 |
176 | ))}
177 |
178 | >
179 | );
180 | };
181 |
182 | const Feed: React.FC<{ session: Session }> = ({ session }) => {
183 | const [order, setOrder] = useState('desc');
184 |
185 | const inputRef = useRef(null);
186 |
187 | const ctx = trpc.useContext();
188 |
189 | const { mutate: createTodo, isLoading: isCreatingTodo } = trpc.todos.create.useMutation({
190 | onSuccess: () => ctx.todos.getAll.invalidate(),
191 | onError: (error) => {
192 | if (error.data?.code === 'TOO_MANY_REQUESTS') {
193 | return toast.error('You are being rate limited! Please try again later.');
194 | }
195 |
196 | toast.error('Failed to create Todo! Please try again later.');
197 | },
198 | });
199 |
200 | const handleSubmit = (e: React.FormEvent) => {
201 | e.preventDefault();
202 |
203 | if (!inputRef.current?.value) return;
204 |
205 | createTodo({ title: inputRef.current.value.trim() });
206 | inputRef.current.value = '';
207 | };
208 |
209 | useEffect(() => {
210 | void ctx.todos.getAll.invalidate();
211 | }, [ctx, order]);
212 |
213 | return (
214 |
215 |
216 |
217 | {session.user?.image && (
218 |
225 | )}
226 |
227 |
228 | Hi, {session?.user?.name}!
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
Order Todos:
238 |
239 |
247 |
248 |
252 |
253 |
254 |
255 |
256 |
257 |
272 |
273 |
274 | );
275 | };
276 |
277 | const Page: NextPage = () => {
278 | const router = useRouter();
279 |
280 | const { data: session } = useSession({
281 | required: true,
282 | onUnauthenticated: () => {
283 | void router.push(`/sign-in?callbackUrl=${encodeURIComponent(router.asPath)}`);
284 | },
285 | });
286 |
287 | return (
288 | <>
289 |
290 |
291 | {session ? : }
292 | >
293 | );
294 | };
295 |
296 | export default Page;
297 |
--------------------------------------------------------------------------------
/src/pages/sign-in.tsx:
--------------------------------------------------------------------------------
1 | import type { NextPage } from 'next';
2 | import { useRouter } from 'next/router';
3 | import { useSession, signIn } from 'next-auth/react';
4 | import { FaGithub } from 'react-icons/fa';
5 | import { Meta } from '~/components/meta';
6 |
7 | const Page: NextPage = () => {
8 | const router = useRouter();
9 | const { data: session } = useSession();
10 |
11 | if (session) void router.push('/');
12 |
13 | return (
14 | <>
15 |
16 |
17 |
18 |
19 | In order to use the application please sign in...
20 |
21 |
22 |
36 |
37 | >
38 | );
39 | };
40 |
41 | export default Page;
42 |
--------------------------------------------------------------------------------
/src/server/api/router/index.ts:
--------------------------------------------------------------------------------
1 | import { router } from '../trpc';
2 | import { todoRouter } from './routers/todo';
3 |
4 | export const appRouter = router({
5 | todos: todoRouter,
6 | });
7 |
8 | export type AppRouter = typeof appRouter;
9 |
--------------------------------------------------------------------------------
/src/server/api/router/routers/todo.ts:
--------------------------------------------------------------------------------
1 | import { z } from 'zod';
2 | import { Ratelimit } from '@upstash/ratelimit';
3 | import { Redis } from '@upstash/redis';
4 | import { router, protectedProcedure } from '../../trpc';
5 | import { TRPCError } from '@trpc/server';
6 |
7 | export const todoRouter = router({
8 | getAll: protectedProcedure
9 | .input(z.object({ order: z.enum(['desc', 'asc']) }))
10 | .query(async ({ ctx, input }) => {
11 | const [uncompleted, completed] = await Promise.all([
12 | ctx.prisma.todo.findMany({
13 | where: {
14 | userId: ctx.session.user.id,
15 | completed: false,
16 | },
17 | orderBy: {
18 | createdAt: input.order,
19 | },
20 | }),
21 | ctx.prisma.todo.findMany({
22 | where: {
23 | userId: ctx.session.user.id,
24 | completed: true,
25 | },
26 | orderBy: {
27 | createdAt: input.order,
28 | },
29 | }),
30 | ]);
31 |
32 | return [...uncompleted, ...completed];
33 | }),
34 | create: protectedProcedure
35 | .input(z.object({ title: z.string().min(1).max(200) }))
36 | .mutation(async ({ ctx, input }) => {
37 | const ratelimit = new Ratelimit({
38 | redis: Redis.fromEnv(),
39 | limiter: Ratelimit.slidingWindow(3, '10 s'),
40 | analytics: true,
41 | prefix: '@upstash/ratelimit',
42 | });
43 |
44 | const { success } = await ratelimit.limit(ctx.session.user.id as string);
45 | if (!success) throw new TRPCError({ code: 'TOO_MANY_REQUESTS' });
46 |
47 | await ctx.prisma.user.update({
48 | where: {
49 | id: ctx.session.user.id,
50 | },
51 | data: {
52 | todos: {
53 | create: {
54 | title: input.title,
55 | },
56 | },
57 | },
58 | });
59 |
60 | return { message: 'Success' };
61 | }),
62 | update: protectedProcedure
63 | .input(
64 | z.object({
65 | id: z.string(),
66 | title: z.string().min(1).max(200),
67 | description: z.nullable(z.string().max(2000)),
68 | completed: z.boolean(),
69 | }),
70 | )
71 | .mutation(async ({ ctx, input }) => {
72 | await ctx.prisma.todo.update({
73 | where: {
74 | id: input.id,
75 | },
76 | data: {
77 | title: input.title,
78 | description: input.description,
79 | completed: input.completed,
80 | },
81 | });
82 |
83 | return { message: 'Success' };
84 | }),
85 | delete: protectedProcedure
86 | .input(z.object({ id: z.string() }))
87 | .mutation(async ({ ctx, input }) => {
88 | await ctx.prisma.todo.delete({ where: { id: input.id } });
89 |
90 | return { message: 'Success' };
91 | }),
92 | });
93 |
--------------------------------------------------------------------------------
/src/server/api/trpc.ts:
--------------------------------------------------------------------------------
1 | import type { CreateNextContextOptions } from '@trpc/server/adapters/next';
2 | import SuperJSON from 'superjson';
3 | import { initTRPC, TRPCError } from '@trpc/server';
4 | import { getServerAuthSession } from '~/server/auth';
5 | import { prisma } from '~/server/db';
6 |
7 | export const createContext = async ({ req, res }: CreateNextContextOptions) => {
8 | const session = await getServerAuthSession({ req, res });
9 |
10 | return {
11 | req,
12 | res,
13 | session,
14 | prisma,
15 | };
16 | };
17 |
18 | const t = initTRPC.context().create({
19 | transformer: SuperJSON,
20 | errorFormatter: ({ shape }) => shape,
21 | });
22 |
23 | export const router = t.router;
24 |
25 | export const publicProcedure = t.procedure;
26 |
27 | const isAuthorized = t.middleware(({ ctx, next }) => {
28 | if (!ctx.session || !ctx.session.user) throw new TRPCError({ code: 'UNAUTHORIZED' });
29 |
30 | return next({
31 | ctx: {
32 | session: { ...ctx.session, user: ctx.session.user },
33 | },
34 | });
35 | });
36 |
37 | export const protectedProcedure = t.procedure.use(isAuthorized);
38 |
--------------------------------------------------------------------------------
/src/server/auth.ts:
--------------------------------------------------------------------------------
1 | import type { NextAuthOptions, DefaultSession } from 'next-auth';
2 | import type { GetServerSidePropsContext } from 'next';
3 | import { getServerSession } from 'next-auth';
4 | import { PrismaAdapter } from '@next-auth/prisma-adapter';
5 | import GithubProvider from 'next-auth/providers/github';
6 | import { prisma } from '~/server/db';
7 | import { env } from '~/env.mjs';
8 |
9 | declare module 'next-auth' {
10 | interface Session {
11 | user?: {
12 | id?: string;
13 | } & DefaultSession['user'];
14 | }
15 | }
16 |
17 | export const authOptions: NextAuthOptions = {
18 | callbacks: {
19 | session({ session, user }) {
20 | if (session.user) session.user.id = user.id;
21 | return session;
22 | },
23 | },
24 | adapter: PrismaAdapter(prisma),
25 | providers: [
26 | GithubProvider({
27 | clientId: env.GITHUB_CLIENT_ID,
28 | clientSecret: env.GITHUB_CLIENT_SECRET,
29 | }),
30 | ],
31 | pages: {
32 | signIn: '/sign-in',
33 | },
34 | };
35 |
36 | export const getServerAuthSession = async (ctx: {
37 | req: GetServerSidePropsContext['req'];
38 | res: GetServerSidePropsContext['res'];
39 | }) => await getServerSession(ctx.req, ctx.res, authOptions);
40 |
--------------------------------------------------------------------------------
/src/server/db.ts:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from '@prisma/client';
2 | import { env } from '~/env.mjs';
3 |
4 | declare global {
5 | // eslint-disable-next-line no-var
6 | var prisma: PrismaClient | undefined;
7 | }
8 |
9 | export const prisma =
10 | global.prisma ||
11 | new PrismaClient({
12 | log: env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'],
13 | });
14 |
15 | if (env.NODE_ENV !== 'production') global.prisma = prisma;
16 |
--------------------------------------------------------------------------------
/src/styles/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | :root {
6 | color-scheme: dark;
7 | }
8 |
--------------------------------------------------------------------------------
/src/utils/cn.ts:
--------------------------------------------------------------------------------
1 | import type { ClassValue } from 'clsx';
2 | import clsx from 'clsx';
3 | import { twMerge } from 'tailwind-merge';
4 |
5 | export const cn = (...classes: ClassValue[]) => twMerge(clsx(classes));
6 |
--------------------------------------------------------------------------------
/src/utils/trpc.ts:
--------------------------------------------------------------------------------
1 | import type { AppRouter } from '../server/api/router';
2 | import type { inferRouterInputs, inferRouterOutputs } from '@trpc/server';
3 | import SuperJSON from 'superjson';
4 | import { httpBatchLink, loggerLink } from '@trpc/client';
5 | import { createTRPCNext } from '@trpc/next';
6 |
7 | const getBaseUrl = () => {
8 | if (typeof window !== 'undefined') return '';
9 | if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`;
10 | return `http://localhost:${process.env.PORT ?? 3000}`;
11 | };
12 |
13 | export const trpc = createTRPCNext({
14 | config: () => ({
15 | transformer: SuperJSON,
16 | links: [
17 | loggerLink({
18 | enabled: (opts) =>
19 | process.env.NODE_ENV === 'development' ||
20 | (opts.direction === 'down' && opts.result instanceof Error),
21 | }),
22 | httpBatchLink({
23 | url: `${getBaseUrl()}/api/trpc`,
24 | }),
25 | ],
26 | queryClientConfig: {
27 | defaultOptions: { queries: { staleTime: 60, refetchOnWindowFocus: false } },
28 | },
29 | }),
30 | ssr: false,
31 | });
32 |
33 | export type RouterInputs = inferRouterInputs;
34 | export type RouterOutputs = inferRouterOutputs;
35 |
--------------------------------------------------------------------------------
/tailwind.config.ts:
--------------------------------------------------------------------------------
1 | import type { Config } from 'tailwindcss';
2 |
3 | const config = {
4 | content: ['./src/**/*.{js,ts,jsx,tsx}'],
5 | theme: {
6 | extend: {},
7 | },
8 | plugins: [],
9 | } satisfies Config;
10 |
11 | export default config;
12 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es2017",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "checkJs": true,
7 | "skipLibCheck": true,
8 | "strict": true,
9 | "strictNullChecks": true,
10 | "forceConsistentCasingInFileNames": true,
11 | "noEmit": true,
12 | "esModuleInterop": true,
13 | "module": "esnext",
14 | "moduleResolution": "node",
15 | "resolveJsonModule": true,
16 | "isolatedModules": true,
17 | "noUnusedLocals": true,
18 | "noUnusedParameters": true,
19 | "noUncheckedIndexedAccess": true,
20 | "jsx": "preserve",
21 | "incremental": true,
22 | "baseUrl": ".",
23 | "paths": {
24 | "~/*": ["src/*"]
25 | }
26 | },
27 | "include": [".eslintrc.cjs", "next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.cjs", "**/*.mjs"],
28 | "exclude": ["node_modules"]
29 | }
30 |
--------------------------------------------------------------------------------